Android應用的自動公升級 更新模組的實現

2021-08-31 15:06:31 字數 3722 閱讀 7155

我們看到很多android應用都具有自動更新功能,使用者一鍵就可以完成軟體的公升級更新。得益於android系統的軟體包管理和安裝機制,這一功能實現起來相當簡單,下面我們就來實踐一下。首先給出介面效果:

1. 準備知識

在androidmanifest.xml裡定義了每個android apk的版本標識:

view plain

copy to clipboard

print?

<

manifest

xmlns:android

=""package

android:versioncode

="1"

android:versionname

="1.0.0"

>

<

>

>

manifest

>

其中,android:versioncode和android:versionname兩個字段分別表示版本**,版本名稱。versioncode是整型數字,versionname是字串。由於version是給使用者看的,不太容易比較大小,公升級檢查時,可以以檢查versioncode為主,方便比較出版本的前後大小。

那麼,在應用中如何讀取androidmanifest.xml中的versioncode和versionname呢?可以使用packagemanager的api,參考以下**:

view plain

copy to clipboard

print?

public

static

intgetvercode(context context)catch(namenotfoundexception e)   

returnvercode;  

}public

staticstring getvername(context context)catch(namenotfoundexception e)   

returnvername;     

}  view plain

copy to clipboard

print?

public

staticstring getvername(context context)   

view plain

copy to clipboard

print?

public

static

string vername = context.getresources()  

return vername;  

}  

2. 流程框架

3. 版本檢查view plain

copy to clipboard

print?

然後,在手機客戶端上進行版本讀取和檢查:

view plain

copy to clipboard

print?

private

booleangetserverver ()catch(exception e)   

}  }catch(exception e)   

return

true;  

}  private boolean getserverver () catch (exception e) } } catch (exception e) return true; }

比較伺服器和客戶端的版本,並進行更新操作。

view plain

copy to clipboard

print?

if(getserververcode())else

}          

if (getserververcode()) else }

詳細方法:

view plain

copy to clipboard

print?

private

voidnotnewversionshow()   

}).create();// 建立

// 顯示對話方塊

dialog.show();  

}private

voiddonewversionupdate()   

})  

.setnegativebutton("暫不更新"

,  

newdialoginte***ce.onclicklistener()   

}).create();// 建立

// 顯示對話方塊

dialog.show();  

}  

view plain

copy to clipboard

print?

voiddownfile(finalstring url)   

}  }  

fileoutputstream.flush();  

if(fileoutputstream !=null)   

down();  

}catch(clientprotocolexception e)catch(ioexception e)   

}  }.start();  

}  void downfile(final string url) } } fileoutputstream.flush(); if (fileoutputstream != null) down(); } catch (clientprotocolexception e) catch (ioexception e) } }.start(); }

view plain

copy to clipboard

print?

voiddown()   

});  

}  void down() }); }    

5. 安裝應用

view plain

copy to clipboard

print?

voidupdate()   

Android 應用公升級

獲取版本 public void setversions context context catch packagemanager.namenotfoundexception n public void shownoticedialog context context setnegativebutt...

Android應用的自動公升級 更新模組的實現

出處 我們看到很多android應用都具有自動更新功能,使用者一鍵就可以完成軟體的公升級更新。得益於android系統的軟體包管理和安裝機制,這一功能實現起來相當簡單,下面我們就來實踐一下。首先給出介面效果 1.準備知識 在androidmanifest.xml裡定義了每個android apk的版...

Android自動檢測版本及自動公升級

步驟 1.檢測當前版本的資訊androidmanifest.xml manifest android versionname。2.從伺服器獲取版本號 版本號存在於xml檔案中 並與當前檢測到的版本進行匹配,如果不匹配,提示使用者進行公升級,如果匹配則進入程式主介面。效果圖 獲取當前程式的版本號 獲取...