0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Arm 64位迁移

安芯教育科技 ? 来源:安芯教育科技 ? 作者:Nathan ? 2020-11-13 16:37 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

2020 年 10 月,Arm 宣布,从 2022 IP 开始,未来的所有 Cortex-A”大核”都将仅支持 64 位代码。Oppo 和小米这两家中国领先的移动终端制造商以及领先的游戏引擎 Unity(中国)纷纷对 Arm 宣布向 64 位迁移和为之付出的努力表示支持。

Arm 认为,迁移到 64 位是中国的开发人员都应迈出的积极一步。如果想要打造能满足消费者需求的全新、更复杂、安全可靠、身临其境的体验,他们的app必然需要迁移到 64 位。另外,预计到 2023 年将出现仅支持 64 位的移动设备,届时他们的app还需要与这些设备相兼容。

64 位不仅能带来许多好处(如上一篇极术社区的博客中所述),例如优化性能、提高安全性、改善功效和降低成本,而且将app迁移到 64 位的过程十分简单,并不具备太多挑战。当然,下文也列出了在迁移到 64 位的过程中,中国开发人员需要考虑的一些方面以及对应采取的措施。请注意,下列步骤都是建立在开发人员使用 Google Android Studio 进行app开发的假设基础上。

查看app代码

全部由 Java 编程语言或 Kotlin 编写而成的Android 应用程序(包括所有库或 SDK)都将自动能在 64 位移动设备上运行。对于那些向专属/第三方本地库发出 Java 本地接口 (JNI) 调用(以进行用户行为分析、加密、云服务等)的 Java 应用程序,这些库也需要迁移到 64 位,才能消除所有 32 位依赖项。而且,使用 Arm NEON 指令编写的大多数代码无需更改即可编译成 64 位。但是,如果app使用的是本地库,则其必须是 64 位版本,这可能需要额外的开发工作。

查验本机代码

如果开发人员不确定他们的app是否使用本机代码,可以检查以下三项:


? app是否使用了任何 C/C++(本机)代码
? app是否与任何第三方本地库相关联
? app是否由某个使用本地库的第三方app生成器构建而成。

使用 APK 查验本地库

根据应用二进制接口 (ABI),本地库存储在不同文件夹内。通常情况下,为 32 位和 64 位架构构建的 APK 或数据包将拥有分别针对两种 ABI 的文件夹,每个文件夹内包含一组对应的本地库。如果不支持 64 位,开发人员可能只会看到 32 位 ABI 文件夹,却没有 64 位文件夹。

使用工具查验本地库

开发人员还可以使用不同的工具来查验app中的本地库。APK Analyzer 是 Android Studio 中一款可用的 Android 工具,可帮助开发人员评估某个已构建的 APK 的不同方面。开发人员还可以通过解压缩 APK 来查验本地库,因为这些文件的结构都类似于压缩文件,所以也可以采取类似的提取方式。

从 32 位移植到 64 位

如果应用代码已经在 iOS 上顺利运行,则无需再做任何额外工作。但是,如果这是应用代码初次构建用于 64 位系统,则需要解决的主要问题是指针不再适合于 int 之类的 32 位整型。因此,开发人员需要对以 int、unsigned 或 uint32_t 类型存储指针的代码进行更新。

减轻 64 位带来的规模增加

为应用程式添加 64 位架构的支持可能导致 APK 大小随之增加。Android App Bundle 功能可以最大限度地降低同一 APK 中同时包含 32 位和 64 位代码所带来的规模影响。在大多数情况下,将应用切换为使用 Android App Bundles 实际上有助于改善 APK 的大小,甚至小于 32 位时的应用大小。

游戏开发人员

正如我们在上一篇极术社区的博客中提到的,三个最常用的游戏引擎 Unreal、Cocos2d-x 和 Unity 目前都支持 64 位。事实上,这些领先的游戏引擎都支持 64 位对于游戏开发人员而言是一大利好消息,因为要为第三方游戏引擎迁移应用是一个前置时间非常长的繁杂过程。

测试应用

64 位版本的应用准备就绪后,应能提供与 32 位版本相同的质量和功能集。但是,这只有通过app测试才能保证。测试需要在支持 64 位的设备上完成。幸运的是,如今中国国内市场上的绝大多数智能手机都已兼容 64 位。

发布app

app准备就绪后,开发人员就可以照常发布。与现有的流程一样,我们建议还是继续遵循app部署的最佳实践。Android 建议利用闭环测试轨道,先向有限数量的用户推行,以确保app质量一致。

提供更多信息和支持

根据上述信息,中国开发人员向 64 位迁移的过程应该相对较轻松,干扰因素也最少。只需花费少量成本或时间完成迁移后,中国开发人员将能享受到多种多样的巨大好处。有关更多详细信息,我们建议遵循 Android 开发最佳实践或阅读Arm 64 位白皮书。

Arm 正在与合作伙伴展开密切合作,了解哪些生态系统、技术或商业方面的问题会妨碍app向 64 位迁移。我们向中国开发人员提出的建议非常简单——立即着手,开始迁移到 64 位。现在就开始构建 64 位版本的应用,在主要开发、优化和测试平台中改用 64 位,对本机和 Java 应用程序进行仔细检查,尽快升级所有 32 位库或引擎。

责任编辑:xj

原文标题:Arm 64位迁移知识汇总

文章出处:【微信公众号:安芯教育科技】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ARM
    ARM
    +关注

    关注

    134

    文章

    9395

    浏览量

    379944
  • 代码
    +关注

    关注

    30

    文章

    4908

    浏览量

    71256
  • apk
    apk
    +关注

    关注

    0

    文章

    24

    浏览量

    5314

原文标题:Arm 64位迁移知识汇总

文章出处:【微信号:Ithingedu,微信公众号:安芯教育科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    请问各位dayu200是不是不支持烧录64的OpenHarmony

    我自己编译了OpenHarmony5.0.2的镜像,发现如果使用arm64参数编译为64版本,烧录后卡在开机动画无法开机,如果编译为32就可以正常。请问dayu200不支持
    发表于 08-16 17:39

    Texas Instruments 适用于AM64x Sitalog ?处理器的SK-AM64B入门套件数据手册

    Texas Instruments适用于AM64x Sitara?处理器的SK-AM64B入门套件是一个独立的测试和开发平台,是加速设计原型阶段的理想选择。AM64x处理器由一个双核64
    的头像 发表于 07-28 10:20 ?168次阅读
    Texas Instruments 适用于AM<b class='flag-5'>64</b>x Sitalog ?处理器的SK-AM<b class='flag-5'>64</b>B入门套件数据手册

    基于瑞萨64MPU RZ/G2L进行32应用软件开发

    本文主要介绍基于瑞萨64MPU RZ/G2L进行32应用软件开发的介绍,用于解决客户32软件移植相关问题,供客户参考。
    的头像 发表于 06-26 15:48 ?1226次阅读
    基于瑞萨<b class='flag-5'>64</b><b class='flag-5'>位</b>MPU RZ/G2L进行32<b class='flag-5'>位</b>应用软件开发

    Windows Arm64托管运行器正式支持GitHub Actions

    的面向 GitHub Copilot 的 Arm 扩展程序,更是进一步简化并加速了向 Arm 架构服务器的迁移过程。双方的共同努力正在赋能开发者,使其能够在 Arm 平台上进行更快、更
    的头像 发表于 04-28 14:23 ?630次阅读

    Arm助力开发者加速迁移Arm架构云平台 Arm迁移资源分享

    随着基于 Arm 架构的云实例日益扩展,越来越多的用户正从传统平台迁移Arm 平台上。
    的头像 发表于 04-09 18:23 ?746次阅读

    使用智能工具简化向Arm平台的迁移过程

    今年二月,Arm 推出了 GitHub Copilot 新扩展程序,助力快速迁移Arm 架构服务器。本文将带你了解开发者该如何利用 GitHub Copilot 和 Arm Run
    的头像 发表于 03-10 09:22 ?436次阅读
    使用智能工具简化向<b class='flag-5'>Arm</b>平台的<b class='flag-5'>迁移</b>过程

    有没有64的CyUSBSerial.dll和CyUSBSerial.lib,官方demo中都是32的库,无法在64程序中运行?

    有没有64的CyUSBSerial.dll和CyUSBSerial.lib,官方demo中都是32的库,无法在64程序中运行
    发表于 02-21 08:15

    为什么开发者都往Arm平台迁移

    开发者深知,构建既能高效扩展又能控制成本的应用至关重要。云技术日新月异,其背后的技术也在不断发展。近年来,越来越多的公司意识到,将其应用从 x86 架构迁移Arm 架构能够带来诸多优势。Arm
    的头像 发表于 12-17 10:19 ?587次阅读

    从TMS320C64x迁移到TMS320C64x+

    电子发烧友网站提供《从TMS320C64x迁移到TMS320C64x+.pdf》资料免费下载
    发表于 10-16 10:26 ?0次下载
    从TMS320C<b class='flag-5'>64</b>x<b class='flag-5'>迁移</b>到TMS320C<b class='flag-5'>64</b>x+

    从EDMA v2.0迁移到EDMA v3.0 TMS320C64X DSP

    电子发烧友网站提供《从EDMA v2.0迁移到EDMA v3.0 TMS320C64X DSP.pdf》资料免费下载
    发表于 10-15 10:12 ?0次下载
    从EDMA v2.0<b class='flag-5'>迁移</b>到EDMA v3.0 TMS320C<b class='flag-5'>64</b>X DSP

    从STM32到基于Arm的MSPM0的迁移指南

    电子发烧友网站提供《从STM32到基于Arm的MSPM0的迁移指南.pdf》资料免费下载
    发表于 09-07 11:31 ?0次下载
    从STM32到基于<b class='flag-5'>Arm</b>的MSPM0的<b class='flag-5'>迁移</b>指南

    迁移到基于Arm STM32的MSPMO指南

    电子发烧友网站提供《从迁移到基于Arm STM32的MSPMO指南.pdf》资料免费下载
    发表于 09-07 11:17 ?0次下载
    从<b class='flag-5'>迁移</b>到基于<b class='flag-5'>Arm</b> STM32的MSPMO指南

    将软件从8(字节)可寻址CPU迁移至C28x CPU

    电子发烧友网站提供《将软件从8(字节)可寻址CPU迁移至C28x CPU.pdf》资料免费下载
    发表于 09-06 10:42 ?0次下载
    将软件从8<b class='flag-5'>位</b>(字节)可寻址CPU<b class='flag-5'>迁移</b>至C28x CPU

    RV6464地址指令

    新指令。从 x86-32 到 x86-64 平均指令长度增长了。 又过了十年,ARM 也遇到了同样的地址问题。但是他们没有像 x86-64 那样,把旧的 ISA 扩展到支持 64
    发表于 09-04 15:15

    从Renesas RL78到基于Arm的MSPM0的迁移指南

    电子发烧友网站提供《从Renesas RL78到基于Arm的MSPM0的迁移指南.pdf》资料免费下载
    发表于 08-23 09:28 ?0次下载
    从Renesas RL78到基于<b class='flag-5'>Arm</b>的MSPM0的<b class='flag-5'>迁移</b>指南