对于手机输入法这样的大型Android项目,由于开发人员众多,大家提交的代码质量参差不齐,项目中往往有不少 Bad Practice,这些 Bad Practice 可能会影响项目的质量或用户体验,然而却不容易在平时测试中发现,所以需要借助静态代码分析工具来找出这些问题点。目前市面上也有不少静态代码分析工具,但是针对一些特定的问题还是需要做单独定制开发,本次分享在介绍了现有静态代码分析工具的基础上提出了一个专门用于分析项目特定问题的方案,并介绍了该方案在百度输入法项目中的一些实践case。
1. 为什么要做静态代码分析:
a. Android项目开发过程中的经常会有一些 Bad Practice 的代码提交:比如在View绘制时创建新对象;不合理地使用隐私敏感 API 等;
b. 这些问题在大型项目中普遍存在,但是测试阶段不容易被发现,比较容易带到线上,会给用户带来不好的体验,需要借助工具分析解决这些问题;
2. 分析市面上的静态代码分析工具的优缺点、介绍自研的静态代码分析工具的实现逻辑
a. 对比市面上已有的静态代码分析工具,比如:Lint、Coverity、Infer、Checkstyle,并分析他们各自的优缺点;
b. 这些静态代码分析工具对分析前面提到的特定的问题并不十分方便,需要自己实现一个今天代码分析的工具;
c. 介绍自研的静态代码分析工具的具体实现逻辑;
3. 介绍使用自研的静态代码分析工具的几个案例
a. 针对第一部分中提到的几个case,介绍百度输入法项目在使用了自研的静态代码分析工具后取得的一些效果,总结其带来的收益;
1. 认识并了解静态代码分析工具的作用
2. 学会怎么开发一个适合自己项目的、解决特定问题的静态代码分析工具
3. 了解如何评价静态代码分析工具带来的收益
2013年本科毕业于华侨大学;2014年入职PPTV,主要从事PPTV的Android客户端以及插件化相关的开发工作;2018年加入百度,目前主要从事百度的基础架构以及性能优化等相关工作。