我使用的是一个预编译库,它相当大(15 MiB),在arm5和arm7版本之间有显著的加速。我的应用程序不是NDK应用程序,所以我不能在Application.mk AFAIK中声明APP_ABI。我的目标软件开发工具包至少是Android2.3,虽然我个人还没有见过不支持armeabi-v7a的2.3+设备,但根据http://androidhardwares.com/android-hardware-development/android-hardware-requirements/的说法,我应该只假设armeabi。
是否有一些特性或GL我可以假定在所有arm-v7处理器上都可用,但不能在arm-v6或arm-v5上使用?有没有办法将我的应用程序转换为仅用于Application.mk中的一个选项的NDK?如果我只是使用不同的版本名(IE1.0-arm5,1.0-arm7)和不同的apks,在lib中只使用armeabi和armeabi-v7a目录,这会起作用吗?根据http://developer.android.com/google/play/publishing/multiple-apks.html的说法,我必须在安卓清单中有其他不同的东西才能工作。
发布于 2013-09-04 05:34:18
解决方案是在AndroidManifest.xml中为更高的arm系统将versionCode设置为更高的数字。如果您的版本是1.0.0,并且您的版本代码是100,请将其更改为1005 (适用于arm 5)和1007 (适用于arm 7 )。这样,当用户在Play商店中看到它时,将下载arm 7版本(如果他们的设备支持它,因为它有更高的版本代码)。上传到开发者控制台时,请务必先上传较低版本的代码。
发布于 2013-03-20 13:02:48
"I'm using a library“-这是一个本地库(C/C++)吗?如果是,那么您的应用程序就是NDK应用程序,即使您没有将ndk-build作为常规构建过程的一部分来构建这个库;即使它是由一些不同的本机工具链构建的,完全与NDK无关;即使它是一个根本不需要构建的第三方库。
因此,在Apllication.mk中设置APP_ABI是没有问题的。我相信这会解决你的问题。
发布于 2016-08-15 20:40:08
您应该对版本代码进行排序,以便在每台设备上运行性能最好的APK。例如,对版本代码进行排序,使x86 APK具有最高的版本代码,然后是ARMv7,然后是ARMv5TE。因此,x86 APK对于x86设备是首选的,而ARMv7 APK是ARMv7设备的首选。
https://stackoverflow.com/questions/15515145
复制相似问题