首页 > 系统 > Android > 正文

关于Android的自动更新库

2019-11-09 15:13:38
字体:
来源:转载
供稿:网友

起因

公司是工厂类型的,App是内部的员工使用的,所以我的App不需要上线,每次用AndroidStudio写好新版本之后,拿到车间给他们一个个装好就行。但是这样就很麻烦,而且还有比较远的工厂里面的工人,我总不能每次都跑大老远过去给他们装吧。所以,由于工作的需要,我得为我的App加上一个自动更新功能。这样我每次更新都只要自己操作一下,然后他们就可以远程更新了,说了半天都是废话,下面写经过。

经过

上网看了看,发现了两个可以试试的库,分别是https://github.com/yoojia/NextVersions和https://github.com/hugeterry/UpdateDemo , 由于UpdateDemo比较简单,我就先尝试了这个。

1.hugeterry/UpdateDemo

这个库的用法我搬运一下。

Step 1

在gradle文件中加入下面的依赖:

dependencies { compile 'cn.hugeterry.updatefun:updatefun:1.9.0'}

如果你使用Maven,那么加入下面的依赖:

<dependency> <groupId>cn.hugeterry.updatefun</groupId> <artifactId>updatefun</artifactId> <version>1.9.0</version> <type>pom</type></dependency>

Step 2

在主界面activity的onCreate()中加上以下语句进行初始化(请放在setContentView()方法的后面):

UpdateKey.API_TOKEN = "写上你fir.im账号的API_TOKEN";UpdateKey.APP_ID = "写上APP的应用ID";//下载方式://UpdateKey.DialogOrNotification=UpdateKey.WITH_DIALOG;通过Dialog来进行下载//UpdateKey.DialogOrNotification=UpdateKey.WITH_NOTIFITION;通过通知栏来进行下载(默认)UpdateFunGO.init(this);

Step 3

在主界面Activity中加上以下语句:

@Override PRotected void onResume() { super.onResume(); UpdateFunGO.onResume(this); } @Override protected void onStop() { super.onStop(); UpdateFunGO.onStop(this); }

是不是特别简单好用?事实上的确如此,虽然我也遇到了不少的坑。怪我自己蠢。

注意点

1.第二步的初始化是在Activity里面初始化,并不是在application里面!我习惯性的去Application里面进行了初始化,导致了程序安装好就崩溃的现象,后来才发现初始化的位置出错了,真是粗心,后来放到了Activity里面就没问题了。 2.另外,我们需要在fir.im这个网站上注册一个账号,然后你就可以获取AppId和API_TOKEN了。免费账号的话,一天可以进行10次下载,对我来说是够用的。但是要注意一点,就是这个库的更新依据就是版本号的变化,所以你上传apk文件的时候必须让版本号增加。(听起来是废话,不过我一开始没有升级自己的版本号,以为只要上传了以后就可以,结果就一直是1.0版本,导致手机端请求网络时一直为最新版本,不用更新,就不会自动下载了。) 3.那么在Android上怎么修改版本号呢?我习惯性的去修改Manifest文件了,但是这貌似没用,后来才发现我得修改build.gradle(Module:app)这个里面的配置。 这里versionName是改变apk显示的版本的参数 把versionName修改以后,apk的版本才会变化。

4.那么怎么生成新版本的Apk呢?我总得生成新的apk才可以上传吧。 由于我的apk不需要签名,直接用就行,所以需要别的方式生成apk。 首先,点击右侧的Gradle,进入:app下的build目录,双击assemble,就可以生成apk。(可能需要等一段时间) 这里写图片描述

然后把左侧的项目目录改成project模式的,去app-build-outputs-apk下面,找到app-debug.apk,这就是我们刚刚生成的apk,右键复制到桌面上就可以用了。 这里写图片描述

接着就可以拖拽桌面上的apk进行上传了。 这里写图片描述 上传以后,我们在 编辑 里面,就可以看到我们刚刚上传的版本了,这才是可以进行更新的版本,所以重点是,一定要让版本号增加! 这里写图片描述 这里显示的1.02就是我们刚刚修改的那个versionName,现在就可以进行更新操作啦。 如果现在打开我们最开始的1.0app,当然是已经配置好这个库的,就会发现刚打开app就会弹出对话框询问我们是否更新。对了,这里的标记上线按钮我以为要点了才可以更新的,后来我发邮件问了作者hugeTerry,作者说不用,只要有版本号的变化就行。(作者的回复效率很高,github上找到他的邮箱给他发邮件,很快就回复我了,而且很耐心,非常感谢他教我)

基本上就是这样了,然而我并不能进行使用!因为我老大告诉我,必须使用内网来进行更新,所以这个要链接外网的库就不能用了!好不容易研究出来,这样一个简单的库却不能使用还是挺可惜的,不过也没事,的确,内部使用的app就是应该连内网,也就是我们自己的服务器,所以我打算使用最开始第一个库试试。

2.yoojia/NextVersions

准备和我的后端开发同事商量以后再做这个。后面再填坑。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表