命令行控制android emulator

    在做windows下的病毒sandbox系统的经验告诉我,做android的沙箱系统,android emulator如果也能像vmware一样可以使用快照功能的话,则使用脚本控制会更加方便。在google里面搜索了一把,并结合emulator帮助文件,发现android的emulator确实是可以达到快照snapshot的。
 

1.创建一个新的虚拟机

可以直接在控制台进入tools文件夹,输入android命令,启动Android SDK Manager,在tools菜单下选择Manage AVDs…,打开Android Virtual Device Manager,创建一个新的虚拟机,比如名称为2.23,一定要勾选Snapshot,如下图:

 

 

2.启动虚拟机:

emulator -avd AndroidTest(创建的虚拟机名称) -cpu-delay 0 -netfast -no-snapshot-save

如果是要指定使用的image,在此处启动时需要指明,如:

emulator -avd AndroidTest -system images/system.img -ramdisk images/ramdisk.img -kernel images/zImage -prop dalvik.vm.execution-mode=int:portable -cpu-delay 0 -netfast -no-snapshot-save

3.建立虚拟机快照:在系统达到预期的状态时候,建立快照:

当虚拟机启动完毕以后可以使用telnet命令(win7系统默认是关闭的,需要在默认关闭的程序里面打开)连接虚拟机,命令行输入:
telnet localhost 5554(实际的虚拟机端口)
当telent连接上后,控制台上会显示OK,输入:
avd snapshot save 2-22sanpshot(快照名称)

等到屏幕输出OK,则表示快照已经建立了,输入kill关闭。

4:启动快照

emulator -avd AndroidTest(要启动的虚拟机名称) -cpu-delay 0 -netfast -no-snapshot-save -snapshot AndroidSnapshot(快照名称)
如果指定image则为(必须在第二步也要指定image):
emulator -avd AndroidTest -system images/system.img -ramdisk images/ramdisk.img -kernel images/zImage -prop dalvik.vm.execution-mode=int:portable -cpu-delay 0 -netfast -no-snapshot-save -snapshot AndroidSnapshot(快照名称)
中间-cpu-delay 0 -netfast 选项非必须

 5:如此这般便可以使用脚本来控制虚拟机的创建,恢复快照、安装程序,甚至运行,比如am命令启动activity等,这样可以使得android模拟器在脚本的控制下按照我们的想法安装运行样本。比如:

可以利用am命令启动Activity,Services,发送广播,启动 Instrumentation,启动和停止 profiling。
具体用法:
启动一个指定Activity:
方法为:am start   -n <COMPONENT>
 
COMPONENT为:package名/Activity名。
 
例: Android有个OpenGLES例子程序.GL2JNI.
 
其main.xml中显示:其package="com.android.gl2jni"
activity android:name="GL2JNIActivity"
 
则Package名为:com.android.gl2jni
Activity名为:com.android.gl2jni.GL2JNIActivity. 或者可以写为.GL2JNIActivity.
 
am start -n  com.android.gl2jni/com.android.gl2jni.GL2JNIActivity
或者:
  am start -n  com.android.gl2jni/.GL2JNIActivity

利用Action启动:
例如启动一个网页:http://www.sina.com.cn:
am start -a android.intent.action.VIEW -d  http://www.sina.com.cn
Action非常多,有些使用起来会有问题。之后再研究之。
 
启动一个services:
am start service package/services
还未具体尝试,之后准备专门写个services来尝试。
 
发送一个广播:
am broadcast 


 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值