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