溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Android Studio打包.so庫(kù)到apk中實(shí)例詳解

發(fā)布時(shí)間:2020-10-24 17:39:45 來(lái)源:腳本之家 閱讀:470 作者:lqh 欄目:移動(dòng)開(kāi)發(fā)

Android Studio打包.so庫(kù)到apk中實(shí)例詳解

由于在原來(lái)的ADT的Eclipse環(huán)境中,用ndk_build工具生成了相應(yīng)的各個(gè).so庫(kù)文件之后,eclipse工具就會(huì)自動(dòng)把這些庫(kù)導(dǎo)入到apk中。而Android Studio目前為止(1.1.0版本)還無(wú)法做到那么自動(dòng),但是我們可以通過(guò)以下方式進(jìn)行。

首先在Android Studio工程的app目錄下創(chuàng)建整個(gè)jni目錄,jni目錄里寫(xiě)Android.mk、Application.mk以及各類C/C++和匯編源文件。然后跟原來(lái)一樣,用ndk_build工具去編,然后工具會(huì)自動(dòng)生成libs目錄,里面還有每個(gè)你在Application.mk里所指定處理器架構(gòu)的so文件。

完成之后,編輯你對(duì)應(yīng)module(類似eclipse中的project)目錄下的build.gradle文件,為其添加以下代碼:

sourceSets { 
  main { 
    jniLibs.srcDirs = ['libs'] 
  } 
} 

比如本人module完整的build.gradle文件如下所示:

apply plugin: 'com.android.application' 
 
android { 
  compileSdkVersion 22 
  buildToolsVersion "21.1.1" 
 
  defaultConfig { 
    applicationId "com.example.way.aligesture" 
    minSdkVersion 15 
    targetSdkVersion 22 
    versionCode 1 
    versionName "1.0" 
  } 
  buildTypes { 
    release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
  } 
  sourceSets { 
    main { 
      jniLibs.srcDirs = ['libs'] 
    } 
  } 
} 
 
dependencies { 
  compile fileTree(dir: 'libs', include: ['*.jar']) 
  compile project(':acra') 
  compile project(':hwdroid') 
} 

最后記得選中對(duì)應(yīng)的module右擊synchronize同步一下,以便使其生效。如下圖所示,module目錄下回生成一個(gè)jniLibs目錄,再打包生成的apk就會(huì)帶上.so了。

Android Studio打包.so庫(kù)到apk中實(shí)例詳解

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI