原 址:http://www.51testing.com/id-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//.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 的目錄, 將 /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//.android/ 找到你所建立的 avd 目錄; 如果是通过命令行的行式创建的,找到创建avd时的路径)
  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

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

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

順利執行模擬器畫面

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

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

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

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

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

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

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2011年5月12日
下一篇 2011年5月12日

相关推荐