• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            life02

              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              197 隨筆 :: 3 文章 :: 37 評論 :: 0 Trackbacks

             注:其中部分內容參考網上資源

            1Android模擬器介紹

            Android中提供了一個模擬器來模擬ARM核的移動設備。Android的模擬器是基于QEMU開發的,QEMU是一個有名的開源虛擬機項目(詳見http://bellard.org/qemu/),它可以提供一個虛擬的ARM移動設備。Android模擬器被命名為goldfish,用來模擬包括下面一些功能的ARM SoC:

            * ARM926ej-S CPU

            * Thumb support

            * MMC

            * RTC

            * Keyboard

            * USB Gadget

            * Framebuffer

            * TTY driver

            * NAND FLASH

            Android模擬器所對應的源代碼主要在external/qemu目錄下。如果你想將Android移植到其他設備上,熟悉它目前所針對的模擬器環境可以提供一些參考。

            對于應用程序的開發者,模擬器提供了很多開發和測試時的便利。無論在Windows下還是Linux下,Android模擬器都可以順利運行,并且Google提供了Eclipse插件,可將模擬器集成到EclipseIDE環境。當然,你也可以從命令行啟動Android模擬器。

            這款模擬器功能非常齊全,電話本、通話等功能都可正常使用(當然你沒辦法真的從這里打電話)。甚至其內置的瀏覽器和Google Maps都可以聯網。用戶可以使用鍵盤輸入,鼠標點擊模擬器按鍵輸入,甚至還可以使用鼠標點擊、拖動屏幕進行操縱。

            當然模擬器畢竟是模擬器,和真實的機子還是存在差別的,

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

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

            * 不支持相機/視頻捕捉

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

            * 不支持擴展耳機

            * 不能確定連接狀態

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

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

            * 不支持藍牙

            2、創建和啟動Android模擬器

            要玩GPhone的模擬器,當然需要先去http://developer.android.com/sdk(如果打不開就用http://androidappdocs.appspot.com/sdk/index.html)上面下載AndroidSDK,解壓出來后在SDK的根目錄下有一個tools文件夾,里面就是模擬器和一些非常有用的工具。(SDK詳細的安裝過程請參照http://blog.csdn.net/magicyu2/archive/2009/11/02/4755747.aspx

            要正確的啟動模擬,你必須先要創建一個 AVD( Android Virtual Device 虛擬設備 ) ,你可以利用AVD創建基于不同版本的模擬器,下面就介紹如何創建AVD

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

            magicyu@magicyu-desktop:~$ android list target

            你可以看到幾個Available Android targets,比如:Name: Android 1.6,他們有各自的id號。

            (2)       創建AVD

            magicyu@magicyu-desktop:~$ android create avd -n magicyu -t 2

            -n后面接需要創建avd的名字,-t后面接需要創建虛擬器的類型,2即為步驟(1)中得到的類型id號。

            (3)       查看是否創建成功(如果成功會顯示剛才我們創建的avd信息)

            magicyu@magicyu-desktop:~$ android list avd

            (4)       啟動模擬器:

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

            emulator -avd magicyu

            其中@-avd后接的是你創建過的avd名字

            (5)       選擇啟動的皮膚

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

            skin后面接所要啟動皮膚的類型,所有的類型可以在<SDK>/ platforms/android-1.*/skins目錄下找到,*為所指的版本。如在1.6版本的SDK下有HVGAQVGA WVGA800WVGA854幾種。按Ctrl+F11,可以直接改變模擬器的橫縱擺放。

                  

            當然AVD也可以在Eclipse中創建和啟動。關于Eclipse+ADT+SDK的安裝請參見http://blog.csdn.net/magicyu2/archive/2009/11/02/4755747.aspx

            運行EclipseWindow->Android SDK and AVD Manager,就能得到如下的界面,選擇新建即可新建一個AVD

             

             eclipse_create_avd

            3Android模擬器的一些工具

            1adb:

            ADB(Android Debug Bridge)Android 提供的一個通用的調試工具,借助這個工具,我們可以管理設備或手機模擬器的狀態還可以進行以下的操作:

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

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

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

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

            一些常用的操作:

            進入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

             

            2am指令(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

             

            3)為模擬器加上SD卡:

            emulator -sdcard <path>/sdcard.img

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

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

            命令為:

            mksdcard 1024M D:/sdcard.img

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

            使用SDCard:

            創建: mksdcard <1024M> <sdcard.img>
            (bytes(default)
            KM)

            連接到模擬器: emulator -sdcard <path/sdcard.img>

            傳文件到SDCard: adb push <目錄/audio.mp3> </sdcard/audio.mp3>

             

            4Android模擬器打電話發短信

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

            更簡單,三步:

            1.打開終端

            2.連接: telnet localhost 55545554是你打開模擬器后上面顯示的數字)

            3.命令:gsm call 15555218135

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

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

            sms send 15555218135 Hello,this is a Message.

             

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

            emulator [-<option> [<value>]] ... [-<qemu args>]
            下面的表總結了可用的參數

            Help

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

            -help-all打印所有啟動參數明細。

            -help-<option>打印指定啟動參數的信息。

            -help-debug-tags打印所有被-debug <tags>打開的列表。

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

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

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

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

             

            Disk Images

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

            自定義,您可以指定一個當前工作目錄的相對路徑。如果沒有指定緩存文件,模擬器會指定一個零時文件作為緩存文件。更多信息請參考-help-disk-images.

            -data <filepath>使用<filepath>作為用戶數據磁盤鏡像。

            自定義,您可以指定一個當前工作目錄的相對路徑。如果-data沒有被使用,模擬器會在<datadir>指定的目錄下尋找名叫"userdata-qemu.img"的鏡像文件。默認情況下,模擬器會尋找~/.android (on Linux/Mac)或者C:/Documents and Settings/<user>/Local Settings/Application Data/Android (on Windows)

            如果您使用了-data <filepath>,但是文件并不存在,模擬器將創建同名文件。

            更多信息請參見運行多個模擬器實例和-help-disk-images

            -image <filepath>使用<filepath>作為系統鏡像。

            自定義,您可以指定一個當前工作目錄的相對路徑。默認為<system>/system.img
            -initdata <filepath>

            重寫用戶數據鏡像時,(使用 -wipe-data),復制此文件內容到新用戶數據文件鏡像中。默認方式下,模擬器拷貝<system>/userdata.img

            自定義,您可以指定一個當前工作目錄的相對路徑。參見-wipe-data

            更多信息請參見-help-disk-images

            -kernel <filepath>使用<filepath>作為模擬器內核。自定義,您可以指定一個當前工作目錄的相對路徑。

            -nocache啟動模擬器時無緩存分區。參見-cache <file>

            -ramdisk <filepath>使用<filepath>作為虛擬內存鏡像。默認為<system>/ramdisk.img. 自定義,您可以指定一個當前工作目錄的相對路徑。更多信息請參見-help-disk-images

            -sdcard <filepath>使用<file>作為SD卡鏡像。默認為<system>/sdcard.img. 自定義,您可以指定一個當前工作目錄的相對路徑。更多信息請參見-help-disk-images

            -system <dirpath>在指定的<dir>下搜索系統、虛擬內存和用戶數據鏡像文件。<dir>為當前路徑的相對目錄。

            -wipe-data重至用戶數據鏡像文件。(that is, the file specified by -datadir and -data, or the default file). 模擬器刪除所有用戶數據,然后復制右-inidata參數指定的數據到鏡像文件,在啟動之前。參見-initdata. 更多信息請參見-help-disk-images

            Debug

            -debug <tags>開啟/關閉指定tag的調試信息。

            <tags>是一個被空格/逗號/縱列所分割的調試組建名稱列表。更多信息參見-help-debug-tags

            -debug-<tag>開啟/關閉指定tag的調試信息。使用-help-debug-tags獲得您可以指定為<tag>的調試組件列表。

            -debug-no-<tag>關閉指定tag的調試信息。

            -logcat <logtags>打開指定tag的日志輸出。如果環境變量ANDROID_LOG_TAGS被指定且不為空,她的值將成為日志輸出的默認值。

            -shell創建一個擁有root權限的命令行窗口。即使模擬器的UI界面無法使用了,您依然可以使用命令行窗口。按Ctr-c鍵中斷模擬器運行。

            -shell-serial <device>打開具有root權限的腳本窗口。<device>必須是一個QEMU類型的設備。參見'serial -dev' http://www.bellard.org/qemu/qemu-doc.html#SEC10上關于設備類型的列表信息。這兒有一些例子:

            ·         -shell-serial stdio is identical to -shell

            ·         -shell-serial tcp::4444,server,nowait 讓您的shell可以通過4444端口通訊。

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

            ·         -shell-serial fdpair:0:1 uses the normal stdin and stdout fds, except that QEMU won't tty-cook the data.

            -show-kernel <name>顯示內核信息。

            -trace <name>Enable code profiling (press F9 to start), written to a specified file.

            -verbose開啟冗長輸出。Equivalent to -debug-init. 您可以定義ANDROID_VERBOSE環境變量作為冗長輸出參數。定義你想用到的參數,用逗號分割。這樣可以省略像-debug-<tags>這樣的參數。下面是一個設置ANDROID_VERBOSE的例子,它帶有-debug-init -debug-modem 參數:

            ANDROID_VERBOSE=init,modem更多信息參見<-help-debug-tags>.

            Media
            -audio <backend>
            使用指定的音頻后端。

            -audio-in <backend>使用指定的音頻輸入后端。

            -audio-out <backend>使用指定的音頻輸出后端。

            -noaudio在當前虛擬機實例中關閉音頻支持。

            -radio <device>重新定向收音機接口到本地的字節設備。

            -useaudio打開模擬器實例的音頻支持。默認為打開。

            Network

            -dns-server <servers>使用指定的DNS服務器。<servers>必須是以逗號分割,多于4個的服務器名或IP地址。

            -http-proxy <proxy>配置TCP連接使用HTTP/HTTPS代理。

            <proxy>必須符合以下格式:http://<server>:<port>

            http://<username>:<password>@<server>:<port> 前綴http://可以被忽略。如果-http-proxy <proxy>未被指定,模擬器將尋找http_proxy環境變量,并且自動尋找所有符號格式要求的<proxy> 值。

            -netdelay <delay>設置網絡延遲默認值為none。參見Network Delay Emulation中關于<delay>的值。

            -netfast快捷的 -netspeed full -netdelay none

            -netspeed <speed>指定模擬器網絡速度為<speed>.默認值為full。參見表格Network Speed Emulation 中的<speed>值。

            -port <port>指定模擬器網絡端口為<port>.控制臺端口號必須介于55545584之間,并且<port>+1必須留作ADB使用。

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

            tcp:<port>[,server][,max=<seconds>]

            unix:<port>[,server][,max=<seconds>]

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

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

            -gps <device>重定向NMEA GPS到字節設備。

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

            -nojniDalvik運行時關閉JNI檢查

            -qemu傳遞參數到qemu

            -qemu -h關閉qemu幫助。

            -radio <device>重定向錄音機模塊到制定的字符設備。<device>格式必須符合QEMU規定的序列設備。詳情參見http://www.bellard.org/qemu/qemu-doc.html#SEC10.

            -timezone <timezone>設定模擬器時區為<timezone>,替換為系統時區。<timezone>必須按照時區格式指定。比如:"America/Los_Angeles""Europe/Paris"

            -version顯示模擬器版本號。

            UI

            -dpi-device <dpi>修改模擬器的分辨率適配物理設備。默認值為165。參見-scale.

            -no-boot-anim關閉模擬器啟動時的動畫。禁用啟動動畫可以加快啟動速度。

            -no-window關閉模擬器的繪制窗口。

            -scale <scale>調整模擬器窗口。<scale> 是介于0.13的數字,它是調整屏幕的比例因子。您也可以指定一個DPI值,在添加dpi前綴的情況下。Auto參數告訴模擬器選擇自己最合適的尺寸。

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

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

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

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

            -onion-alpha <percent>指定onion皮膚透明值(百分比) 默認為50.

            -onion-rotation <position>指定onion皮膚旋轉。<position> 必須是 0, 1, 2, 3中的一個。

            -skin <skinID>啟動模擬器,搭配指定皮膚。

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

             

            posted on 2011-12-06 11:30 life02 閱讀(2966) 評論(0)  編輯 收藏 引用 所屬分類: android模擬器學習
            久久中文娱乐网| 亚洲va久久久噜噜噜久久 | 亚洲天堂久久精品| 久久久久久久久久久久久久| 久久天天躁狠狠躁夜夜2020| 久久国产成人亚洲精品影院| 丁香久久婷婷国产午夜视频| 99久久国产亚洲高清观看2024 | 2021国产精品久久精品| 亚洲欧美成人久久综合中文网| 色播久久人人爽人人爽人人片aV| 看全色黄大色大片免费久久久| 久久99精品国产麻豆蜜芽| 国产叼嘿久久精品久久| 国産精品久久久久久久| 日本亚洲色大成网站WWW久久| 日韩欧美亚洲国产精品字幕久久久 | 久久w5ww成w人免费| 日本精品久久久久中文字幕8| 精品久久久久国产免费| 亚洲国产精品成人久久蜜臀| 久久久久亚洲AV无码专区首JN| 少妇久久久久久久久久| 青青青国产精品国产精品久久久久| 精品久久久久久无码中文野结衣| 香蕉久久AⅤ一区二区三区| 国产69精品久久久久9999APGF| 99久久精品国产高清一区二区| 一级做a爱片久久毛片| www.久久精品| 精品久久久久久久久久中文字幕| 午夜精品久久久久久久无码| 久久人爽人人爽人人片AV| 久久亚洲精品视频| 狠狠色婷婷久久综合频道日韩| 久久er热视频在这里精品| 国产69精品久久久久APP下载 | 久久久无码精品亚洲日韩软件| 久久妇女高潮几次MBA| 99久久99久久精品国产| 精品国产乱码久久久久久呢|