Android 4.0 SDK的離線方式安裝
之前曾經(jīng)在網(wǎng)上找過離線安裝SDK的方式,也成功下載過,都是在網(wǎng)址:
http://dl-ssl.google.com/android/repository/
后面跟上 類似于“android-1.6_r03-windows.zip“這樣的文件名來下載的。這個文件名的得來完全是依靠SDK描述文件
http://dl-ssl.google.com/android/repository/repository.xml
得來的,但是隨著android 4.0 SDK發(fā)布之后,這個文件內(nèi)容就被更改了,只剩下平臺工具和SDK工具了,真正核心的平臺和模擬器已經(jīng)看不到了。
其實SDK工具是精簡版本的SDK框架。只保留了工具,精簡掉了其他目錄結(jié)構(gòu)。但是本人認為還是SDK框架好。
因為本身較之SDK工具,體積大不了多少,但是解壓后自帶的目錄結(jié)構(gòu)可以讓你不用建立那些固定的文件夾了。
順便說一句,android 4.0 開發(fā)環(huán)境中要求的平臺工具和SDK框架都不一樣了。需要更新到新版本。目前最低版本要求為:
SDK Release 14: android-sdk_r14-[依操作系統(tǒng)而定].zip
platform-tools Release 8: platform-tools_r08-[依操作系統(tǒng)而定].zip
SDK框架可以在http://developer.android.com/SDK上直接下載。這里給出Windows操作系統(tǒng)下的SDK框架下載鏈接:
http://dl.google.com/android/android-sdk_r14-windows.zip
平臺工具可以從上文提到的repository.xml中找到,可以根據(jù)不同的開發(fā)操作系統(tǒng)分別下載,這里給出Windows操作系統(tǒng)下的平臺工具下載鏈接:
http://dl-ssl.google.com/android/repository/platform-tools_r08-windows.zip
先下載SDK框架,然后將其解壓,我把這個框架解壓到了D:\android-sdk-windows目錄下,如圖所示:

然后將平臺工具解壓到這個目錄,注意上圖中那個“platform-tools”目錄,這與壓縮包中的“platform-tools”目錄相對應(yīng)。
接下來就是最下載最重要的android 4.0的平臺了。剛才說到repository.xml文件內(nèi)容被官方修改了。那么如何找到最新以及以往的平臺包呢?
根據(jù)SDK Manager.exe啟動后的訪問記錄,我找到了這個新地址:
http://dl-ssl.google.com/android/repository/repository-5.xml
這就是保存最新以及以往平臺包的xml文件了。從文件里分析,得知4.0的平臺包下載路徑為:
http://dl-ssl.google.com/android/repository/android-14_r01.zip
其實我只從文件中找到了android-14_r01.zip,至于前面的路徑,我是通過嘗試以前版本的平臺包官方地址猜到的。可見官方的存儲結(jié)構(gòu)沒有發(fā)生變化。
下載完成后,直接將這個包解壓到上圖中的platforms文件夾下即可:

上圖中藍顏色的框內(nèi)就是新加入的android 4.0平臺。
完成這一步的時候,我就急于建立模擬器了。但是建立的時候發(fā)生錯誤,說找不到userdata.img。
然后我就將android 4.0平臺與其他版本的平臺進行對比,發(fā)現(xiàn)新版平臺中少了“images”目錄,我還自作聰明地從其他平臺中將文件拷貝出來貼到新平臺內(nèi)。
最后我發(fā)現(xiàn)根本不行,無法加載內(nèi)核數(shù)據(jù)。其實剛下載這個平臺的時候我就曾經(jīng)有過懷疑。
因為2.3.3官方發(fā)布的平臺包就已經(jīng)有81.5M了,而新版的平臺包怎么會少到43.92M呢?于是我就重新打開了SDK Manager去查找原因。
原來新版平臺中已經(jīng)將系統(tǒng)鏡像分離出來了,如下圖所示的藍色框。

因此我又返回了
http://dl-ssl.google.com/android/repository/repository-5.xml
在這個xml中尋找系統(tǒng)鏡像的下載地址,最后我找到了:
http://dl-ssl.google.com/android/repository/sysimg_armv7a-14_r01.zip
但是問題緊接著又來了。既然分離出來了,解壓之后放在哪里呢?我嘗試著和其它平臺一樣放到平臺內(nèi)的“images”目錄下,結(jié)果失敗了。
虛擬機創(chuàng)建了,但是半天啟動不起來。
后來,我想到了SDK Manager在啟動后會自我檢查哪些平臺裝了,哪些沒有裝。既然它能知道,那我為什么不分析一下它的行為呢?
說干就干,使用SysinternalsSuite中的Process Monitor工具對其進行監(jiān)視(SDK Manager套了一層exe的殼,實際上是用Java寫的,因此在進程中找不到SDK Manager.exe,而是應(yīng)該監(jiān)視java.exe)。后來經(jīng)過分析,我得出了真正應(yīng)該存放這個鏡像的目錄:
SDK目錄下 system-images\android-14\armeabi-v7a,如下圖所示:

刪掉之前創(chuàng)建的模擬器(因為總是啟動不起來,索性刪掉了),重新建立了android 4.0的模擬器,OK,大功告成!It works!
下面放上兩張模擬器的截圖:


最后總結(jié)一下體驗:也許是新版本發(fā)布的時候沒有經(jīng)過完全檢測。當系統(tǒng)語言設(shè)置為中文的時候,默認的谷歌輸入法總是崩潰。
因為系統(tǒng)提示谷歌輸入法意外退出,然后嘗試重新該服務(wù),啟動之后又崩潰,崩潰之后又啟動,如此循環(huán)反復。我一氣之下將輸入方法改成了英文就沒有這個提示了。
另外我建立的android 4.0模擬器(WVGA分辨率)開啟時占用內(nèi)存350M,CPU占用率也在30~50%之間。
我所使用的機器CPU為奔騰D雙核E5300 2.6GHz。本機內(nèi)存2GB。經(jīng)過同事實驗,當采用小分辨率的模擬器時,內(nèi)存占用差別并不大。
但是小分辨率模擬器運行流暢度較之大分辨率的要好很多。如果機器性能不是很好的話,建議用小分辨率的模擬器調(diào)試。
寫完這篇文章后,有朋友反映4.0模擬器中WXGA分辨率的模擬器無法使用的情況。我親自實驗后發(fā)現(xiàn)情況屬實,雖然能夠創(chuàng)建AVD,但點擊AVD Manager中的“Start”按鈕后無法啟動相應(yīng)的AVD。我發(fā)現(xiàn)要測試平板電腦的環(huán)境,可以使用分辨率為WSVGA分辨率的配置,這個AVD是可以啟動的。配置如下:

下面是兩張AVD啟動后的截圖:

