今天看到邮箱里面Google发来的邮件是在8月1号之前必须把APP支持64位代码,为了运行的体验
如何判断自己的app的是否是64位 用Android studio就可以
如果应用仅使用以 Java 编程语言或 Kotlin 编写的代码(包括任何库或 SDK),那么就表示该应用已经支持 64 位设备。如果应用使用了任何原生代码,或者不确定自己的应用是否使用了这类代码,那么需要评估应用并相应采取措施。
如何判断应用是否使用了原生代码?
首先需要检查您的应用是否使用了任何原生代码。如果您的应用符合以下情况,便是使用了原生代码:
- 使用了任何 C/C++(原生)代码。
- 与任何第三方原生库关联。(用第三方库有风险啊!!)
- 通过使用原生库的第三方应用构建程序构建而成。
应用是否包含 64 位库?
要确定应用是否包含 64 位库,最简单的方法就是检查 APK 文件的结构。在编译时,APK 会与应用所需的所有原生库打包在一起。原生库会根据 ABI 而存储在不同的文件夹中。应用无需支持所有 64 位架构,但对于支持的每种原生 32 位架构,则应用都必须包含相应的 64 位架构。
对于 ARM 架构,32 位库位于 armeabi-v7a 中。对应的 64 位库位于 arm64-v8a 中。
对于 x86 架构,请查找 x86(32 位)和 x86_64(64 位)。
首先要确保这两个文件夹中都有原生库。总结如下:
平台 | 32 位库文件夹 | 64 位库文件夹 |
---|---|---|
ARM | lib/armeabi-v7a | lib/arm64-v8a |
x86 | lib/x86 | lib/x86_64 |
第一步 打开自己要检测的APP
查看 lib 文件夹,可以在其中找到所有“.so”文件。如果在的应用中找不到任何“.so”文件,则说明该应用已经准备好相应的库,无需采取进一步措施。如果看到 armeabi-v7a 或 x86,则说明有 32 位库。
检查是否在 arm64-v8a 或 x86_64 文件夹中也有类似的“.so”文件。
如果您没有任何 arm64-v8a 或 x86_64 库,则需要更新编译流程以开始在 APK 中编译并打包相应工件。
第二步 添加64位的库就OK
// Your app's build.gradle
apply plugin: 'com.android.app'
android {
compileSdkVersion 27
defaultConfig {
appId "com.google.example.64bit"
minSdkVersion 15
targetSdkVersion 28
versionCode 1
versionName "1.0"
ndk.abiFilters 'armeabi-v7a'//32位,'arm64-v8a'//64位 ,'x86'//32位,'x86_64'//64位
// ...
然后点击编译就可以啦~
接着在用第一步判断就可以发现应用是否支持64位代码了
借鉴Google的博客
https://developer.android.com/distribute/best-practices/develop/64-bit#test_your_app_on_64-bit_hardware