1.启动和关闭ADB服 务(adb start-server和adb kill-server)
经作者测试,模拟器在运行一段时间后,adb服务有可能(在Windows进程中可找到这个服务,该服务用来为模拟器或通过USB数据线 连接的真机服务)会出现异常。这时需要重新对adb服务关闭和重启。当 然,重启Eclipse可能会解决问题。但那比较麻烦。如果想手工关闭adb服务,可以使用下面的命令。
adb kill-server
在关闭adb服务后,要使用如下的命令启动adb服务。
adb start-server
2.查询当前模拟器/设 备的实例(adb devices)
有时需要启动多个模拟器实例,或启动模拟器的同时通过USB数据线连接了真机。在这种情况下就需要使用如下的命令查询当前有多少模拟器或真机在线。
adb devices
执行上面的命令后,会输出如图1 所示的信息。
图1
其中第1列 的信息(emulator-5554、HT9BYL904399)表示模拟器或真机的标识。emulator-5554表示模拟器,其中5554表示adb服务为该模拟器实例服务的端口号。每启动一个新的模 拟器实例,该端口号都不同。HT9BYL904399表示通过USB数据线连接的真机。如果在运行Android程序时有多个模拟器或真机在线,那么会出现一个选择对话框。如果选择在真机运行,ADT会直接将程序安装在手机上。输出信息的第2列都是device, 表示当前设备都在线。如果该列的值是offline,表示该实例没有被连 接到adb上,或实例没有响应。
3.安装、卸载和运行程序(adb install、adb uninstall和am)
在Eclipse中运行Android程 序必须得有Android源码工程。那如果只有apk文件(Android应用程序的发行包,相当于Windows中的exe文件)该如何安装和运行呢?答案就是adb命令。假设我们要安装一个ebook.apk文件,可以使用如下的命令。
adb install ebook.apk
假设ebook.apk中的package是net.blogjava.mobile.ebook,可以使用如下的命令卸载这个应用程序。
adb uninstallnet.blogjava.mobile.ebook
关于package的概念在以后的学习中会逐渐体会 到。现在只要知道package是Android应用程序的唯一标识即可。如果在安装程序之前,该程序已经在模拟器或真机上存在了,需要先使用上面的命令卸载这个应用程序,然后再安装。或使用下面的命令重新安装。
adb install -r ebook.apk
在卸载应用程序时可以加上-k命令行参数保留数据和缓冲目录,只卸载应用程序。命令如下所示。
adb uninstall -knet.blogjava.mobile.ebook
如果机器上有多个模拟器或真机实例,需要使用-s命令行参数指定具体的模拟器或真机。例如,下面的命令分别在模拟器和真机上安装、重新安装和卸载应用 程序。
在emulator-5554模拟器上安装ebook.apk
adb -s emulator-5554install ebook.apk
在 真机上安装ebook.apk
adb -s HT9BYL904399install ebook.apk
在emulator-5554模拟器上重新安装ebook.apk
adb -s emulator-5554install -r ebook.apk
在 真机上重新安装ebook.apk
adb -s HT9BYL904399install -r ebook.apk
在emulator-5554模拟器上卸载ebook.apk(不保留数据和缓冲目录)
adb -s emulator-5554uninstall net.blogjava.mobile.ebook
在 真机上 卸载ebook.apk(保留数据和 缓冲目录)
adb -s HT9BYL904399uninstall -k net.blogjava.mobile.ebook
如 果在模拟器和真机上成功安装ebook.apk,将会分别输出如图2和图3所示的信 息。
图2
图 3
如果想在模拟器或真机上运行已安装的应用程序,除了直接在模拟器或真机上操作外,还可以使用如下的命令直接运行程序。
在emulator-5554模拟器上运行ebook.apk
adb -s emulator-5554shell am start -n net.blogjava.mobile.ebook/net.blogjava.mobile.ebook.Main
在 真机上 运行ebook.apk
adb -s HT9BYL904399 shellam start -n net.blogjava.mobile.ebook/net.blogjava.mobile.ebook.Main
其中Main是ebook.apk的 主Activity。相当于Windows应用程序的主窗体或Web应用程序的主页面。am是shell命令。关于shell命令将在后成的部分详细介绍。
4.PC与模拟器或真机交换文件(adb pull和adb push)
在开发阶段或其他原因,经常需要将PC上的文件复制到模拟器或真机上,或将模 拟机和真机上的文件复制到PC上。使用adb pull和adb push命令可以很容易完成这个工作。例如,下面的命令将真机的SD卡根目录下的camera.jpg文件复制到PC的当前目录,取名为picture.jpg。又把picture.jpg文件复制到真机的SD卡根目录,取名为abc.jpg。
从真机上复制文件到PC
adb -s HT9BYL904399 pull/sdcard/camera.jpg picture.jpg
从PC复制到文件到真机
adb -s HT9BYL904399 push picture.jpg/sdcard/abc.jpg
如果读者安装了ADT,可以通过DDMS透视图的【FileExplorer】视图右上方的 几个按钮方便地从模拟器或真机上导入、导出和删除文件。
5.Shell命 令
由于Android是基于Linux内核的操作系统。因此,在Android上可以执行Shell命令。虽然在手机上提供了可以输 入命令的Shell程 序,但在手机上输入程序实在是不方便。为了更方便地在模拟器或手机上执行Shell命令。可以使用如下的命令在PC上进入Shell控制台。
adb -s HT9BYL904399 shell
Shell控制台的提示符是一个井号(#)。进入Shell后,输入cd system/bin命令,再输入ls命令,可以看到当前Android系统支持的命令文件,如图4所示。读者可以根据实际情况使用相应的命令。
图4
6.创建、删除和浏览AVD设备(android)
在这里将介绍直接使用android命令来建立和删除AVD设备。建立AVD设备的命令如下:
androidcreate avd -n myandroid1.5 -t 2
其中myandroid1.5表示AVD设备的名称,该名称可以任意设置,但 不能和其他AVD设 备冲突。-t 2中的2指建立Android 1.5的AVD设备。1表示Android 1.1的AVD设备。以此类推。目前最新的Android 2.1应使用-t 6来建立AVD设备。在执行完上面的命令后,会输出如 下的信息来询问是否继续定制AVD设备。
Android 1.5 is a basic Androidplatform.
Do you wish to create a customhardware profile [no]
如果读者不想继续定制AVD设备,直接按回车即可。如果想定制AVD设备,输入y,然后按回车。系统会按步提示该如何设 置。中括号内是默认值,如果某个设置项需要保留默认值,直接按回车即可。如果读者使用的是Windows XP,默认情况下AVD设备文件放在如下的目录。
C:\Documents and Settings\Administrator\.android\avd
如果想改变AVD设备文件的默认存储路径,可以使用-p命令行参数,命令如下:
android create avd -n myandroid1.5 -t2 -p d:\my\avd
删除AVD设备可以使用如下的命令。
android delete avd -n myandroid1.5
通过下面的命令可以列出所有的AVD设备。
android list avds
启动avd
emulator –avd <avdname> sdf
查看目标设备Id
android.bat list targets
错误处理方法
首先创建一个avd,使用命令行方式创建,例如:
D:\android\android-sdk-windows-1.5_r3\tools>android create avd -navd15 -t 2
Android1.5 is a basic Android platform.
Doyou wish to create a custom hardware profile [no]
CreatedAVD 'avd15' based on Android 1.5
用android list avd命令列出当前的avd:
D:\android\android-sdk-windows-1.5_r3\tools>androidlist avd
AvailableAndroid Virtual Devices:
Name: avd15
Path: D:\我的文档\.android\avd\avd15.avd
Target: Android 1.5 (API level 3)
Skin: HVGA
注意上面的avd的目录,把上面目录中的\.android的文件夹拷贝到C:\Documents and Settings\Administrator,因为我用的是administrator登陆的,所以拷贝到这个目录下,实际应该拷贝到相应的C:\Documentsand Settings\用户名 下,注意用户名要是英文名。
这时候如果用emluator -avd avd15,会得到如下的错误:
emulator:ERROR: no search paths found in this AVD's configuration.
Weird,the AVD's config.ini file is malformed. Try re-creating it.
这个错误的原因是C:\Documents and Settings\Administrator\.android\avd目录中的ini文件中包含了中文字符-我的文档,所以要修改这个ini文件-Avd15.ini,修改path为path=C:\Documents and Settings\Administrator\.android\avd\avd15.avd。
这时候,就可以启动emulator了:
D:\android\android-sdk-windows-1.5_r3\tools>emulator-avd avd15
emulator:emulator window was out of view and was recentred
可以看到google的android模拟器了。
运行eclipse中的工程,选择andorid project.会弹出android AVD Error对话框,选择Yes,
然后出现android virtual device manager:
直接点击finish,然后出现 android device chooser对话框:
当前运行的emulator会显示出来,选中它,然后OK.
此时,在emulator中可以显示工程的应用程序。
总结一下:
先启动emulator,然后再运行eclipse中的工程。
7. 如何在模拟器中打开中文输入法
Menu->Settings->Local &text->android keyboard
将android keyboard后面的勾去掉就可以了!!
8.adb怎么修改DATA文件夹的权限
首先用ls -l /data看看 data目录是否有读写权限,如果没有就用一下命令改一下: chmod 777 /data 如果提示没有chmod命令,那么安装一个busybox到你的设备上,然后再用: busybox chmod 777 /data 然后,因为data是作为一个分区挂载到文件系统的,所以要看看挂载到文件系统的权限,输入以下命令查看: mount 你可以找到data的挂载信息,里面如果出现一个ro的话表示已只读方式挂载,此时还不能写入文件需要重新挂载 输入以下命令重新挂载(这个命令你会运行失败): mount -o rw,remount -t yaffs2 /dev/block/mtdblock2 /system 这个地方需要你再提供一下信息,把mount后的输出贴给我,我再给你回复