您的位置:首页 > 移动开发 > Android开发

Android的发布与更新

2015-10-23 14:46 274 查看

前言

在网上找了好久都没有找到一个具体到能够让我这样的小白了解整个Android App自动更新的教程,所以在搞定了App的更新问题后我打算写一篇博客记录一下整个操作

过程。

准备工作

需要知道Android APK怎么生成

这个我想百度一搜一大把,我也是查了教程后在dos环境下生成了一个用来签名的keystore,然后直接在eclipse里导出了一个APK。

了解友盟这个东东

初次知道友盟是因为他是做第三方统计的,现在做更新这块又接触了友盟,所以就去了解了下友盟,个人感觉挺方便的。

也可以了解下酷传

他可以方便地把你的App上传到几个市场上去,不过我做测验只上传过“安卓园”。在安卓园上架的app要通过酷传的客服,让他帮你下架(他说有三家市场传app上去后要通过他才能下架)。

步骤

好了,现在介绍我了解到的发布与更新(以及统计,统计没有做多少)的流程。

首先,如果你要发布到应用市场上的话,其实不麻烦,只要你有一个apk,有软件运行的几张图,一个你的博客地址这些必备的东西,通过酷传就能很快发不出去了。

当然,我自己尝试的是安卓园,感觉它的审核要求很低,反正没几分钟就审核通过上架了,可能是因为手机用户通过它下载应用的比较少?其他的几个我没试,发布到一些要填一些证明。比如豌豆荚这个(莫非是因为这个平台比较高大上,用的人比较多?)所以发布这一块的话没什么不能理解的,试一下就知道了。

我的目的是想知道怎么做才能让我的app在发布出去后,能够方便地进行自动更新。但是,最后我的实现顺序是,先把友盟的统计SDK集合到我的apk中,然后再做更新。至于为什么这样,你看完就知道了。

统计的集成其实就是把它的sdk下载下来,解压后把里面的libs文件夹下的友盟的jar拷贝到你自己项目的libs文件夹下,然后在代码中按照友盟统计的文档中的指示一步步做就可以了(附上一个友盟统计文档连接:http://dev.umeng.com/analytics/android-doc/integration#1_3)。这里的Umeng_channel就是你将来要发布app的平台,比如它例子中的豌豆荚。但是它一次只能写一个,也就是说你这份代码中写的是“wandoujia”,然后打包成apk,最终被用户使用,那么所有来自这个用户的统计数据都会被打上wandoujia的标记。那么你不会只在一个平台发布吧,你要想在360手机助手上发布,你就要在umeng_channel中写对应于360手机助手的标记,随便你怎么写,比如你填“360abc”都可以,但是appkey是不用变的。这样,这个appkey就标识了你的这个应用,然后用不同的umeng_channel来标识不同的渠道,就可以统计来自不同渠道的数据了,比如新增用户啊,活跃用户啊,不同渠道的对比数据啊什么的。

统计那一块貌似还挺多内容的,但是我的目的是更新,所以只添加了最基本的代码来完成统计这个功能,就是在每个activity里添加了文档中所说的代码,至于代码多,怎么方便地找activity的话,你可以直接在Mainifest中查看每个activity啊,然后如果你用的是eclipse的话,按住ctrl,鼠标点下activity名不就找到了嘛。(不过这一点相信能看到这篇博客的人都已经会了的)

好了,到这里,讲道理的话,你应该已经有了几个标记着不同渠道的apk了。你可以装上试试,比如你装了豌豆荚的apk,用一段时间,友盟后台就会统计出来来自豌豆荚用户的数据。

最后,再来说说更新。事实上做完了统计的工作,再来到更新这一关的话,没什么太大难度了。更新也需要集成一下友盟的更新sdk。(具体步骤神马的再发你个连接吧http://dev.umeng.com/auto-update/android-doc/introduction)因为前面已经集成了统计的sdk,所以这里都不需要改appkey和umeng_channel了。你需要额外知道的是自动更新的原理其实是服务器比较了用户中的apk中的versioncode和服务端的apk中的versioncode的大小。

下面举个栗子来讲,比如你要更新豌豆荚这个渠道的apk,之前版本的versioncode比方说是1,versionname比方说是1.0.0,那么你,这一次在mainifest中改成code为2,name为1.0.1,渠道名不变,还是“wandoujia”,然后打包成apk,在友盟后台的组件中选中自己的应用,选自动更新,然后选按渠道更新,在wandoujia这个渠道中上传你的新apk。然后你重新打开你的手机上的app,就会收到更新的提示了。其他的渠道也是如法炮制的。这样就做到了多渠道的更新,保证你的用户不管从哪个渠道下载了你的应用,都能及时地更新你的app。

几个注意的坑

1.假设场景:你直接从eclipse中run as android application然后把apk导入到你的手机中的,再做这个更新时你会发现,虽然收到了更新提示,很开心,结果下载后更新不了。你需要了解下android
apk签名,因为电脑测试时自动会生成一个签名是debug的apk,而你更新时下载的apk想必是你自己打包签名的apk,这两者签名不同,但是app的名字是相同的,手机是装不上去的。

2.按照那个更新文档的步骤来,你会发现你可以更新第一次,但是你紧接着第二次更新的时候会发现应用崩溃了,这是由于友盟更细sdk中的增量更新的问题,我看了友盟的论坛,好像只能是把在代码中把增量更新改成全量更新(怎么改,看文档),那这个增量更新不是等于没用么,不知道是不是我理解错了。

3.你在友盟上传了新的apk,那么你在对应的应用市场也需要上传新的apk,不然完全没有下载过的用户下载到的就会是旧版本的app了。

总结

事实上,我真正动手做统计和更新代码的集成,上传,测试的时间加起来还没网上查各种资料的时间长。我想说的并不是前期的准备工作很重要,而是我觉得当你找准了方向后,你需要做的是实践,光是盯着那几个字是看不出什么门道的,理解原理是很重要,但是对于写代码做软件项目这件事,如果是允许不断出错改错的前提下尽量还是用实践来学新的东西比较有效率。

最后,有什么不对和不足的地方欢迎指正和交流。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: