上一篇:100多个免费常用API接口分享,调用完全不限次数,以后总用得着!

作者:熊熊君fly 链接:https://juejin.cn/post/7023286220662767624

1 、背景

2019年8月1号,在Google Play上发布应用必须支持64位架构,紧接着 小米应用商店、OPPO应用商店、vivo应用商店、腾讯应用宝和百度手机助手等五大应用商店宣布,为更好提升App性能体验并降低功耗,五方将共同推进国内安卓生态对64位架构的升级支持。

具体的时间表:

  • 2021年12月底,现有和新发布的应用、游戏,需要上传包含64位包体的APK包。也就是说所有上传的应用都应该包含64位代码的版本,不再接受仅有32位版本的应用上传。

  • 2022年8月底,对于支持64位的硬件系统,将只接收64位版本的APK包。也就是如果到时用户手中的硬件设备支持64位系统的话,那么将只运行64位版本的应用。

  • 2023年底,硬件将仅支持64位APK,32位应用无法在终端上运行。

大势所趋,以后发布的应用要支持64位系统,

2、调研

现状

目前手机cpu架构是armeabiarmeabi-v7aarm64-v8ax86x86_64,但是目前手机基本上都是arm架构,x86架构的手机基本上没有,基本上是平板,可以忽略。

armeabi是十年前的手机CPU架构,基本上没有了。

armeabi-v7a的CPU架构是32位。

Arm64-v8a的CPU架构是64位。

所以目前需要考虑的armeabi-v7aarm64-v8a这两款就可以了, 之前开发者在打包的时候,为了包大小的考虑,常常指定打包的时候,只指定armeabi-v7a架构的so包,这样包大小可以小很多,尤其是so库多的应用

ndk {// 选择要添加的对应 cpu 类型的 .so 库,多个abi以“,”分隔。abiFilters 'armeabi-v7a'// 可指定的值为 'armeabi-v7a', 'arm64-v8a', 'armeabi', 'x86', 'x86_64',
}

在项目的gradle中配置ndk就可以,64位的手机会自适应32位的应用,这样可以完美的兼容市面上99.9%的手机,这样包大小也会小很多 但是这样64位处理器的性能就无法完美的发挥出来,那么应用64位有哪些好处呢?

由于一些软件功能越来越多,安装包的体积、运行时需要消耗的运行内存越来越大,32位应用的局限性越来越突出。而64位系统,可以在单个线程里使用超过4GB的运行内存,当处理一些大型软件、或者进行高像素图像、视频处理的时候,就更能够发挥手机硬件的优势。比如一些大型游戏、网络视频直播、高画质影音播放等等。而且64位系统相比32位系统,会带来至少20%以上效率的提升。

打入64位的so包必然导致包大小增大很多,导致用户下载体验差,目前Google paly支持上传32位和64位的两个apk,这样用户可以根据手机cpu架构动态的下载那个apk

国内市场暂不支持,但是这个是趋势,之后必然要上这个功能的,我们在开发的时候,暂时还需要支持'armeabi-v7a', 'arm64-v8a’两个架构,包大小也会增大很多

3、 处理方案

小米应用商店支持64位架构适配指南: https://dev.mi.com/distribute/doc/details?pId=1244

vivo应用商店64位架构适配指南: https://dev.vivo.com.cn/documentCenter/doc/511

oppo应用商店64位架构适配指南: https://open.oppomobile.com/wiki/doc#id=10948

若要确定应用是否包含 64 位库,最简单的方法就是检查 APK 文件的结构。在构建时,APK 会与应用所需的所有原生库打包在一起。原生库会根据 ABI 存储在不同的文件夹中。您的应用不一定要支持所有 64 位架构,但对于支持的每种原生 32 位架构,应用都必须包含相应的 64 位架构。对于 ARM 架构,32 位库位于 armeabi-v7a 中。对应的 64 位库则位于 arm64-v8a 中。

对于 x86 架构,32位库位于 x86中,64 位库则位于 x86_64 中。

那么如何查看apk的架构

点击打出来的apk包,就会出现在目前的apk架构

build.gradle中把ndk的依赖修改,依赖'armeabi-v7a', 'arm64-v8a'

ndk {// 选择要添加的对应 cpu 类型的 .so 库,多个abi以“,”分隔。abiFilters 'armeabi-v7a', 'arm64-v8a'// 可指定的值为 'armeabi-v7a', 'arm64-v8a', 'armeabi', 'x86', 'x86_64',}

打出的包的结果

打出的包需要在64位测试机上测试,如何查看自己的的android手机的CPU架构呢?

查看Android设备的CPU架构信息,可以使用命令来完成:

  • 1、adb shell

  • 2、cat /proc/cpuinfo

CPU architecture:7表示arm-v78表示arm-v8

AArch64是ARMv8 架构的一种执行状态。

相关阅读:2T架构师学习资料干货分享

1、2T架构师学习资料干货分享

2、985副教授工资曝光

3、心态崩了!税前2万4,到手1万4,年终奖扣税方式1月1日起施行~

4、雷军做程序员时写的博客,很强大!

5、人脸识别的时候,一定要穿上衣服啊!

6、清华大学:2021 元宇宙研究报告!

7、绩效被打3.25B,员工将支付宝告上了法院,判了

来了!Android应用市场64位应用策略相关推荐

  1. arm 64位 android,一大波64位手机处理器来袭

    今天凌晨,谷歌正式发布了Android L系统,其最显眼的地方就是UI方面的改变,但最重要的地方却是新增了64位版本,并将ART模式作为系统默认的运行模式,以此换来更加流畅的操作体验. 由于指令集的关 ...

  2. win7系统没有诊断策略服务器,win7旗舰版64位系统诊断策略服务未运行的解决方法...

    如果在win7旗舰版64位系统上碰到一些系统故障问题,用户无法自己解决的话,就会使用到Windows系统的诊断策略服务.然而用户在使用诊断策略服务时,系统提示"诊断策略服务未运行" ...

  3. Android编译32/64位so or bin(Android.bp or Android.mk)

    开发的时候,分析Android系统时发现有的是64或者32位,这样就要按照系统类型分别来编译来构建你所需要的工具. 1.Android.mk LOCAL_PATH := $(call my-dir) ...

  4. 如何让应用支持64位 Android,Sailfish OS 4.1终于拥抱64位 Android10应用支持API等级

    当其他移动操作系统多年来一直采用64位软件堆栈,并在逐步淘汰32位应用支持的过程中,Jolla正在庆祝Sailfish 4.1终于标志着他们第一个完全64位的Sailfish OS软件堆栈的到来,但它 ...

  5. 64 位 ARM 处理器意味着什么?

    64位计算的历史相当丰富有趣.Cray等公司在70年代就已经开始在自己的系统当中使用64位寄存器,但真正纯粹的64位计算直到90年代才真正到来. 首先是MIPS的R4000,然后是DEC的Alpha处 ...

  6. 解读apk分包-32位安装包、32位64位兼容包和64位安装包

    目录 1.apk为何要分包(32位安装包.32位64位兼容包和64位安装包)? 2.影响apk适配的cpu架构的因素-原生代码(C/C++代码) 3.如何判断apk支持的cpu架构? 3.1 查看ap ...

  7. htc820+android+l,首款高通64位八核 HTC Desire 820评测

    9月初的IFA2014展会期间,多款搭载64位处理器的新品智能手机扎堆发布,也算是拉开了64位处理器安卓手机的时代序幕.其中,最引人注目的新品之一莫过于HTC Desire 820,它于北京时间9月4 ...

  8. 如何知道Android机型是32位还是64位

    直接上命令 adb shell getprop ro.product.cpu.abi 题外话:为何Android手机要做64位APP兼容 小米/OPPO/vivo/应用宝/百度手机助手 为更好地提升A ...

  9. android中64位手机,我们需要64位Android手机吗?

    过去数月,多款新智能手机都把64位处理器作为卖点.用户应当购买一款配置64位处理器的手机吗?64位处理器的性能是32位处理器的2倍吗?这两个问题的答案是否定的.转向更新的ARM架构会带来性能的提升,但 ...

  10. Android 适配 64 位架构

    Android 适配 64 位架构 原文地址 https://juejin.cn/post/6964737926617890853 背景 64位的应用性能更好,也能运行在未来仅支持 64 位架构的设备 ...

最新文章

  1. 窗帘效果图css,vuejs、微信小程序窗帘效果
  2. 说得太好了!阿里巴巴为什么不用 ZooKeeper 做服务发现?
  3. 征集 | 国家标准《信息安全技术 健康医疗信息安全指南》征求意见
  4. [快速] 一行指令暫時隱藏 Mac 桌面檔案 – 讓你凌亂的桌面不會被看見 - TechMoon 科技月球...
  5. html css 让元素居中显示,html – CSS:如何在居中元素周围对齐元素?
  6. ASP封裝OWC CLASS
  7. heap 的一些用法
  8. 心血来潮,小试c++11
  9. 为什么使用%lf读取double型的值,而用%f进行显示?
  10. php文件锁不起作用,php文件锁产生的问题和解决方案(一个真实案例)
  11. 传输层协议(12):拥塞控制(1)
  12. 第7章 使用RAID与LVM磁盘阵列技术
  13. Collections。API
  14. 使用etop工具监测Erlang运行环境
  15. Android 动画
  16. 手机号码归属地查询,免费API
  17. 艾伟_转载:VS 2010 和 .NET 4.0 系列之《自动启动ASP.NET应用》篇
  18. 你竟然写出这样的代码
  19. C语言售货系统,自动售货机报告c语言课程设计.docx
  20. 易饭原创:小易U盘安装ghost版xp完美解决方案(解决启动U盘制作难题)09.2.27更新

热门文章

  1. IDEA Auto build completed with errors解决办法
  2. 《我们在时光的列车上,没有终点》
  3. linux下mysql的sql脚本在哪里,Linux下通过shell进MySQL执行SQL或导入脚本
  4. Windows Mobile 进阶系列.第二回.初窥.NET CF类型加载器
  5. android备份基带,备份过SHSH,保留基带,直刷5.0.1系统完美详细教程
  6. ※设计模式※→☆创建型模式☆============Builder模式(五)
  7. root工具android10,KingRoot安卓10root工具 5.4.0最新版
  8. springboot vue uniapp公交路线查询系统源码
  9. pandas read_csv sep用法
  10. 费马小定理和欧拉定理作业