android 模拟器测试之旅

近期,app 需要在模拟器上跑,主要验证在低内存(1g~2g)的环境中看下app会不会出现崩溃或者异常。

Android studio的模拟器

最开始就选择了google亲儿子验证。毕竟下载速度快,写测试demo的时候也运行过。一番操作下来,首先发现了第一个问题:

1. 模拟器占用空间大,C盘不够用了

百度下,配置了环境变量android_sdk_home,然后去C:\Users\xxx\.android\avd 目录把对应的模拟器删了很轻松就搞定了。
在这里插入图片描述创建新的avd,选择android版本,选择system image,创建好了之后。第二步就是安装apk了。因为apk里面有很多资源文件,包括外部配置,地图等。直接运行是没法安装的,因此都是把资源文件打包到apk里面再进行安装。打好包,打开cmd,跳转到adb 命令所在的目录(我的是D:\software\android\platform-tools下),把apk拷贝过来,运行命令adb install 命令。
在这里插入图片描述
到这里出现了第二个问题:

2. install_failed_no_matching_abis 错误

继续百度:
https://stackoverflow.com/questions/24572052/install-failed-no-matching-abis-when-install-apk
上面讲的比较清楚了程序用的native library跟你模拟器的cpu 架构不匹配。网上搜了下解决办法,在app的build.gradle中加上这样一句话即可:

 // 解决 native libraries 不支持cpu的体系结构。允许模拟器调试
 	android {
    	splits {
        	abi {
            	enable true
            	reset()
            	include 'x86', 'armeabi-v7a','x86_64'
            	universalApk true
        	}
    	}
    }

OK,按部就班操作。重新打release包,报错。但是release下就生成了对应的apk。查看了下app的build.gradle的配置,注释掉了相对的打包配置

在这里插入图片描述

重新打包,成功。在release下,每个架构都生成了一个apk.在这里插入图片描述
查找了下模拟器的架构,发现是x86的,
在这里插入图片描述
把app-x86-release.apk 放到了对应的目录下,重新运行 adb install 命令。安装成功!
在这里插入图片描述
原以为万事大吉,后面只需要找找修改模拟器内存的方式改下。然后运行下就ok了。可惜在运行的时候发现又报错了, 第三个问题:

so库与jar包不匹配

在这里插入图片描述
难道刚刚解决的不是这个问题吗?回想起之前弄so文件的时候也经常出现这个错误。看了下代码结构
在这里插入图片描述
难道说要找armeab-v7a架构的模拟器才行?简单查了下 还真在模拟器的选项上发现了。
在这里插入图片描述
好吧,那就重新建立个模拟器吧,反正也不费什么事儿,一通操作… , 下载成功,启动模拟器!第4个问题:

google arm架构的模拟器简直没法用

启动模拟器过程中弹出了个这个
在这里插入图片描述

没事,小问题,不管它,等了几分钟模拟器黑屏没动静,又等了十几分钟一直卡在android图标界面。半个多小时之后模拟器终于启动了,怀着激动的心情点击了几下模拟器,发现模拟器卡住不动了。重启之后一通操作的我终于意识到了上面那个10倍速度的慢是有多慢。
一边挂着google的模拟器,一遍寻求其它的解决办法。

转战genymotion

听大家说genymotion模拟器好用,而且安装可以不用adb命令,直接拖拽。那好吧,去官网瞅瞅
在这里插入图片描述
下一个带VitualBox的。安装,exe先装genymotion模拟器,再装virtualBox。 一切顺利,启动;哦,要账号,记得之前好像不需要账号的啊?算了 注册一个;啥,要收费?那免费试用30天的吧!register之后,发现邮箱里面并没有收到激活邮件,等了几分钟,发现了这个。
在这里插入图片描述
这也太不靠谱了吧?我要这儿折腾一个小时(实际也没要1h,大概十几分钟之后收到了邮件)?而且听说这个模拟器还需要去下载一个兼容包(Genymotion-ARM-Translation.zip)才能跑arm架构的apk。此路不通?换?

转战雷电模拟器

寻寻觅觅,找到个雷电模拟器(听说支持arm架构),网上一搜发现有很多夹带私货的推广。发下官网地址:
https://www.ldmnq.com/
进去下载试了下,发现出乎意料的好用。程序很快就安装跑起来了,没出幺蛾子,修改内存简单,在设置里面修改, 重启就好。至此模拟器的选择就搞定了。

吐槽一下不好的地方:

  1. 雷电模拟器根据自己的版本支持android版本,比如我用的雷电模拟器大版本是4.x,那么对应支持的android模拟器的版本是7.1,无法新建其它版本的模拟器。这也是跟google模拟器以及genymotion的区别,比较人家搞这个主要是玩手游,多开方便的。
  2. 另外不知道是我电脑分辨率的原因还是什么其它原因?我的电脑显示没有退出按钮
    在这里插入图片描述
    好了 ,自此完结。
SimIt-ARM-3.0 给予命令行ARM指令模拟器,短小精悍,是研究ARM处理器的好工具,该模拟器既可以运行用户级别的ELF程序,又可以模拟运行Linux操作系统;提供了简单易用的调试命令,可以逐条跟踪指令的执行。 SimIt-ARM-3.0-gk-20150902.tar.bz2 HowTo 0.what is SimIt-ARM-3.0 SimIt-ARM 3.0 is an instruction-set simulator that runs both system-level and user-level ARM programs, for more about it please read user's guide file. 1.how to build tar jxvf SimIt-ARM-3.0-gk-20150902.tar.bz2 cd SimIt-ARM-3.0-gk ./configure make make install After these steps, the ./build/bindirectory contains the following programs: ema An ARM interpreter. To test the installation was successful type ./build/bin/ema test/wc configure modifiy PATH environment variable: PATH=$PATH:$HOME/SimIt-ARM-3.0-gk/build/bin ; export PATH 2. how to use 2.1 run user-level ARM programs [root@ORA9 SimIt-ARM-3.0-gk]# cd gcc-asm [root@ORA9 gcc-asm]# more hello.c /* * hello.c * Tue Sep 8 10:13:40 CST 2015 */ int main() { printf("hello world\n"); __asm("mov r0,#2\n\t" "swi 0x1\n\t"); // syscall: exit(2); } [root@ORA9 gcc-asm]# arm-linux-gcc -v Reading specs from /usr/local/arm/3.4.1/bin/../lib/gcc/arm-linux/3.4.1/specs Configured with: /opt/crosstool/crosstool-0.28/build/arm-linux/gcc-3.4.1-glibc-2.3.2/gcc-3.4.1/configure --target=arm-linux --host=i686-host_pc-linux-gnu --prefix=/opt/crosstool/arm-linux/gcc-3.4.1-glibc-2.3.2 --with-float=soft --with-headers=/opt/crosstool/arm-linux/gcc-3.4.1-glibc-2.3.2/arm-linux/include --with-local-prefix=/opt/crosstool/arm-linux/gcc-3.4.1-glibc-2.3.2/arm-linux --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable-languages=c,c++ --enable-shared --enable-c99 --enable-long-long Thread model: posix gcc version 3.4.1 [root@ORA9 gcc-asm]# arm-linux-gcc hello.c -o hello -static [root@ORA9 gcc-asm]# ls -l hello* -rwxr-xr-x 1 root root 520775 Sep 8 10:18 hello -rw-r--r-- 1 root root 160 Sep 8 10:15 hello.c [root@ORA9 gcc-asm]# file hello hello: ELF 32-bit LSB executable, ARM, vers
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值