http://www.zhihu.com/question/21154099
http://blog.csdn.net/hmg25/article/details/8100896
91助手和Google Play的智能升级原理是什么?修改
前不久的google io 推出了应用智能升级,就是不用下载整个包,而是下载单纯的更新部分就可以完成app的升级,而iphone版的91助手也退出了这个功能,这里的原理是什么?望各位不吝赐教!
这是来自去年某一次google发布会提出的新内容。
从那时起,android sdk便提供了一个基于差分的增量升级包的制作工具。所以开发者可以轻易制作差分升级包。这个事情必须要由开发者完成,因为它需要和原先的软件有相同的数字签名。
豌豆莢等收集了这些差分升级包,并提供给用户。
多家android 服务提供商都提供了智能更新服务, 包括友盟, 豌豆荚,百度, Google Play等。 Google Play是最早推出该功能的。 由于该功能对于应用开发者和终端用户都是透明的, Google 也没有过多宣传这个功能, 只是android police 上有人破解了。
关于友盟的功能,官方页面的解释如下:
http://dev.umeng.com/doc/document_update_android.html
友盟自动更新SDK从2.0版本开始支持增量更新。增量更新下载的是您上传到友盟服务器最新版本的APK和用户手机上的APK的差异,而不需要下载新版完整包。增量更新通过减小下载升级包的方式极大加快用户升级速度,提高用户升级体验。而所有的增量更新过程完全对开发者透明, 您不需要做任何额外的工作,只需要添加libs 目录下的libs/armeabi/libbspatch.so。 集成SDK接口完全相同。关于增量更新更多问题, 请参考FAQ。
友盟增量更新的原理是什么?
应用集成友盟自动更新SDK之后,SDK会在应用启动时将手机端的Version Code 和应用APK文件的MD5 值发送到友盟的服务器端。服务器通过对MD5值查找到老版本的APK, 同新老版本的APK做diff, 生成patch 文件,返回给SDK。 SDK 再将patch 文件和手机上的老版本APK文件合成生成新版本的APK。手机端生成的新版APK文件的MD5值会和服务器端的新版APK MD5值保持严格一致。在此过程中, 要求友盟服务器必须存在新老两个版本的APK文件。 如果您发现不能使用增量更新, 可能是友盟服务器端没有老版本的APK,需要您先上传老版本的APK, 再上传新版本的APK。
OTA功能?
libBSPatch.so:支持增量更新功能的库文件
libwebp.so 好像是WebP的支持库,WebP是由谷歌推出的新一代图片格式,在压缩方面比当前JPEG格式更优越,图像体积要比JPEG格式图像小40%.
libbspatch.so的更多相关文章
-
【转】Android各大发布市场
前言 如果只有一个或者少许的两三个Android市场,本文也没用存在的必要性,本文谨献给同在Android奋战的同仁. 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnbl ...
-
【Android市场】提交应用的一点经验分享
前言 如果只有一个或者少许的两三个Android市场,本文也没用存在的必要性,本文谨献给同在Android奋战的同仁. 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnbl ...
-
Android从零单排之自动跟新
自动更新原理 当我们发布我们的应用程序的时候,肯定会想到后续版本的更新,那么该怎么对我们的程序进行更新呢? 更新APK的原理实际上就是比较程序中的AndroidManifest.xml中的versio ...
-
解压Taobao手机客户端发现的东西
今天解压了Taobao手机客户端发现了几个.so文件, 其中有两个挺感兴趣的,查了一下,以后去研究下. libBSPatch.so 是用于支持增量更新功能的库文件. libwebp.so 好像是We ...
-
android使用友盟第三方自动更新/手动更新
最近项目用到自动更新,发现一个方便快捷的第三方组件非常好用,只需要几行代码搞定,非常适合新手使用.分享给大家一起学习. 本文档帮助您以最快速最简洁的方式集成使用自动更新组件. 一.申请友盟开发者账号创 ...
-
Android软件设置自动检查更新
如果让我推荐功能强大的第三方集成开发包,我一定会推荐友盟,有着强大的软件统计,分析功能(原谅我,我不是打广告). 这一篇介绍友盟的自动更新功能,但是首先你得拥有友盟. 友盟的集成步骤 1.1 导入SD ...
-
Android友盟增量更新
1.增量升级的原理 增量更新的原理就是将本地apk与服务器端最新版本比对,并得到差异包.比如现在的版本是1.1.4,大小是7.2M,新版本是1.1.5.大小是7.3M.我们发现两个版本只有0.1M的差 ...
-
浅析android应用增量升级(转)
By 何明桂(http://blog.csdn.net/hmg25) 转载请注明出处 很久没有更新博客了,真是堕落啊,几次想提起笔,却总是被各种琐事耽搁,以后会多写文章记录点滴. 背景 ...
-
Android ADB 实用总结
一.背景 从系统架构上来说,Android是基于Linux系统基础上,做了进一步的定制与修改,并融入了自身的特有功能,且向应用层提供应用程序接口,供开发者使用.系统内核层面,主体依然是Linux内核. ...
随机推荐
-
RESTful API 设计指南
转自:http://www.ruanyifeng.com/blog/2014/05/restful_api.html 网络应用程序,分为前端和后端两个部分.当前的发展趋势,就是前端设备层出不穷(手机. ...
-
正则表达式解析url参数
解析url参数正则:(?<=\?|&)[\w\={}\\\\,-:'\s'""]*(?=[^#\s]|) 意思是(?<=\?|&) 从?或&符号 ...
-
(一)学习C#之浮点类型float小结
类型:float 大小:32位 范围a:±3.4E38 MSDNhttp://msdn.microsoft.com/zh-cn/library/b1e65aza.aspx 范围b: ±1.5E45~ ...
-
C语言基础知识小总结(2)
上个总结比较笼统,下面写的稍微详细点吧算是. 一.控制台屏幕打印 1.putchar(); 格式: void putchar(char c); //直接把一个字符输出到屏幕上 2.print ...
-
以图搜图(一):Python实现dHash算法(转)
近期研究了一下以图搜图这个炫酷的东西.百度和谷歌都有提供以图搜图的功能,有兴趣可以找一下.当然,不是很深入.深入的话,得运用到深度学习这货.Python深度学习当然不在话下. 这个功能最核心的东西就是 ...
-
There is No Alternative~最小生成树变形
Description ICPC (Isles of Coral Park City) consist of several beautiful islands. The citizens reque ...
-
文本分布式表示(一):word2vec理论
Word2vec是Google的Mikolov等人提出来的一种文本分布式表示的方法,这种方法是对神经网络语言模型的“瘦身”, 巧妙地运用层次softmax(hierarchical softmax ) ...
-
socket编程解决粘包和丢包问题
##socket 丢包粘包解决方式 采用固定头部长度(一般为4个字节),包头保存的是包体的长度 header+body 包头+包体 下面的例子不是按照上图中规定的格式编写的,但是思路都是一样的,先读出 ...
-
javascript 对象(四)
一.对象概述 对象中包含一系列的属性,这些属性是无序的.每个属性都有一个字符串key和对应的value. var obj={x:1,y:2}; obj.x; obj.y; 1.为什么属性的key必须是 ...
-
swift3.0:NSURLSession的使用
一.说明 NSURLSession是OC中的会话类,在Swift中变成URLSession类,它们的实现方式是一样的,下面的示例就Swift语法进行讲解和介绍. 二.介绍: URLSession 类支 ...