Android 自动更新 教你如何写自己的更新
来源:互联网 发布:淘宝怎么提高收藏宝贝 编辑:程序博客网 时间:2024/06/11 18:07
在这个极速开发,快速迭代的年代里,APP的更新自然也成为日常开发中不可或缺的一部分,一直站在我们身后的友盟也要在9月份停止自动更新了 SO,如何写出一个优雅的更新效果,让自己的APP增新不少呢?下面带大家来一起写一个APP更新的功能.
其实这个功能很简单,,,,就是一个文件上传下载的功能 文件的地址就是放在你们服务器上面的路径,你请求后台的版本号和本地的版本号进行对比,如果比服务器上的低就调用,然后下载的下来的地方是你设置的路径,然后调用系统的安装功能就Ok
github : https://github.com/mirsfang/UpdateApk
//下载的主要方法 private Runnable mdownApkRunnable = new Runnable() { @Override public void run() { try { File file = new File(savePath); if (!file.exists()) { file.mkdirs(); } String apkFile = saveFileName; File ApkFile = new File(apkFile); FileOutputStream fos = new FileOutputStream(ApkFile); URL url = new URL(apkUrl); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.connect(); apkLength = conn.getContentLength(); System.out.println(); InputStream is = conn.getInputStream(); apkCurrentDownload = 0; byte buf[] = new byte[1024]; int length = -1 ; while((length = is.read(buf))!=-1){ apkCurrentDownload += length; progress = (int) (((float) apkCurrentDownload / apkLength) * 100); //更新进度 mHandler.sendEmptyMessage(DOWN_UPDATE); fos.write(buf, 0, length); if (apkCurrentDownload == apkLength) { //下载完成通知安装 mHandler.sendEmptyMessage(DOWN_OVER); break; } if(interceptFlag ){ ApkFile.delete(); break; } } fos.close(); is.close(); }catch (IOException e) { e.printStackTrace(); } } };
上面可以看到,就是使用HttpUrlConnection 来下载自己的APK 通过Handler通知进度更新
然后下载好apk之后调用系统的安装功能
/** * 安装apk * * @param */ private void installApk() { File apkfile = new File(saveFileName); if (!apkfile.exists()) { return; } Intent i = new Intent(Intent.ACTION_VIEW); i.setDataAndType(Uri.parse("file://" + apkfile.toString()), "application/vnd.android.package-archive"); mContext.startActivity(i); try { if (downloadDialog!=null&&downloadDialog.isShowing()) downloadDialog.dismiss(); } catch (Exception e) { e.printStackTrace(); } }
然后APK 就自动安装了 核心功能就这么两点,
然后我们再用 RoundCornerProgressBar 来对下载的进度条进行美化,一个漂亮的进度条就诞生了 。。。 就是这么EASY Are you OK?
可扩展 但是没来得及写 如果是root的话静默安装 检测是否是WIFI环境 ,安装之后删除APK等 有兴趣的可以补上去。。
还有 谁能告诉我 为什么我的截图这么大
0 0
- Android 自动更新 教你如何写自己的更新
- 如何让你的网站每天自动更新
- Android自动更新:这里的更新静悄悄~
- 自己写的一个项目自动更新的Linux脚本
- 更新器自动更新自己(自我更新)
- 教你关闭iTunes的自动更新功能
- android通话时如何显示自己写的界面
- 教你如何发布自己的网站
- 如何写自己的壳
- 如何写自己的壳
- 如何写自己的壳
- php 教你写自己的模版引擎一
- php 教你写自己的模版引擎二
- php 教你写自己的模版引擎三
- EventBus--手把手教你写个自己的EventBus
- android,检查更新,版本更新,自动更新
- 更新数据时如何使时间自动更新
- 【Android】应用如何做到自动更新
- Jni调试环境搭建
- 部署spring boot应用
- 使用Mybatis-Generator自动生成Dao、Model、Mapping相关文件
- system系统调用的使用
- MyEclipse非常方便的快捷键
- Android 自动更新 教你如何写自己的更新
- Apache Thrift - java开发教程
- HDU 2612 find a way(双搜索)BFS
- 第三章 C++之VC++6.0使用与快捷键
- 设计模式之建造者模式
- 2016 Multi-University Training Contest 4 Another Meaning
- CSS3弹性盒子布局
- 算法竞赛入门经典(第二版)-刘汝佳-第四章 函数与递归 互联网协议网络Uva1590
- Android selector