手机从出现至今,已经逐渐的成为了人们的必备工具之一。许多厂家都在不断的改变手机的功能,提升其在生活工作中所占据的重要地位。Google公司推出了一款手机操作系统Android,可以提升手机性能,方便灵活的应用于人们的生活与工作中。在这里我们就先来了解一下这一系统中Android模拟器的相关概念。
要玩GPhone的Android模拟器,当然需要先去google上面下载Android的SDK,解压出来后在SDK的根目录下有一个tools文件夹,里面就是模拟器和一些非常有用的工具。
双击“emulator.exe”,直接启动模拟器,简单吧。当然,如果要对模拟器进行一些定制,还是要从命令行调用,带上参数启动。下面就来介绍一下启动是常用的几个参数:
emulator -sdcard D:\sdcard.img
下面我们再来说说如何创建"sdcard.img"文件:
“tools”目录下还有另外一个很好用的工具“mksdcard.exe”,一看名字就知道——make sdcard。对,就用它来创建一个“SD卡”。
命令为:
mksdcard 1024M D:\sdcard.img
OK,这样一个容量为1G的SD卡就创建完毕了。
创建:
mksdcard < 1024M> < sdcard.img> (bytes(default),K,M)
连接到Android模拟器:
emulator -sdcard < 目录/sdcard.img>
传文件到SDCard:
adb push < 目录/audio.mp3> < /sdcard/audio.mp3>
玩过手机模拟器的人一般最感兴趣的当然是模拟器能做什么呢?下面一一道来:
GPhone的模拟器有个特有的号码:15555218135,这个就类似我们实体手机的SIM卡号码啦。要实现拨号,用手机?当然不行!
更简单,三步:
look!是不是Android模拟器上显示来电了?接听/挂断和实体手机一样。
发短信也一样简单,重复上面1,2两步,第三部命令改一下:
sms send 15555218135 Hello,this is a Message.
来说说PC与模拟器文件传输的方法吧。这里需要用到另一个重要工具,也在“tools”目录下,“adb.exe”。
adb: adb(Android Debug Bridge)是Android 提供的一个通用的调试工具,借助这个工具,我们可以管理设备或手机 模拟器 的状态 。还可以进行以下的操作:
进入Shell:
adb shell
通过上面的命令,就可以进入设备或模拟器的shell环境中,在这个Linux Shell中,你可以执行各种Linux 的命令,另外如果只想执行一条shell命令,可以采用以下的方式:
adb shell [command]
如:
adb shell dmesg
会打印出内核的调试信息。
(Android的linux shell做了大量精简,很多linux常用指令都不支持)
补充一点,通过adb安装的软件(*.apk)都在"/data/app/"目录下,所以安装时不必制定路径,卸载只需要简单的执行"rm"就行。
结束adb:
adb kill-server
显示Android模拟器状态:
等待正在运行的设备:
adb wait-for-device
端口转发:
adb forward
将默认端口TCP 5555转发到1234端口上
adb forward tcp:5555 tcp:1234
查看bug报告:
adb bugreport
访问数据库SQLite3
adb shell sqlite3
记录无线通讯日志:
adb shell logcat -b radio
一般来说,无线通讯的日志非常多,在运行时没必要去记录,但我们还是可以通过命令,设置记录:
应用程序配置文件:
"AndroidManifest.xml"中
"< category android:name="android.intent.category.LAUNCHER" />"
决定是否应用程序是否显示在Panel上
am指令(在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/
拨打电话:
am start -a android.intent.action.CALL -d tel:10086
启动google map直接定位到北京:
am start -a android.intent.action.VIEW geo:0,0?q=beijing
目录:
这里要说明下,从andorid中得到的文件流的字符串的顺序是按“类型+权限+拥有者+数组+大小+日期+名称+链接到”顺序排列的,其中类型“d”表示的是文件夹,"l"表示的是链接,'-'表示的是文件。
例如d rwxrwx--- system cache 2009-01-09 11:46 cache
上面的目录就是通过解析ls命令返回的字符串进行解析的。
安装前:
emulator -wipe-data adb push busybox ./ adb shell ./busybox tar -cf /tmp/data.tar /data adb pull /tmp/data.tar . mkdir original cd original tar -xf ../data.tar
安装后:
adb shell ./busybox tar -cf /tmp/data.tar /data adb pull /tmp/data.tar . mkdir after_install cd after_install tar -xf ../data.tar
目前来看,就是/data/app和data/data下多了两个相关文件,同时在/data/system/packages.xml中增加了安装的程序信息。似乎菜单也是从这个文件中得到是否新安装程序,以及如何显示相关信息比如名称什么的。
平时使用emulator测试开发的网友注意应该定期清理下C:\Documents and Settings\User\Local Settings\Temp\AndroidEmulator文件夹,由于Android模拟器每次运行时会临时生成几个.tmp后缀的临时文件,没有几个月功夫简单一看竟然占用磁盘空间高达5GB之多。这些文件网友可以安全的删除。