DDMS 的全U是Dalvik Debug Monitor ServiceQ它为我们提供例如:(x)为测试设备截屏,针对特定的进E查看正在运行的U程以及(qing)堆信息、Logcat、广播状态信息、模拟电(sh)话呼叫、接收SMS、虚拟地理坐标等{?/p>
DDMS 工具存放在SDK – tools/路径下,启动DDMSҎ(gu)如下:
DDMS对Emulator和外接测试机有同{效用。如果系l检到它们(VM)同时q行Q那么DDMS会(x)默认指向 Emulator。以?U启动后的操作有些不一P分别试下?/p>
DDMS搭vIDE与测试终?Emulator 或者connected
device)的链接,它们应用各自独立的端口监听调试器的信息,DDMS可以实时监测到测试终端的q接情况。当有新的测试终端连接后QDDMS捕捉到
l端的ID,q过adb建立调试器,从而实现发送指令到试l端的目的?br />
DDMS监听W一个终端Appq程的端口ؓ(f)8600QAPPq程分?601Q如果有更多l端或者更多APPq程按照这个顺序依ơ类推。DDMS通过8700端口Q?#8221;base port”Q接收所有终端的指o(h)?/p>
在GUI的左上角可以看到标签?#8221;Devices”的面板,q里可以查看到所有与DDMSq?
接的l端的详l信息,以及(qing)每个l端正在q行的APPq程Q每个进E最双相对应的是与调试器链接的端口。因为Android是基于Linux内核开发的?
作^収ͼ同时也保留了Linux中特有的q程IDQ它介于q程名和端口号之间?br />
在面板的右上角有一排很重要的按键他们分别是Debug the selected process、Update Threads、Update Heap、Stop Process和ScreenShot?/p>
通过q个面板的一些功能可以非常容易的使测试终端模拟真实手机所具备的一些交互功能,比如Q接听电(sh)话,Ҏ(gu)选项模拟各种不同|络情况Q模拟接受SMS消息和发送虚拟地址坐标用于试GPS功能{?br />
Telephony Status: 通过选项模拟语音质量以及(qing)信号q接模式?br />
Telephony Actions: 模拟?sh)话接听和发送SMS到测试终端?br />
Location Control: 模拟地理坐标或者模拟动态的路线坐标变化q显C预讄地理标识Q可以通过以下3U方式:(x)
q几,我们在其他开发工具中也经怋用,在不此详细说明了。通过File Exporler可以查看Android模拟器中的文Ӟ可以很方便的导入/出文件?/p>
LocateQ显C出的调试信息Q详?a >Android下如何调试程序?Q?br />
ConsoleQ是Android模拟器输出的信息Q加载程序等信息Q?/p>
在Emulator Control"Telephony Actions 中输入以下内?br />
单击发送后Q在Android模拟器中打开MessagingQ看C面的短信Q?br />
单击新短信,详细查看短信内容Q?br />
中文昄Zؕ码,在未来的开发中Q我们必要注意中文字符的问题?/p>
DDMS是我们开发h员最好的调试工具Q它?yu)是每个从事Android开发的人员都不可缺的?/p>
要玩GPhone的模拟器Q当焉要先去google上面下蝲Android的SDKQ解压出来后在SDK的根目录下有一个tools文g夹,里面是模拟器和一些非常有用的工具?/p>
双击“emulator.exe”Q直接启动模拟器Q简单吧。当?dng)如果要对模拟器进行一些定Ӟq是要从命o(h)行调用,带上参数启动。下面就来介l一下启动是常用的几个参敎ͼ(x)
1.模拟器外观的定制Q?br />
480x320, landscape: emulator -skin HVGA-L
320x480, portrait : emulator -skin HVGA-P (default)
320x240, landscape: emulator -skin QVGA-L
240x320, portrait : emulator -skin QVGA-P
2.为模拟器加上SD卡:(x)
emulator -sdcard D:"sdcard.img
下面我们再来说说如何创徏"sdcard.img"文gQ?br /> “tools”目录下还有另外一个很好用的工?#8220;mksdcard.exe”Q一看名字就知道——make sdcard。对Q就用它来创Z?#8220;SD?#8221;?/p>
命o(h)为:(x)
mksdcard 1024M D:"sdcard.img
OK,q样一个容量ؓ(f)1G的SD卡就创徏完毕了?/p>
使用SDCard:
创徏: mksdcard <1024M> <sdcard.img>
(bytes(default)QKQM)
q接到模拟器: emulator -sdcard <目录/sdcard.img>
传文件到SDCard: adb push <目录/audio.mp3> </sdcard/audio.mp3>
玩过手机模拟器的Z般最感兴的当然是模拟器能做什么呢Q下面一一道来Q?/p>
GPhone的模拟器有个Ҏ(gu)的号码:(x)15555218135Q这个就cM我们实体手机的SIM卡号码啦。要实现拨号Q用手机Q当然不行!
更简单,三步Q?br />
1.q行 cmd
2.q接: telnet localhost 5554
3.命o(h):gsm call 15555218135
lookQ是不是模拟器上昄来电(sh)了?接听/挂断和实体手Z栗?/p>
发短信也一L(fng)单,重复上面1Q?两步Q第三部命o(h)改一下:(x)
sms send 15555218135 Hello,this is a Message.
来说说PC与模拟器文g传输的方法吧。这里需要用到另一个重要工P也在“tools”目录下,“adb.exe”?/p>
adb:
adb(Android Debug Bridge)是Android 提供的一个通用的调试工P借助q个工具Q我们可以管理设备或手机 模拟?的状?。还可以q行以下的操作:(x)
1、快速更新设备或手机模拟器中的代码,如应用或Androidpȝ升Q?br />
2、在讑֤上运行shell命o(h)Q?br />
3、管理设备或手机模拟器上的预定端口;
4、在讑֤或手机模拟器上复制或_脓(chung)文g
一些常用的操作Q?/p>
q入Shell: adb shell
通过上面的命令,可以进入设备或模拟器的shell环境中,在这个Linux Shell中,你可以执行各ULinux 的命令,另外如果只想执行一条shell命o(h)Q可以采用以下的方式Q?br />
adb shell [command]
如:(x)adb shell dmesg?x)打印出内核的调试信息?br />
(Android的linux shell做了大量_Q很多linux常用指o(h)都不支持)
上传文g: adb push <PC文g> </tmp/...>
下蝲文g: adb pull </tmp/...> <PC文g>
安装E序: adb install <*.apk>
卸蝲软g: adb shell rm /data/app/<*.apk>
补充一点,通过adb安装的Y?*.apk)都在"/data/app/"目录下,所以安装时不必制定路径Q卸载只需要简单的执行"rm"p?/p>
l束adb: adb kill-server
昄android模拟器状?
adb devices (端口信息)
adb get-product (讑֤型号)
adb get-serialno (序列?
{待正在q行的设? adb wait-for-device
端口转发: adb forward adb forward tcp:5555 tcp:1234
(默认端口TCP 5555转发?234端口?
查看bug报告: adb bugreport
adb shell sqlite3 讉K数据库SQLite3
adb shell logcat -b radio 记录无线通讯日志Q?/font> 一般来_(d)无线通讯的日志非常多Q在q行时没必要去记录,但我们还是可以通过命o(h)Q设|记录:(x)
应用E序配置文g:
"AndroidManifest.xml"?br />
"<category android:name="android.intent.category.LAUNCHER" />"
军_是否应用E序是否昄在Panel?/p>
-----------------------------------------------------------------------------------
am指o(h)(在shell内用am来加载android应用):
am [start|instrument]
am start [-a <ACTION>]
[-d <DATA_URI>]
[-t <MIME_TYPE>]
[-c <CATEGORY> [-c <CATEGORY>] ...]
[-e <EXTRA_KEY> <EXTRA_VALUE> [-e <EXTRA_KEY> <EXTRA_VALUE> ...]
[-n <COMPONENT>] [-D] [<URI>]
am instrument [-e <ARG_NAME> <ARG_VALUE>]
[-p <PROF_FILE>]
[-w] <COMPONENT>
启动览?
am start -a android.intent.action.VIEW -d http://www.google.cn/
拨打?sh)?
am start -a android.intent.action.CALL -d tel:10086
启动google map直接定位到北?
am start -a android.intent.action.VIEW geo:0,0?q=beijing
-----------------------------------------------------------------------------------
目录Q?/strong>
# ls
ls
sqlite_stmt_jou
cache
sdcard
etc
init
init.goldfish.r
init.rc
data
system
proc
sys
sbin
default.prop
root
dev
q里要说明下Q从andorid中得到的文g的字符串的序是按“cd+权限+拥有?数组+大小+日期+名称+链接?#8221;序排列的,其中cd“d”表示的是文g夹,"l"表示的是链接,'-'表示的是文g?/p>
例如d rwxrwx--- system cache 2009-01-09 11:46 cache
上面的目录就是通过解析ls命o(h)q回的字W串q行解析的?/p>
-----------------------------------------------------------------------------------
数据?
联络?含通话记录)数据库:(x)/data/data/com.android.providers.contacts/databases/contacts.db
媒体?貌似记录铃声讄{信?: /data/data/com.android.providers.media/internal.db
pȝ讄: /data/data/com.android.providers.settings/databases/settings.db
短信? /data/data/com.android.providers.telephony/databases/mmssms.db
Web讄: /data.data/com.android.settings/databases/webview.db
地图搜烦(ch)历史记录:/data/data/com.google.android.apps.maps/databases/search_history.db
帐号?(内含androidId信息) : /data/data/com.google.android.googleapps/databases/accounts.db
铃声: /system/media/audio
时区讄: /data/property/persist.sys.timezone
-----------------------------------------------------------------------------------
目前的安装模?br />
安装前:(x)
1. emulator -wipe-data
2. adb push busybox ./
3. adb shell ./busybox tar -cf /tmp/data.tar /data
4. adb pull /tmp/data.tar .
5. mkdir original
6. cd original
7. tar -xf ../data.tar
安装后:(x)
1. adb shell ./busybox tar -cf /tmp/data.tar /data
2. adb pull /tmp/data.tar .
3. mkdir after_install
4. cd after_install
5. tar -xf ../data.tar
目前来看Q就?data/app和data/data下多了两个相xӞ同时?data/system/packages.xml中增加了安装的程序信息。似乎菜单也是从q个文g中得到是否新安装E序Q以?qing)如何显C相关信息比如名UC么的?/p>
android模拟器和真机的不同之处:(x)
* 不支持呼叫和接听实际来电(sh)Q但可以通过控制台模拟电(sh)话呼?呼入和呼?
* 不支持USBq接
* 不支持相?视频捕捉
* 不支持音频输?捕捉)Q但支持输出(重放)
* 不支持扩展x
* 不能定q接状?br />
* 不能定甉|?sh)量水^和交充늊?br />
* 不能定SD卡的插入/弹出
* 不支持蓝?/p>
andoroid模拟器用注意:(x)
qx使用emulator试开发的|友注意应该定期清理下C:"Documents and Settings"sh"Local
Settings"Temp"AndroidEmulator文g夹,׃Android模拟器每ơ运行时?x)?f)时生成几?tmp后缀的(f)时文Ӟ没有?
个月功夫单一看竟然占用磁盘空间高?GB之多。这些文件网友可以安全的删除?
中国台湾?中国大陆
E式----------->E序
囄----------->图标
功能?-------->菜单
视窗----------->H口
作业----------->工作
内存----------->记忆?/p>
?------------>端口
资讯----------->信息
盘----------->碟
互动----------->交互
光盘----------->光碟
碟?-------->盘驱动?/p>
光碟?-------->光盘驱动?/p>
变数----------->变量
物g----------->对象
乱数----------->随机?/p>
验----------->试
滑鼠----------->鼠标
回应----------->响应
讑֮----------->讄
撰写----------->~写
列印----------->打印
|\----------->|络
档案----------->文g
位元----------->比特
档名----------->文g?/p>
影像----------->囑փ
萤屏----------->屏幕
存盘----------->存储
指标----------->指示
q----------->动画
真伪----------->真假
昄q?-------->昄?/p>
工具?-------->工具?/p>
重绘----------->h
装置----------->讄
游标----------->光标
x----------->关于
支援----------->支持
软体----------->软g
体----------->g
著作?-------->版权