编译和使用bsdiff】的更多相关文章

在android开发中,越到后面生成apk文件越来越大,每次用户更新都是全部下载更新,浪费时间和流量,如果能增量更新就不错了,使用bsdiff就是为了生成更新包 bsdiff下载地址:http://www.daemonology.net/bsdiff/ 下载后解压文件,到文件目录中,执行make 你会发现不能通过,报错了 Makefile:13: *** missing separator.  Stop. 这是makefile文件的内容的格式不对, CFLAGS += -O3 -lbz2 PRE…
一.前言 最近在看热修复相关的框架,之前我们已经看过了阿里的Dexposed和AndFix这两个框架了,不了解的同学可以点击这里进行查看:Dexposed框架原理解析 和 AndFix热修复框架原理解析,然后还有最近很火的一个是腾讯的Tinker热修复框架,再看他的原理实现的时候,发现了他使用到了开源的文件差分工具bsdiff/bspatch,所以就单独用这篇文章来详细介绍一下这个工具,因为这个工具有一个很大的用途就是增量更新,也就是我们看到现在大部分的应用市场推出的省流量更新应用的效果: 看到…
bsdiff是一个差异包比较工具,可以用来实现增量更新. 下载地址:http://www.daemonology.net/bsdiff 编译 Mac环境 版本:macOS 10.12 1.解压下载的bsdiff-4.3.tar.gz tar -zxvf bsdiff-4.3.tar.gz 2.进入bsdiff-4.3目录,在终端下执行构建 cd bsdiff-4.3 make 此时报错: Makefile:13: *** missing separator.  Stop. 这是makefile文…
一.环境说明: 1.liunx系统:Ubuntu12.04 2.jdk:sun-java6-jdk 3.g++4.5 gcc4.5 二.android源码的目录结构 |-- Makefile |-- bionic (bionic C库) |-- bootable (启动引导相关代码) |-- build (存放系统编译规则及generic等基础开发包配置) |-- cts (Android兼容性测试套件标准) |-- dalvik (dalvik JAVA虚拟机) |-- development…
文章来源:http://blog.csdn.net/allendale/article/details/9262833 参考:http://dev.chromium.org/developers/how-tos/build-instructions-windows 1      Chrome的代码量巨大,下载编译的过程一出错,可能就需要回头从来.工欲善其事,必先利其器,推荐电脑内存至少8G,否则会难以忍受的慢,当然是64位系统,您还需要设置显示文件后缀名.如图,将勾选去掉 2   然后安装Vis…
             分类: Android 系统开发(5)                                              作者同类文章X 版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[+] 一 CyanogenMod 开发基础 CyanogenMod 开发相关资料推荐 1 官方资料 2 国内 CyanogenMod 相关 高质量 博客 网站 文章 二 安装 CyanogenMod 官方提供的 Mi4 Recovery 和 ROM 基带版本…
bsdiff的基本原理 bsdiff是由Conlin Percival开源的一个优秀的差分算法,而且是跨平台的.在Android系统中所使用的imgdiff本质上就是bsdiff. bsdiff的依据 在传统更新中,包含了复制和插入两种操作,复制指的是找到old文件中所匹配的部分,将其复制到新文件中.插入指的是将old文件中所没有的数据插入到新文件中.这种方式在二进制文件更新中并不适用,因为对源代码进行少量的修改就会导致二进制文件产生较大的差异,从而复制和插入指令增多,生成的更新包远大于理想状态…
本文转载自:http://blog.csdn.net/huryjiang/article/details/7590015 1 升级包的制作 基本命令: Ø  makeMtk [project[flavor]] new –编译整个项目 Ø  makeMtk [project[flavor]] otapackage –编译otapackage Ø  /build/tools/releasetools/ota_from_target_files –n –i oldotapackage newotapa…
/************************************************************************* * I.MX6 Android 5.1.1 下载.编译 * 说明: * 这里要提到的就是4.2版本,编译中断了,你接着编好像是没事的,但是这个 * 5.1.1版本貌似就得从头再编,这个有点郁闷. * * 2016-9-9 深圳 南山平山村 曾剑锋 ***************************************************…
编译Chrome详细步骤   文章来源:http://blog.csdn.net/allendale/article/details/9262833 参考:http://dev.chromium.org/developers/how-tos/build-instructions-windows 1      Chrome的代码量巨大,下载编译的过程一出错,可能就需要回头从来.工欲善其事,必先利其器,推荐电脑内存至少8G,否则会难以忍受的慢,当然是64位系统,您还需要设置显示文件后缀名.如图,将勾…
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/54562606 网上关于编译Android源码的教程已经很多了,但是讲怎么编译Android源码刷到真机上的教程不是很多并且也没有讲清楚,仅仅编译Android源码不部署到真机上折腾一下是不愉快的.在Android安全学习的过程不免涉及到修改Android源码过各种对抗的事情,今天有空来学习一下如何编译Android源码部署到谷歌的Nexus 5 手机上,以Android 4.4.…
TODO:macOS编译PHP7.1 本文主要介绍在macOS上编译PHP7.1,有兴趣的朋友可以去尝试一下. 1.下载PHP7.1源码,建议到PHP官网下载纯净到源码包php-7.1.0.tar.gz 2.解压php-7.1.0.tar.gz包 3.创建配置 ./configure –prefix=/usr/local/php7 –with-apxs=/usr/sbin/apxs –enable-fpm –with-fpm-user=www –with-fpm-group=www –with-…
一:卸载旧版本 使用下面的命令检查是否安装有MySQL Server rpm -qa | grep mysql 有的话通过下面的命令来卸载掉 rpm -e mysql //普通删除模式 rpm -e --nodeps mysql // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除 二:安装MySQL 查看可安装的包 yum list 安装编译代码需要的包 yum -y install make gcc-c++ cmake bison-devel nc…
一.下载php源码包 http://cn2.php.net/get/php-5.6.6.tar.gz/from/this/mirror 二.编译 编译之前可能会缺少一些必要的依赖包,加载一个本地yum源安装即可,具体缺少什么回执编译过程中提示出来的.编译参数参考: 英文参考:PHP 5.6 编译安装选项说明 中文说明:http://blog.csdn.net/godmatrix/article/details/5969558 ./configure --prefix=/usr/local/php…
一.下载源码包 http://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.22.tar.gz 二.准备工作 卸载之前本机自带的MYSQL 安装 cmake,编译MYSQL 的工具 yum install cmake 三.解压源码包 tar -zxv -f mysql-.tar.gz cd mysql- 四.CMake编译 cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_UNIX_ADDR…
前言: 自从EventBus 3.x发布之后其通过注解预编译的方式解决了之前通过反射机制所引起的性能效率问题,其中注解预编译所采用的的就是android-apt的方式,不过最近Apt工具的作者宣布了不再维护该工具了,因为Android Studio推出了官方插件,并且可以通过gradle来简单的配置,它就是annotationProcessor,今天来学习一下如何将原来的android-apt切换到annotationProcessor. 什么是APT? APT(Annotation Proce…
Hawk是开源项目,因此任何人都可以为其贡献代码.作者也非常欢迎使用者能够扩展出更有用的插件. 编译 编译需要Visual Stuido,版本建议使用2015, 2010及以上没有经过测试,但应该可以编译. 需要安装.Net Framework 4.5 和.NET Framework 4.0 没有其他依赖项. 可能出现的编译问题 虽然在GitHub上是最新的代码,最新代码是可以成功编译的.但不能保证用户是否clone的是早期版本的代码,因此此处罗列可能的编译错误. 因为工程Hawk.csproj…
目录: 1,过程感慨: 2,运行环境: 3,准备工作: 4,编译 .so 5,遇到的关键问题及其解决方法 6,实现效果截图. (原创:转载声明出处:http://www.cnblogs.com/linguanh/) 1,过程感慨(想直接看教程,请跳过此部分) 在写具体内容之前,我先说下我搞这个东西的过程,由于导师之前说过要搞个图像匹配的androi APP,具体就是匹配前后两张图片的相似度,类似 安卓5.0 引入的刷脸解锁. 当时觉得,要实现这样一个东西,肯定没现成的API 可供使用,第一时间想…
生成CoreCLR - Windows篇 本文的唯一目的就是让你运行Hello World 运行环境 Window 7+ Visual studio 2015 确保C++ 工具已经被安装,默认是不安装的,所以要选择自定义模式,VS 2015 精简版不支持. CMake 下载 CMake for windows,并把Cmake的目录添加到为PATH的系统变量里. Python 下载Python for windows 并安装,并把Python的目录地址添加到Path系统变量中. Powershel…
这篇博客,只是把自己在开发中经常遇到的打包编译问题以及解决方案给大家稍微分享一下,不求吸睛,但求有用. 1.大家都知道我们常常会遇到dex超出方法数的问题,所以很多人都会采用android.support-multidex进行解决,但是你也许会遇到下面这样的错误,不由得让你冥思苦想,这个出错原因一般是引入了多个相同的包,但是你打开一开,libs下明明就只有一个包呀,让人头疼. Error:Execution failed for task ':app:packageAllDebugClasses…
编译的Audacity版本为2.1.2,由于实在windows下编译,其源代码可以从Github上取得 git clone https://github.com/audacity/audacity. 1. 编译WxWidgets Audacity使用wxWidgets作为GUI的框架,Audacity2.1.2需要wxWidgets 3.0.2,所以在编译Audacity之前需要编译wxWidgets.wxWidgets的下载地址为http://www.wxwidgets.org/downloa…
Nuget官网下载Nuget项目包的命令地址:https://www.nuget.org/packages 今天就遇到一个比较奇葩的问题,折腾了很久终于搞定了: 问题是这样的:我的解决方案原本是好好的,但是其他朋友加个一个项目,我获取最新后,编译始终报错,说是这个项目缺少Nuget包引用,可是我在编译时明明已经还原了该项目引用的nuget包,同时也手动就行了nuget的包还原都不行,百思不得其解.报错如下: 报错信息说是:本计算机上面缺少此项目Seagull2.YuanXin.WebApi引用的…
安装了Visual Studio的那些使用微软平台的开发者通常能够非常容易地操作自己的项目:打开解决方案,修改内容,设置好所有必须的文件以及配置后编译项目.但是在构建服务器或者持续交付系统等没有安装Visual Studio的环境中,编译项目和解决方案是非常难的. 对于这一问题,微软之前给出的方案是提供多种工具,包括针对C++的Visual C++ Build Tools和针对托管代码(Visual Basic和C#)的Microsoft Build Tools.虽然这种方式为主要语言提供了支持…
HEVC(High Efficiency Video Coding),是一种新的视频压缩标准.可以替代H.264/ AVC编码,使得保持相同质量的情况下,体积减少40%左右.目前有多种实现版本,x265则是其中之一.常用网站: x265官网 http://www.x265.org/ 代码托管 https://bitbucket.org/multicoreware/x265/ 代码镜像 http://www.videolan.org/developers/x265.html. 编译好的可执行档 h…
前段时间在使用Compass时遇到了其为难处理的一个坑,现记录到博客希望能帮助到各位. 一.问题: 利用Koala或者是gulp编译提示如下,截图为koala编译提示错误: 二.解决办法 从问题截图上看提示是找不到.sass-cache文件夹下面的一个文件夹(父级目录名称中带有特殊字符很容易重现),然后几经纠结发现可以不开启或关闭sass的缓存功能.也就是修改config.rb的配置节点即可,如下图所示: 1.如果cache设置为true,请设置cahce_path的路径(目录层级尽量少).…
前期自己要把gradle环境变量配置好 在Terminal中gradle命令行编译apk 输入gradle assembleRelease 会编译全部module编译单个modulecd ./xiruan //xiruan是module的名字 //意思是进入module目录gradle assembleRelease //编译出自己签名的apk   //签名环境也要配置好gradle assembleDebug //编译出默认签名的apk…
一.下载并安装class-dump 下载class-dump-3.5.dmg  点击下载 下载完成以后双击.dmg的文件,将里面的class-dump拷贝到/usr/local/bin 设置权限chmod 777 /usr/local/bin/class-dump 在控制台输入class-dump,显示如下表示配置成功 二.反编译.framework文件 我们以解析MobileCoreServices.framework为例,在控制台输入 class-dump -H -o /Users/wuyo…
1. 安装Ant Ant下载地址:http://ant.apache.org/bindownload.cgi 解压即可. 2. 下载Zookeeper源码包 https://github.com/apache/zookeeper 解压. 3. 利用Ant将Zookeeper源码编译成Eclipse工程. 打开cmd,切换到Zookeeper的解压目录下,即build.xml的当前目录下.用ant eclipse命令进行编译. E:\zookeeper-trunk>E:\apache-ant-1.…
什么是Vim? Vim 是经典的 UNIX 编辑器 Vi 的深度改良版本.它增加了许多功能,包括:多级撤销.格式高亮.命令行历史.在线帮助.拼写检查.文件名补完.块操作.脚本支持,等等.除了字符界面版本之外,它也有图形界面版本(比如 gVim).虽然 Vi 还在继续维护当中,但是大部分人都只在使用 Vim 了,你所见到和听到的大多是指 Vim--虽然你的命令名可能是 Vi. 这个编辑器常用于程序员.系统管理员.黑客们进行编程和文本编辑.不像某些编辑器,它所有的命令都采用普通的键盘字符,因此在你的…
在不是Ubuntu系统下安装OpenFoam,需要采用编译安装的方式.以下以OpenSuSE为例进行编译安装. 1 软件包准备 需要下载两个程序包: OpenFOAM-4.x-version-4.1.tar.gzThirdParty-4.x-version-4.1.tar.gz 2 安装GCC 启动终端Konsole,在终端中输入命令: sudo zypper install gcc 按提示输入密码并确认安装后,系统自动从网络上下载gcc并进行安装.安装完毕后利用终端命令测试gcc安装版本: g…