Android模擬器入門

來源:互聯網
上載者:User

要玩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之多。這些檔案網友可以安全的刪除。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.