配置adb
1. 下载android studio
2. 增加系统变量https://blog.csdn.net/lxzmmd/article/details/50455671
配置x86安卓虚拟机
1. https://www.cnblogs.com/wynn0123/p/6288344.html
2. 通过ip地址连接虚拟机(为了保证虚拟机能上网,并且可以被实体机连接)https://blog.csdn.net/listener_ri/article/details/45922539
Monkey的使用
https://www.cnblogs.com/zhaoyanjun/p/6861278.html
strace的使用
https://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316692.html
strace在android中的使用:
linux上,strace一般有两种用法:
1. strace <elf_file> 启动程序的同时,用strace跟踪;
2. strace -p pid 对于已经启动的程序,通过-p参数可以attach上去跟踪之后的执行流程;
android上使用strace有一点特殊,android上所有android application都是通过zygote fork出来的,所有android application进程的父亲都是zygote。strace不能用来跟踪androidapplication,而是跟踪zygote和它的儿子。做法是先得到zygote的pid,再执行strace -f -p <pid_of_zygote>,然后启动要跟踪调试的程序;其中-f 代表跟踪子进程;而且是之后生成的子进程,之前已经运行起来的android application不会被跟踪到;
测试过程:
1. 打开虚拟机
2. 打开一个终端A连接虚拟机
adb connect 127.0.0.1//连接
adb devices//查看连接的安卓虚拟机
3. 终端A进入安卓apk的文件夹
4. 打开另一个终端B进入虚拟机的命令行界面
adb shell
su 获得超级用户权限
5. 通过终端A安装一个应用
例如:adb install u-an.osintsev.usaeurocoins.apk
6. 找到这个应用 并打开
7. 通过终端B查看这个应用的包名和父进程是64位还是32位的zygote 以及zygote pid。
输入ps
它的包名是an.osintsev.usaeurocoins 父亲进程是1033
然后一定要关闭这个程序。
8. 终端B输入strace –c –f –e trace=all –p 1033。跟踪父进程。
9. 终端A启动monkey。adb shell monkey –p an.osintsev.usaeurocoins2000 //2000是模拟次数等待模拟结束,关闭程序。
10. 在终端B上按下control+c,得出结果