Android模擬器中Android 4.1 API Level 16的映象安裝Google Play Services服務
最近做一些國外的Android小APP開發,遇到了適配Android版本的問題。但是開發出來的APP一般都習慣上選擇最小相容版本16,也就是Android4.1。但是用到google地圖等api的時候,在android 5.0(API 21)之後總是沒有問題,但是19以及以下就不行。 經過各種試錯之後終於解決了。
-1 基礎條件
你需要有VPN,如果沒有VPN,那就安裝google空間之類的APP,也應該可以解決。
0 選擇Device
新建虛擬裝置的時候,有一些裝置上是帶有“Play Store”標識的。
使用這些裝置的時候,如果你選了帶有Play的系統映象,例如下面 那麼可以通過模擬器的工具欄更多圖示
開啟模擬器的控制面板,這個時候會有 通過這裡可以升級Google Play.
但是帶有Google Play的映象最低版本也是API 24,也就是Android 7.0,所以這對我們要測試相容Android 4.1的人來說沒有用。
1 選擇映象
首先,建立虛擬機器的時候要選擇映象。這個時候嚮導是有提示的。
-
在X86的主機上不要選其他CPU型別的映象,因為實在是太慢了。畢竟Android SDK裡自帶了Intel的加速器,別的型別的CPU實在是不行。嘗試了一下,真正找到了第一次學Android開虛擬機器的感覺。
-
然後嚮導推薦,如果你要使用Google API(也就是Google地圖API這些)最好選擇帶Google APIs的映象。看下圖,不帶Google APIs和帶有Google APIs的映象。
這個事情就是比較坑的存在了。因為帶Google APIs的映象自帶的Google APIs也就是Google Play Servieces的版本是按照作業系統走的。Android 4.1中的Google Play Services的版本是9.x。 這樣導致我現在Android Studio推薦的Google Map版本是16.0.0,但是在帶有Google APIs的Android 4.1映象系統中跑不起來,總是提示升級。需要吧Google Map版本降低到9.2.0才可以正常顯示地圖。但是又少了幾個程式碼中的介面。 雖然少的不是關鍵介面,做得技巧一些也沒有問題。但是氣啊! 然帶有Google APIs的映象把Google Play Services安裝成了系統服務。你手工安裝的時候會報簽名不對。 所以,想要在模擬器上測試最新的google地圖,就要選擇沒有Google APIs的映象,然後自己裝。
2 安裝Google Play Services
2.1 依賴關係
Google Play Services是依賴Google Services Framework的,所以要先安裝Framework。
2.2 下載APK
這裡介紹一個網站:apkmirror.com 我的各種安裝包就是在這裡下的。
因為Android 4.1不支援Android商店的協議,所以沒法通過web的Play Store安裝,只能自己下APK安裝。
2.3 安裝APK
我的Android 4.1還無法識別SD卡,也懶得弄了,直接用ADB安裝的。
adb devices adb root //這步可能可以省略 adb install -r 要安裝的APK
之後就一切正常了。第一次進入地圖的時候,可能會看見一個Play Services的升級頁面,有可能會報Play Services已經停止的錯誤。關掉APP重進入APP就好了。
end