安卓手机APP开发__支持64位的架构

安卓手机APP开发__支持64位的架构

目录

概述

读取你的APP

快速的状态检查

你的APP使用了原生的代码吗?

你的APP包含了64位的代码库吗?

确保在这些目录中有原生的代码库.

使用APK分析器查看原生的代码库

通过解压缩APK查看原生的代码库

用安卓工作台或者是Gradle构建

用CMake构建

用ndk-build构建


概述

在谷歌的应用中发布的APP需要支持64位的架构。添加上你的APP的64位的版本,
提供了性能上的提升,并且能够运行在仅支持64位的硬件上。

如下的步骤确保你的32位的程序支持64位的设备。

读取你的APP

如果你的APP仅使用Java编程语言或者是Kotlin,包括所有的库和SDK,那么
你的APP支持64位的设备。如果你的APP使用了任何的原生的代码,或者是
你不确定是否使用了原生的代码,那么读取你的APP检查一下。

快速的状态检查

使用谷歌应用的命令行,浏览一下已存在的发布版本是否是合规的。

谷歌应用的命令行也显示你的程序发布过是否会有和64位环境需求相关的问题的告警。
如果出现了一个告警,按如下的步骤操作,让你的APP与64位的设备兼容。

你的APP使用了原生的代码吗?

包括如下的三个方面:
在你的APP中内嵌了C/C++(原生)代码。
链接了第三方的原生的代码库
由第三方的APP构造器来构建的,而这个构造器使用了原生的代码库。

你的APP包含了64位的代码库吗?

检查一下你的APK文件的结构。当构建的时候,APK的打包带着被APP需要使用的原生的代码库。
原生的代码库被存储在基于ABI的各个文件夹中。为了支持每一个64位的架构,它是不必需的,
但是对于每一个你支持的原生的32位架构,你必须包含相应的64位的架构。

对于ARM架构,32位的库在目录armeabi-v7a中,64位的库在arm64-v8a目录中。

对于x86架构,32位的库在目录x86中,64位的库在x86_64目录中。

确保在这些目录中有原生的代码库.

注意的是,依赖于你的APP,在每一个文件夹中可能没有相同的库。目标是确保你的APP能在
仅64位的环境下运行。

在一个经典的情况下,一个APK能同时为32位和64位构架而构建,每个目录下都有相应的库。
如果这不支持64位,你可能仅看到了32位的ABI的目录,而没有64位的目录。


使用APK分析器查看原生的代码库

APK分析器是一个工具,让你能评估一个构建好的APK的各个方面。使用它,
来查找各个原生的库,并且确保64位的库是存在的。

打开安卓工作台,打开项目。
从菜单上选择 构建〉分析APK
启动APK分析器
选择你要评估的APK

看lib目录,如果有的话,文件以.so后缀结尾。如果没有的话,那么
你的APP支持64位的设备,没有其它的动作要做了。如果你看到了
armeabi-v7a 或者是 x86目录,那么你有32位的库。
检查一下看看有没有.so文件。


通过解压缩APK查看原生的代码库

APK的文件是结构化的,像zip文件。使用命令行或者是其它的抽取工具,
抽取APK的文件。依赖于你的抽取工具,你可能不得不重命名文件为.zip.

浏览被抽取的文件,遵循上述的指导来确定你的APP是否支持64位设备。
你能在命令行上运行如下的命令例子:

:: Command Line
> zipinfo -1 YOUR_APK_FILE.apk | grep \.so$
lib/armeabi-v7a/libmain.so
lib/armeabi-v7a/libmono.so
lib/armeabi-v7a/libunity.so
lib/arm64-v8a/libmain.so
lib/arm64-v8a/libmono.so
lib/arm64-v8a/libunity.so

注意的是在这个例子中,armeabi-v7a和 arm64-v8a的代码库的存在性,
这意味着APP支持64位的架构。

用安卓工作台或者是Gradle构建

使用如下的代码:

Kotlin

// Your app's build.gradle
plugins {
    id("com.android.app")
}

android {
    compileSdkVersion(27)
    defaultConfig {
        appId = "com.google.example.64bit"
        minSdkVersion(15)
        targetSdkVersion(28)
        versionCode = 1
        versionName = "1.0"
        ndk {
            abiFilters += listOf("armeabi-v7a","arm64-v8a","x86","x86_64")
        }
// ...

用CMake构建

命令如下:

:: Command Line
> cmake -DANDROID_ABI=arm64-v8a … or
> cmake -DANDROID_ABI=x86_64 …

用ndk-build构建

需要修改的是'Application.mk'的文件的APP_ABI变量。

APP_ABI := armeabi-v7a arm64-v8a x86 x86_64

相关推荐

  1. 手机APP开发__支持64架构

    2024-05-16 06:56:15       13 阅读
  2. 手机APP开发__支持不同平台版本

    2024-05-16 06:56:15       10 阅读
  3. 手机APP开发__支持不同像素深度

    2024-05-16 06:56:15       14 阅读
  4. 手机APP开发功能之一:通知概述

    2024-05-16 06:56:15       14 阅读
  5. 手机APP开发音频和视频概述

    2024-05-16 06:56:15       16 阅读
  6. 手机APP开发实践_点击行为

    2024-05-16 06:56:15       16 阅读
  7. 手机APP开发___设置闹钟

    2024-05-16 06:56:15       10 阅读
  8. 手机APP开发____activity简介

    2024-05-16 06:56:15       7 阅读
  9. 手机APP开发工作台简介

    2024-05-16 06:56:15       16 阅读
  10. 手机APP开发__媒体开发部分__APK裁剪

    2024-05-16 06:56:15       16 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-16 06:56:15       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-16 06:56:15       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-16 06:56:15       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-16 06:56:15       20 阅读

热门阅读

  1. 16 | 缓存策略:如何使用缓存来减少磁盘IO?

    2024-05-16 06:56:15       10 阅读
  2. 如何玩转github

    2024-05-16 06:56:15       10 阅读
  3. Pinia:Vue 的强大存储库

    2024-05-16 06:56:15       13 阅读
  4. NIUKE Python:Python入门(上)

    2024-05-16 06:56:15       14 阅读
  5. python脚本编辑oss文件

    2024-05-16 06:56:15       13 阅读
  6. linux编译gdb

    2024-05-16 06:56:15       14 阅读
  7. springboot集成dubbo实现微服务系统

    2024-05-16 06:56:15       13 阅读