作為Android開發(fā)者,不請自來
根據GooglePlay的政策,從2019年8月開始,所有在Play上架的新應用和已有應用的更新都必須包含原生64位版本,也就是說如果你的應用不支持64位CPU架構,可能會慘遭下架。
那么我們應當如何檢測自己的應用是否支持64位CPU呢?
首先需要檢查您的應用是否使用了任何原生代碼。如果您的應用符合以下情況,便是使用了原生代碼:
- 使用了任何C/C++(原生)代碼。
- 與任何第三方原生庫關聯(lián)。
- 通過使用原生庫的第三方應用構建程序構建而成。
如果你有使用這三類,比如你的應用實現了JNI的一些參數,又或者關聯(lián)使用了一些第三方的SDK,他們很可能就存在使用JNI的問題。
要確定應用是否包含64位庫,最簡單的方法就是檢查APK文件的結構。在編譯時,APK會與應用所需的所有原生庫打包在一起。原生庫會根據ABI而存儲在不同的文件夾中。您的應用無需支持所有64位架構,但對于您支持的每種原生32位架構,則應用都必須包含相應的64位架構。
對于ARM架構,32位庫位于armeabi-v7a中。對應的64位庫位于arm64-v8a中。
對于x86架構,請查找x86(32位)和x86_64(64位)。
當然,還有很多的手段是可以自查的
使用APK分析器查找原生庫
從菜單中依次選擇Build>AnalyzeAPK…
- 選擇您要評估的APK。
查看lib文件夾,您可以在其中找到所有“.so”文件。如果在您的應用中找不到任何“.so”文件,則說明該應用已經準備好相應的庫,您無需采取進一步措施。如果您看到armeabi-v7a或x86,則說明您有32位庫。
檢查是否在arm64-v8a或x86_64文件夾中也有類似的“.so”文件。
如果您沒有任何arm64-v8a或x86_64庫,則需要更新編譯流程以開始在APK中編譯并打包相應工件。
如果您看到32位和64位的庫均已打包到軟件包中,則可以跳至在64位設備上測試應用。
在解壓縮的APK中查找原生庫
將APK解壓后,在libs下也可以查看是否有32或者64位的so
總結
所以如何為安卓應用提供64位原生的支持?首先如果你的應用沒有使用到任何32位的CPU指令集,那么你無需操作,但是如果你的應用支持32位的CPU指令集,那你必須支持64位,所以在編譯32位的時候你應該再編譯64位的支持so才行
希望我的回答對你有所幫助,謝謝。