libbspatch.so
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内核. ...
随机推荐
- 【CodeVS 1038】一元三次方程
题意 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程. 给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差的 ...
- robotframework笔记23
远程库接口 远程库接口提供了对在测试库 比机器人框架本身是在不同的机器上运行, 同时实现图书馆使用其他语言比 本机支持Python和Java. 为一个测试库用户远程 library看起来几乎一样的其他 ...
- javascript常用函数(1):jquery操作select 基本操作
$(this).children('option:selected').val();//这就是selected的值 $("#charCity").empty();//内容清空: j ...
- 网络编程之socket(转)
“一切皆Socket!” 话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket. ——有感于实际编程和开源项目研究. 我们深谙信息交流的价 值,那网络中进程之间如何通信,如我们每天打开浏 ...
- 记Judith此人和我对美国教育的感触
我因为及其糟糕的英语所以报读了一个英语学习班,Judith就是我的英语老师,同时我在家学习的大儿子也自然报读了这个学习班也是她的学生. 她很胖,典型的美国形象(哈哈,希望这样不会让她不快),之前在南京 ...
- JButton按钮
1.方法 void setSize(width,height):设置按钮大小 void setBounds(x,y,width,heigth):设置按钮的左上角顶点位置和大小 void setC ...
- ios基础篇(四)——UILabel的常用属性及方法
UILabel的常用属性及方法:1.text //设置和读取文本内容,默认为nil label.text = @”文本信息”; //设置内容 NSLog(@”%@”, label.text); //读 ...
- Java:标示符 基本数据类型
标示符: 在程序中自定义的一些名称,例如:变量.类名.方法名…… 组成有数字0~9.大小写英文字母.“$”和下划线“_”组成,且不能由数字开头,以及不能使用java已使用和保留的关键字. Java中的 ...
- Js练习题之字符串转驼峰
如border-bottom-color =>borderBottomColor 传传统方法 分析: 1.转大写,需要用到字符串的toUpperCase()方法 2.去掉-,需要用到字符串方法s ...
- C语言中文件的读取和写入
在C语言中写文件 //获取文件指针 FILE *pFile = fopen("1.txt", //打开文件的名称 "w"); // 文件打开方式 如果原来有内容 ...