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模拟器。
如果你使用SDK中的模拟器的话,将路径切换到<your android sdk>/tools/目录,输入./emulator即可看到模拟器窗口。如果你下载了所有Android源代码并成功编译,则可以在out/host/linux-x86/bin目录找到emulator工具。
模拟器运行时需要几个关键的镜像文件,Android源代码并成功编译后,这些镜像文件在out/target/product/generic目录下,主要有以下几个:
· ramdisk.img 启动系统的ramdisk镜像
· system.img 初始化好的系统镜像
· userdata.img 初始化好的用户数据分区镜像
Google的文档中(http://code.google.com/android/reference/emulator.html)列出了如下的模拟器按键和键盘按键的影射关系。
|
Emulated Device Key |
Keyboard Key |
|
Home |
HOME |
|
Menu (left softkey) |
F2 or Page-up button |
|
Star (right softkey) |
Shift-F2 or Page Down |
|
Back |
ESC |
|
Call/dial button |
F3 |
|
Hangup/end call button |
F4 |
|
Search |
F5 |
|
Power button |
F7 |
|
Audio volume up button |
KEYPAD_PLUS, Ctrl-5 |
|
Audio volume down button |
KEYPAD_MINUS, Ctrl-F6 |
|
Camera button |
Ctrl-KEYPAD_5, Ctrl-F3 |
|
Switch to previous layout orientation (for example, portrait, landscape) |
KEYPAD_7, F11 |
|
Switch to next layout orientation (for example, portrait, landscape) |
KEYPAD_9, F12 |
|
Toggle cell networking on/off |
F8 |
|
Toggle code profiling |
F9 (only with -trace startup option) |
|
Toggle fullscreen mode |
Alt-Enter |
|
Toggle trackball mode |
F6 |
|
Enter trackball mode temporarily (while key is pressed) |
Delete |
|
DPad left/up/right/down |
KEYPAD_4/8/6/2 |
|
DPad center click |
KEYPAD_5 |
|
Onion alpha increase/decrease |
KEYPAD_MULTIPLY(*) / KEYPAD_DIVIDE(/) |
本文详细介绍了Android模拟器的开发背景、功能模块、运行环境及操作方式,旨在为开发者提供一个高效、便捷的开发与测试平台。通过阐述模拟器的内部结构与工作原理,文章进一步展示了其在不同操作系统环境下的兼容性和实用性。同时,文中还提供了模拟器的启动方法、镜像文件的使用以及与Eclipse IDE的集成示例,旨在帮助开发者快速上手并充分利用模拟器资源。
5988

被折叠的 条评论
为什么被折叠?



