Android Emulator 模擬器使用方法

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 SettingsApplication DataAndroid (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 在指定目錄下搜索皮膚

轉載至:http://www.cnmsdn.com/html/201002/1265743091ID521.html  這裏有很多學習的東東,挺好的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章