系统运维
一、genymontion不能安装apk的原因
Genymotion是一款基于x86架构的Android模拟器,而大部分应用是arm架构。所以两者不兼容。
对于x86的真机,X86处理器已经能够基本兼容ARM了指令。对于Genymotion模拟器,则通过安装Genymotion-ARM-翻译来进行兼容。向Genymotion模拟器安装Genymotion-ARM-Translation.zip。该包目前可以支持到android sdk API26也就是android 8.0.0系统。
genymotion使用Genymotion-ARM-Translation.zip文件是不通的,每个Android版本对应ARM指令集的版本也是不一样,即libhoudini.so是有Android版本要求的。
avd manager里android9.0的cpu架构也是x86的。
二、不能安装genymotion-arm-translation原因
由于在Win10或者某些情况下不具备管理员权限,所以出现了不能拖拽的情况,或是拖拽变为copy的情况、拖拽变为copy但无效的情况。
三、不能安装genymotion-arm-translation解决方法:
1、进入android sdk安装目录platform-tools文件夹里,地址栏输入cmd,打开命令行窗口
2、将文件导入模拟器的/sdcard/Download/目录下,输入并执行adb push E:\\Genymotion-ARM-Translation_v1.1.zip /sdcard/Download/,注意路径区分大小写
3、提示“1 file pushed”,表示导入成功
4、输入并执行adb shell flash-archive.sh /sdcard/Download/Genymotion-ARM-Translation_v1.1.zip
5、最终出现“Done successfully !”,表示安装成功
6、重启模拟器
四、确定自己刷的libhoudini.so文件是否正确
1、通过adb install安装arm apk时,比如安装wechat,如果terminal有下面的报错:
WARNING: linker: libhoudini.so has text relocations. This is wasting memory and prevents security hardening. Please fix.
这说明libhoudini.so文件的版本不对
2、安装完APK后,APK无法运行。
3、刷完上面Genymotion-ARM-Translation.zip后,还需要自己刷Gapps(https://opengapps.org/)。