当前位置: 首页 > news >正文

安卓手机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 = 1versionName = "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

http://www.lryc.cn/news/350364.html

相关文章:

  • Foxmail使用经验总结
  • 信息系统项目管理师0601:项目立项管理 — 考点总结(可直接理解记忆)
  • 实验三:机器学习1.0
  • Vue 3 + Vite项目实战:常见问题与解决方案全解析
  • 飞天使-k8s知识点31-rancher的正确打开方式
  • Vue.component v2v3注册(局部与全局)组件使用详解
  • HNU-算法设计与分析-作业5
  • 基础之音视频2
  • 两小时看完花书(深度学习入门篇)
  • 21【Aseprite 作图】画白菜
  • 2024.05.15 [AI开发配环境]个人使用最新版远程服务器配环境大纲:docker、云盘、ssh、conda等
  • opencv 轮廓区域检测
  • 2024-5-16
  • IT行业的现状与未来:技术创新引领时代变革
  • Redis分布式锁【简单版】
  • 18.Blender 渲染工程、打光方法及HDR贴图导入
  • VBA在Excel中部首组查字法的应用
  • ASP.NET MVC 4升级迁移到ASP.NET MVC 5
  • AIGC时代已至,你准备好抓住机遇了吗?
  • 2024CCPC郑州邀请赛暨河南省赛
  • Spring 各版本发布时间与区别
  • 前端模块导入导出方式
  • docker01-简介和概述
  • java数据结构与算法(对称二叉树)
  • [原创](Modern C++)现代C++的std::function, 强大的多态函数包装器(包含std::mem_fn使用方式).
  • 解决间歇性 SSLPeerUnverifiedException 问题
  • Linux程序开发(一):Linux基础入门安装和实操手册
  • Java | Leetcode Java题解之第92题反转链表II
  • 声纹识别在无人机探测上的应用
  • 【数据结构】时间、空间复杂度实例分析