在eclipse裏,.so文件eclipse會幫助咱們自動打包進apk文件,一般是放在:libs/armeabi目錄,而後把libxxx.so拷貝到這個目錄下,這樣NDK就會自動把這個libxxx.so打包進apk,安裝apk後位置是在放在your_apk_package_name/lib/目錄下。html
android studio就有些不一樣了,下面給你們介紹一下,方法很簡單,一學就會。java
這裏給你們介紹三種方法,來自網絡和QQ羣:android
1.來自網頁:segmentfault
將須要打包進apk內的so文件放入項目文件夾下的libs目錄,而後在app內(注意是app內的,不是project的)的build.gradle中的android { }中添加以下代碼網絡
<span style="font-size:14px;"><span style="font-size:14px;">sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}</span></span>
app
添加後是這樣的(僅爲範例):eclipse
<span style="font-size:14px;">apply plugin: 'android'
android {
compileSdkVersion 19
buildToolsVersion "19.0.0"
defaultConfig {
minSdkVersion 16
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}</span>
測試
這樣就能夠把so文件打包進apk了,這是筆者親測可用的一個。gradle
2.來自QQ羣:ui
在項目內新建目錄:jniLibs文件夾(與res目錄同級),而後將so文件放入其中,不用配置gradle內便可自動打包
這個方法,未測試,但來自google官方文檔,必然有用。
來自QQ羣:Android Studio Tech
3.來自網頁:
1) 在硬盤任意位置創建空文件夾 「lib」 (注意名字是 「lib」 而不是 「libs」 )
2) 把原來的 libs 目錄下的 armeabi 文件夾拷貝至 剛創建的 lib 目錄下. (armeabi文件夾中的.so文件也會被一併拷入)
3) 將剛創建的 「lib」 目錄打包壓縮成 .zip 文件, 同時更名爲 「armeabi.jar」
4) 將 armeabi.jar 放入原來的 libs 目錄下 (和其餘第三方jar包放在一塊兒)
5)更新as的第三方庫便可
網絡上挺認同的方法,不知道適不適用於正式版的as。
經歷了這個事件,才發現瀏覽官方文檔是多麼的重要,不過在天朝「偉大的牆」內,但是苦了咱們開發者了。
但願各位志同道合的朋友:再忙也要看看官方文檔!再忙也要看看Android加密