開源專案:版本更新
本文作者
01
2-2018
azhon
部落格:https://github.com/azhon
宣告:本文由作者 azhon授權釋出,未經原作者允許請勿轉載
看到上面藍色字了嗎,點下吧
目錄
編譯問題
效果圖
功能介紹
DownloadManager
UpdateConfiguration
使用步驟
Demo下載體驗
結語
編譯問題
因為適配了Android O的通知欄,所以依賴的v7包版本比較高
appcompat-v7:26.1.0
使用的gradle版本為
gradle-4.1-all
,所以建議使用Android Studio 3.0
及以上的版本開啟此專案
效果圖
功能介紹
√支援斷點下載
√支援後臺下載
√支援自定義下載過程
√支援 裝置 >= Android M 動態許可權的申請
√支援通知欄進度條展示(或者自定義顯示進度)
√支援Android N
√支援Android O
DownloadManager:配置文件
初始化使用
DownloadManager.getInstance(this)
屬性 | 描述 | 預設值 | 是否必須設定 |
---|---|---|---|
context | 上下文 | null | true |
apkUrl | apk的下載地址 | null | true |
apkName | apk下載好的名字 | null | true |
downloadPath | apk下載的位置 | null | true |
smallIcon | 通知欄的圖示(資源id) | -1 | true |
configuration | 這個庫的額外配置 | null | false |
apkVersionCode | 更新apk的versionCode (如果設定了那麼庫中將會進行版本判斷 下面的屬性也就需要設定了) | 1 | false |
apkVersionName | 更新apk的versionName | null | false |
apkDescription | 更新描述 | null | false |
apkSize | 新版本的安裝包大小(單位M) | null | false |
UpdateConfiguration:配置文件
屬性 | 描述 | 預設值 |
---|---|---|
notifyId | 通知欄訊息id | 1011 |
notificationChannel | 適配Android O的渠道通知 | 詳情查閱原始碼 |
httpManager | 設定自己的下載過程 | null |
breakpointDownload | 是否需要支援斷點下載 | true |
enableLog | 是否需要日誌輸出 | true |
onDownloadListener | 下載過程的回撥 | null |
jumpInstallPage | 下載完成是否自動彈出安裝頁面 | true |
showNotification | 是否顯示通知欄進度(後臺下載提示) | true |
使用步驟
build.gradle
進行依賴implementation 'com.azhon:appupdate:1.1.0'
簡單用法:建立
DownloadManager
DownloadManager manager = DownloadManager.getInstance(this);
manager.setApkName("QQ.apk")
.setApkUrl("http://gdown.baidu.com/data/wisegame/74dadae1bde205b0/QQ_776.apk")
.setDownloadPath(Environment.getExternalStorageDirectory() + "/AppUpdate")
.setSmallIcon(R.mipmap.ic_launcher)
//可設定,可不設定
.setConfiguration(configuration)
.download();
相容Android N 及以上版本,在你應用的
Manifest.xml
新增如下程式碼
<provider
android:name="android.support.v4.content.FileProvider"
<!--這個不用改-->
android:authorities="${applicationId}"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths_public" />
</provider>
資原始檔
res/xml/file_paths_public.xml
內容
<?xml version="1.0" encoding="utf-8"?>
<paths>
<external-path
name="app_update"
<!--這裡的 AppUpdate 要與你設定的下載目錄一致-->
path="AppUpdate" />
</paths>
相容Android O及以上版本,需要設定
NotificationChannel(通知渠道)
;庫中已經寫好可以前往查閱NotificationUtil.java:https://github.com/azhon/AppUpdate/blob/master/appupdate/src/main/java/com/azhon/appupdate/utils/NotificationUtil.java溫馨提示:升級對話方塊中的內容是可以上下滑動的哦??!
Demo下載體驗
點選下載Demo進行體驗:https://github.com/azhon/AppUpdate/blob/master/apk/appupdate.apk
結語
如果大家在使用的過程中有什麼問題,歡迎提Issuse告知。
如果大家有什麼好的建議或者需求,也可以提Issuse或者傳送郵件至:[email protected]
劉某人程式設計師
個人微信:Android_LiuGuiLin
新浪微博:@劉某人程式設計師
看看我的分享
長按二維碼關注
相關推薦
小程序:版本更新後獲取用戶信息變更
現在 pre .com html clas code develop get evel 小程序:版本更新後獲取用戶信息變更 更新後,以前獲取用戶信息,是通過wx.getUserInfo,然後就會彈出授權窗口,現在必須通過button ,才能實現; <button o
記錄我第一個開源專案:clever-logger
自己寫的一個簡單易用的Nodejs日誌中介軟體,適用於connect和express框架 1、可以記錄request、response中的一些資料和定義於日誌,支援顯示在控制檯和本地檔案。 2、可自定義日誌檔案組織形式:1)、按日期作為資料夾儲存日誌檔案 2)、日期作為日誌名的一部分 3
【開源】Android開源專案:始終
介,,介紹 內個什麼,這是一個 Android 平臺的 APP,專案基於 RxAndroid+Retrofit+Glide 開發,使用MVP架構(好像大家都喜歡這麼寫…)。 最近經濟什麼的不太好大家都知
帶你學開源專案:OkHttp--自己動手實現OkHttp
一、開源專案 OkHttp 在Android、Java開發領域中,相信大家都聽過或者在使用Square家大名鼎鼎的網路請求庫: OkHttp https://github.com/square/okhttp ,當前多數著名的開源專案如 Fresco、Glide、 Picasso
開源專案:購物軟體的開發
效果: 模組展示: 登陸展示: 購物車效果圖 支付過程效果圖: 地址中心效果圖: 流程圖: 程式碼所用到的技術和工具: 程式碼架構 mvp; 開源框架 EventBus; ButterKnife; Da
通用型認證與授權最小系統,以較小的代價實現中立開源專案:UniAuth
一個 App + 一個 DB時代的終結 五年前,就如很多創業公司剛開始的時候一樣,點融網的主要業務架構在一個被稱為MainApp + Workflow上的應用:MainApp處理投資者的投資、充值、提現等投資端的操作;用Workflow來處理所有的進件、審批、放款、催收等貸款端的操作。當業務體量並不
餓了麼開源專案:Java Comparator生成器
版權所有。所有權利保留。 歡迎轉載,轉載時請註明出處: 公司Android專案裡經常需要對元素進行排序,而排序都是多欄位的,相應的Comparator比較難寫。於是我就寫了這麼一個工具類,使用者只需要指定排序規則,便可以自動生成相應的Comparator。 專案地
Github上比較實用的開源專案(持續更新中)
https://github.com/hongyangAndroid/FlowLayout Android流式佈局,支援單選、多選等,適合用於產品標籤等 AutoCompleteTextView for android with KMP algorithm https:/
世界級的開源專案:TiDB 如何重新定義下一代關係型資料庫
著名的開源分散式快取服務 Codis 的作者,PingCAP 聯合創始人& CTO ,資深 infrastructure 工程師的黃東旭,擅長分散式儲存系統的設計與實現,開源狂熱分子的技術大神級別人物。即使在網際網路如此繁榮的今天,在資料庫這片邊界模糊且不確定地帶,
開源專案:XUtil詳解
//RequestParams params = new RequestParams();// 預設編碼UTF-8 //params.addHeader("name", "value"); //params.addQueryStringParameter("nam
餓了麼開源專案:便捷高效的Android資料持久化儲存框架
版權所有。所有權利保留。 歡迎轉載,轉載時請註明出處: Android應用開發時經常要對許多資料進行持久化儲存,便於以後訪問。 對於int、double、boolean這些基本資料,可以使用SharedPreference。對於一些物件,往SharedPrefe
React Native快速開發APP 開源專案:廁所在哪
緣起 對於開發者來說,開發一款App,涉及到的條件還是蠻多的。比如需要服務介面、需要後臺編輯系統、需要運營工具等。因此,該案例藉助了高德開放平臺的免費資源、七牛的免費圖片儲存、微信公眾號的文章編輯系統、阿里雲服務部署等。這一切,對於開發一款小型的App已經足夠。如果能
講解開源專案:5分鐘搭建私人Java部落格系統
本文適合剛學習完 Java 語言基礎的人群,跟著本文可瞭解和執行 Tale 專案。示例均在 Windows 作業系統下演示 本文作者:HelloGitHub-秦人 HelloGitHub 推出的《講解開源專案》系列,今天給大家帶來一款基於 Java 語言的輕量級部落格開源專案——Tale 它擁有小、美
講解開源專案:功能強大的 JS 檔案上傳庫
本文作者:HelloGitHub-kalifun HelloGitHub 的《講解開源專案》系列,專案地址:https://github.com/HelloGitHub-Team/Article 一、介紹 1.1 FilePond 它是一個 JavaScript 檔案上傳庫。可以拖入上傳檔案,並且會對
講解開源專案:用 Python 生成有“靈魂”的二維碼
本文作者:HelloGitHub-LITTLECHIEH 這是 HelloGitHub 推出的《講解開源專案》系列,今天給大家推薦一個 Python 開源生成二維碼的專案——qrcode 一、介紹 1.1 二維碼 二維碼又稱二維條碼,常見的二維碼為 QR Code,QR 全稱 Quick Response
講解開源專案:讓你成為靈魂畫手的 JS 引擎:Zdog
本文作者:HelloGitHub-kalifun HelloGitHub 的《講解開源專案》系列,專案地址:https://github.com/HelloGitHub-Team/Article 今天給大家推薦一個使用 JavaScript 語言編寫的開源 Web 3D 模型專案 —— Zdog。 一
讓你如紳士般基於描述編寫 Python 命令列工具的開源專案:docopt
作者:HelloGitHub-Prodesire HelloGitHub 的《講解開源專案》系列,專案地址:https://github.com/HelloGitHub-Team/Article 一、前言 在本系列前面四篇文章中,我們介紹了 argparse 的方方面面。它無疑是強大的,但使用
讓你如“老”紳士般編寫 Python 命令列工具的開源專案:docopt
作者:HelloGitHub-Prodesire HelloGitHub 的《講解開源專案》系列,專案地址:https://github.com/HelloGitHub-Team/Article 一、前言 在第一篇“初探 docopt”的文章中,我們初步掌握了使用 docopt 的三個步驟,瞭
發起一個開源專案:基於 .NET 的部落格引擎 fluss
今天我們發起一個開源專案,它的名字叫 fluss,fluss 是 river 的德語。 百川歸海,每一個部落格就如一條河流,輸入的是文字,流出的是知識,匯入的是知識的汪洋大海。 川流不息,fluss 是一個部落格引擎,致力於驅動知識的持續流轉,它的廠房設在 github 市 cnblogs 街 32412