1麦乞、背景
說起安卓的第三方模擬器蹂随,Genymotion是最常用的一個(gè)安卓模擬器。它運(yùn)行速度較快玉罐,功能齊全屈嗤。
我們?cè)趧偘惭bGenymotion模擬器的時(shí)候,打開一個(gè)安卓版本的模擬器吊输,將我們的apk拖進(jìn)去模擬器饶号,發(fā)現(xiàn)提示“INSTALL_FAILED_CPU_ABI_INCOMPATIBLE”,app安裝失敗季蚂。
這是因?yàn)镚enymotion的cpu是x86的架構(gòu)茫船,而我們用的apk并不支持x86架構(gòu)的。我們?nèi)ゾW(wǎng)上搜索解決方案扭屁,很多都會(huì)直接給一個(gè)轉(zhuǎn)換的zip包算谈。拖進(jìn)去到Genymotion中再重啟就可以了。
我們?cè)偕钊氲乜匆幌逻@個(gè)問題料滥。
2然眼、關(guān)于CPU ABI
ABI(Application Binary Interface): 用程序二進(jìn)制接口 描述了應(yīng)用程序和操作系統(tǒng)之間,一個(gè)應(yīng)用和它的庫之間幔欧,或者應(yīng)用的組成部分之間的低
從網(wǎng)上了解到,Genymotion本身處理器是x86丽声,因?yàn)榘鏅?quán)問題礁蔗,從 2.0 版本開始提供的虛擬設(shè)備都已經(jīng)移除了 Google Apps 以及 ARM library support(ARM架構(gòu)兼容)接口。
那app支持什么架構(gòu)是如何設(shè)置的呢雁社?
在我們app的build.gradle設(shè)置release選項(xiàng)的時(shí)候看到:
是只支持armeabi浴井、armeabi-v7a架構(gòu)的機(jī)器,沒有支持x86了霉撵。
這也就解釋了為什么Genymotion中無法直接安裝apk了磺浙。
參考文章:
關(guān)于Android的.so文件你所需要知道的
讓APK只包含指定的ABI