如何在我的设备上安装特定的APK

时间:2018-02-12 12:35:30

标签: android gradle android-ndk

我不使用Android Studio,但我从命令行执行所有操作。我正在为不同的架构构建不同的APK,因此我的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 "armeabi", "armeabi-v7a", "arm64-v8a"

  // Specifies that we do not want to also generate a universal APK that includes all ABIs.
  universalApk false
 }
}

然后,我使用here描述的方法为各个APK分配不同的版本代码。

这一切都很好,除非我说

./gradlew tasks

只有一个名为installRelease的任务。然后,运行此任务将自动选择适当的APK并进行安装。

但是,我想分别测试各个APK,即在我的64位Android设备上,我首先要测试armeabi,然后是armeabi-v7a,最后是{{1} }。但是,在运行arm64-v8a时,gradle将始终自动安装installRelease。那么我如何强制gradle安装特定的架构呢?

以前,我在arm64-v8a中使用此代码而不是上面显示的build.gradle代码:

splits

使用此代码时,gradle提供了名为productFlavors { arm7 { // in the future, ndk.abiFilter might also work ndk { abiFilter 'armeabi-v7a' } } arm8 { ndk { abiFilters 'arm64-v8a' } } arm { ndk { abiFilter 'armeabi' } } } installArmReleaseinstallArm7Release的单个任务,这正是我正在寻找的但我不得不删除此代码,因为我没有找到一种方法,将其与代码一起使用,为代表here所描述的各个APK生成不同的版本代码。

0 个答案:

没有答案