Ubuntu下android學習——(3)Android模擬器使用

模擬器和真機的比較html

    • android模擬器不具有的功能:
      不支持呼叫和接聽實際來電;但能夠經過控制檯模擬電話呼叫(呼入和呼出)
      不支持USB鏈接
      不支持相機/視頻捕捉
      不支持音頻輸入(捕捉);但支持輸出(重放)
      不支持擴展耳機
      不能肯定鏈接狀態
      不能肯定電池電量水平和交流充電狀態
      不能肯定SD卡的插入/彈出
      不支持藍牙。linux

    • 模擬器具有的獨特功能:
      apidemo
      ,這個API演示主要是ui部分,各類簡單的控件使用技巧在裏面均可以找到,
      devtools
      ,在devtools能夠獲取到一些debug時須要的信息。
      android

  • 建立模擬器運行SDK目錄中的sdksetup.exe文件,點擊左側VirtualDevices選項卡,點擊New…sql



    圖片
     
    在新彈出的窗口裏填寫:
    name:2.3.3 (給虛擬機起個名字)
    Target:2.3.3 
    選擇版本
    SDcard
    100MB存儲卡內存多少兆
    Skin
    :模擬器外觀和屏幕尺寸
    Hardware
    :支持的硬件設備



    圖片
     

    Android
    模擬器的啓動速度很慢,大約須要2-3分鐘,等待的時候不要擔憂有什麼問題。下面是啓動成功的畫面。要注意的是用的模擬器不一樣,畫面風格也會不一樣。shell



      圖片

  • 模擬手機撥打電話和發送短信的功能數據庫

打電話和發短信須要至少2個模擬器。
注意模擬器標題上的數字「555455565558」就是這個模擬器的電話號碼。後端

下面咱們來研究下android模擬器命令api

正確的啓動模擬,你必須先要建立一個AVD(AndroidVirtual Device 虛擬設備),你能夠利用AVD建立基於不一樣版本的模擬器,下面就介紹如何建立AVD瀏覽器

1)查看當前支持版本(在列出的版本中咱們須要記住id值,這個值在第2步中使用)緩存

magicyu@magicyu-desktop:~$androidlist target

你能夠看到幾個AvailableAndroidtargets,好比:Name:Android1.6,他們有各自的id號。

2)建立AVD

magicyu@magicyu-desktop:~$androidcreate avd -n magicyu -t 2

-n後面接須要建立avd的名字,-t後面接須要建立虛擬器的類型,2即爲步驟(1)中獲得的類型id號。

3)查看是否建立成功(若是成功會顯示剛纔咱們建立的avd信息)

magicyu@magicyu-desktop:~$androidlist avd

4)啓動模擬器:

magicyu@magicyu-desktop:~$emulator@magicyu 或者

emulator-avdmagicyu

其中@-avd後接的是你建立過的avd名字

5)選擇啓動的皮膚

magicyu@magicyu-desktop:~$emulator-avd magicyu -skin QVGA

skin後面接所要啓動皮膚的類型,全部的類型能夠在/platforms/android-1.*/skins目錄下找到,*爲所指的版本。如在1.6版本的SDK下有HVGAQVGAWVGA800WVGA854幾種。按Ctrl+F11,能夠直接改變模擬器的橫縱擺放。


Android模擬器的一些工具

1adb:

ADB(AndroidDebugBridge)Android提供的一個通用的調試工具,藉助這個工具,咱們能夠管理設備或手機模擬器的狀態還能夠進行如下的操做:

a、快速更新設備或手機模擬器中的代碼,如應用或Android系統升級;

b、在設備上運行shell命令;

c、管理設備或手機模擬器上的預約端口;

d、在設備或手機模擬器上覆制或粘貼文件

一些經常使用的操做:

進入Shell:adbshell

經過上面的命令,就能夠進入設備或模擬器的shell環境中,在這個LinuxShell中,你能夠執行各類Linux的命令,另外若是隻想執行一條shell命令,能夠採用如下的方式:

adbshell[command]

如:adbshelldmesg會打印出內核的調試信息。

(Androidlinuxshell作了大量精簡,不少linux經常使用指令都不支持)

上傳文件:adbpush

下載文件:adbpull

安裝程序:adbinstall

卸載軟件:adbshell rm /data/app/

補充一點,經過adb安裝的軟件(*.apk)都在」/data/app/」目錄下,因此安裝時沒必要制定路徑,卸載只須要簡單的執行」rm」就行。

結束adb:adbkill-server

顯示android模擬器狀態:

adbdevices(端口信息)

adbget-product(設備型號)

adbget-serialno(序列號)

等待正在運行的設備:adbwait-for-device

端口轉發:adbforward adb forward tcp:5555 tcp:1234

(將默認端口TCP5555轉發到1234端口上)

查看bug報告:adbbugreport

adbshellsqlite3 訪問數據庫SQLite3

adbshelllogcat -b radio 記錄無線通信日誌:通常來講,無線通信的日誌很是多,在運行時不必去記錄,但咱們仍是能夠經過命令,設置記錄

應用程序配置文件:

AndroidManifest.xml」

「」

決定是否應用程序是否顯示在Panel

2am指令(shell內使用am來加載android應用):

am[start|instrument]

amstart[-a ]

[-d]

[-t]

[-c[-c] …]

[-e[-e...]

[-n][-D] []

aminstrument[-e ]

[-p]

[-w]

啓動瀏覽器:

amstart-a android.intent.action.VIEW -d http://www.google.cn/

撥打電話:

amstart-a android.intent.action.CALL -d tel:10086

啓動googlemap直接定位到北京:

amstart-a android.intent.action.VIEW geo:00?q=beijing

3)爲模擬器加上SD卡:

emulator-sdcarddcard.img

下面咱們再來講說如何建立」sdcard.img」文件:

tools」目錄下還有另一個很好用的工具mksdcard,一看名字就知道——makesdcard。對,就用它來建立一個「SD卡」。

命令爲:

mksdcard1024MD:dcard.img

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

使用SDCard:

建立:mksdcard
(bytes(default)
KM)

鏈接到模擬器:emulator-sdcard

傳文件到SDCard:adbpush

4Android模擬器打電話發短信

GPhone的模擬器有個特有的號碼:15555218135,這個就相似咱們實體手機的SIM卡號碼啦。要實現撥號,用手機?固然不行!

更簡單,三步:

1.打開終端

2.鏈接:telnetlocalhost 55545554是你打開模擬器後上面顯示的數字)

3.命令:gsmcall15555218135

look!是否是模擬器上顯示來電了?接聽/掛斷和實體手機同樣。

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

smssend15555218135 Hellothis is a Message.

4Android模擬器主要命令參數介紹

emulator[-[]] … [-]
下面的表總結了可用的參數

Help

-help打印模擬器參數列表。

-help-all打印全部啓動參數明細。

-help-打印指定啓動參數的信息。

-help-debug-tags打印全部被-debug打開的列表。

-help-disk-images打印正在使用的磁盤鏡像信息。

-help-environment打印模擬器環境變量信息。

-help-keys打印當前的鍵盤映射。

-help-keyset-file打印一個自定義的鍵盤映射文件的定義。

DiskImages

-cache使用指定網絡緩存分區鏡像。

自定義,您能夠指定一個當前工做目錄的相對路徑。若是沒有指定緩存文件,模擬器會指定一個零時文件做爲緩存文件。更多信息請參考-help-disk-images.

-data使用做爲用戶數據磁盤鏡像。

自定義,您能夠指定一個當前工做目錄的相對路徑。若是-data沒有被使用,模擬器會在指定的目錄下尋找名叫」userdata-qemu.img」的鏡像文件。默認狀況下,模擬器會尋找~/.android(onLinux/Mac)

若是您使用了-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重至用戶數據鏡像文件。(thatisthe file specified by -datadir and -data or the defaultfile).模擬器刪除全部用戶數據,而後複製右-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-serialstdio is identical to -shell

·-shell-serialtcp::4444servernowait 讓您的shell能夠經過4444端口通信。

·-shell-serialfdpair:3:6 讓模擬器可使用3(in)6(out)磁碟機。

·-shell-serialfdpair:0:1 uses the normal stdin and stdout fds exceptthat QEMU won’ttty-cook the data.

-show-kernel顯示內核信息。

-traceEnablecode profiling (press F9 to start) written to a specifiedfile.

-verbose開啓冗長輸出。Equivalentto-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。參見NetworkDelayEmulation中關於的值。

-netfast快捷的-netspeedfull-netdelay none

-netspeed指定模擬器網絡速度爲.默認值爲full。參見表格NetworkSpeedEmulation 中的值。

-port指定模擬器網絡端口爲.控制檯端口號必須介於55545584之間,而且+1必須留做ADB使用。

-report-console啓動前向第三方同志此模擬器實例的網絡端口。必須是如下幾種格式

tcp:[server][max=]

unix:[server][max=]

更多信息參見-help-report-console
System

-cpu-delay下降模擬器CPU的速度到。支持0100的整數。注意與具體的時鐘或其餘的絕對頻率無關。它只表現爲一種抽象的,相對於當前模擬器運行情況的速度調節。

-gps重定向NMEAGPS到字節設備。

使用此參數通知模擬器模擬一個NMEA-compatibleGPS,鏈接到一個擴展的設備或socket端口。格式必須符合QEMU-specific所指定的設備格式。更多信息參見’serial-dev’ http://www.bellard.org/qemu/qemu-doc.html#SEC10.

-nojniDalvik運行時關閉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.13的數字,它是調整屏幕的比例因子。您也能夠指定一個DPI值,在添加dpi前綴的狀況下。Auto參數告訴模擬器選擇本身最合適的尺寸。

-raw-keys關閉Unicode鍵盤reverse-mapping.

-noskin不使用任何模擬器皮膚。

-keyset用指定的鍵盤設置文件代替默認。指定宿主鍵盤和模擬器之間的鍵盤映射文件。更多信息參見-help-keyset

-onion用圖片覆蓋屏幕。不支持JPEG,只支持PNG

-onion-alpha指定onion皮膚透明值(百分比)默認爲50.

-onion-rotation指定onion皮膚旋轉。必須是 012 3中的一個。

-skin啓動模擬器,搭配指定皮膚。

-skindir在指定目錄下搜索皮膚

相關文章
相關標籤/搜索