其可能的現在,參考此鏈接。
https://developer.android.com/studio/build/configure-apk-splits.html
UPDATE:
您需要添加Android的標籤內的模塊級的build.gradle下面的代碼:
splits
{
// Configures multiple APKs based on ABI.
abi {
// Enables building multiple APKs per ABI.
enable true
// By default all ABIs are included, so use reset() and include to specify that we only
// want APKs for x86, armeabi-v7a, and mips.
// Resets the list of ABIs that Gradle should create APKs for to none.
reset()
// Specifies a list of ABIs that Gradle should create APKs for.
include "x86", "armeabi-v7a", "mips"
// Specifies that we do not want to also generate a universal APK that includes all ABIs.
universalApk false
}
}
這會給你多個APK爲不同的上傳建築。根據Android:
不同的Android手機使用不同的CPU,這反過來又支持 不同的指令集。 CPU和指令 集合的每個組合都有其自己的應用程序二進制接口(即ABI)。 ABI 非常精確地定義應用程序的機器代碼 應該如何在運行時與系統進行交互。
另外,請記住用不同的versionCode推動兩個apks。一個方便的方法是使用以下腳本,以後在同一個url上提供:
// Map for the version code that gives each ABI a value.
ext.abiCodes = ['armeabi-v7a':1, mips:2, x86:3]
// For per-density APKs, create a similar map like this:
// ext.densityCodes = ['mdpi': 1, 'hdpi': 2, 'xhdpi': 3]
import com.android.build.OutputFile
// For each APK output variant, override versionCode with a combination of
// ext.abiCodes * 1000 + variant.versionCode. In this example, variant.versionCode
// is equal to defaultConfig.versionCode. If you configure product flavors that
// define their own versionCode, variant.versionCode uses that value instead.
android.applicationVariants.all { variant ->
// Assigns a different version code for each output APK
// other than the universal APK.
variant.outputs.each { output ->
// Stores the value of ext.abiCodes that is associated with the ABI for this variant.
def baseAbiVersionCode =
// Determines the ABI for this variant and returns the mapped value.
project.ext.abiCodes.get(output.getFilter(OutputFile.ABI))
// Because abiCodes.get() returns null for ABIs that are not mapped by ext.abiCodes,
// the following code does not override the version code for universal APKs.
// However, because we want universal APKs to have the lowest version code,
// this outcome is desirable.
if (baseAbiVersionCode != null) {
// Assigns the new version code to versionCodeOverride, which changes the version code
// for only the output APK, not for the variant itself. Skipping this step simply
// causes Gradle to use the value of variant.versionCode for the APK.
output.versionCodeOverride =
baseAbiVersionCode * 1000 + variant.versionCode
}
}
}
這會在分割代碼下面進行。這使您與您的一部開拓創新的版本代碼乘以上面的腳本中abiCodes數組給定的架構代碼多個APK。例如:如果你的版本代碼爲5,MIPS構建代碼是,如果你universalApk是在分裂碼真2005年通用APK也將被創建。的可以是fallover APK的情況下沒有架構構建APK是發現對於特定設備。
同樣的問題,用不同的答案:http://stackoverflow.com/a/20029256/192373 – 2014-06-04 06:23:55