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内核. ...
随机推荐
- JavaScript ——闭包理解
昨天晚上听别人谈起闭包这个东西,虽然对js有一点了解但却丝毫没有印象,今天也没什么事就顺便研究了一下满足好奇宝宝.整合于网上的理解,记录一下. 一.闭包的作用域 要理解闭包,首先必须理解Javascr ...
- Flask+mongodb 实现简易个人博客
最近学习完了<flask-web开发>,实现了一个简易的个人博客网站,由flask+mongodb+bootstrap做成, 这个软件是在阅读<Flask-Web开发>后写的一 ...
- UNIX高级环境编程学习
1-5实例 控制字符:ctrl + 另一个键.control + D或者^D是默认的文件结束符(EOF字符).
- OC 继承子类对象调用方法机制 子类对象访问父类中的实例变量
在继承中,子类对象如何调用到正确方法的机制 每一个Objective - C对象都有一个隐藏的指针指向类的代码,当向一个对象发送消息的时候,当前的对象会首先在当前类里去查找相应的方法,如果找到的话,直 ...
- 20145236 《Java程序设计》实验五实验报告
20145236 实验五 Java网络编程 实验内容 1.运行TCP代码,结对进行,一人服务器,一人客户端: 2.利用加解密代码包,编译运行代码,一人加密,一人解密: 3.集成代码,一人加密后通过TC ...
- Oracle - PL/SQL Commands
第一章:日志管理 1.forcing log switches sql> alter system switch logfile; 2.forcing checkpoints sql> a ...
- 【转】数据库范式(1NF 2NF 3NF BCNF)详解二
以下内容转自:http://jacki6.iteye.com/blog/774889 -------------------------分割线----------------------------- ...
- Junit4的简单使用
junit4的简单使用 测试套件的使用 测试类1 package com.westward; import static org.junit.Assert.*; import org.junit.Te ...
- HTML5表单新增属性
1.form 原来html里面,表单里的元素应该包裹在表单里,如 <form action="login.php" method="get"> &l ...
- 常见JS(JavaScript)冲突解决方法
1.一般JS冲突解决办法 a.最容易出现的就是js的命名冲突 ①.变量名冲突 变量有全局变量和局部变量当全局变量变量和局部变量名称一致时,就会js冲突,由于变量传递数值或地址不同就会产生JavaScr ...