Android源码阅读姿势
最近在看《Android进阶解密》一书,需要参阅系统源码,所以在win平台折腾了一下AOSP源码阅读环境,下面将过程记录下,以供参考。
下载源码
以AOSP-8.0源码为例
下载链接 提取码: kaae
压缩文件大小8.6G,解压后26G,需要注意下磁盘空间
下载完先不着急解压,继续往下看
开启目录大小写支持
众所周知,windows分区是不区分文件大小写的,但是aosp中有些目录和文件名称完全一致,只是大小写不同,所以直接解压会导致源码不完整(会覆盖),从而影响阅读,但好在Windows10-17107开始,支持按目录区分大小写,但是需要手动开启。
以管理员身份运行 PowerShell 并使用以下命令
开启
bash
fsutil.exe file setCaseSensitiveInfo <path> enable
关闭
bash
fsutil.exe file setCaseSensitiveInfo <path> disable
还是不着急解压,继续往下看。。。
配置windows defender
windows defender是自win10开始自带的一个保护系统安全的综合工具,默认是启用的,并且会开启全盘实时保护,如果不加以配置,那对于AOSP庞大的源码文件,系统将实时进行扫描,这会很影响性能,我们需要手动添加排除目录,让其忽略AOSP目录。
步骤如下
windows defender->病毒与威胁防护->"病毒与威胁防护"设置->添加或删除排除项
终于可以解压源码了!!
Source Insight导入源码
阅读工具推荐使用Source Insight,轻量且功能丰富,对于aosp中的多种开发语言支持完善。
首先新建一个项目
选择上面解压的源码路径
添加要阅读的部分
建议目前要研究哪块就先添加哪块,全部添加会影响性能,也没有必要。
以frameworks为例,选中该目录后,点击Add Tree,就会将该目录以及子目录中的文件都添加项目中
添加完之后,点击Close,就会进入项目主页面
Source Insight配置优化
下面说一下我个人喜欢的一些配置
个人习惯将界面配置成上面的布局样式,可以参考下
- 布局1是当前文件内的变量和方法列表,可以快速检索需要查看的代码
- 布局2是阅读窗口,在窗口左侧右键单击可以开启行号显示,右侧的小地图开启方式是,顶部菜单栏View->Overview
- 布局3是项目文件列表,可以在顶部输入文件名进行检索
- 布局4是上下文窗口,开启方法(View->Panels->Context Window) 当你在布局2中点击某个方法或者变量时,该窗口会出现该方法或者变量定义的地方
- 布局5是引用窗口,开启方法(View->Panels->Relation Window) 会实时显示你选中的函数或者方法被引用的位置