Android模擬器簡介—更新到最新的3.0 Honeycomb

來源:互聯網
上載者:User

 

前面介紹了Windows環境下,基於Android SDK(2.3) 和 Eclipse(helios)的Android開發環境的搭建,並建立了第一個應用程式Hello Android World,之後用Honeycomb Preview模擬器深入解析了Eclipse中Android工程的結構以及調試。

具體請參考小生的blog:http://blog.sina.com.cn/deaboway
或者http://blog.csdn.net/deaboway

一、
環境變數

當前最新版本的Android SDK中,adb已經被從./tools/目錄移動到./platform-tools/,因此為了方便,在windows環境中,需要把以上兩個目錄添加到PATH中,如下:

二、
常用命令

這樣,我們就可以直接在cmd中直接運行adb/android/emulator等命令,簡單介紹如下:

1.
命令列輸入adb
相關命令:

adb命令具體的參數可以通過在命令列輸入adb後斷行符號,或者adb help後斷行符號的方式查看,這裡簡單介紹幾個比較常用的命令。

adb devices

列出所有裝載的設定。

adb shell

進入裝置根目錄/,取得對裝置的控制權,如輸入ls命令等。

adb install

將指定的apk檔案安裝到裝置上。如果有多個裝置同時存在,則需要指定目標裝置,如:adb install -s emulator-5554 D:/name.apk。

adb uninstall [-k] <軟體名>

卸載指定軟體,如果加 -k 參數,為卸載軟體但是保留配置和快取檔案。

adb push <本地路徑> <遠程路徑>

把本機電腦上的檔案或者檔案夾複製到裝置(手機)。比如,我們可以用如下命令,將sdcard外的東西存放進去:adb push gavin.txt /sdcard/gavin.txt。

adb pull <遠程路徑> <本地路徑>

把裝置(手機)上的檔案或者檔案夾複製到本機電腦。

2.
命令列輸入Android
相關命令:

android命令具體的參數可以通過在命令列輸入android後斷行符號,或者android -help後斷行符號的方式查看,這裡簡單介紹幾個比較常用的命令。

3.
命令列輸入emulator
相關命令:

emulator命令具體的參數可以通過在命令列輸入emulator -help後斷行符號的方式查看,這裡簡單介紹幾個比較常用的命令。

emulator -avd

啟動指定模擬器。

emulator -avd -sdcard

啟動一個帶有SD卡的指定模擬器。

emulator -skin

啟動一個使用指定skin的模擬器。

emulator -netdelay

類比多種網路延遲等級,因此你可以在更接近真實情況的環境下測試你的應用程式。可以在模擬器啟動時設定延遲等級或範圍,也可以在模擬器運行期間通過控制台動態修改延遲。(關於控制台的操作,後面會介紹)

emulator -netspeed

類比多種網路傳輸速度。可以在模擬器啟動時指定傳輸速度或範圍,也可以在模擬器啟動後通過控制台動態修改傳輸速度。

4.
mksdcard [-l label]

建立sdcard,如:mksdcard 256M C:/gavin.img

5.
模擬器控制台

每一個運行中的模擬器執行個體都包括一個控制台,我們可以利用控制台動態查詢和控制類比裝置的環境。如:我們可以利用控制台動態管理連接埠映射和網路特性,還可以類比電話事件。想要進入控制台輸入命令,需要使用telnet串連到控制台的連接埠號碼:

telnet localhost

其中,port是emulator的port號,如果第一個是5554連接埠,下一個執行個體使用的連接埠號碼會加2:5556、5558等。最多可以有16個模擬器執行個體同時運行控制台。

擷取模擬器的方法有:

l 在啟動模擬器時使用-verbose選項來檢測該模擬器執行個體使用的連接埠號碼;

l 在調試輸出中找“emulator console running on port number”這一行;

l 在命令列中使用adb devices來查看模擬器執行個體和他們的連接埠列表。

串連上控制台之後,可以輸入help [command]來查看命令列表和指定命令的教程。要離開控制台會話,使用quit 或 exit 命令。下面,簡單介紹幾個控制台下常用命令。

redir redir

在模擬器運行期間添加和刪除連接埠重新導向。串連上控制台後,可以通過它來管理連接埠重新導向:列出、增加、刪除。

network status

檢測網路狀況和當前延遲、加速特性。

network delay gprs

同emulator -netdelay

network speed

同emulator -netspeed

gsm

在模擬器上類比電話功能。可以類比打入電話和建 /終止資料連線。Android系統類比撥打電話跟真實情況一樣。這個版本暫不支援電話錄音。

三、
Android
模擬器快速鍵

 

這裡特別介紹下最新版本的更適合平板電腦使用、專門為Android平板電腦進行最佳化的系統版本Honeycomb Preview上,Ctrl-F11的使用。

在Honeycomb Preview上,預設是如所示顯示的:

如果想要換成在電腦螢幕上正常顯示,則需要:在“Menu”-“Settings”-“Screen”-“Auto-rotate screen”,取消選中即可。如果此時在Honeycomb Preview橫向的時候,螢幕仍然翻轉,則連續按兩次Ctrl-F11——先切成豎屏,再切回橫屏——這時,就會發現螢幕變成如下顯示:

另外,可以在“Menu”-“Settings”-“Language&input”-“Select language”中選擇“中文(簡體)”,則可以使用中文介面,如下:

更多Setting請自行摸索,有不清楚的在小生部落格留言吧。

四、
模擬器的限制

模擬器基本上可以類比絕大多數Android裝置的功能,但是,迄今為止,模擬器仍存在如下限制:

  • 不支援呼叫和接聽實際來電;但可以通過控制台類比撥打電話(呼入和呼出)
  • 不支援USB串連
  • 不支援相機/視頻捕捉
  • 不支援音頻輸入(捕捉);但支援輸出(重放)
  • 不支援擴充耳機
  • 不能確定串連狀態
  • 不能確定電池電量水平和交流充電狀態
  • 不能確定SD卡的插入/彈出
  • 不支援藍芽

五、
運行多個模擬器執行個體

如果必要的話,可以同時運行多個模擬器執行個體。每個模擬器執行個體使用獨立的使用者資料記憶體和不同的 控制台連接埠。這樣可以獨立的管理每一個模擬器執行個體。但是,每個執行個體儲存跨會話的持久使用者資料的能力—使用者佈建和安裝的應用程式—會受限制。具體如下:

l 只有第一個模擬器執行個體能根據會話儲存使用者資料。預設情況下它把使用者資料儲存在開發裝置的~/.android/userdata.img (Linux 和 Mac) 或 C:/Documents and Settings//Local Settings/Android/userdata.img (Windows)檔案裡。在啟動模擬器時使用-data選項來控制使用者資料的儲存和載入位置。

l 在第一個執行個體後啟動的模擬器執行個體(並行的)在會話過程中也儲存使用者資料;但它們不會為下一個會話儲存它。這些執行個體將資料儲存在臨時檔案中,當執行個體退出時,相應的臨時檔案會被刪除。

六、
模擬器上網問題

1、將網路連接代理設定寫入設定資料庫

① 通過命令列或者通過雙擊emulatoer可執行檔,開啟模擬器

② 在命令列執行adb shell開啟android的控制台

③ 執行 ls -l /data/data/com.android.providers.settings/databases/settings.db ,查看系統設定資料庫檔案是否存在

④ 如果資料庫檔案存在,執行 sqlite3 /data/data/com.android.providers.settings/databases/settings.db,以settings.db為當前scheme啟動SQLITE3

⑤ 執行 INSERT INTO system VALUES(99,’http_proxy’, ‘192.168.0.245:8080′); 語句插入資料,其中192.168.0.245是我們要使用的Proxy 伺服器IP,8080是連接埠,請根據具體情況替換

⑥ 執行 SELECT * FROM system; 來查看剛才插入的資料

⑦ 重啟模擬器,以使Proxy 伺服器設定生效

⑧ 可以使用 DELETE FROM system WHERE _id=99; 語句來刪除代理設定,或者使用 UPDATE system SET value = '192.168.0.245:8070' WHERE _id=99; 來修改Proxy 伺服器設定

2、可能是DNS的問題

① 用系統的命令進入Android開發包的tools目錄

cd E:/android-sdk-windows/tools

② 使用adb的shell,確認系統的各項屬性

adb shell

getprop

getprop會列出系統當前的各項屬性

③ 得到模擬器的DNS地址

在結果裡可以看到:

[net.dns1]: [10.0.2.3]

[net.dns2]: [10.0.2.4]

④ 把dns改成我們自己的DNS

setprop net.dns1 192.168.1.1

註:一般TP-LINK及D-LINK的DNS都是192.168.1.1,如果不是請使用ipcnofig /all命令確認。

3、直接帶參數啟動模擬器

emulator @default -http-proxy 10.16.xx.xx:8080

其中default是模擬器的名稱

4、在模擬器中設定

啟動模擬器,然後進入 Settings->Wireless & networks->Mobile networks->Access Point Names

然後開啟出現在列表中的access point;

然後下面這樣設定:

- Proxy : your proxy address

- Port : your proxy port

- Username : your username if needed, or

- Password : your password if needed, or

更多相關文章,請訪問:

http://blog.sina.com.cn/deaboway

http://blog.csdn.net/deaboway

以上兩個blog同步更新。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.