I can believe fly.

Wednesday, February 15, 2017

Android Sonar

【介绍】
Android lint : Android代码优化工具
http://tools.android.com/tips/lint-checks
1. 项目中有哪些资源文件引入了却没有在代码中使用的话,会给提示。既包括图片资源、layout文件,也有定义的String常量和Color常量须的System.out和printstackTrace)
2. layout文件中编写不规范的地方,会给出提示。例如考虑到国际化,如果直接在xml中写汉字会提醒你把文字写到string配置文件中
3. 如果把定义图片大小的变量设置为px时,会提示你不太规范,改成dp
4. 布局属性使用不当、id重复定义、标签使用不规范等,都会提示你修改
5. 考虑到屏幕适配,如果有些图片只在高分辨率中放置了,会提醒你应该在中低分辨率的文件夹下也应该放置一份。

findbugs
Bad practice 坏的实践:常见代码错误,序列化错误,用于静态代码检查时进行缺陷模式匹配
Correctness 可能导致错误的代码,如空指针引用等
国际化相关问题:如错误的字符串转换
可能受到的恶意攻击,如访问权限修饰符的定义等
多线程的正确性:如多线程编程时常见的同步,线程调度问题。
运行时性能问题:如由变量定义,方法调用导致的代码低效问题。

PMD
     1.可能的bug - 空try/catch/finally/switch语句
     2.无效代码 -未使用的变量,参数和私有方法
     3.非最佳的代码 - 较耗费资源的String/StringBuffer用法
     4.过于复杂的表达式 - 不必要的if语句,或应该为while的for循环
     5.重复代码 - 复制/粘贴代码意味着复制/粘贴bugsurefire

checkstyle
(1). Javadoc注释
(2). 命名约定
(3). 标题
(4). Import语句
(5). 体积大小
(6). 空白
(7). 修饰符
(8). 块
(9). 代码问题
(10). 类设计
(11). 混合检查(包活一些有用的比如非必须的System.out和printstackTrace)

【配置】

1. 到更新中心安装Android插件,重启服务
2. 将当前默认的规则加上Android Lint(即在当前规则的配置继承选择它)


【参考资料】
《常用 Java 静态代码分析工具的分析与比较》http://www.oschina.net/question/129540_23043


落款2014.03.07

No comments: