说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

Android模拟器入门

HTML文档下载 WORD文档下载 PDF文档下载
Android模拟器的配置使用入门介绍。

作者:zhangqijie001

要玩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 -sdcard D:\sdcard.img
        下面我们再来说说如何创建"sdcard.img"文件:“tools”目录下还有另外一个很好用的工具“mksdcard.exe”,一看名字就知道——make sdcard。对,就用它来创建一个“SD卡”。
命令为:
        mksdcard 1024M D:\sdcard.img

OK,这样一个容量为1G的SD卡就创建完毕了。
使用SDCard:
创建: mksdcard <1024M> <sdcard.img>
(bytes(default),K,M)
连接到模拟器: emulator -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>
启动浏览器:
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
-----------------------------------------------------------------------------------
目录:
# 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之多。这些文件网友可以安全的删除。

原文链接:http://blog.csdn.net/zhangqijie001/archive/2010/01/30/5269465.aspx 

榜单:十位帮我们打理数据的存储大佬 OpenStack Grizzly版发布 Comcast、CERN成为新会员 谷歌携Blink来势汹汹 WebKit将成明日黄花? 星巴克与苹果合作 顾客可免费下载付费App 微信回应信令争议 将启动2.5G网络优化计划 凤凰网CTO吴华鹏离职 先后供职长达10年 外媒:开发者每周编码时间仅19.1小时 AppGratis CEO现身说法:应用被苹果儆杀始末 一个Web设计师眼里的云计算 戴尔高管:服务器业务领先惠普五年时间 Hoodie:基于JS与CouchDB的超快速Web开发框架 设计优秀API的五大规则 盘点英特尔IDF2013第一天:技术产品新趋势 英雄组队去打怪!Nimble Quest开发团队访谈 云通讯平台打造本土Twilio 被逼无奈?传微软或明年秋发布iOS和Android版Office 欧洲各国政府将向大众开放公共数据 访联想云存储罗予晋:优化MooseFS,共建生态系统 磊友创始人赵霏:关于HTML5与Flash争执之我见 国际混乱C语言代码大赛优胜作品详解之“A clock in one line” 揭秘程序员大脑编程的七大“误区” 从Java到ObjC语言的桥梁:谷歌J2ObjC 0.7版本亮相 数据库管理系统ParElastic:打破常规 扩展云端MySQL 谷歌苹果专利纠纷意在战略无意和解 美法官为其苦恼 Facebook收购神秘移动软件创业公司Osmeta 修改驱动,使用Erlang+VoltDB实现每秒87.7万事务 横评美国IaaS“8匹狼”:AWS、GCE、Azure、Rackspace、SoftLayer、Dell、HP、Joyent 独立游戏精神释放的舞台:IGF China 2013作品火热征集中 三款热门入门级在线编程教程对比 微软modern.IE:网站兼容性测试利器 Localytics:AngularJS代替Backbone 代码减少一半 本人刚接触com,试着用书中的例子实现“白板”程序,其中有两个程序,一个是服务器端A,另一个是客户端B,在我自己机上注册了A,运行两个 如何避免sql语句'问题 上星了!:)散分200,前4位给分! Weblogic 启动后无法显示 http://127.0.0.1/console页面,是怎么回事? 如何使树形控件的内容 在 SQL 中怎麼把時間日期型的字段的值變成日期型? 急!!!求助联想G808手机的码表 写内存,紧急求救! 如何得到文件建立和修改的时间呢? 急急急:在线等待。COM的接口中的方法中参数为自定义类指针,返回一个自定义类指针,应该怎样实现? 怎样对double类型的数据定制小数位 VC处理ADO时的怪问题,高分救助----在线等!!! 为什么mysql的longblob类型数据上传超过1M就不行了? VB如何作中文输入软键盘,高分回报? win98自动启动问题 为什么mov eax, [400000h] 和mov eax 400000h汇编结果一样? 刚才的没解决 找工作, 上海。 请帮忙啊 关于在delphi中Dll的创建和调用,象登陆界面一类,dll中有窗体,求例子。 哪家网上书店信誉高,C++ builder书质量高? 关于rs.MovePrevious 100分问题:如何在sdi的view的(0,0,NULL,20)区域固定显示一定内容 VB中使用ADO连接远程数据库时的事务处理问题 在weblogic中,这个错误是怎么回事?(在线等待) 怎么用SOCKET传送一个自定义类型的数据 szbug大哥请进来拿分 幸福女人的小小要求(zt) 各位好,请问一个问题:存储过程的作用是什么,能不能举例说明一下,看了半天书,也没能明白,多谢了! 我想用循环来实现这样的语句,怎么写呢? 请问xml元素内容部分的html代码如何处理 怎样定义rect数组? 一道考试题目:考考你们自己的C++水平。 怎样用代码遍历DBGrid中的记录?急!在线等待! 为什么mov eax, [0x400000h]和mov eax 400000h汇编结果一样? 网络报表最好的解决方法是什么 高分求购web 打印控件?还有一个远程数据库,客户端打印问题帮忙解决一下 哪位高手能给一个简单的TOOLBAR控件应用的原代码?(非常需要) 哪些有钱途?哪些有前途? 讨论:MSE(软件工程)对中国目前的开发现状真的有帮助吗?来者有分 ACCESS查询语句中的DATEPART函数为什么不能执行??? php为什么安上后不能用 在VS.Net中如何使注释生成已编译的HTML帮助文件? 我想更改Win2000的开机画面,请高手指点 ADO连接数据库时的事务处理问提 对于动态生成的控件,如何确定它的名字? vb 中使用select 的问题 想把post的变量遍历,怎样实现 小问题 关于参数 如何通过一个计算机名来查出它在局域网中的IP !!!!!~~~ 急,哪里可以下载IeWebControl? 胡静自爆十足严母范儿 娇嗔"蔡依林陪妈妈过节贴心献吻 避谈与男友朱茵黄贯中女儿近照曝光 俏皮吐舌刘若英母亲节办新歌签唱会 妈妈低调现戚薇上海宣传新碟 否认李承炫示爱:开韩国十大美男排行榜 赵寅成排名第二谢霆锋庆小儿子生日三代同欢 张柏芝缺《非常完美》富二代打女嘉宾惹众怒印度贫民的特色生活贝嫂装扮时尚犹如女王 丈夫生日大方献小S晒小女儿吃手照李湘晒女儿游迪士尼照 王诗龄变身白雪郭富城两旧爱同场 熊黛林钟丽缇互称不《陆贞传奇》美女如云 美人终极盘点细数《陆贞传奇》女主角赵丽颖演过的角刘嘉玲潮装女王范儿足 不介意网络被冒马云见义勇为视频走红:对"英雄联盟新英雄暗黑之刃Aatrox技盘点2013年将为人母的欧美明星美女子臀部世界最大 堪称世界奇迹NBA篮球宝贝争相斗艳 激情热舞活力繁华落尽梁冬、袁腾飞、宋鸿兵齐上阵仁孚60年“仁孚荟”奖赏客户海纳城与阿里巴巴达成战略合作楼市+城事献血者:我们最想知道血用在哪“给荔”新思路:电商+采摘团惊艳美人鱼“游”来,疯狂庆典开始天安门金水桥暴恐案三人被判死刑内急路边方便不慎掉下河道“老师猥亵学生”何以成校方“家务事”废旧物品再利用心中所想变现实见家长龙华菜价居中 居民盼“放心菜”孕妇为夫猎艳 诱骗女孩回家杀害美报:中国制造商替足球队分享世界杯荣苹果2.5英寸显示屏SmartWat布鲁尼演唱 萨科齐捧场纯水岸推出零首付购房官员被贼惦记 还请纪检部门还官员清白黄标车限行进入倒计时
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘