Android的emulator和ADB工具使用

来源:互联网 发布:冉启伟甘肃启航网络 编辑:程序博客网 时间:2024/06/08 15:56

Ubuntu系统(配置好SDK环境变量)终端:

一、关于 emulator

1、列出当前可用的SDK版本

android list target  



2、创建Android虚拟机

android create avd -n <name> -t <targetID> [-<option> <value>] ...   

android create avd –target 1 –name myavd 



3、启动一个Android模拟器

emulator -avd <avd_name>  


如果不想继续定制AVD设备,直接按回车即可。如果想定制AVD设备,输入y,然后按回车。系统会按步提示该如何设置。中括号内是默认值,如果某个设置项需要保留默认值,直接按回车即可。


4、列出所有AVD设备

android list avds



5、为模拟器加上SD卡

创建一个容量为1G的SD卡:mksdcard 1024M ~/Desktop/sdcard.img

emulator -sdcard ~/Desktop/sdcard.img -avd avdTest


6、模拟器拨号发短信

telnet localhost 5554

gsm call 15555218135

sms send 15555218135 Hello,this is a Message


7、详细列表

类型选项描述注释帮助-help以列表的形式打印模拟器的所有命令 数据-data [file]使用<file>当作用户数据的磁盘镜像如果没有-data,模拟器会在~/.android (Linux/Mac) 或C:\Documents and Settings\<user>\Local Settings\Android (Windows)中查找文件名为”userdata.img”的文件。 
如果使用了-data <file>但<file>不存在,模拟器会在那个位置创建一个文件-ramdisk <file>使用<file>作为RAM镜像默认值为<system>/ramdisk.img-sdcard <file>使用<file> 作为SD卡镜像默认值为<system>/sdcard.img-wipe-data启动前清除用户磁盘镜像中的所有数据(参考-data) 调试-console允许当前中断使用控制台Shell -debug-kernel将内核输出发送到控制台 -logcat <logtags>允许根据给定的标签为输出分类如果定义了环境变量ANDROID_LOG_TAGS并且不为空,
它的值将被作为logcat的默认值。-trace <name>允许代码剖析(按F9键开始) -verbose允许详细信息输出 -verbosekeys允许详细输出按键信息 媒体-mic <device or file>使用设备或者WAV文件作为音频输出 -noaudio禁用Android的音频支持默认禁用-radio <device>将无线调制解调器接口重定向到主机特征设备 -useaudio启用Android音频支持默认不启用网络-netdelay <delay>设置网络延迟模拟的延迟时间为<delay>.默认值是none。请参考网络延迟模拟中表”支持的<delay>值”-netfast-netspeed full -netdelay none的快捷方式 -netspeed <speed>设置网速模拟的加速值为<speed>.默认值为full。请参考网速模拟中表”支持的<speed>值”系统-image <file>使用<file>作为系统镜像默认值为<system>/system.img-kernel <file>使用<file> 作为模拟器内核 -nojni -qemu传递qemu参数 -qemu -h显示qemu帮助信息 -system <dir>在<dir>目录下查找系统、RAM和用户数据镜像 UI-flashkeys在设备皮肤上闪烁按下的键 -noskin不使用任何模拟器皮肤 -onion <image>在屏幕上使用覆盖图不支持JPEG格式图片,仅支持PNG格式图片-onion-alpha <percent>指定onion皮肤的半透明值(单位%).默认值为50-skin <skinID>用指定皮肤启动模拟器SDK提供了4个可选皮肤: 
QVGA-L (320×240, 风景) (默认)QVGA-P (240×320, 肖像)HVGA-L (480×320, 风景)HVGA-P (320×480, 肖像)-skindir <dir>在<dir>目录下查找皮肤 

二、关于adb

1、查看adb版本信息

adb version 


2、安装apk
adb install filename.apk (安装filename.apk)
adb install -r filename.apk (保留已设定资料,重新安装filename.apk)
adb -s emulator-5554 install filename.apk (指定安装APK在5554的Android模拟器中)


3、移除apk
adb uninstall package
adb uninstall -k package (移除时,保留资料)
此package名称不是安裝apk时的文件名或显示在模拟器中的应用程序名
可以先到/data/data或data/app目录下,查询想移除的package名称

adb shell

ls /data/data 或 /data/app (查询package名称)
exit
adb uninstall package (移除查询到的package)

卸载软件: adb shell rm /data/app/

补充一点,通过adb安装的软件(*.apk)都在"/data/app/"目录下,所以安装时不必制定路径,卸载只需要简单的执行"rm"就行


4、查询当前运行的模拟器实例数量:

adb devices


5、计算机与模拟器之间互相复制文件:

从计算机复制到模拟器:adb push

从模拟器复制到计算机:adb pull

前提是启动了一个模拟器。

例如,将D盘根目录下的test.txt拷贝到模拟器的sdcard:

再将这个文件复制到计算机E盘根目录下:


6、设置APK程序默认安装在Android模拟器的SD卡或者手机内存:

默认安装在手机内存:adb shell pm setInstallLocation 1

默认安装在SD卡:adb shell pm setInstallLocation 2


7、端口转发

adb forward adb forward tcp:5555 tcp:1234 将默认端口TCP 5555转发到1234端口上


8、adb start-server与adb kill-server

模拟器在运行一段时间后,adb服务有可能(在Windows进程中可找到这个服务,该服务用来为模拟器或通过USB数据线连接的真机服务)会出现异常。这时需要重新对adb服务关闭和重启。当然,重启Eclipse可能会解决问题。但那比较麻烦。如果想手工关闭adb服务,可以使用命令adb kill-server。在关闭adb服务后,使用命令adb start-server启动adb服务。


9、am指令

拨打电话:adb shell am start -a android.intent.action.CALL -d tel:10086 


三、其他

在开发Android应用时,有时会要连接本地服务器,我们可能会首先想到用loaclhost或127.0.0.1等。这是不对了。因为模拟器是一个相对独立的系统,在模拟器中运行的程序用loacalhost或127.0.0.1将会连接模拟器本身。而不是你的本地计算机。

如果想要在模拟器中连接本地计算机可使用10.0.2.2这个IP。

即:模拟器中访问10.0.2.2 相当于访问本机localhost 

0 0
原创粉丝点击