{"id":49876,"date":"2025-10-28T11:54:50","date_gmt":"2025-10-28T03:54:50","guid":{"rendered":"https:\/\/www.zhidianwl.com\/zhidian\/?p=49876"},"modified":"2025-10-28T11:54:50","modified_gmt":"2025-10-28T03:54:50","slug":"android%e6%89%93%e5%8c%85so%e5%88%b0apk%e9%87%8c%e9%9d%a2%e6%b5%81%e7%a8%8b","status":"publish","type":"post","link":"https:\/\/www.zhidianwl.com\/zhidian\/2025\/49876\/","title":{"rendered":"android\u6253\u5305so\u5230apk\u91cc\u9762\u6d41\u7a0b"},"content":{"rendered":"<p>\u5728Android\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u4e2d\uff0c\u6211\u4eec\u5e38\u5e38\u4f1a\u4f7f\u7528C\/C++\u7f16\u5199\u4e00\u4e9b\u5e95\u5c42\u5e93\uff0c\u8fd9\u4e9b\u5e93\u9700\u8981\u88ab\u6253\u5305\u5230apk\u6587\u4ef6\u4e2d\u624d\u80fd\u88ab\u4f7f\u7528\u3002\u8fd9\u4e9b\u5e93\u901a\u5e38\u88ab\u79f0\u4e3a.so\u5e93\uff0c\u4e5f\u5c31\u662f\u52a8\u6001\u94fe\u63a5\u5e93\u3002\u672c\u6587\u5c06\u4ecb\u7ecd\u5982\u4f55\u5c06.so\u5e93\u6253\u5305\u5230apk\u6587\u4ef6\u4e2d\u3002<\/p>\n<p>\u4e00\u3001Android\u5e94\u7528\u7a0b\u5e8f\u7684\u76ee\u5f55\u7ed3\u6784<\/p>\n<p>\u5728Android\u5e94\u7528\u7a0b\u5e8f\u7684\u76ee\u5f55\u7ed3\u6784\u4e2d\uff0c\u6211\u4eec\u901a\u5e38\u4f1a\u770b\u5230\u4ee5\u4e0b\u4e24\u4e2a\u76ee\u5f55\uff1a<\/p>\n<p>&#8211; \/src\uff1aJava\u6e90\u4ee3\u7801\u76ee\u5f55\uff1b<\/p>\n<p>&#8211; \/jni\uff1aC\/C++\u6e90\u4ee3\u7801\u76ee\u5f55\u3002<\/p>\n<p>\u5728\/jni\u76ee\u5f55\u4e2d\uff0c\u6211\u4eec\u901a\u5e38\u4f1a\u770b\u5230\u4ee5\u4e0b\u4e24\u4e2a\u6587\u4ef6\uff1a<\/p>\n<p>&#8211; Android.mk\uff1a\u7f16\u8bd1\u811a\u672c\u6587\u4ef6\uff1b<\/p>\n<p>&#8211; Application.mk\uff1a\u7f16\u8bd1\u53c2\u6570\u6587\u4ef6\u3002<\/p>\n<p>\u4e8c\u3001\u7f16\u5199Android.mk\u6587\u4ef6<\/p>\n<p>\u5728Android.mk\u6587\u4ef6\u4e2d\uff0c\u6211\u4eec\u9700\u8981\u5b9a\u4e49\u6211\u4eec\u7684.so\u5e93\u7684\u540d\u79f0\u3001\u6e90\u6587\u4ef6\u3001\u7f16\u8bd1\u53c2\u6570\u7b49\u4fe1\u606f\u3002\u4e0b\u9762\u662f\u4e00\u4e2a\u7b80\u5355\u7684Android.mk\u6587\u4ef6\u793a\u4f8b\uff1a<\/p>\n<p>LOCAL_PATH := $(call my-dir)<\/p>\n<p>include $(CLEAR_VARS)<\/p>\n<p>LOCAL_MODULE    := my<\/p>\n<p><figure class=\"wp-block-image\">&lt;img src=&quot;https:\/\/i.cdn.yimenapp.com\/2023-04\/03\/17\/18721048806.jpglib<\/p>\n<p>LOCAL_SRC_FILES := mylib.cpp<\/p>\n<p>LOCAL_LDLIBS    := -llog<\/p>\n<p>include $(BUILD_SHARED_LIBRARY)<\/p>\n<p>\u5176\u4e2d\uff0cLOCAL_MODULE\u5b9a\u4e49\u4e86.so\u5e93\u7684\u540d\u79f0\uff0cLOCAL_SRC_FILES\u5b9a\u4e49\u4e86\u6e90\u6587\u4ef6\uff0cLOCAL_LDLIBS\u5b9a\u4e49\u4e86\u4f9d\u8d56\u5e93\uff0c\u8fd9\u91cc\u4f9d\u8d56\u7684\u662fAndroid\u7cfb\u7edf\u7684log\u5e93\u3002<\/p>\n<p>\u4e09\u3001\u7f16\u5199Application.mk\u6587\u4ef6<\/p>\n<p>\u5728Application.mk\u6587\u4ef6\u4e2d\uff0c\u6211\u4eec\u53ef\u4ee5\u5b9a\u4e49\u4e00\u4e9b\u7f16\u8bd1\u53c2\u6570\uff0c\u4f8b\u5982\u7f16\u8bd1\u5de5\u5177\u94fe\u3001\u7f16\u8bd1\u4f18\u5316\u7b49\u3002\u4e0b\u9762\u662f\u4e00\u4e2a\u7b80\u5355\u7684Application.mk\u6587\u4ef6\u793a\u4f8b\uff1a<\/p>\n<p>APP_ABI := armeabi-v7a<\/p>\n<p>APP_PLATFORM := android-19<\/p>\n<p>\u5176\u4e2d\uff0cAPP_ABI\u5b9a\u4e49\u4e86\u7f16\u8bd1\u7684CPU\u67b6\u6784\uff0cAPP_PLATFORM\u5b9a\u4e49\u4e86\u7f16\u8bd1\u7684Android\u5e73\u53f0\u7248\u672c\u3002<\/p>\n<p>\u56db\u3001\u7f16\u8bd1.so\u5e93<\/p>\n<p>\u5728\/jni\u76ee\u5f55\u4e2d\uff0c\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\uff1a<\/p>\n<p>$ ndk-build<\/p>\n<p>\u8fd9\u4e2a\u547d\u4ee4\u4f1a\u81ea\u52a8\u8bfb\u53d6Android.mk\u548cApplication.mk\u6587\u4ef6\uff0c\u5e76\u7f16\u8bd1\u51fa.so\u5e93\u6587\u4ef6\u3002\u7f16\u8bd1\u5b8c\u6210\u540e\uff0c\u6211\u4eec\u53ef\u4ee5\u5728\/jni\/libs\u76ee\u5f55\u4e2d\u770b\u5230\u7f16\u8bd1\u597d\u7684.so\u5e93\u6587\u4ef6\u3002<\/p>\n<p>\u4e94\u3001\u6253\u5305.so\u5e93\u5230apk\u6587\u4ef6\u4e2d<\/p>\n<p>\u5728\u5de5\u7a0b\u7684\u6839\u76ee\u5f55\u4e2d\uff0c\u6211\u4eec\u53ef\u4ee5\u770b\u5230\u4e00\u4e2a\u540d\u4e3abuild.gradle\u7684\u6587\u4ef6\u3002\u5728\u8fd9\u4e2a\u6587\u4ef6\u4e2d\uff0c\u6211\u4eec\u53ef\u4ee5\u5b9a\u4e49\u6253\u5305\u7684\u4e00\u4e9b\u53c2\u6570\u3002\u4e0b\u9762\u662f\u4e00\u4e2a\u7b80\u5355\u7684build.gradle\u6587\u4ef6\u793a\u4f8b\uff1a<\/p>\n<p>appl<a href=\"https:\/\/www.yimenapp.net\/dabao-4555.html\">h5\u5f00\u53d1\u5b89\u5353\u548cios<\/a>y plugin: &#8216;com.android.application&#8217;<\/p>\n<p>android {<\/p>\n<p>    compileSdkVersion 29<\/p>\n<p>    buildToolsVersion &#8220;29.0.2&#8221;<\/p>\n<p>    defaultConfig {<\/p>\n<p>        applicationId &#8220;com.example.myapplication&#8221;<\/p>\n<p>        minSdkVersion 15<\/p>\n<p>        targetSdkVersion 29<\/p>\n<p>        versionCode 1<\/p>\n<p>        versionName &#8220;1.0&#8221;<\/p>\n<p>        ndk {<\/p>\n<p>            abiFilters &#8220;armeabi-v7a&#8221;<\/p>\n<p>        }<\/p>\n<p>    }<\/p>\n<p>    buildTypes {<\/p>\n<p>        release {<\/p>\n<p>            minifyEnabled false<\/p>\n<p>            proguardFiles <a href=\"https:\/\/www.yimenapp.net\/dabao-3832.html\">spring boot\u6253\u5305\u6210apk<\/a>getDefaultProguardFile(&#8216;proguard-android-optimize.txt&#8217;), &#8216;proguard-rules.pro&#8217;<\/p>\n<p>        }<\/p>\n<p>    }<\/p>\n<p>    externalNativeBuild {<\/p>\n<p>        ndkBuild {<\/p>\n<p>            path &#8216;jni\/Android.mk&#8217;<\/p>\n<p>        }<\/p>\n<p>    }<\/p>\n<p>}<\/p>\n<p>\u5728\u8fd9\u4e2a\u6587\u4ef6\u4e2d\uff0c\u6211\u4eec\u9700\u8981\u5173\u6ce8\u7684\u662fexternalNativeBuild\u90e8\u5206\u3002\u5728\u8fd9\u4e2a\u90e8\u5206\u4e2d\uff0c\u6211\u4eec\u6307\u5b9a\u4e86Android.mk\u7684\u8def\u5f84\u3002<\/p>\n<p>\u6700\u540e\uff0c\u5728\u547d\u4ee4\u884c\u4e2d\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\uff1a<\/p>\n<p>$ .\/gradlew assembleDebug<\/p>\n<p>\u8fd9\u4e2a\u547d\u4ee4\u4f1a\u81ea\u52a8\u6253\u5305apk\u6587\u4ef6\uff0c\u5e76\u5c06.so\u5e93\u6587\u4ef6\u6253\u5305\u5230apk\u6587\u4ef6\u4e2d\u3002<\/p>\n<p>\u516d\u3001\u603b\u7ed3<\/p>\n<p>\u672c\u6587\u4ecb\u7ecd\u4e86\u5982\u4f55\u5c06.so\u5e93\u6253\u5305\u5230apk\u6587\u4ef6\u4e2d\u3002\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u4e0d\u540c\u7684CPU\u67b6\u6784\u9700\u8981\u7f16\u8bd1\u4e0d\u540c\u7684.so\u5e93\u6587\u4ef6\uff0c\u4f8b\u5982armeabi-v7a\u3001arm64-v8a\u3001x86\u3001x86_64\u7b49\u3002\u5728\u6253\u5305apk\u6587\u4ef6\u65f6\uff0c\u9700\u8981\u6307\u5b9a\u9700\u8981\u6253\u5305\u7684CPU\u67b6\u6784\uff0c\u5426\u5219\u4f1a\u51fa\u73b0\u5e94\u7528\u7a0b\u5e8f\u65e0\u6cd5\u6b63\u5e38\u8fd0\u884c\u7684\u95ee\u9898\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5728Android\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u4e2d\uff0c\u6211\u4eec\u5e38\u5e38\u4f1a\u4f7f\u7528C\/C++\u7f16\u5199\u4e00\u4e9b\u5e95\u5c42\u5e93\uff0c\u8fd9\u4e9b\u5e93\u9700\u8981\u88ab\u6253\u5305\u5230apk\u6587\u4ef6\u4e2d\u624d\u80fd\u88ab\u4f7f\u7528\u3002\u8fd9\u4e9b\u5e93\u901a\u5e38\u88ab\u79f0\u4e3a.so\u5e93\uff0c\u4e5f\u5c31\u662f\u52a8\u6001\u94fe\u63a5\u5e93\u3002\u672c\u6587\u5c06\u4ecb\u7ecd\u5982\u4f55\u5c06.so\u5e93\u6253\u5305\u5230apk\u6587\u4ef6<\/p>\n","protected":false},"author":16,"featured_media":0,"comment_status":"","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[38721,2764,171,1420,5860],"class_list":["post-49876","post","type-post","status-publish","format-standard","hentry","category-zuoapp","tag--apk","tag-2764","tag-171","tag-1420","tag-app"],"_links":{"self":[{"href":"https:\/\/www.zhidianwl.com\/zhidian\/wp-json\/wp\/v2\/posts\/49876","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.zhidianwl.com\/zhidian\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.zhidianwl.com\/zhidian\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.zhidianwl.com\/zhidian\/wp-json\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/www.zhidianwl.com\/zhidian\/wp-json\/wp\/v2\/comments?post=49876"}],"version-history":[{"count":1,"href":"https:\/\/www.zhidianwl.com\/zhidian\/wp-json\/wp\/v2\/posts\/49876\/revisions"}],"predecessor-version":[{"id":49910,"href":"https:\/\/www.zhidianwl.com\/zhidian\/wp-json\/wp\/v2\/posts\/49876\/revisions\/49910"}],"wp:attachment":[{"href":"https:\/\/www.zhidianwl.com\/zhidian\/wp-json\/wp\/v2\/media?parent=49876"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.zhidianwl.com\/zhidian\/wp-json\/wp\/v2\/categories?post=49876"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhidianwl.com\/zhidian\/wp-json\/wp\/v2\/tags?post=49876"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}