Android Studio 1.1生成的apk文件(位於@app/build/outputs/apk文件夾)包含lib目錄,並且對於每個cpu類型,都存在一個非空文件夾,如/ x86。這些文件夾中的每一個都包含一個libapp.so共享庫,每個CPU的大小約爲5Kb。Android Studio將libapp.so添加到生成的apk中,它是什麼以及如何關閉它?
我搜索了網絡,迄今爲止唯一發現的是英特爾https://software.intel.com/en-us/articles/building-native-android-apps-using-intelr-c-compiler-in-android-studio的此鏈接,該鏈接顯示如何將默認libapp.so更改爲用戶提供的庫。
所以,我猜這個庫(libapp.so)是由Gradle構建的。 Gradle當然是隱藏東西的王。
事實上,我使用ndk-build命令行工具來建立自己的本地庫,並且我的libs與libapp.so一起放置。這不會引起任何問題,但我覺得我失去了對構建什麼和爲什麼的控制權。
這是我謙虛的build.gradle文件:
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
/**
* Path to *.so files
*/
sourceSets {
main {
jniLibs.srcDirs = ['src/main/libs']
jni.srcDirs = [] //disable automatic ndk-build
}
}
defaultConfig {
applicationId "com.sample.android"
minSdkVersion 9
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.0.0'
}
如何禁用此libapp.so正在興建,或至少知道發生了什麼事情與gradle這個(建設 - hideomation工具)做自己的事幕後?