- 浏览: 463982 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
wwwjiandan:
我现在遇到的问题是将Activity设置为非全屏,且andro ...
Android中软键盘弹出时底部菜单上移问题 -
zjhdreams:
求下载链接
Android 9Patch (NinePatch) -
wtjandjay:
受教了 .......
从程序员到项目经理 -
mr_zhang2011:
将博客搬至CSDN -
fyc0109:
为什么我传过去的值, 有的都不对呢, 顺序也是一样的.就是获得 ...
Android Parcelable序列化自定义类集合在Activity间传递
1、Android模拟器介绍
Android中提供了一个模拟器来模拟ARM核的移动设备。Android的模拟器是基于QEMU开发的,QEMU是一个有名的开源虚拟机项目(详见http://bellard.org/qemu/),它可以提供一个虚拟的ARM移动设备。Android模拟器被命名为goldfish,用来模拟包括下面一些功能的ARM SoC:
* ARM926ej-S CPU
* Thumb support
* MMC
* RTC
* Keyboard
* USB Gadget
* framebuffer
* TTY driver
* NAND FLASH
Android模拟器所对应的源代码主要在external/qemu目录下。如果你想将Android移植到其他设备上,熟悉它目前所针对的模拟器环境可以提供一些参考。
对于应用程序的开发者,模拟器提供了很多开发和测试时的便利。无论在Windows下还是Linux下,Android模拟器都可以顺利运行,并且Google提供了Eclipse插件,可将模拟器集成到Eclipse的IDE环境。当然,你也可以从命令行启动Android模拟器。
这款模拟器功能非常齐全,电话本、通话等功能都可正常使用(当然你没办法真的从这里打电话)。甚至其内置的浏览器和Google Maps都可以联网。用户可以使用键盘输入,鼠标点击模拟器按键输入,甚至还可以使用鼠标点击、拖动屏幕进行操纵。
当然模拟器毕竟是模拟器,和真实的机子还是存在差别的,
android模拟器和真机的不同之处:
* 不支持呼叫和接听实际来电;但可以通过控制台模拟电话呼叫(呼入和呼出)
* 不支持USB连接
* 不支持相机/视频捕捉
* 不支持音频输入(捕捉);但支持输出(重放)
* 不支持扩展耳机
* 不能确定连接状态
* 不能确定电池电量水平和交流充电状态
* 不能确定SD卡的插入/弹出
* 不支持蓝牙
2、创建和启动Android模拟器
要玩GPhone的模拟器,当然需要先去http://developer.android.com/sdk(如果打不开就用http://androidappdocs.appspot.com/sdk/index.html)上面下载Android的SDK,解压出来后在SDK的根目录下有一个tools文件夹,里面就是模拟器和一些非常有用的工具。(SDK详细的安装过程请参照http://blog.csdn.net/magicyu2/archive/2009/11/02/4755747.aspx)
要正确的启动模拟,你必须先要创建一个 AVD( Android Virtual Device 虚拟设备 ) ,你可以利用AVD创建基于不同版本的模拟器,下面就介绍如何创建AVD:
(1) 查看当前支持版本(在列出的版本中我们需要记住id值,这个值在第2步中使用):
magicyu@magicyu-desktop:~$ android list target
你可以看到几个Available Android targets,比如:Name: Android 1.6,他们有各自的id号。
(2) 创建AVD:
magicyu@magicyu-desktop:~$ android create avd -n magicyu -t 2
-n后面接需要创建avd的名字,-t后面接需要创建虚拟器的类型,2即为步骤(1)中得到的类型id号。
(3) 查看是否创建成功(如果成功会显示刚才我们创建的avd信息):
magicyu@magicyu-desktop:~$ android list avd
(4) 启动模拟器:
magicyu@magicyu-desktop:~$ emulator @magicyu 或者
emulator -avd magicyu
其中@和-avd后接的是你创建过的avd名字
(5) 选择启动的皮肤
magicyu@magicyu-desktop:~$ emulator -avd magicyu -skin QVGA
skin后面接所要启动皮肤的类型,所有的类型可以在/ platforms/android-1.*/skins目录下找到,*为所指的版本。如在1.6版本的SDK下有HVGA,QVGA, WVGA800,WVGA854几种。按Ctrl+F11,可以直接改变模拟器的横纵摆放。
当然AVD也可以在Eclipse中创建和启动。关于Eclipse+ADT+SDK的安装请参见http://blog.csdn.net/magicyu2/archive/2009/11/02/4755747.aspx。
运行Eclipse,Window->Android SDK and AVD Manager,就能得到如下的界面,选择新建即可新建一个AVD。
3、Android模拟器的一些工具
(1)adb:
ADB(Android Debug Bridge)是Android 提供的一个通用的调试工具,借助这个工具,我们可以管理设备或手机模拟器的状态还可以进行以下的操作:
a、快速更新设备或手机模拟器中的代码,如应用或Android系统升级;
b、在设备上运行shell命令;
c、管理设备或手机模拟器上的预定端口;
d、在设备或手机模拟器上复制或粘贴文件
一些常用的操作:
进入Shell: adb shell
通过上面的命令,就可以进入设备或模拟器的shell环境中,在这个Linux Shell中,你可以执行各种Linux 的命令,另外如果只想执行一条shell命令,可以采用以下的方式:
adb shell [command]
如:adb shell dmesg会打印出内核的调试信息。
(Android的linux shell做了大量精简,很多linux常用指令都不支持)
上传文件: adb push
下载文件: adb pull
安装程序: adb install
卸载软件: adb shell rm /data/app/
补充一点,通过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”中
“”
决定是否应用程序是否显示在Panel上
(2)am指令(在shell内使用am来加载android应用):
am [start|instrument]
am start [-a ]
[-d ]
[-t ]
[-c [-c ] …]
[-e [-e ...]
[-n ] [-D] []
am instrument [-e ]
[-p ]
[-w]
启动浏览器:
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:00?q=beijing
(3)为模拟器加上SD卡:
emulator -sdcard dcard.img
下面我们再来说说如何创建”sdcard.img”文件:
“tools”目录下还有另外一个很好用的工具mksdcard,一看名字就知道——make sdcard。对,就用它来创建一个“SD卡”。
命令为:
mksdcard 1024M D:dcard.img
OK这样一个容量为1G的SD卡就创建完毕了。
使用SDCard:
创建: mksdcard
(bytes(default),K,M)
连接到模拟器: emulator -sdcard
传文件到SDCard: adb push
(4)Android模拟器打电话发短信
GPhone的模拟器有个特有的号码:15555218135,这个就类似我们实体手机的SIM卡号码啦。要实现拨号,用手机?当然不行!
更简单,三步:
1.打开终端
2.连接: telnet localhost 5554(5554是你打开模拟器后上面显示的数字)
3.命令:gsm call 15555218135
look!是不是模拟器上显示来电了?接听/挂断和实体手机一样。
发短信也一样简单,重复上面1,2两步,第三部命令改一下:
sms send 15555218135 Hellothis is a Message.
4、Android模拟器主要命令参数介绍
emulator [- []] … [-]
下面的表总结了可用的参数
Help
-help打印模拟器参数列表。
-help-all打印所有启动参数明细。
-help-打印指定启动参数的信息。
-help-debug-tags打印所有被-debug 打开的列表。
-help-disk-images打印正在使用的磁盘镜像信息。
-help-environment打印模拟器环境变量信息。
-help-keys打印当前的键盘映射。
-help-keyset-file打印一个自定义的键盘映射文件的定义。
Disk Images
-cache 使用 指定网络缓存分区镜像。
自定义,您可以指定一个当前工作目录的相对路径。如果没有指定缓存文件,模拟器会指定一个零时文件作为缓存文件。更多信息请参考-help-disk-images.
-data 使用作为用户数据磁盘镜像。
自定义,您可以指定一个当前工作目录的相对路径。如果-data没有被使用,模拟器会在指定的目录下寻找名叫”userdata-qemu.img”的镜像文件。默认情况下,模拟器会寻找~/.android (on Linux/Mac)或者C:/Documents and Settings//Local Settings/Application Data/Android (on Windows)。
如果您使用了-data ,但是文件并不存在,模拟器将创建同名文件。
更多信息请参见运行多个模拟器实例和-help-disk-images。
-image 使用作为系统镜像。
自定义,您可以指定一个当前工作目录的相对路径。默认为/system.img。
-initdata
重写用户数据镜像时,(使用 -wipe-data),复制此文件内容到新用户数据文件镜像中。默认方式下,模拟器拷贝/userdata.img。
自定义,您可以指定一个当前工作目录的相对路径。参见-wipe-data。
更多信息请参见-help-disk-images。
-kernel 使用作为模拟器内核。自定义,您可以指定一个当前工作目录的相对路径。
-nocache启动模拟器时无缓存分区。参见-cache 。
-ramdisk 使用作为虚拟内存镜像。默认为/ramdisk.img. 自定义,您可以指定一个当前工作目录的相对路径。更多信息请参见-help-disk-images。
-sdcard 使用作为SD卡镜像。默认为/sdcard.img. 自定义,您可以指定一个当前工作目录的相对路径。更多信息请参见-help-disk-images。
-system 在指定的下搜索系统、虚拟内存和用户数据镜像文件。为当前路径的相对目录。
-wipe-data重至用户数据镜像文件。(that is the file specified by -datadir and -data or the default file). 模拟器删除所有用户数据,然后复制右-inidata参数指定的数据到镜像文件,在启动之前。参见-initdata. 更多信息请参见-help-disk-images。
Debug
-debug 开启/关闭指定tag的调试信息。
是一个被空格/逗号/纵列所分割的调试组建名称列表。更多信息参见-help-debug-tags。
-debug-开启/关闭指定tag的调试信息。使用-help-debug-tags获得您可以指定为的调试组件列表。
-debug-no-关闭指定tag的调试信息。
-logcat 打开指定tag的日志输出。如果环境变量ANDROID_LOG_TAGS被指定且不为空,她的值将成为日志输出的默认值。
-shell创建一个拥有root权限的命令行窗口。即使模拟器的UI界面无法使用了,您依然可以使用命令行窗口。按Ctr-c键中断模拟器运行。
-shell-serial 打开具有root权限的脚本窗口。必须是一个QEMU类型的设备。参见’serial -dev’在 http://www.bellard.org/qemu/qemu-doc.html#SEC10上关于设备类型的列表信息。这儿有一些例子:
· -shell-serial stdio is identical to -shell
· -shell-serial tcp::4444servernowait 让您的shell可以通过4444端口通讯。
· -shell-serial fdpair:3:6 让模拟器可以使用3 (in)和6(out)磁碟机。
· -shell-serial fdpair:0:1 uses the normal stdin and stdout fds except that QEMU won’t tty-cook the data.
-show-kernel 显示内核信息。
-trace Enable code profiling (press F9 to start) written to a specified file.
-verbose开启冗长输出。Equivalent to -debug-init. 您可以定义ANDROID_VERBOSE环境变量作为冗长输出参数。定义你想用到的参数,用逗号分割。这样可以省略像-debug-这样的参数。下面是一个设置ANDROID_VERBOSE的例子,它带有-debug-init和 -debug-modem 参数:
ANDROID_VERBOSE=initmodem更多信息参见.
Media
-audio 使用指定的音频后端。
-audio-in 使用指定的音频输入后端。
-audio-out 使用指定的音频输出后端。
-noaudio在当前虚拟机实例中关闭音频支持。
-radio 重新定向收音机接口到本地的字节设备。
-useaudio打开模拟器实例的音频支持。默认为打开。
Network
-dns-server 使用指定的DNS服务器。必须是以逗号分割,多于4个的服务器名或IP地址。
-http-proxy 配置TCP连接使用HTTP/HTTPS代理。
必须符合以下格式:http://:
http://:@: 前缀http://可以被忽略。如果-http-proxy 未被指定,模拟器将寻找http_proxy环境变量,并且自动寻找所有符号格式要求的 值。
-netdelay 设置网络延迟默认值为none。参见Network Delay Emulation中关于的值。
-netfast快捷的 -netspeed full -netdelay none
-netspeed 指定模拟器网络速度为.默认值为full。参见表格Network Speed Emulation 中的值。
-port 指定模拟器网络端口为.控制台端口号必须介于5554和5584之间,并且+1必须留作ADB使用。
-report-console 启动前向第三方同志此模拟器实例的网络端口。 必须是以下几种格式
tcp:[server][max=]
unix:[server][max=]
更多信息参见 -help-report-console
System
-cpu-delay 降低模拟器CPU的速度到。支持0到100的整数。注意与具体的时钟或其他的绝对频率无关。它只表现为一种抽象的,相对于当前模拟器运行状况的速度调节。
-gps 重定向NMEA GPS到字节设备。
使用此参数通知模拟器模拟一个NMEA-compatible GPS,连接到一个扩展的设备或socket端口。格式必须符合QEMU-specific所指定的设备格式。更多信息参见’serial -dev’ 和 http://www.bellard.org/qemu/qemu-doc.html#SEC10.
-nojni在Dalvik运行时关闭JNI检查
-qemu传递参数到qemu。
-qemu -h关闭qemu帮助。
-radio 重定向录音机模块到制定的字符设备。格式必须符合QEMU规定的序列设备。详情参见http://www.bellard.org/qemu/qemu-doc.html#SEC10.
-timezone 设定模拟器时区为,替换为系统时区。必须按照时区格式指定。比如:”America/Los_Angeles”,”Europe/Paris”
-version显示模拟器版本号。
UI
-dpi-device 修改模拟器的分辨率适配物理设备。默认值为165。参见-scale.
-no-boot-anim关闭模拟器启动时的动画。禁用启动动画可以加快启动速度。
-no-window关闭模拟器的绘制窗口。
-scale 调整模拟器窗口。 是介于0.1到3的数字,它是调整屏幕的比例因子。您也可以指定一个DPI值,在添加dpi前缀的情况下。Auto参数告诉模拟器选择自己最合适的尺寸。
-raw-keys关闭Unicode键盘reverse-mapping.
-noskin不使用任何模拟器皮肤。
-keyset 用指定的键盘设置文件代替默认。指定宿主键盘和模拟器之间的键盘映射文件。更多信息参见-help-keyset。
-onion 用图片覆盖屏幕。不支持JPEG,只支持PNG
-onion-alpha 指定onion皮肤透明值(百分比) 默认为50.
-onion-rotation 指定onion皮肤旋转。 必须是 0 1 2 3中的一个。
-skin 启动模拟器,搭配指定皮肤。
-skindir 在指定目录下搜索皮肤
附:android模拟器不能联网设置
1.进入android控制台(在dos命令行下指向android-sdk-windows/tools) 输入adb shell 进入
3. 命令getprop 会得到一些系统参数,找到下面2项
4.修改DNS
setprop net.eth0.dns1 192.168.1.1(网关IP)
重启模拟器,即可上网
发表评论
-
android Log.isLoggable方法的使用
2014-06-06 15:35 2995android 动态控制logcat日志开关,通过Log. ... -
View not attached to window manager
2013-01-10 11:55 1077View not attached to window man ... -
代码设置android:icon,android:label
2013-01-05 15:26 7989requestWindowFeature( Window.F ... -
Android项目为一个apk设置多个ICON图标和执行入口
2013-01-05 12:13 3877Android开发中,一个工程对应一个AndroidManif ... -
Intent跳转到系统应用中的拨号界面、联系人界面、短信界面及其他
2012-12-04 12:15 01:调用系统发送短信界面 Uri smsT ... -
Android 源码目录结构详解
2012-11-22 17:20 1463这是Android2.1的源代码的 ... -
如何获取android源代码
2012-07-10 17:50 2738如何获取android源代码 研究 ... -
Android uses-permission大全
2012-06-12 17:33 1067android.permission.ACCESS_CHE ... -
Android 应用程序基础(Application Fundamentals)
2012-05-23 17:42 1258Android 应用程序基础(Application Fun ... -
转Android 音乐频谱实现
2012-02-18 23:35 0最近由于需要实现音乐频谱,所以今天就为大家普及一下。 这里实现 ... -
android VideoView本工程mp4文件
2012-01-09 18:42 2703最近在做一个demo,要求播放视频,记录一下。使用的是Vid ... -
关于android播放mp3与歌词同步问题收集
2012-01-09 17:57 1675关于android播放mp3与歌词同步问题收集,有时间再试。 ... -
android使用MediaPlayer播放音乐文件时遇到的问题
2012-01-09 17:38 18379把mp3文件放在Assets文件夹里,然后用MediaPlay ... -
android资源目录---assets与res/raw的不同
2012-01-05 11:49 2366android资源目录---assets与 ... -
Android 的cpu硬盘 内存 网络设置 系统信息 硬件信息
2012-01-04 10:56 1598转载 http://www.cnmsdn.com/html/2 ... -
使用 Android Compatibility Package 来简化开发工作
2012-01-04 10:12 1432转载 http://www.cnmsdn.com/html/2 ... -
Android 9Patch (NinePatch)
2011-12-26 16:06 45301:介绍 NinePatch图片以*.9.png结尾,和普通 ... -
Windows平台下Android源码的下载
2011-12-21 11:06 1257Windows平台下Android源码的下载 ... -
改变MenuItem默认背景
2011-12-07 19:58 1444@Override public boolean onCre ... -
Android横屏竖屏切换
2011-11-10 18:20 107转载 http://blog.csdn.net/leesido ...
相关推荐
以上四种方法均能有效解决Android模拟器的上网问题。开发者可以根据自己的实际情况选择合适的方法进行操作。特别是最后一种方法,已经经过了实践验证,对于需要认证的代理服务器特别有效。希望这些信息能够帮助大家...
如果你不想在自己的电脑系统上安装乱七八糟的模拟器,那就直接用WIN10自带的Hyper-V虚拟机安装这个固件就行,里面除了谷歌三件套和超级终端这些必须有的APP,就没其它的了,装完就是已经ROOT过的状态,不想玩的时候...
当你遇到Android模拟器无法上网的情况时,可以尝试以下步骤设置代理服务器: 1. **启动模拟器**: - 通过命令行或者双击`emulator`可执行文件启动Android模拟器。 2. **进入adb shell模式**: - 在命令行中输入`...
Android模拟器默认的地址是10.0.2.3,默认的DNS也是10.0.2.3,对于在家里上网学习Android的人(像我)来讲,一般电脑的IP都是192.168.1.100之类的,不在同一个网段。所以就会出现电脑可以上网但是模拟器不能上网的...
解决 Genymotion 模拟器无法联网问题需要三个步骤:VirtualBox 设置、Genymotion 设置和模拟器 WIFI 设置。通过这三个步骤的设置,我们可以轻松解决 Genymotion 模拟器无法联网的问题,从而提高开发效率。因此,在...
Android模拟器作为开发过程中不可或缺的工具,为开发者提供了便捷的测试和调试手段。通过掌握其创建、配置及使用技巧,开发者能在无实际设备的情况下高效完成软件开发,确保应用质量。然而,了解其局限性同样重要,...
手机联网搜计算器模拟器即可搜到TI-89模拟器(选择文件大的)下载安装(安装过程略)。 这时TI-89模拟器只有躯壳,没有内容,必须安装本人提供的TI-89_Titanium_3.10.89u文件。也可网上搜索下载,但要注意版本,版本...
解决Xposed不联网问题,附带Xposed安装教程雷电夜神逍遥模拟器
这款模拟器功能非常齐全,电话本、通话等功能都可正常使用(当然你没办法...甚至其内置的浏览器和Google Maps都可以联网。用户可以使用键盘输入,鼠标点击模拟器按键输入,甚至还可以使用鼠标点击、拖动屏幕进行操纵。
- **运行示例项目**: 使用Android Studio自带的模拟器运行一个简单的“Hello World”项目,以确保所有必要的资源都能被自动下载到本地。 **2. 拷贝联网电脑中的文件** - **准备U盘**: 准备一个32GB或更大容量的U盘...
在安装Xposed框架后,如果遇到“Xposed不联网问题”,这可能是由于框架与模拟器之间的兼容性问题,或者是模拟器的网络设置问题。你可以尝试以下解决方案: 1. **检查网络设置**:确保模拟器的网络设置正常,可以...
这些指南详细讲解了模拟器的下载、安装、配置,包括联网设置和解决常见问题,对于初学者来说非常实用。 “修正版-Android模拟器 SDK 2.2 下载与安装教程(修改2.1版本的问题)_我喜欢-经验之地_百度空间.htm”可能...
对于非联网环境,需将模拟器的IP地址、网关和DNS服务器均设置为相同的值,例如192.168.0.100。在局域网环境下,需将网关和DNS设置为路由器的IP地址。 **4.3 发送短信** 在工程上右键,选择`Run As > Android ...
开发者需要配置好Android模拟器或连接真实设备进行调试。 2. **UI设计与布局**: 使用XML文件来定义界面元素,如LinearLayout、RelativeLayout或ConstraintLayout等,以创建用户友好的游戏界面。此外,还要用到...
- 不联网情况下进行安装。 **2. 解决可能出现的问题** - 若安装过程中遇到问题,可以尝试以下几种方法解决: - 检查操作系统版本是否符合安装要求。 - 确保有足够的磁盘空间。 - 尝试重新下载安装包并再次安装...
iTools2.0.8.9,安装包体积23.2M(真正安装的时候需要联网下载文件,200...安卓版本是4.4.4,目前我开发不需要用到高版本的太多特性,这个对我来说够用了,我觉得这对一些需要纯安卓模拟器的用户来说是一个不错的选择。
### 如何测试Android APP的耗电量? 在移动应用开发领域,优化应用的电池消耗是提升用户体验的关键环节之一。本文将详细介绍如何通过ADB工具以及编写批处理(bat)脚本来实现Android应用耗电量的测试,帮助开发者更...
它提供了一整套工具,包括代码编辑器、调试器、构建工具、模拟器等,使得开发者能够高效地编写、测试和发布Android应用。在这个项目中,开发者将有机会学习如何使用Android Studio进行智能家居应用的开发。 该项目...