close

Android 手機頗多, 相對使用的cpu種類也頗多

在使用某些library的時候會需要注意使用什麼so版本 (如ijkplayer library)

一般來說使用 arm5 armv7 x86這三個版本就夠, 因為64bit可以支援32bit

但是單純只匯入這些so library 會在某些裝置上不能運行

一般來說

要自己build ndk的app 都知道, toolchain cpu的事情

在android studio 專案中則會在Android.mk中設定相關cpu版本

若目標確定, 我就只支援這些版本,

已32bit cpu為例, 64的so檔不需要import至專案中,

有時候在64位元的裝置上, 就會有crash 問題產生

內容是 /xxxxx.so library not found

其限定方式也頗簡單的

在build.gradle中設定就好了, 設定內容如下:

android {
    ...
    defaultConfig {
        ...
        ndk {
              //APP的build.gradle 設定其架構
              abiFilters 'armeabi', 'armeabi-v7a', 'x86'
        }
    }
}

 

CPU and architecture 代碼如下:

CPU and architecture Setting
ARMv5TE armeabi
ARMv7 armeabi-v7a
ARMv8 AArch64 arm64-v8a
i686 x86
x86-64 x86_64

 

參考連結

https://developer.android.com/ndk/guides/android_mk.html

觀看第四點 

{   作者:恋猫月亮  
    链接:https://www.jianshu.com/p/86e4b336c17d
    來源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。}

arrow
arrow

    Owen Chen 發表在 痞客邦 留言(0) 人氣()