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
+關注
關注
134文章
9107瀏覽量
367972 -
代碼
+關注
關注
30文章
4801瀏覽量
68735 -
apk
+關注
關注
0文章
23瀏覽量
4950
原文標題:Arm 64位遷移知識匯總
文章出處:【微信號:Ithingedu,微信公眾號:安芯教育科技】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論