Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android模擬器簡介—更新到最新的3.0 Honeycomb

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

編輯:Android開發實例

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

一、 環境變量

當前最新版本的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文件路徑>

將指定的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 <name>

啟動指定模擬器。

emulator -avd <name> -sdcard <name>

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

emulator -skin <name>

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

emulator -netdelay <delay>

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

emulator -netspeed <speed>

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

4. mksdcard [-l label] <size> <file>

創建sdcard,如:mksdcard 256M C:\gavin.img

5. 模擬器控制台

每一個運行中的模擬器實例都包括一個控制台,我們可以利用控制台動態的查詢和控制模擬設備的環境。如:我們可以利用控制台動態的管理端口映射和網絡特性,還可以模擬電話事件。想要進入控制台輸入命令,需要使用telnet連接到控制台的端口號:

telnet localhost <port>

其中,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 <list|add|del> redir

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

network status

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

network delay gprs <delay>

同emulator -netdelay <delay>

network speed <speed>

同emulator -netspeed <speed>

gsm <call|data|voice>

在模擬器上模擬電話功能。可以模擬打入電話和建 /終止數據連接。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\<user>\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是我們要使用的代理服務器IP,8080是端口,請根據具體情況替換

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

⑦ 重啟模擬器,以使代理服務器設置生效

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

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 <Not set>

- Password : your password if needed, or <Not set>

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved