导航:首页 > 文件处理 > bsdiff文件夹可以删除吗

bsdiff文件夹可以删除吗

发布时间:2022-05-17 07:03:34

Ⅰ 如何只生成 chrome.sln 工程文件以便编译 chromium

一,编译之前的准备。
1) 了解代码组织结构。
Chrome source非常庞大,并且在其主目录下还包含有工具和组件,任何一个工具和组件也附带有其源代码。首先得熟悉这些源代码的组织结构,在http://src.chromium.org/svn/中包含如下子目录:releases,曾经发布过的chrome源代码的正式版本;trunk,当前最新的源代码。由于releases中的代码比较旧,这里就不做说明了,只说明trunk的结构。在trunk下面有3个重要的目录,deps包含了chrome编译和运行所需要的全部组件的代码。src里面包含的则是chrome的主程序的代码,tools包含的是下载和配置编译所需要的第三方工具的压缩包和源代码,其中就有svn和python这2个比较重要的工具,后面再详细介绍。暂时做这样一个简单的介绍,因为其组织结构比较负责,以后再作补充斧正。

2)如何下载和同步源代码。
首先谈谈下载:
1,最简单的方法是从chrome官网上直接下载源代码压缩包,地址是http://build.chromium.org/buildbot/archives/chromium_tarball.html。

2,或者采用svn从http://src.chromium.org/svn/trunk/src这个地方heckout,这要求你先在本地建一个源代码的主目录。

3,另外一个办法则是采用google提供的一个部署工具depot_tools。虽然这几种办法都可下载完整的源代码,但目前的情况是:chrome基于Visual Stdio 2005 进行编译,如果顺利完成编译工作,自然少不了sln文件,较早的源代码中包含有现成的sln和vcproject文件,但后来做了修改,这些文件被抛弃掉,Google自己开发了一种脚本工具叫做GYP,这个工具采用python编写,GYP采用了自定义的一套规则,用于生成各种工程文件。而关键的python则包含于depot_tools中,因此不论采用什么方法下载的代码,都得下载depot_tools这个工具,以获得必须的工程文件。
depot_tools位于 http://src.chromium.org/svn/trunk/tools 下面,包括一个目录和一个zip格式的压缩包。

3)关于编译器
前面提到Chrome采用Visual Stdio 2005进行编译,根据http://dev.chromium.org的说明,需进行如下操作正常编译
a, 安装Visual Studio 2005.
b, 安装Visual Studio 2005 Service Packe 1.
c, 安装Visual Studio Hotfix 947315.
d, 如果是vista系统,还需安装Visual Studio 2005 Service Packe 1 Update for Windows Vista.
e, 安装Windows 2008 SDK,如果是Visual Studio 2008则不需要这一步。
f, 配置Windows 2008 SDK,使2008 SDK成为首选开发库,以获得一些新功能和特性。办法是在开始->程序->Microsoft Windows SDK v6.1 > Visual Studio Registration > Windows SDK Configuration Tool,选择make current按钮。也可以在VS里面手动配置include和libary路径,效果是一样的。

二,如何配置工程文件
1,如果是采用depot_tools,那么从代码下载到生成sln文件会自动完成。其步骤是
(1)下载depot_tools到本地存储,假设位于d:/depot_tools.
(2)将d:/depot_tools添加到系统环境变量中。
(3)创建一个源代码根目录,假设为 d:/chrome,目录不得包含空格。
(4)在命令行下切换当前目录到d:/chrome。
(5)执行命令 gclient config http://src.chromium.org/svn/trunk/src ,该命令会首先下载svn和python分别到d:/depot_tools/svn_bin和d:/depot_tools/python_bin。
(6)执行命令 gclient sync 这个命令会调用svn同步源代码。这个过程会比较漫长。全部完成之后全部源代码就保存在d:/chrome里面。未编译的代码大约有4个G左右,过程将十分漫长。这样获得的源代码已经包含所有的工程文件,可直接打开。

重点说明一下gclient,它实际上是一个批处理文件,它主要做了如下一些事情,首先设置环境变量,如代码根目录,工具根目录等。其次调用win_tools.bat从服务器下载svn和python。最后调用python.exe对Chrome.gyp进行解析生成所有工程文件。
另外需要说明的是,gclient sync的过程非常漫长,根据命令行的提示来看总共需要同步67个项目(不是工程),期间可能会因为一些原因导致错误而退出这个过程,需要继续调用sync。比如网络出现故障svn会多次进入sleep状态然后重试,如果多次失败就会报错退出,还有的情况是某些子目录的属性问题无法同步,可根据提示进行操作。还有个目前新出现的问题,下面2个目录“src/webkit/data/layout_tests/LayoutTests”和“src/third_party/WebKit/LayoutTests”的源代码是从src.webkit.org签出来的,但是这个网站目前存在问题无法签出代码, 需要屏蔽掉这2个目录,由于里面是测试代码,即使丢弃也不会影响整个工程的编译,方法是打开trunk下面的.gclient文件,向里面添加如下内容
"custom_deps" : {
"src/webkit/data/layout_tests/LayoutTests":None,
"src/third_party/WebKit/LayoutTests":None,
},

这样svn就能完成代码的同步了。最后gclient会调用depot_tools/python_bin/python.exe 对 src/build/gyp_
chromium进行处理,这样就得到了所有的sln和vcproject文件。

2,如果是下载的代码压缩包或者checkout的代码,代码目录里面没有sln文件,这个时候需要调用命令行进入源代码根目录,然后执行命令 gclient runhooks --force,命令执行后会直接对Chrome.gyp进行解析,生成sln文件。

在实际下载过程中,最开始的时候我用TortoiseSVN从http://src.chromium.org/svn/trunk/src checkout源代码,但是得到的代码只有几百兆,执行gclient runhooks --force命令后也没有找到sln文件,具体原因未知,不建议使用此方式。而直接下载代码压缩包的方式没有尝试过,不知道是否可行。因此最稳妥的方法还是使用depot_tools来部署和处理源代码。

三 编译工程
启动Visual Studio 2005打开 src/chrome/browser/chrome.sln,或者打开src/build/all.sln,如果打开的是chrome.sln里面包含480个工程,而all.sln则包含507个工程,一些09年的编译说明提到有300左右的工程,可见chrome的代码变动比较大。对整个解决方案进行编译,打开需要2个小时才能完成编译,视硬件环境而定,内存越大越快,推荐4G以上内存,酷睿2核或者4核。编译完成以后据说会占用30G的空间。编译后的文件位于 d:/chorme/chrome/debug 目录或者 d:/chorme/chrome/release目录下。

四 chrome涉及的开源项目

Chrome 采用了很多开源项目,这里把它们列出来以备后用,目前Chrome涉及25个开源代码:
1、Google Breakpad
/src/breakpad
开源的跨开台程序崩溃报告系统。
2、Google URL
/src/googleurl
Google小巧的URL解析整理库。
3、Skia
/src/skia
矢量图引擎。
4、Google v8
/src/v8
Google开源的JavaScript引擎。V8实现了ECMA-262第三版的ECMAScript规范,可运行于Windows XP 和 Vista, Mac OS X 10.5 (Leopard), 及 Linux等基于IA-32 或 ARM 的系统之上。V8可单独运行也可嵌入到任何C++程序中。
5、Webkit
/src/webki
开源的浏览器引擎
6、Netscape Portable Runtime (NSPR)
/src/base/third_party/nspr
Netscape Portable Runtime (NSPR) 提供了系统级平台无关的API及类似libc的函数。
7、Network Security Services (NSS)
/src/base/third_party/nss
Network Security Services (NSS) 一套用于支持服务器端与客户端安全开发的跨平台函数库。程序通过NSS可支持SSL v2 and v3, TLS, PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509 v3 认证及其它一些安全标准。
8、Hunspell
/src/chrome/third_party/hunspell
Spell checker and morphological analyzer library and program designed for languages with rich morphology and complex word compounding or character encoding.
9、Windows Template Library
/src/chrome/third_party/wtl
用于开发Windows程序与UI组件的C++ library。WTL扩展了ATL (Active Template Library) 并提供一套用于controls, dialogs, frame windows, GDI objects等开发的类。
10、Google C++ Testing Framework
/src/testing/gtest
Google用于编写C++测试的基于xUnit架构的框架,可用于多种平台上:Linux, Mac OS X, Windows, Windows CE, and Symbian。支持自动测试发现,有一套丰富的Assertions断言,用于可自定义断言,death tests, fatal and non-fatal failures, various options for running the tests, and XML test report generation.
11、bsdiff 与 bspatch
/src/third_party/bsdiff 及 /src/third_party/bspatch
bsdiff 与 bspatch 用于为二进制文件生成补丁。
12、bzip2
/src/third_party/bzip2
bzip2使用Burrows-Wheeler block sorting text compression 算法与Huffman编码压缩文件。
13、International Components for Unicode (ICU)
/src/third_party/icu38
ICU是一套成熟并被广泛使用的C/C++ 及 Java 库,可为软件提供Unicode与全球化支持。
14、libjpeg
/src/third_party/libjpeg
用于处理JPEG (JFIF)图像格式的库。
15、libpng
/src/third_party/libpng
PNG图像格式库。支持绝大部分的PNG特性,可扩展。已经被广泛地使用了13年以上了。
16、libxml
/src/third_party/libxml
C语言的XML解析库。
17、libxslt
/src/third_party/libxslt
C语言的XSLT库。
18、LZMA
/src/third_party/lzma_sdk
LZMA为7-Zip软件中7z格式压缩所使用的压缩算法,有很好的压缩效果。
19、stringencoders
/src/third_party/modp_b64
一系列高性能的c-string转换函数,比如:base 64 encoding/decoding。通常比其标准实现快两倍以上。
20、Netscape Plugin Application Programming Interface (NPAPI)
/src/third_party/npapi
多种浏览器使用的跨平台插件架构。
21、Pthreads-w32
/src/third_party/pthread
用于编写多线程程序的API
22、SCons - a software construction tool
/src/third_party/scons
开源的软件构建工具——下一代的编译工具。可以认为SCons是改进过的跨平台配上autoconf/automake与ccache的Make工具的子系统。
23、sqlite
/src/third_party/sqlite
大名鼎鼎的嵌入式数据库引擎。自管理、零配置、无需服务器、支持事务。
24、TLS Lite
/src/third_party/tlslite
SSL 3.0, TLS 1.0, and TLS 1.1的Python免费实现库。TLS Lite支持这些安全验证方式:SRP, shared keys, and cryptoIDs in addition to X.509 certificates。注:Chrome并不包涵Python。TLS Lite用于Chrome开发过程中的代码覆盖、依赖检查、网页加载时间测试及生成html结果比较等。
25、zlib
/src/third_party/zlib
zlib为一套用于任意平台与机器的无损数据压缩的库,它免费、自由、无任何法律专利问题。

Ⅱ redis可以多key对应一个value吗

redis可以多key对应一个value,设置方法为:

1、打开HBuilderX工具,新建web项目并在js文件夹中,创建一个js文件map.js。

Ⅲ 用什么打开bsdiff文件

android 升级分为两种,一种是对系统中单个文件升级,一种是对 mtd 整个分区进行升级,升级包是用 zip 格式压缩的经过签名的压缩文件。升级过程主要流程描述如下:

1 boot 发现用户按住升级按键,将 recovery.img 作为 ramdisk 读取到内存。

2 内核根据 ramdisk 中的 init.rc 执行 recovery 脚本。 Recovery 脚本在 sdcard 中找到升级文件后调用 recovery 程序依次做以下操作:

A 检查升级文件的数字签名是否可靠。检查签名使用的本地密钥为 /res/keys

B 如果签名合法则执行提取压缩包中 META-INF/com/google/android/update-binary 文件重命名到 /tmp/update_binary 并执行该文件。

C update_binary 解析压缩文件中的 META-INF/com/google/android/updater-script 文件并执行。其升级进度通过管道回传给 recovery 程序。升级 / 更新可以直接覆盖目标文件,也可采用二进制补丁形式以减少升级文件的容量,采用的工具为 bsdiff 和 imgdiff 。对于补丁包升级形式,升级数据源可靠性鉴别的依据为 sha1 校验和数据长度比对。具体要求为: 1 升 级包提供的目标文件的 sha1 值和目标文件计算值符合,即目标正确。 2 进行补丁后的文件 sha1 值和长度符合升级包提供的补丁后的目标文件的长度和 sha1 数值,保证结果正确。两项有一项不符合则升级过程停止。为保证第二项操作不损毁最终目标,打补丁的文件会先临时存储到 cache 中,等到结果比对正确才进行实际写入 / 替换目标文件操作。所以此过程要求 cache 目录必须有足够空间能够保存临时文件。
升级文件"base\Spells\FireNova_Area.M2"无法安装。 (MD5 mismatch: expected , actual .)(PTCApply_BSDiff failed.) 如果这个问题仍然存在,您可能需要运行修复工具或者重新安装游戏以解决它。如果您无法解决这个问题,则请联系我们的技术支持部门。 (BNUpdate::PTCApply)

Ⅳ android系统 如何要用差分做升级

1、首先是差分包patch的生成。在update.zip中的patch文件夹中有需要与系统文件同名但是以xxx.p 为后缀的文件,就是生成的差分patch文件。OTA系统差分包的制作,使用命令:
./build/tools/releasetools/ota_from_target_files -n -i <旧包> <新包> <差分包名>
在查阅ota_from_target_files 的代码可知,是在函数WriteIncrementalOTAPackage里生成差分包的,在这个函数里边创建了common.Difference这个类,继续跟进,在common.py中的类 class Difference(object):里可以看到:
diff_program = DIFF_PROGRAM_BY_EXT.get(ext, "bsdiff")
2、看到了android中提供用来制作差分增量升级包的工具,在android的代码目录下 \external\bsdiff bsdiff是二进制差分工具,其对应的bspatch是相应的补丁合成工具,需要注意的是增量升级的补丁包,是需要在服务器端,即PC端完成:命令:bsdiff oldfile newfile patchfile。
3、bspatch的命令格式为:bspatch oldfile newfile patchfile。

Ⅳ 微信更新的安装包在哪个文件夹里

一般都是在系统文件夹里,安卓手机就是在android这个文件夹里,你可以在安装的时候直接设置安装完删除更新系统包。

Ⅵ Bin/LICENSE/bsdiff…还有很多文件夹,就Bin文件夹查看属性一百多MB大

是所谓的“回收站”,是不能删除的。 只要在文件夹选项—查看 里勾寻隐藏受保护的操作系统文件”就看不到了 的。如果你发现在某盘下 $RECYCLE.BIN文件内存占用很大(说明该文件回收的 东西多了,确保没有你需要的重要程序或者文件),确实想删除,右...

Ⅶ 如何更新android studio中的ndk

1、NDK开发就是JNI开发

这里有一点需要注意,moleName是最后编译生成库的名称,当然,最终的.so文件会加一个前缀“lib”,例如上面的代码,编译后生成的.so文件的全名会是libpatch.so。另外,回头看一下PatchUtil类中的static代码块,调用了加载库文件的系统方法,其中的库文件的名称,与moleName是一致的,不要加任何前后缀。

七、所有的工作都结束了,patch方法已经可以被调用了,在Activity里起一个线程,调用PatchUtil.patch(),就可以进行APK包的合成了。

八、bsdiff下载地址中,除了可以下载bsdiff的源码,还可以下载windows环境下的.exe可执行文件,下载下来,就可以在本地手动生成差分包,而不需要依赖服务器了

阅读全文

与bsdiff文件夹可以删除吗相关的资料

热点内容
java网络编程推荐 浏览:794
施耐德开关编程 浏览:65
组织胚胎学pdf 浏览:844
linux查看发包 浏览:496
加密货币交易所暴利时代 浏览:824
歌词滚动效果android 浏览:14
程序员一天的六场战斗 浏览:797
自制压缩泵的做法 浏览:622
androidstring变量 浏览:247
数学乘法速算法 浏览:986
压缩包制作后照片顺序怎么改 浏览:680
fibonacci数列算法 浏览:775
产品经理要和程序员吵架吗 浏览:252
grub2命令行 浏览:618
无法获取加密卡信息 浏览:774
云服务器网卡充值 浏览:509
编程就是软件 浏览:49
服务器如何添加权限 浏览:437
引用指针编程 浏览:852
手机加密日记本苹果版下载 浏览:64