Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1564284
  • 博文数量: 237
  • 博客积分: 5139
  • 博客等级: 大校
  • 技术积分: 2751
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-18 14:48
文章分类

全部博文(237)

文章存档

2016年(1)

2012年(4)

2011年(120)

2010年(36)

2009年(64)

2008年(12)

分类: 嵌入式

2011-05-22 18:01:08

原网址:

模拟器的划屏或者横竖屏切换是Ctrl+F11


開發者最頭痛的莫過於程式在 上找不到, 偏偏這問題又無法在自個兒的開發手機上重現, 再加上 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 目錄下. 使用者可以在 C:\Documents and Settings\\.android\ 找到你所建立的 avd 目錄, Mac 使用者則可在 ~/.android/avd 找到.
  4. 最後啟動 Emulator, 開機後輸入 帳號相關資料, 即可快樂使用 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, 导致开启emulator后,用 df 查看 free space 都是 0. 所以在启动emulator时, 得加上 -partition-size 96 产生free space 塞档案. (emulator -avd android_2.1 -partition-size 96)
  3. Emulator 不会启动 Google check in service, 少了它便无法登陆Google账号, 所以得先启动emulator, 通过adb pull /system/build.prop , 将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, 也许大功告成 ! 如果在用已有的google account登录的时候出现“can't open”的问题,则adb pull /etc/hosts, 然后添加或改动,gmail的地址到hosts中去,重新启动一般就可以了

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

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




在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.至此程式,將之解壓縮後,存放至SDK資料夾(舉例如下):
(也可以拿个2.2平台的手机,从手机中将这两个文件拷贝出来)

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 - 点睛
阅读(1383) | 评论(0) | 转发(0) |
0

上一篇:JAVA反射机制

下一篇:Android package name

给主人留下些什么吧!~~