關於Android軟體更新

來源:互聯網
上載者:User

關於軟體更新的問題,簡單的說一下。

首先軟體更新需要判斷是否需要更新。如果需要更新,需要擷取更新的連結。我們可以把這個看成一個簡單的系統。需要用戶端請求和服務端相應。     為了簡單起見我們將服務端就只放一個簡單的XML檔案,XML檔案包含了最新的用戶端版本號碼(這裡盡量採用版本號碼,因為版本號碼是Int型的便於比較)和最新版APK的。

1 <update>
2 <version>2</version>
3 <url>http://www.youdoman.com/apk.apk</url>
4 </update>

這樣簡單的伺服器端就可以了。    

用戶端只需要讀取此xml,並通過sax解析。然後擷取用戶端的版本號碼跟從網路中讀取的最新版本號碼做比較,如果用戶端的版本號碼跟伺服器端的版本號碼不同則需要更新,調用系統Intent下載更新APK即可。

 1 //擷取軟體系統版本號碼
2 public class AppStatus {
3 protected static int getAppVersionId(Context ctx) {
4 try {
5 return ctx.getPackageManager().getPackageInfo(ctx.getPackageName(),0).versionCode;
6 } catch (NameNotFoundException e) {
7 // TODO Auto-generated catch block
8 return -1;
9 }
10 }
11 }

有的時候,我們可能需要擷取手機系統的一些資料,用來選擇相應的更新資料或者統計一些資料。擷取的資料越多,也就越利於我們給使用者提供更準確的更新選擇。

 1 public class PhoneStatus {
2 //擷取手機的IMEI號
3 protected String getImei(Context ctx){
4 TelephonyManager telephonyManager=(TelephonyManager) ctx.getSystemService(Context.TELEPHONY_SERVICE);
5 return telephonyManager.getDeviceId();
6 }
7 //獲得手機型號
8 protected String getModel(Context ctx) {
9 return android.os.Build.MODEL;
10 }
11 //獲得系統韌體版本
12 protected String getTarget(Context ctx) {
13 return android.os.Build.VERSION.RELEASE;
14 }
15 //獲得系統韌體版本號碼
16 protected String getSDK(Context ctx) {
17 return android.os.Build.VERSION.SDK;
18 }
19 }

拿到了這些資料我們只要交給伺服器,伺服器可以通過詳細資料判斷來決定返回的資料資訊。 拿到新版本apk的url後就可以通過系統Intent來下載安裝APK。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.