Beyond Compare 使用技巧 在移植 Baidu ROM 过程中,我们经常需要对比分析源包代码和工程代码两套 smali 代码,并把源包代码中的 feature 代码或 bug fix 代码合并到工程代码中,使用一个专业、高效的文件对比工具将会让我们 patch 事半功倍,这里推荐 Beyond Compare 这款优秀的文件对比软件
Beyond Compare 同时有 Windows 和 Linux 版本可使用,这里就不多介绍,具体可自行上网搜索,这里介绍利用这款软件在合并代码过程的一些使用技巧
1、 忽略行号差异 在对比 smali 代码过程,会发现很多文件的差异缩略图(下图左侧)几乎全部标红,文件差异似乎很大
其实很多只是行号的差异,我们并不关心,但这些差异会让所关心的差异难以定位,因此可以设置一个对比规则忽略掉行号的差异,设置方法如下: a
点击“规则”选项按钮,弹出对话“重要”选项对话框,点击编辑语法,新建一个语法,按照下图所示配置语法项目
确定后便在“重要”选项卡中生成一个“行号”勾选项,取消该选项的勾选,确定后返回
按下“忽略不重要差异项”选项按钮,就能忽略行号的差异,左侧缩略图便能显示出实重要代码差异的位置
2、 smali 语法高亮 smali 代码虽然不是一种官方标准语言,但也遵循一定的语法规范,如有语法高亮辅助功能将能大大增强smali 代码的可读性
Beyond Compare 允许自定义文件格式,对自定义的语法高亮显示,下面介绍针对smali 代码进行语法高亮设置的方法: a
在选项菜单“工具”中打开“文件格式”对话框,新建一个文本格式类型的选项并命名为”smali”,文件过滤条件为”*
smali”,完成后先点击保存
如下图所示: b
点击“语法”选项卡,这里会创建“关键字”、“字符串”和“注释”三种语法,点