android 模拟器安装软件市场(转载)

原网址:http://www.51testing.com/?uid-49689-action-viewspace-itemid-217077

Android 開發者最頭痛的莫過於程式在 Market 上找不到, 偏偏這問題又無法在自個兒的開發手機上重現, 再加上 Programmer 都很窮 (?) 沒法把出問題的手機通通買回來測, 最後只好忍痛放棄那些殷殷企盼的使用者. 當然網路上有不少這類問題的解法, 痛過一次之後身體就會牢牢記住那些地雷, 似乎往後也沒有厚著臉皮到處借錢買手機的必要. 俗話說工欲善其事, 必先利其器, 如果有便宜又好用的方法可以測試自己的程式, 那再好不過. 小的在這邊提供一個很簡單又便宜的方法讓開發者可以反覆的測, 直到網路斷線為止.

  1. 由於最常出問題的是 Donut 版本 (1.6) 與 QVGA, 所以請先在電腦上安裝 1.6 SDK, 並建立一個 QVGA 的 avd.
  2. 接著到HTC Developer 網站抓Android Dev Phone 1 的 1.6 System Image (目前的檔名是 signed-dream_devphone_userdebug-img-14721.zip)
  3. 解開下載的 image 將 system.img 放在 avd 目錄下. Windows 使用者可以在 C:/Documents and Settings/<user>/.android/ 找到你所建立的 avd 目錄, Mac 使用者則可在 ~/.android/avd 找到.
  4. 最後啟動 Emulator, 開機後輸入 Google 帳號相關資料, 即可快樂使用 Donut 的 Market.
1.5 也可以用類似的方法, 至於 2.0 之後 ? 我再找找.. :-


在2.1上的安装方法

1.5, 1.6 之前的版本可以參考上一篇 文章 , 這邊提供 2.1 的方法, 其實只要 GMS 有修改, 使用方式都會不太一樣, 不過原理大同小異. :-)

要在 Emulator 上跑 Android Market 有幾點要注意:

  1. 首先要有相對映版本的 Google Android Mobile Service, 通常網路上可以找得到 (GoogleBits-sdk7)
  2. Emulator 的 default partition size 似乎是 66MB, 但是後來的版本 system.img 都超過這個 size, 導致開啟後用 df 查看 free space 都是 0. 所以在啟動 emulator 時, 得加上 -partition-size 96 產生 free space 塞檔案.
  3. Emulator 不會啟動 Google check in service, 少了它便無法登錄 Google 帳號, 所以得先啟動 emulator, 透過 adb pull /system/build.prop 將設定檔案取回, 將 ro.config.nocheckin=yes 這行移除, 再依照後面提到的步驟放回去.

做好前述步驟, 便可開始進行下一階段工作 .

 

  1. 切換至 avd 的目錄, 將 <sdk_dir>/platforms/android-7/images/system.img 複製過來, 印象中不這麼做資料無法寫入, 而且萬一做錯了得重新 Download 一份 SDK 才能救回, 所以保險起見還是分開使用.
  2. 啟動 Emulator, 別忘了加上 -partition-size 96 這個參數.
  3. 此時可以開啟 ddms 觀察是否啟動完全 (log 停止不再吐出來) 接著執行 adb remount 讓 system partition 可以寫入資料.
  4. 將先前修改的 build.prop 塞回去: adb push build.prop /system/
  5. 解開 Googlebits 那包壓縮檔, 將 system 目錄下列檔案塞入 Emulator 裡
  6. adb push etc/permissions/com.google.android.datamessaging.xml /system/etc/permissions/
    adb push etc/permissions/com.google.android.gtalkservice.xml /system/etc/permissions/
    adb push framework/com.google.android.gtalkservice.jar /system/framework/
    adb push app/EnhancedGoogleSearchProvider.apk  /system/app
    adb push app/GoogleCheckin.apk /system/app
    adb push app/GoogleApps.apk  /system/app
    adb push app/gtalkservice.apk  /system/app
    adb push app/SetupWizard.apk  /system/app
    adb push app/Vending.apk  /system/app
    adb push app/TalkProvider.apk  /system/app
  7. 將 SdkSetup.apk (adb shell rm /system/app/SdkSetup.apk)移除, 這樣重開後就會直接執行 SetupWizard
  8. 關閉 Emulator.
  9. 刪除 cache.img 與 userdata-qemu.img (如果你的avd是通过SDK创建的,C:/Documents and Settings/<user>/.android/ 找到你所建立的 avd 目錄; 如果是通过命令行的行式创建的,找到创建avd时的路径<avd_dir>)
  10. 重新啟動 Emulator, 大功告成 !

啟動後會出現 SetupWizard, 登入 Google 帳號後即可使用 Android Market ! :D

2010-06-17 Updated: 2.2 的作法似乎更簡單, 首先可以從MoDaCo 的論壇 上找一下Froyo 的 ROM , 接下來步驟同前述, 第 5 步裡面塞的 apk 換成 GoogleServicesFramework.apk 與 Vending.apk 即可 ! 看來 dependency 沒這麼複雜囉..


GoogleBits-sdk7-v1.7-signed.zip

在SDK 2.2模擬器中安裝Market


1. 建立AVD,名稱為DAVID_2.2

android 模拟器安装软件市场(转载) - fanwei51880 - 点睛

2. 執行「開始—執行—cmd」,預設會在這個資料夾:
C:/Documents and Settings/%HOME%>

3. 切換目錄至「.android/avd/DAVID_2.2」,指令參考如下:

C:/Documents and Settings/David.Lanz>cd .android
C:/Documents and Settings/David.Lanz/.android>cd avd
C:/Documents and Settings/David.Lanz/.android/avd>cd DAVID_2.2.avd

畫面結果:

C:/Documents and Settings/David.Lanz/.android/avd/DAVID_2.2.avd>

android 模拟器安装软件市场(转载) - fanwei51880 - 点睛

4.複製SDK裡的system.img至此,指令如下:

copy d:/sdk/android/platforms/android-8/images/system.ing

android 模拟器安装软件市场(转载) - fanwei51880 - 点睛

5.在DOS視窗中切換目錄至SDK的tools資料夾,手動啟動模擬器,指令:

cd d:/sdk/android/tools/
emulator -avd DAVID_2.2 -partition-size 96

android 模拟器安装软件市场(转载) - fanwei51880 - 点睛

順利執行模擬器畫面

android 模拟器安装软件市场(转载) - fanwei51880 - 点睛

6.在DOS視窗裡執行指令,取出build.prop檔案。

adb pull /system/build.prop

android 模拟器安装软件市场(转载) - fanwei51880 - 点睛

7.利用文字編輯器開啟編輯build.prop這個檔案,將 ro.config.nocheckin=yes 移除(再最前面加上 mark 符號 #)

android 模拟器安装软件市场(转载) - fanwei51880 - 点睛

8.將剛才取出修改好的檔案存檔,然後執行以下指令將檔案放回去。

adb remount
adb push build.prop /system

android 模拟器安装软件市场(转载) - fanwei51880 - 点睛

9.至此下載Froyo用的Market 程式,將之解壓縮後,存放至SDK資料夾(舉例如下):

D:/SDK/android/tools/GoogleServicesFramework.apk
D:/SDK/android/tools/Vending.apk

android 模拟器安装软件市场(转载) - fanwei51880 - 点睛

10.將步驟9的兩個apk檔案丟入模擬器/system/app資料夾,並刪除SdkSetup.apk,指令如下:

adb push GoogleServicesFramework.apk /system/app
adb push Vending.apk /system/app
adb shell rm /system/app/SdkSetup.apk

android 模拟器安装软件市场(转载) - fanwei51880 - 点睛

11.關閉 Emulator (直接關閉模擬器的視窗即可)。

12.切換目錄至avd的資料夾下:
C:/Documents and Settings/%HOME%/.android/avd/DAVID_2.2.avd>

執行以下指令,刪除由系統產生的「userdata-qemu.img」與「userdata.img」、「cache.img 」這三個檔案刪除,讓Emulator完成初始化。

del userdata*.img cache.img

android 模拟器安装软件市场(转载) - fanwei51880 - 点睛

13.執行「Android SDK and AVD Manager」來啟動模擬器。

android 模拟器安装软件市场(转载) - fanwei51880 - 点睛

android 模拟器安装软件市场(转载) - fanwei51880 - 点睛

android 模拟器安装软件市场(转载) - fanwei51880 - 点睛

大功告成,Market順利在模擬器裡執行。第一次執行Market必須要以google帳號登入,登入後即可下載程式囉。

android 模拟器安装软件市场(转载) - fanwei51880 - 点睛

android 模拟器安装软件市场(转载) - fanwei51880 - 点睛

android 模拟器安装软件市场(转载) - fanwei51880 - 点睛

後記:不知為何,我的Home在模擬器失靈了?晚些再來研究看看。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值