Android模擬器常用命令的使用

要玩GPhone的模擬器,當然需要先去google上面下載AndroidSDK,解壓出來後在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 alley -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 //創建一個名爲alley的avd,注意 -t 2 對應platforms裏面的版本,這裏是一個1.6版本的。

 

 

下面我們再來說說如何創建"sdcard.img"文件:

“tools”目錄下還有另外一個很好用的工具“mksdcard.exe”,一看名字就知道——make sdcard。對,就用它來創建一個“SD

命令爲:

mksdcard.exe -l sdcard 2048M sdcard.img

OK,這樣一個容量爲1GSD卡就創建完畢了。

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

使用SDCard:

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

連接到模擬器: emulator -avd alley -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!是不是模擬器上顯示來電了?接聽/掛斷和實體手機一樣。

發短信也一樣簡單,重複上面12兩步,第三部命令改一下:

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會打印出內核的調試信息。

(Androidlinux 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/appdata/data下多了兩個相關文件,同時在/data/system/packages.xml中增加了安裝的程序信息。似乎菜單也是從這個文件中得到是否新安裝程序,以及如何顯示相關信息比如名稱什麼的。

android模擬器和真機的不同之處:

不支持呼叫和接聽實際來電;但可以通過控制檯模擬電話呼叫(呼入和呼出)

    * 不支持USB連接

不支持相機/視頻捕捉

    * 不支持音頻輸入(捕捉);但支持輸出(重放)

    * 不支持擴展耳機

    * 不能確定連接狀態

    * 不能確定電池電量水平和交流充電狀態

    * 不能確定SD卡的插入/彈出

    * 不支持藍牙

 

andoroid模擬器使用注意:

平時使用emulator測試開發的網友注意應該定期清理下C:/Documents and Settings/sh/Local Settings/Temp/AndroidEmulator文件夾,由於Android模擬器每次運行時會臨時生成幾個.tmp後綴的臨時文件,沒有幾個月功夫簡單一看竟然佔用磁盤空間高達5GB之多。這些文件網友可以安全的刪除。

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