Android實現APP在線下載更新

2021-02-14 鴻洋

作者:Teprinciple

連結:http://www.jianshu.com/p/c089e222f820

本文由作者授權推送。

項目地址:

https://github.com/teprinciple/UpdateAppDemo

現在的android應用app會隔一段時間發布一個新的版本,當你打開某個app,如果有最新的版本,會提醒你是否下載更新。本文利用android自帶的下載管理器DownloadManager進行下載最新版本的apk,下載完成後自動跳轉安裝。

效果如下:

通過獲取當前app版本號與伺服器上的版本號進行對比,如果本地的版本號低於伺服器版本號,則彈出提示框:發現新版本,是否下載更新。

通過Android自帶的DownloadManager下載管理器,下載伺服器上最新版的apk。下載完成後會發送下載完成的廣播。

注意添加權限:

<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />


通過廣播接收者,接收到下載完成後發出的廣播,跳轉到系統的安裝界面,進行安裝。

注意需要在AndroidMainfest.xml中註冊receiver:

** 通過上面三步就可以快速實現APP的在線更新 。**

項目地址:

https://github.com/teprinciple/UpdateAppDemo

更新改進說明


本項目進行了比較大的改進。主要改進之處:


1、將以前的Library發布到Jcenter,更方便集成

dependencies {    compile 'com.teprinciple:updateapputils:1.1'}

2、新增更新判斷方式以及apk下載方式

3、簡化API使用

UpdateAppUtils.from(this)    .serverVersionCode(2)  //伺服器versionCode    .serverVersionName("2.0") //伺服器versionName    .apkPath(apkPath) //最新apk下載地址    .update();

小tip:

如果擔心DownloadManager被系統閹割,可以自己實現下載模塊,這裡也給大家推薦一個非常優秀的下載庫。

https://github.com/lingochamp/FileDownloader

Android 文件下載引擎,穩定、高效、靈活、簡單易用

如果你有想學習的文章直接留言,我會整理徵稿。如果你有好的文章想和大家分享歡迎投稿,直接向我投遞文章連結即可。

歡迎長按下圖->識別圖中二維碼或者掃一掃關注我的公眾號:

相關焦點

  • Android app 在線更新那點事兒(適配Android6.0、7.0、8.0)
    一、前言app在線更新是一個比較常見需求,新版本發布時,用戶進入我們的app,就會彈出更新提示框,第一時間更新新版本app。因此,會出現各種的適配問題,因此本文就總結一下app 在線更新方法和遇到的一些適配問題。
  • Android實現版本更新模塊
    目前該模塊只支持直接下載 還有很多需要優化的地方 比如增量更新 斷點下載 本地文件校驗等
  • 簡單實現Android APP自動更新
    一般的安卓app都有自動更新功能,實現app的更新,以讓用戶體驗新版本的功能,這裡也是項目中用到的,今天就來總結一下,代碼應該有點多
  • Android實現版本更新功能
    進行網絡請求 , 後期會使用其它網絡請求優化,這篇注重邏輯的實現。現在版本更新有兩種處理方式了:1、跳轉到App應用市場(例如:應用寶、豌豆莢等等),通過應用市場下載更新安裝。2、在App內進行Apk下載,下載完成後更新安裝。
  • 簡單高效的實現 Android App 全局字體替換
    <style name="customfontstyle" parent="@android:style/TextAppearance.Small">    <item name="android:fontFamily">@font/lobster</item></style>在你的App的Theme中配置此屬性即可實現整個
  • Android APP打開另一個APP完整邏輯實現
    當然整個實現思路挺感興趣就了解一下。先說說需求拉起另一個APP是為了方便統一使用管理,有些公司APP較多,部分人只需要用到部分APP,需要用到時就下載。市面上比較流行的解決辦法,第一個就是現在說的新開發一個管理型APP,其他APP需要時再下載,運用時拉起,另一個就是插件化,直接將多個APP合成一個APP,這個感興趣也可以了解一下。二丶效果圖
  • Android App Widgets組件詳解
    2) 實現 AppWidgetProvider 類在 AppWidgetProvider 類中定義了一系列方法,這些方法允許開發者以編程的方式和自己的 App Widget 進行交互,這種交互基於廣播事件。當 App Widget 的狀態發生改變,例如更新、啟用、禁用和刪除的時候,你都會接收到相應的廣播通知。
  • 成為 Android App Bundle 專家 | MAD Skills
    https://medium.com/androiddevelopers/answers-to-common-questions-about-app-signing-by-google-play-b28fef836af0https://developer.android.google.cn/studio/publish/app-signinghttps://support.google.com
  • Android+SpringBoot+Vue實現安裝包前臺上傳,後臺管理,移動端檢測自動更新
    後臺提供app版本的管理的上傳接口和增刪改查的接口以及檢測最新版本的接口。app在啟動後會首先調用檢測最新版本的接口,獲得最新版本的相關信息,如果最新版本的版本號大於當前應用的版本號則提示是否更新,點擊更新後則會後後臺提供的下載接口去下載最新的安裝包並安裝。
  • 重要變更: Android App Bundle 的未來計劃
    https://developer.android.google.cn/platform/technology/app-bundlehttps://developer.android.google.cn/stories/apps/adobe-app-bundlehttps://developer.android.google.cn/stories/apps/duolingohttps://developer.android.google.cn
  • 免費在線製作app
    國外的Appmakr網址:http://www.appmakr.com/現在也已經支持中文了,AppMakr的使用相當簡單,只要登錄網站,註冊一個帳戶,拖動滑鼠定製一些簡單的按鈕與欄目,確定好版面顏色,在編輯器右側的模擬器中看好預覽效果,再生成應用就行了。
  • 更新您的 widget 以適配 Android 12
    Android 12 更新了已有的 Widget API,重塑了微件的設計來契合 "Material You" 設計語言。這些更新可以幫助您使用設備的主題顏色和圓角來構建更加美觀的微件,從而提升微件在搜索和擺放時的可發現性和視覺觀感。△ 對比更新之前 (Android 11) 和更新後的淺色和深色主題 (Android 12)在這個系列中,我們將帶您更新微件來適配 Android 12。
  • Android 從 Web 喚起 APP
    -- 需要添加下面的intent-filter配置 --> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT
  • Android實現條形碼與二維碼掃描
    有個二維碼是目前移動端和webAPP 常用是一種和用戶的交互方式,常用在社交,支付,電商app中,本文介紹實現條形碼與二維碼掃描。
  • Android APP安全測試入門
    BlueStacks下載地址:1http://www.bluestacks.net.cn/Download/安裝的時候會提示安裝」給力助手」,給力助手是輔助操作的,可以安裝電腦上下載的app安裝包到模擬器,也可以卸載已經安裝的,還有很多針對模擬器的設置功能,如圖:
  • Android App Bundle: 最新改進和 Google Play 新應用計劃
    https://developer.android.google.cn/guide/app-bundle/asset-deliveryhttps://developer.android.google.cn/stories/games/gameloft-pad為了幫助您完成轉換,我們發布了 Play App Signing 的常見問題解答 (app bundle 必需) 以及測試 app
  • 【Android初級】如何實現一個「模擬後臺下載」的加載效果
    在Android裡面,後臺的任務下載功能是非常常用的,比如在APP Store裡面下載應用,下載應用時,需要跟用戶進行交互,告訴用戶當前正在下載以及下載完成等
  • Android app自動更新總結(已適配9.0)
    :name="android.permission.INTERNET"/>    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE
  • 劃重點 | Android Jetpack 三大重要更新!
    而這一切僅僅是開始,因為近期我們發布了一系列新的開發庫,以及過去一年我們對於現有開發庫的重要更新。Hilt — Jetpack 官方推薦的依賴注入開發庫Hilt 是一個新的 Android 開發庫,它可以幫助應用開發更容易地實現依賴注入。Hilt 讓您只需考慮聲明和注入綁定中的重要部分,而不必擔心管理依賴注入的初始化和連接等部分。
  • Android QMUI實戰:實現APP換膚功能,並自動適配手機深色模式
    >    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"        xmlns:app="http://schemas.android.com/apk/res-auto"        xmlns:tools="http://schemas.android.com