首頁  >  問答  >  主體

android - 微信的安裝包在只編譯了armeabi,沒有armeabi-v7a,arm64-v8a,x86是如何運行在各種處理器的手機上的?

我寫的程式裡面編譯了armeabi,armeabi-v7a,arm64-v8a,x86四種so文件,我想透過刪除so檔的方式來減小APK體積,但是刪掉後部分機型的部分功能會報錯,然後發現微信只編譯了armeabi一種so文件,沒有armeabi-v7a,arm64-v8a,x86是如何運行在各種處理器的手機上的?

为情所困为情所困2734 天前1370

全部回覆(4)我來回復

  • PHP中文网

    PHP中文网2017-05-16 13:32:30

    因為armeabi支持在 armeabi,armeabi-v7a,arm64-v8a下運行,也支持部分x86。而市面上基本上沒有mips架構的手機,所以理論上一個armeabi 就支援所有的手機了。 armeabi運行在v7 v8 下只是效率會有偏差。

    可以看這個關於Android so檔案你所需要了解的

    回覆
    0
  • 某草草

    某草草2017-05-16 13:32:30

    所有的x86/x86_64/armeabi-v7a/arm64-v8a設備都支援armeabi架構的.so文件,因此似乎移除其他ABIs的.so文件是一個減少APK大小的好技巧。但事實上並不是:這不只影響到函數庫的效能和相容性。

    x86設備能夠很好的運作ARM類型函數庫,但並不保證100%不發生crash,特別是對舊設備。 64位元設備(arm64-v8a, x86_64, mips64)能夠運行32位元的函數庫,但是以32位元模式運行,在64位元平台上運行32位元版本的ART和Android元件,將遺失專為64位元優化過的性能(ART,webview,media等等)。

    回覆
    0
  • 仅有的幸福

    仅有的幸福2017-05-16 13:32:30

    有可能是動態載入的。

    回覆
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-16 13:32:30

    首先,armeabi能夠相容於其他架構armeabi-v7a,arm64-v8a,x86。其次,你只是看到了微信armeabi目錄而已,這個目錄下還可以放置其他架構的SO文件,再透過程式碼實作選擇載入哪一個架構的SO檔。

    回覆
    0
  • 取消回覆