安卓手机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
相关文章:
安卓手机APP开发__支持64位的架构
安卓手机APP开发__支持64位的架构 目录 概述 读取你的APP 快速的状态检查 你的APP使用了原生的代码吗? 你的APP包含了64位的代码库吗? 确保在这些目录中有原生的代码库. 使用APK分析器查看原生的代码库 通过解压缩APK查看原生的代码库 用安卓工…...
Foxmail使用经验总结
目录 1.概述 2.版本历史 3.使用方法 3.1.安装和设置账户 3.2.收取和阅读邮件 3.3.发送邮件 3.4.管理联系人 3.5.日程安排和任务管理 3.6.定制设置和插件 3.7.跨平台同步 4.小结 1.概述 Fox…...
信息系统项目管理师0601:项目立项管理 — 考点总结(可直接理解记忆)
点击查看专栏目录 项目立项管理 — 考点总结(可直接理解记忆) 1.项目建议书(又称立项申请)是项目建设单位向上级主管部门提交项目申请时所必须的文件,是对拟建项目提出的框架性的总体设想。在项目建议书批准后,方可开展对外工作(掌握)。 2.项目建议书应该包括的核心内…...
实验三:机器学习1.0
要求: 针对实验1和实验2构建的数据集信息分析 设计实现通过数据简介进行大类分类的程序 代码实现: 训练集数据获取: read_data.py import json import pickledef read_intro():data []trypathr"E:\Procedure\Python\Experiment\f…...
Vue 3 + Vite项目实战:常见问题与解决方案全解析
文章目录 一、项目使用本地图片打包后不显示1、在html中时候,本地运行和打包后线上运行都ok。2、用动态数据,本地运行ok,打包后线上运行不显示3、适用于处理单个链接的资源文件4、用动态数据且本地和线上访问都可显示 二、使用插件vite-plugi…...
飞天使-k8s知识点31-rancher的正确打开方式
文章目录 安装之前优化一下内核参数以及系统内核版本 rancher安装主要是使用以下命令nginx的配置为解决办法 安装之前优化一下内核参数以及系统内核版本 内核版本 4.17 cat > /etc/modules-load.d/iptables.conf <<EOF ip_tables iptable_filter EOF 然后重启服务器…...
Vue.component v2v3注册(局部与全局)组件使用详解
在Vue中,可以通过两种方式注册组件:局部注册和全局注册。 局部注册是在父组件中通过import和components选项注册的组件,仅在当前父组件及其子组件中可用。 // 父组件中import ChildComponent from ./ChildComponent.vue;export default {co…...
HNU-算法设计与分析-作业5
第五次作业【回溯算法】 文章目录 第五次作业【回溯算法】<1> 算法分析题5-3 回溯法重写0-1背包<2> 算法分析题5-5 旅行商问题(剪枝)<3> 算法实现题5-2 最小长度电路板排列问题<4> 算法实现题5-7 n色方柱问题<5> 算法实现…...
基础之音视频2
01 前言 02 mp 03 mp实例 简易音乐播放器 04 音频 sound-pool 1.作用 播放多个音频,短促音频 2.过程 加载load- 3.示例 模拟手机选铃声 步骤: 创建SoundPool对象,设置相关属性 音频流存入hashmap 播放音频 05 videoview 3gp 体积小 mp4 …...
两小时看完花书(深度学习入门篇)
1.深度学习花书前言 机器学习早期的时候十分依赖于已有的知识库和人为的逻辑规则,需要人们花大量的时间去制定合理的逻辑判定,可以说是有多少人工,就有多少智能。后来逐渐发展出一些简单的机器学习方法例如logistic regression、naive bayes等…...
21【Aseprite 作图】画白菜
1 对着参考图画轮廓 2 缩小尺寸 变成这样 3 本来是红色的描边,可以通过油漆桶工具(取消 “连续”),就把红色的轮廓线,变成黑色的 同时用吸管工具,吸取绿色和白色,用油漆桶填充颜色 4 加上阴影…...
2024.05.15 [AI开发配环境]个人使用最新版远程服务器配环境大纲:docker、云盘、ssh、conda等
不包括在宿主机安装docker。 docker 找到心仪的镜像,比如从网上pull:https://hub.docker.com/r/pytorch/pytorch/tags?page&page_size&ordering&name2.0.1 docker pull pytorch/pytorch:2.0.1-cuda11.7-cudnn8-devel# 新建容器 docker r…...
opencv 轮廓区域检测
直线检测 void LineDetect(const cv::Mat &binaryImage) {cv::Mat xImage,yImage,binaryImage1,binaryImage2;// 形态学变化,闭操作 先膨胀,再腐蚀 可以填充小洞,填充小的噪点cv::Mat element cv::getStructuringElement(cv::MORPH_RE…...
2024-5-16
今日安排: 完结 nf_tables 模块的基本学习,然后开始审计源码mount 的使用,学习 namespace (昨昨昨昨天残留的任务)(:看我能搁到什么时候静不下心学习新知识就做 CTF 题目🦑🦑🦑 今…...
IT行业的现状与未来:技术创新引领时代变革
随着技术的不断进步,IT行业已成为推动全球经济和社会发展的关键力量。从云计算、大数据、人工智能到物联网、5G通信和区块链,这些技术正在重塑我们的生活和工作方式。本文将探讨当前IT行业的现状及未来发展趋势,并邀请行业领袖、技术专家和创…...
Redis分布式锁【简单版】
文章目录 概要例子1【SETNX EXPIRE】例子2【 Redisson 】 概要 redis分布式锁六种方案 SETNX EXPIRE 方案: 描述:使用Redis的SETNX命令来尝试设置一个键值对,如果该键不存在,则设置成功并设置过期时间,实现锁的功能…...
18.Blender 渲染工程、打光方法及HDR贴图导入
HDR环境 如何导入Blender的HDR环境图 找到材质球信息 在右上角,点击箭头,展开详细部分 点击材质球,会出现下面一列材质球,将鼠标拖到第二个材质球,会显示信息 courtyard.exr 右上角打开已渲染模式 左边这里选择世界…...
VBA在Excel中部首组查字法的应用
VBA在Excel中部首组查字法的应用 文章目录 前言一、网站截图二、操作思路三、代码1.创建数据发送及返回方法2.创建截取字符串中的数值的方法3.获取部首对应的编码4.获取特定部首的汉字运行效果截图前言 使用汉语字典查生字、生词,多用拼音查字法和部首查字法。以前都是用纸质…...
ASP.NET MVC 4升级迁移到ASP.NET MVC 5
背景:今天针对一个老项目进行框架升级,老项目使用的是MVC 4,现在要升级到MVC5。 备份项目.NET升级4.5以上版本通过Nuget,更新或者直接安装包 包名oldVersionnewVersion说明Microsoft.AspNet.Mvc4.0.05.x.xMicrosoft.AspNet.Razo…...
AIGC时代已至,你准备好抓住机遇了吗?
一、行业前景 AIGC,即人工智能生成内容,是近年来人工智能领域中发展迅猛的一个分支。随着大数据、云计算、机器学习等技术的不断进步,AIGC已经取得了显著的成果,并且在广告、游戏、自媒体、教育、电商等多个领域实现了广泛应用。…...
Asian Beauty Z-Image Turbo实战:用nvidia-smi监控显存,小白也能轻松调优
Asian Beauty Z-Image Turbo实战:用nvidia-smi监控显存,小白也能轻松调优 如果你正在使用Asian Beauty Z-Image Turbo生成东方风格人像,是否遇到过生成过程中程序突然崩溃,或者生成速度越来越慢的情况?这些问题的罪魁…...
RyTuneX:WinUI3驱动的Windows性能优化引擎
RyTuneX:WinUI3驱动的Windows性能优化引擎 【免费下载链接】RyTuneX RyTuneX is a cutting-edge optimizer built with the WinUI 3 framework, designed to amplify the performance of Windows devices. Crafted for both Windows 10 and 11. 项目地址: https:/…...
Homebox开发者手册:从源码构建到自定义扩展的完整教程
Homebox开发者手册:从源码构建到自定义扩展的完整教程 【免费下载链接】homebox Homebox is the inventory and organization system built for the Home User 项目地址: https://gitcode.com/gh_mirrors/ho/homebox Homebox是一款为家庭用户打造的库存和组织…...
HTML函数在高负载下自动关机是硬件问题吗_过热保护机制【汇总】
HTML没有函数,更不会导致关机;所谓“HTML函数关机”是误解,实际是高负载JS/渲染引发CPU/GPU过热,触发系统级温控断电。HTML 函数在高负载下自动关机?压根不存在这个函数HTML 是标记语言,没有“函数”&#…...
YOLOv8n-face:工业级人脸检测技术的精度与效率平衡之道
YOLOv8n-face:工业级人脸检测技术的精度与效率平衡之道 【免费下载链接】yolov8-face yolov8 face detection with landmark 项目地址: https://gitcode.com/gh_mirrors/yo/yolov8-face 一、行业痛点诊断:企业级人脸检测的现实挑战 1.1 复杂场景…...
Qwen-Image-2512-SDNQ开源大模型:SVR低秩微调技术落地解析
Qwen-Image-2512-SDNQ开源大模型:SVR低秩微调技术落地解析 1. 引言 你有没有遇到过这样的烦恼?想用AI生成一张图片,要么得自己折腾复杂的模型部署,要么得忍受在线服务漫长的排队和模糊的画质。特别是对于开发者来说,…...
通义千问2.5-7B-Instruct环境部署:Docker镜像快速启动教程
通义千问2.5-7B-Instruct环境部署:Docker镜像快速启动教程 你是不是也遇到过这样的情况:想试试最新的大模型,但一看到“编译依赖”“CUDA版本匹配”“量化配置”就头皮发麻?下载模型权重、配置环境、调试端口……光是准备就花掉半…...
TRAE SOLO模式实战:如何用AI上下文工程师5分钟搞定JWT登录接口开发
TRAE SOLO模式实战:5分钟构建JWT登录接口的AI开发革命 清晨的阳光透过百叶窗洒在键盘上,咖啡杯里升起最后一缕热气。作为一名全栈开发者,你刚收到产品经理的紧急需求:"今天下班前上线用户登录功能,支持邮箱密码验…...
深入解析DolphinScheduler API调用:从文档到实战
1. DolphinScheduler API调用入门指南 第一次接触DolphinScheduler的API时,我也是一头雾水。官方文档虽然全面,但对于新手来说信息量太大,不知道从哪里入手。经过几个项目的实战,我总结出了一套快速上手的方法。 DolphinScheduler…...
linux sed/awk命令检索区间日志的问题
开发时如果需要检索一段时间内或者某个批量执行期间的所有日志,也就是区间日志时,手动检索会有一些问题:如要查询一段时间前的日志(比如归档日志),需要一页一页翻,费时且费眼睛使用grep筛选日志…...
