Skip to content

wenkency/update

Repository files navigation

UpdateUtils

  1. 更新APP,支持进度回调,适用于APP的更新和任何自定义更新UI的开发。
  2. Android原生系统的下载器,不用依赖三方网络库,支持通知栏显示,兼容性较好。
  3. 支持7.0及以上版本安装。

引入

allprojects {	repositories {	...	maven { url 'https://jitpack.io' }	}	} dependencies { // 更新(只依赖这个就行) implementation 'com.github.wenkency:update:2.1.0' // 网络请求(测试用,通过网络调用后台接口,获取APK更新信息) implementation 'com.github.wenkency:kotlin-retrofit:2.0.0' implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.google.code.gson:gson:2.8.8' // implementation files("${projectDir.getAbsolutePath()}/libs/update.aar") } 

网络初始化

 // 网络初始化 RestConfig.INSTANCE .baseUrl("http://xx.xxx.xxx") .register(this); 

通知栏设置

 mDownloadUtils.setTitle("更新标题"); mDownloadUtils.setDescription("更新描述信息"); 

APK更新使用事例

/** * APK更新事例 */ public class MainActivity extends AppCompatActivity { // 更新的工具类 private UpdateUtils mDownloadUtils; private TextView mTextView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTextView = findViewById(R.id.tv); // 初始化 mDownloadUtils = new UpdateUtils(this); } /** * 1.调用更新 */ public void downloadApk(View view) { // 1. 申请内存卡读取权限 XPermission.with(this) .permission(Permission.MANAGE_EXTERNAL_STORAGE) .request(new OnPermissionCallbackAdapter() { @Override public void onGranted(List<String> permissions, boolean all) { if (all) { update(); } } }); } // 2. 网络请求更新接口 private void update() { // JSON地址 final String url = "xx/xx/apkupdate.json"; RetrofitPresenter.INSTANCE.get(this, url, new BeanCallback<UpdateBean>() { @Override public void onSucceed(UpdateBean data) { down(data); } }); } // 3. 下载APK private void down(UpdateBean data) { // 创建更新类 AppUpdateBean bean = new AppUpdateBean(data.getUrl(), data.getAppName(), data.getVersionCode()); // 设置下载标题 mDownloadUtils.setTitle(data.getApkName()); // 更新进度回调 mDownloadUtils.setOnUpdateListener(new OnSingleUpdateListener() { @Override public void onProgress(int total, int current, float progress) { mTextView.setText(total + ":" + String.format("%.2f", progress) + "%"); } }); // 更新 mDownloadUtils.downloadAPK(bean); } @Override protected void onDestroy() { // 4. 销毁操作 if (mDownloadUtils != null) { mDownloadUtils.stop(); mDownloadUtils = null; } super.onDestroy(); } }