Android 自動(dòng)更新 SDK快速開(kāi)始本文檔幫助您以最快速最簡(jiǎn)潔的方式集成使用自動(dòng)更新組件。 1. 導(dǎo)入SDK所需jar包下載最新版SDK的zip包,將其中的libs文件夾合并到本地工程libs子目錄下。 Eclipse用戶右鍵工程根目錄,選擇Properties -> Java Build Path -> Libraries,然后點(diǎn)擊Add External JARs... 選擇指向jar的路徑,點(diǎn)擊OK,即導(dǎo)入成功。
注意 Eclipse ADT 17 以上版本用戶,不要通過(guò)上述步驟手動(dòng)添加jar包引用。請(qǐng)?jiān)诠こ棠夸浵陆ㄒ粋€(gè)文件夾libs,把jar包直接拷貝到這個(gè)文件夾下,再在Eclipse里面刷新一下工程就好了。詳情請(qǐng)參考Dealing with dependencies in Android projects.
libs目錄下的libs/armeabi/libbspatch.so文件是用于支持增量更新功能的庫(kù)文件,也需要在eclipse中添加。
2. 添加資源文件將SDK提供的res文件夾拷入工程目錄下, 和工程本身res目錄合并。請(qǐng)不要隨便刪除其中的文件。 提示 友盟SDK提供的資源文件都以umeng_開(kāi)頭。
3. 配置AndroidManifest.xml3.1 打開(kāi)AndroidManifest.xml,添加SDK需要的權(quán)限到<manifest>標(biāo)簽下: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
android.permission.WRITE_EXTERNAL_STORAGE 權(quán)限允許將下載的apk保存到sd卡中。
android.permission.ACCESS_NETWORK_STATE 權(quán)限允許檢查網(wǎng)絡(luò)狀態(tài),從而根據(jù)不同網(wǎng)絡(luò)環(huán)境決定何種下載策略,務(wù)必添加該權(quán)限。
3.2 添加APPKEY和渠道到<application>標(biāo)簽下: (如果已經(jīng)集成了統(tǒng)計(jì)SDK等友盟其他服務(wù),不需要重復(fù)添加APPKEY) <meta-data android:value="YOUR APP KEY" android:name="UMENG_APPKEY"/>
<meta-data android:value="Channel ID" android:name="UMENG_CHANNEL"/>
UMENG_APPKEY:用來(lái)定位該應(yīng)用的唯一性,用您該應(yīng)用的UMENG APPKEY,替換value中的"YOUR APP KEY"。 UMENG_CHANNEL:用來(lái)標(biāo)注應(yīng)用推廣渠道,不同渠道可以上傳不同更新包,您可以使用20位以內(nèi)的英文和數(shù)字為渠道定名,替換value中的"Channel ID"。如果不改動(dòng),將代表默認(rèn)渠道。 渠道ID 請(qǐng)參考第5節(jié)如何上傳APK。
3.3 添加Service和Activity到<application>標(biāo)簽下: (請(qǐng)注意:v2.4的SDK中,對(duì)話框改為Activity實(shí)現(xiàn)) 注意 com.umeng包名可能有變,如果不能下載,請(qǐng)檢查包名,替換成正確的包名。
<service
android:name="com.umeng.update.net.DownloadingService"
android:process=":DownloadingService" >
</service>
<activity
android:name="com.umeng.update.UpdateDialogActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar" >
</activity>
4. 調(diào)用更新接口主要應(yīng)用場(chǎng)景:最常見(jiàn)的自動(dòng)更新模式,當(dāng)用戶進(jìn)入應(yīng)用首頁(yè)后,如果處于wifi環(huán)境則檢測(cè)更新,如果有更新,彈出對(duì)話框提示有新版本,用戶點(diǎn)選更新開(kāi)始下載更新。 在應(yīng)用程序入口Activity里的OnCreate() 方法中調(diào)用 public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
UmengUpdateAgent.update(this);
注意 考慮到用戶流量的限制,目前我們默認(rèn)在Wi-Fi接入情況下才進(jìn)行自動(dòng)提醒。如需要在任意網(wǎng)絡(luò)環(huán)境下都進(jìn)行更新自動(dòng)提醒,則請(qǐng)?jiān)?code style="margin: 0px; padding: 2px 4px; outline: 0px; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; color: rgb(221, 17, 68); font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; background-color: rgb(247, 247, 249); border: 1px solid rgb(225, 225, 232); white-space: nowrap;">update調(diào)用之前添加以下代碼:UmengUpdateAgent.setUpdateOnlyWifi(false)。 特別提示:針對(duì)機(jī)頂盒等可能不支持或者沒(méi)有無(wú)線網(wǎng)絡(luò)的設(shè)備, 請(qǐng)同樣添加上述代碼。
API:public static void update(Context context)
v2.4版本之后的SDK中,您可以傳入當(dāng)前Activity的Context,也可以傳入Application的Context。 5. 上傳最新的APK如果開(kāi)發(fā)者已經(jīng)有了最新的APK版本,只要上傳到友盟網(wǎng)站,同時(shí)客戶端版本的版本號(hào)(VersionCode)小于上傳的最新版本,客戶端在啟動(dòng)時(shí)就會(huì)有更新提示。 上傳位置:登錄友盟開(kāi)發(fā)者后臺(tái),在左上角選擇應(yīng)用后,右邊可以看到統(tǒng)計(jì)分析、組件、管理三部分。點(diǎn)擊組件,左側(cè)就會(huì)出現(xiàn)自動(dòng)更新條目。請(qǐng)點(diǎn)擊進(jìn)入,即可找到上傳的入口。 注意 上傳APK前,請(qǐng)檢查其VersionCode是否大于舊版本的。 新版本與老版本的簽名要保持一致,否則安卓系統(tǒng)將會(huì)提示安裝失敗,無(wú)法升級(jí)。 如果需要按渠道更新,需要集成友盟統(tǒng)計(jì)SDK,在設(shè)置了上述3.2中的渠道ID之后,才能夠在“統(tǒng)計(jì)分析”-“管理”-“渠道”中看到對(duì)應(yīng)的渠道ID,然后才能在自動(dòng)更新服務(wù)中使用。
6. 集成檢測(cè)v2.4版本以后的SDK中默認(rèn)開(kāi)啟了集成檢測(cè)功能,在調(diào)用任意的更新接口后,我們將替您自動(dòng)檢查上述集成過(guò)程中2、3兩個(gè)步驟是否被正確完成。 如果正確完成不會(huì)出現(xiàn)任何提示,否則會(huì)以如下的toast提示您。 你可以通過(guò)調(diào)用UmengUpdateAgent.setUpdateCheckConfig(false)來(lái)禁用此功能。 toast的含義如下: "Please copy all resources (res/) from SDK to your project!":請(qǐng)檢查是不是把res文件夾下所有的資源文件都放到了工程中。 "Please add Permission in AndroidManifest!":請(qǐng)檢查上述步驟3.1中的相關(guān)權(quán)限是否正確添加。 "Please add Activity in AndroidManifest!":請(qǐng)檢查上述步驟3.3中的Activity是否正確添加。 "Please add Service in AndroidManifest!":請(qǐng)檢查上述步驟3.3中的Service是否正確添加。 "Please set umeng appkey!":請(qǐng)檢查上述步驟3.2中的APPKEY是否正確添加。
技術(shù)支持在完成上面的步驟之后,在您的終端上啟動(dòng)應(yīng)用,就可以看到彈出的自動(dòng)更新提示對(duì)話框。 如果有異常,請(qǐng)把您的問(wèn)題發(fā)郵件至msg-support@umeng.com或者聯(lián)系企業(yè)QQ:800083942,我們會(huì)盡快回復(fù)您。 如果可以附上相關(guān)日志,我們可以更好的幫助您解決問(wèn)題,可以通過(guò)加入這句代碼UpdateConfig.setDebug(true);來(lái)打開(kāi)日志輸出,發(fā)布應(yīng)用時(shí)請(qǐng)去掉。
|