Android 模拟器

要玩 GPhone 的模拟器,当然需要先去 google 上面下载 Android SDK ,解压出来后在 SDK 的根目录下有一个 tools 文件夹,里面就是模拟器和一些非常有用的工具。

双击 “emulator.exe” ,直接启动模拟器,简单吧。当然,如果要对模拟器进行一些定制,还是要从命令行调用,带上参数启动。下面就来介绍一下启动是常用的几个参数:

1. 模拟器外观的定制:

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 卡:

emulator -avd allen2 -sdcard sdcard.img

--------------------------------------------------------------------------------------

创建avd:

Android 1.5 中引入了 AVD(Android Virtual Device) AVD 是一个经过配置的模拟器。在创建 AVD 时可以配置的选项有:模拟器影像大小 / 触摸屏 / 轨迹球 / 摄像头 / 屏幕分辨率 / 键盘 /GSM /GPS/Audio 录放 /SD 卡支持 / 缓存区大小等.

 

任何一个 android 应用都必须运行在一个 AVD 。如果没有制定或自动找到合适的 AVD ,报如下类似错误:

Failed to find an AVD compatible with target 'Android 1.1'. Launch aborted.

android create avd -n foo2 -t 2 //创建一个名为allen2的avd,注意 -t 2 对应platforms里面的版本,这里是一个1.6版本的。
 

下面我们再来说说如何创建 "sdcard.img" 文件:

“tools” 目录下还有另外一个很好用的工具 “mksdcard.exe” ,一看名字就知道 ——make sdcard 。对,就用它来创建一个 “SD

命令为:

mksdcard.exe -l sdcard 2048M sdcard.img

OK, 这样一个容量为 1G SD 卡就创建完毕了。

---------------------------------------------------------

使用 SDCard:

创建 : mksdcard.exe -l sdcard 2048M sdcard.img

连接到模拟器 : emulator -avd allen2 -sdcard sdcard.img

传文件到 SDCard: adb push < 目录 /audio.mp3> </sdcard/audio.mp3>

 

玩过手机模拟器的人一般最感兴趣的当然是模拟器能做什么呢?下面一一道来:

GPhone 的模拟器有个特有的号码: 15555218135 ,这个就类似我们实体手机的 SIM 卡号码啦。要实现拨号,用手机?当然不行!

更简单,三步:

1. 运行 cmd

2. 连接 : telnet localhost 5554

3. 命令 :gsm call 15555218135

look !是不是模拟器上显示来电了?接听 / 挂断和实体手机一样。

发短信也一样简单,重复上面 1 2 两步,第三部命令改一下:

sms send 15555218135 Hello,this is a Message.

 

来说说 PC 与模拟器文件传输的方法吧。这里需要用到另一个重要工具,也在 “tools” 目录下, “adb.exe”

 

adb:

adb(Android Debug Bridge) Android 提供的一个通用的调试工具,借助这个工具,我们可以管理设备或手机 模拟器 的状态 。还可以进行以下的操作:

1 、快速更新设备或手机模拟器中的代码,如应用或 Android 系统升级;

2 、在设备上运行 shell 命令;

3 、管理设备或手机模拟器上的预定端口;

4 、在设备或手机模拟器上复制或粘贴文件

 

一些常用的操作:

进入 Shell: adb shell

通过上面的命令,就可以进入设备或模拟器的 shell 环境中,在这个 Linux Shell 中,你可以执行各种 Linux 的命令,另外如果只想执行一条 shell 命令,可以采用以下的方式:

adb shell [command]

如: adb shell dmesg 会打印出内核的调试信息。

(Android linux shell 做了大量精简,很多 linux 常用指令都不支持 )

上传文件 : adb push <PC 文件 > </tmp/...>

下载文件 : adb pull </tmp/...> <PC 文件 >

安装程序 : adb install <*.apk>

卸载软件 : adb shell rm /data/app/<*.apk>

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

结束 adb: adb kill-server

显示 android 模拟器状态 :

adb devices ( 端口信息 )

adb get-product ( 设备型号 )

adb get-serialno ( 序列号 )

等待正在运行的设备 : adb wait-for-device

端口转发 : adb forward adb forward tcp:5555 tcp:1234

( 将默认端口 TCP 5555 转发到 1234 端口上 )

查看 bug 报告 : adb bugreport

adb shell sqlite3 访问数据库 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>

启动浏览器 :

adb shell am start -a android.intent.action.VIEW -d http://www.google.cn/

拨打电话 :

adb shell am start -a android.intent.action.CALL -d tel:10086

启动 google map 直接定位到北京 :

am start -a android.intent.action.VIEW geo:0,0?q=beijing

-----------------------------------------------------------------------------------

目录:

# ls

Ls

sqlite_stmt_jou

cache

sdcard
etc

init

init.goldfish.r

init.rc

data

system

proc

sys

sbin

default.prop

root

dev

这里要说明下,从 andorid 中得到的文件流的字符串的顺序是按 类型 + 权限 + 拥有者 + 数组 + 大小 + 日期 + 名称 + 链接到 顺序排列的,其中类型 “d” 表示的是文件夹, "l" 表示的是链接 ,'-' 表示的是文件。

例如 d rwxrwx--- system    cache                2009-01-09 11:46              cache

上面的目录就是通过解析 ls 命令返回的字符串进行解析的。

---------------------------------------------------------------------------------

数据库 :

联络人 ( 含通话记录 ) 数据库: /data/data/com.android.providers.contacts/databases/contacts.db

媒体库 ( 貌似记录铃声设置等信息 ): /data/data/com.android.providers.media/internal.db

系统设置 : /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

地图搜索历史记录 :/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

----------------------------------------------------------------------------------
目前的安装模式

  安装前:

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

安装后:

   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

  

    目前来看,就是 /data/app data/data 下多了两个相关文件,同时在 /data/system/packages.xml 中增加了安装的程序信息。似乎菜单也是从这个文件中得到是否新安装程序,以及如何显示相关信息比如名称什么的。

android 模拟器和真机的不同之处:

不支持呼叫和接听实际来电;但可以通过控制台模拟电话呼叫 ( 呼入和呼出 )

    * 不支持 USB 连接

不支持相机 / 视频捕捉

    * 不支持音频输入 ( 捕捉 ) ;但支持输出 ( 重放 )

    * 不支持扩展耳机

    * 不能确定连接状态

    * 不能确定电池电量水平和交流充电状态

    * 不能确定 SD 卡的插入 / 弹出

    * 不支持蓝牙

 

andoroid 模拟器使用注意:

平时使用 emulator 测试开发的网友注意应该定期清理下 C:/Documents and Settings/sh/Local Settings/Temp/AndroidEmulator 文件夹,由于 Android 模拟器每次运行时会临时生成几个 .tmp 后缀的临时文件,没有几个月功夫简单一看竟然占用磁盘空间高达 5GB 之多。这些文件网友可以安全的删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

stoneson

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值