為了測試網頁在不同Android版本的瀏覽效果,我想用Android SDK提供的模擬器跑不同版本Image,省去找實體機的麻煩。雖然最後因效果不佳放棄,但耗了大半天,多少對Android SDK、Eclipse多了一些了解,整理筆記以備日後不時之需:

  1. 一開始我是在Windows 2008 R2安裝ADT,使用SDK Manager下載好System Image,以Android 4.0.3為目標,成功啟動模擬器。但鑑於ARM版本速度不佳,而x86版硬體加速需要Intel Virtualization Technology(VT)支援,在我的Win2008R2已被Hyper-V佔用,便把腦筋動到另一台拿來跑iOS模擬器的iMac上,打算把Android模擬器的重任也交給它。
  2. Android 開發網站可以下載Mac版Eclipse,卻一啟動就觸礁,Eclipse抱怨沒有Java SE 6 Runtime可用:
  3. 下載安裝JDK 8,訊息依舊,爬文知道這是Oracle設下的陷阱JRE VM設定短缺所致,依文章指示,將Info.plist複製到~/Downloads,修改後複製回去(需sudo),缺少Java Runtime的問題即告排除。(PS:學會Command Line開文字編輯器的技巧,open –a TextEdit ~/Downloads/Info.plist)
  4. 閃過第一個陷阱,妖怪一號(史萊姆)登場。Eclipse未經簽署,需手動放行。

    找到「系統偏好設定/安全性與隱私」

    Mac直接列出放行Elipse的選項,很貼心。
  5. 開啟Eclipse後由Windows選單啟動Android SDK Manager,卻因公司防火牆偷換SSL憑證,Android SDK Manager認定憑證無效拒絕下載,理論上只需調整SDK Manager設定,不走HTTPS改用HTTP即可解決。妖怪二號(巴風特)上陣,我找不到Android SDK Manager的設定選單!
  6. 爬文找到密技,得從Shell下指令./android sdk開啟SDK Manager,才會出現偏好設定選單:
  7. SDK Manager下載好Intel x86 Emulator Accelerator (HAXMM Insatller)還要手動執行安裝。在Mac上以OSX 10.10為界,分成兩種不同版本,用的iMac是10.9,所以要執行sdk/extras/intel/Hardware_Accelerated_Execution_Manager/IntelHAXM_1.1.0_below_10.10.dmg (Windows的安裝程式是intelhaxm.exe,我的Windows 2008R2啟用了Hyper-V裝不了)
  8. 啟動模擬器時,記得要指定顯示尺寸。依原解析度,裝置一轉向常常下半截就超出電腦螢幕下緣,看不到拖不動捲不了。另外,Android模擬器沒有UI按鈕可以旋轉裝置,不少操作得透過快捷鍵
  9. 順利在Mac啟動4.0.3 Intel x86 Atom System Image模擬器,大魔王登場了-我無法在4.0.3模擬器執行Chrome?由於Android 4.0.3未內建Chrome瀏覽器,得自己設法安裝,在這裡卡了大半天, 以下是我嘗試的過程。
  10. 在網上找到在Android模擬器安裝Google Play商店的方法,照方煎藥真的成功哩!設好帳號進入Goolge Play,搜尋"Chrome"卻找不到Chrome瀏覽器項目。爬文找到修改Google Play篩選器的解法(篩選器會依據硬體、軟體、電信商決定使用者可以查詢及下載的App範圍),但要Unzip apk修改裝置識別資料,破解程序看似複雜,擔心一陷進去不知何年何月才能脫身(我只不過是想用模擬器跑Chrome讓專案測試簡便一點的Android麻瓜,並不想鑽進去當駭客啊~),放棄!
  11. 在APK4Fun可以找到Chrome Browser APK,下載後用adb install chrome-browser-38.0.2125.102-www.apk4fun.com.apk三兩下就裝好,可惜…

    執行後出現「找不到執行Chrome所需的重要功能;Chrome安裝程序可能未完成,或是Chrome與這個Android版本不相容。」錯誤,App自動結束。
  12. 在一篇文章找到說明:作者說在模擬器使用Chrome時常會遇到此一錯誤,建議改用Chromium,並寫了自動下載安裝的Script。試著下載安裝Content Shell及Chrome Shell,但一執行就閃退沒搞頭。
    爬文找到答案:Chromium is built for ARM, not x86, so it won't run on the x86 emulator unless you build it yourself for x86.
  13. 改用ARM(armeabi-v7a)版Image跑模擬器,安裝Chromium,終於能啟動Chrome Shell成功瀏覽網頁。如圖所示,Chromium的操作介面與Chrome有點出入,但二者核心相近,應可勉強頂著用:
  14. 抱著姑且一試的心情,在ARM版模擬器也裝上Chrome Browser APK,意外發現可以成功執行耶~
    之前遇到的「找不到執行Chrome所需的重要功能…」錯誤,看來也跟x86 vs ARM有關。

 

雖然成功在Android模擬器跑Chrome瀏覽器,短暫試用後還是打消了用模擬器測試的念頭,有幾個原因:

  1. ARM版模疑器實在太 慢 了!每一步操作後就是等等等,急驚風如我,操作個三分鐘就差不多到達人體極限,再多用兩分鐘,如果我沒把電腦砸爛,八成是因為中風了。
    另外,我還遇到等待網頁下載時性急在空白處多點一下,Chrome就直接跳到點選位置連結所指的下一頁,模擬器已經慢到觸控與顯示無法同步囉~
  2. 既然得改用ARM,我試著改在Windows 2008R2跑模擬器,結果慘不忍睹,三不五時就Crash或Not Responding… 多來個幾次,如果我沒把電腦砸爛,八成是因為中風了。
  3. 不管在Mac或Windows,操作常會被「很抱歉,系統UI已停止」的訊息打斷,很不流暢,多看上幾回,如果我沒把電腦砸爛,八成是因為中風了。

為了健康與效率,最後還是Android測試還是回歸實體機,忙了半天回到原點,唯一的收獲是Android模擬器與Mac經驗點數+1。

[2014-10-25更新]許多朋友強力推薦Genymotion,原本以為它基於VirtualBox只能跑x86,但似乎有解,但仍有跟Hyper-V搶Intel VT的問題待處理


Comments

# by 奶綠茶

黑暗老師可以試試這套 www.genymotion.com 目前市面上速度最快的android emulator

# by pcloverz24@gmail.com

http://www.mastitune.com/

# by Apk download

黑暗老師可以試試這套

# by osappsbox

Tomorrow is the last entry day. To all of the wonderful people whom I have had commented on their remarks and their comment's on mine. I thank you. I think the Blogs are great and what learning experiences we all get from each other's views. A true learning experience. I wish all of you best of luck, I will be envious if I don't win but such is life. The Dream Home 2016 is the Dream of a life time and I hope the winning family get to actually live in it. May God bless and keep all of you.

Post a comment