当前位置:首页 > 实用技巧 >

为什么不支持x5内核(x5内核加载失败修复步骤)

来源:原点资讯(www.yd166.com)时间:2023-06-12 08:58:57作者:YD166手机阅读>>

为什么不支持x5内核,x5内核加载失败修复步骤(1)

一. 序

事情是这样的,前几天收到 Google Play 的通知邮件,这才想起来有几款在 Google Play 上架的 App,还没有支持 64 位 CPU 架构。

为什么不支持x5内核,x5内核加载失败修复步骤(2)

早在今年一月份,Google 就发布通知,在今年 8 月 1 日开始,上架的 App,除了提供 32 位的版本之外,还需要提供 64 位的版本。

这眼看着离强制升级窗口,只剩下最后两个月的时间,很多第三放来源的 so 支持库,如果没有提供 64 位的版本,还需要同步催促合作方更新。

那今天就来聊聊 Android apk 升级 64 位 CUP 架构的细节,看看你的应用是否需要支持 64 位 CPU 架构,如果要支持,需要做什么?

二. Android CPU 架构细节

2.1 这是强制规范

早在 2015 年 Google 发布 Android 5.0 版本时,就加入了 64 位处理器的支持,当时就提出了以 19 年 8 月为最后的更新支持期限,并在今年又重申了这个强制要求。

只要你的 App 存在国际版,需要上架 Google Play,这个规定都必须准守。

2.2 那些 APK 需要支持 64 位?

那假如你有一个国际化的 App 需要维护,在今年 8 月 1 日之后,更新 Google Play 时,就必须提供 64 位的版本。

那这里说的 64 位版本支持,到底是什么?

如果你的应用,完全是使用 Java 或者 Kotlin 编写代码,不包含任何原生(Native)的支持,那么就表示这个应用已经支持 64 位。

但是应用内使用了任何原生(Native)的支持(so 库),就需要针对这些 so 文件,针对不同的 CPU 架构提供不同的版本的 so 支持。

需要注意的是,有些时候,在我们自身的代码中,确实没有用到原生的支持,但是在 App 中使用的一些第三方库中却包含了。

此时最稳妥的方式,就是针对最终打包生成的 APK 文件进行分析,来判断是否需要提供 64 位架构的支持。

那 CPU 架构是什么?什么又是 ABIs?

在 Android 中,虽然 ARM 的 CPU 架构是主流,但是目前至少支持几类 CPU 架构,ARM 下的 ARMv5/ARMv7/ARMv8,X86 下的 x86/x86_64,以及很不常见的 MIPS 类架构。这里的每一种 CPU 类型对应了一种 API(Application Binary Interface),例如 armeabi-v7a 中的 "armeabi" 指的就是 ARM 这种类型的 ABI,后面的 “v7a” 指的是 ARMv7。

通常我们可以简单的理解:

为什么不支持x5内核,x5内核加载失败修复步骤(3)

这三个概念是相通的,通常在技术讨论中,说的是一个东西。

2.3 为什么是强制的?

谷歌之所以会有强制更新的要求,很大一方面原因是因为作为开发者,更新补全 ABIs 的动力并不足。

主要原因来自以下几个方面:

1. APK 体积增大

针对不同 CPU 架构提供对应的 so 库,当然是效率最高的做法。但是这种做法,最直接的影响,就是 APK 文件的增大,有些时候补全这些 so 支持,会导致整个 APK 体积有几 MB 到几十 MB 的增幅。

APK 体积优化,很多公司都将其算做是一个 API 指标,加入一个新特性,导致 APK 体积的增大,在很多时候都是不允许的,为此换技术方案都是常有的事。

从增长的角度来看,越小的 APK,用户下载的意愿就更大,转化率就越高。

但是随着现在流量越来越便宜,近期 iOS 已经将 蜂窝数据下载限制从 150MB 放宽至 200MB,针对安装包的体积优化标准,也可以适当的放宽了。

2. 本身有一定的兼容性

应用市场中,很多 APP 其实都只有 armeabi 或者 armeabi-v7a 的支持,而市面上的设备,支持的并不是只有这两种 CPU 架构。

但是这并没有影响在这些设备上运行这些 App,这就是 CPU 架构的兼容性。

不同架构,并不意味着之间一定是不兼容的,在不同版本下,其实提供了两种 ABI 支持,分别是

  • 主要 ABI:与系统本身使用的原生代码一样,最优方案。
  • 辅助 ABI:支持的另一个 ABI 方案,兼容方案。

这种兼容策略就不在这里展开说了,最简单的就是 64 位的 arm64-v8a 在支持本身的 CPU 架构之外,还兼容支持 armeabi-v7a、armeabi;x86_64 同时也兼容支持 X86 和 armeabi。

你看,虽然添加 64 位的支持,可以有效的使用硬件的优势,提升性能,但大部分时候,采用兼容方案,是一种更简单的方式。

3. 没有对应架构的 so 文件

这个原因就比较尴尬了,我们 App 中使用到的原生代码,其实有两种。

一种是我们自己编写的,源码在手,想提供对应的支持,修改配置重新编译一下就解决了。

另一种来自第三方提供的,这种时候我们没有源码,无法做到重新编译,只能和第三方沟通,看能不能提供一个对应 CPU 架构的 so 库。这种情况就非常的不可控了。

例如比较常见的一个 WebView 的替换方案,腾讯 X5 内核,本身就不提供 X86 的库。

为什么不支持x5内核,x5内核加载失败修复步骤(4)

首页 12下一页

栏目热文

x5内核没了会怎样(x5内核初始化失败怎么解决)

x5内核没了会怎样(x5内核初始化失败怎么解决)

从 iOS 13 的深色外观到 Android 10 的深色主题,似乎是延续了去年对「数字健康」这一话题的思考,如何将界...

2023-06-12 09:32:58查看全文 >>

为什么x5内核加载失败(内核加载失败解决办法)

为什么x5内核加载失败(内核加载失败解决办法)

TBS视频播放TBS视频播放器可以支持市面上几乎所有的视频格式,包括mp4, flv, avi, 3gp, webm, ...

2023-06-12 09:22:25查看全文 >>

无法安装x5内核(安卓x5内核安装包下载)

无法安装x5内核(安卓x5内核安装包下载)

RTS 在阿里云视频直播的基础上进行底层技术优化,通过集成阿里云播放器 SDK,支持在千万级并发场景下节点间毫秒级延时直...

2023-06-12 09:09:28查看全文 >>

x5预置效果是什么意思(x5音效设置怎么调最佳)

x5预置效果是什么意思(x5音效设置怎么调最佳)

  对于摄影发烧友来说,有三大必备法宝值得用一生去追求,那就是专业镜头、好的拍摄场景和功能强大的后期图片处理软件,所以说...

2023-06-12 08:53:25查看全文 >>

x5内核与cw内核哪个好(为什么要关闭x5内核)

x5内核与cw内核哪个好(为什么要关闭x5内核)

作者:billpchen,腾讯看点前端开发工程师译者:编译青春转发链接:HTTPS://mp.weixin.qq.com...

2023-06-12 09:31:35查看全文 >>

x5内核适应安卓哪个版本

x5内核适应安卓哪个版本

2015 年 HTTP/2 标准发表后,大多数主流浏览器也于当年年底支持该标准。此后,凭借着多路复用、头部压缩、服务器推...

2023-06-12 09:14:08查看全文 >>

怎么用x5内核设置全屏(游戏用x5内核打开很慢该怎么办)

怎么用x5内核设置全屏(游戏用x5内核打开很慢该怎么办)

随着网络提速和手机性能的提升,移动端页面中出现视频内容的频率越来越高。HTML5 通过 video 标签来支持嵌入式的媒...

2023-06-12 09:07:48查看全文 >>

名校同步课堂直播在哪个台(名校同步课堂怎么收看直播)

名校同步课堂直播在哪个台(名校同步课堂怎么收看直播)

紧 急 声 明 根据河南省教育厅 河南广播电视台 河南广电传媒控股集团有限责任公司《关于做好名校同步课堂收看工作的紧急通...

2023-06-12 09:32:51查看全文 >>

在电脑上怎么看名校同步课堂直播

在电脑上怎么看名校同步课堂直播

第十一周(4月20日-24日)详细电视和网络播出时间表小学详细播出时间表初中课程详细播出时间表高中课程详细播出时间表特别...

2023-06-12 09:25:14查看全文 >>

名校同步课堂怎么打开(用手机怎么看名校同步课堂)

名校同步课堂怎么打开(用手机怎么看名校同步课堂)

大象新闻记者 魏俊浩5月3日,郑州发布73号通告:主城区内学校、托幼机构、校外培训机构暂缓开学,启动线上教学。线上优质课...

2023-06-12 08:46:52查看全文 >>

文档排行