UpdateAppUtils2.0
一行代碼,快速實現app在線下載更新 A simple library for Android update app
UpdateAppUtils2.0 特點
- Kotlin First,Kotlin開發
- 支持AndroidX
- 支持Md5簽名驗證
- 支持自定義任意UI
- 適配中英文
- 適配至Android9.0
- 通知欄圖片自定義
- 支持修改是否每次顯示彈窗(非強更)
- 支持安裝完成後自動刪除安裝包
效果圖
集成
repositories {
jcenter()
}
// Support
implementation 'com.teprinciple:updateapputils:2.0.0'
// AndroidX
implementation 'com.teprinciple:updateapputilsX:2.0.0'
使用
下面爲kotlin使用示例,Java示例請參考JavaDemo
1、快速使用
UpdateAppUtils
.getInstance()
.apkUrl(apkUrl)
.updateTitle(updateTitle)
.updateContent(updateContent)
.update()
2、多配置使用
// ui配置
val uiConfig = UiConfig().apply {
uiType = UiType.PLENTIFUL
cancelBtnText = "下次再說"
updateLogoImgRes = R.drawable.ic_update
updateBtnBgRes = R.drawable.bg_btn
titleTextColor = Color.BLACK
titleTextSize = 18f
contentTextColor = Color.parseColor("#88e16531")
}
// 更新配置
val updateConfig = UpdateConfig().apply {
force = true
checkWifi = true
needCheckMd5 = true
isShowNotification = true
notifyImgRes = R.drawable.ic_logo
apkSavePath = Environment.getExternalStorageDirectory().absolutePath +"/teprinciple"
apkSaveName = "teprinciple"
}
UpdateAppUtils
.getInstance()
.apkUrl(apkUrl)
.updateTitle(updateTitle)
.updateContent(updateContent)
.updateConfig(updateConfig)
.uiConfig(uiConfig)
.setUpdateDownloadListener(object : UpdateDownloadListener{
// do something
})
.update()
3、md5校驗說明
爲了保證app的安全性,避免apk被二次打包的風險。UpdateAppUtils內部提供了對簽名文件md5值校驗的接口;
首先你需要保證當前應用和服務器apk使用同一個簽名文件進行了簽名(一定要保管好自己的簽名文件,否則檢驗就失去了意義),
然後你需要將UpdateConfig 的 needCheckMd5 設置爲true,並在Md5CheckResultListener監聽中,監聽校驗返回結果。具體使用可參考
CheckMd5DemoActivity
UpdateAppUtils
.getInstance()
.apkUrl(apkUrl)
.updateTitle(updateTitle)
.updateContent(updateContent)
.updateConfig(updateConfig) // needCheckMd5設置爲true
.setMd5CheckResultListener(object : Md5CheckResultListener{
override fun onResult(result: Boolean) {
// true:檢驗通過,false:檢驗失敗
}
})
4、自定義UI
UpdateAppUtils內置了兩套UI,你可以通過修改UiConfig進行UI內容的自定義;
當然當內部UI模板與你期望UI差別很大時,你可以採用完全自定義UI
5、刪除已安裝APK
UpdateAppUtils在應用啓動時,通過對比當前應用和已下載apk的VersionCode是否相同來判斷已下載apk是否已安裝;
如果兩者VersionCode相同則認爲apk已經安裝,應被刪除。
// 在Application或者MainActivity中調用,以達到安裝成功啓動後刪除已安裝apk
UpdateAppUtils.getInstance().deleteInstalledApk()
Demo體驗
demo.png