Android代码优化技巧
写在前面
Android Studio的强大其实远超我们的想象,只不过我们没有发现而已,以下的几点优化技巧都是通过AS进行的(如果大家有用过,可以忽略)。
1,Long Method
意思就是函数过长,我们可以通过AS发现我们工程中哪里存在函数过长的问题。如下操作
Android studio 工具栏 Analyze –> Run inspection by name
输入 long ,出现 Overly long method,选择点击,会出现一个新的界面,在这个界面里可以选择对整个工程,或者module或者文件进行分析,根据分析结果,我们可以有选择性的去对函数进行优化,一般来说,每个函数的功能都是单一的,过长的函数可以拆分为几个小函数,比如,查询和修改的职责要分开。
2,Too many parameters
意思就是函数参数过多,操作同上,不过关键字输入too many para,选择Method with too many parameters,同样,再选择分析的范围,得到结果,有针对的选择优化。
3,Redundant local variable
冗余局部变量,代码中不可避免的会出现一些冗余的局部变量,我们可以找到它,然后删除。关键字输入redundant,后面同上。
4,Unused Declaration
无用函数,这个问题出现主要是由历史遗留导致,有的需求可能已经不存在了,但是代码还保留着工程中,我们也可以找到他们,有针对的删除。关键字输入Unused Declaration。
5,Unused method parameter
无用函数参数,保持一个良好的代码规范还是很重要的,同上,不多说。
6,infer
Infer 是 Facebook 开源的静态代码检查工具,可检查 Android 和 Java 代码中的 NullPointException 和 资源泄露。Android studio 已经将 infer 集成到工具栏里面,点击 Analyze->infer Nullity,根据分析结果,可以定位到具体的代码文件,然后我们去手动判断或者直接点击“Infer Nullity Annotations”, 工具直接帮我去完成改造结果。ps,试了一下,结果我们的工程差不多每个文件都被改了。。。
7,FindBugs
FindBugs 是一个开源的静态代码分析工具,无需运行工程就能对代码进行分析的工具。它不注重 style 及 format,注重检测真正的 bug 及潜在的性能问题 ,以 bytecode(.class、.jar)为对象进行检查。除了单独运行,还可以用作 Android-studio 的 Plug-in。据说,它可以检测检测 java programing 中容易陷入的 bug pattern,比如equals()实现时的一般规约违反 Null pointer 的参照 ,Method 的返回值的 check 遗漏 ,初始化前 field 的访问, Multi-thread 的正确性,无条件的 wait,Code 的脆弱性 ,可以变更的静态 object ,内部数列参照的 return 等。
AS可以通过插件的方式安装,具体安装大家都会就不多说了。关键字Findbugs,重启AS,Enable Android FindBugs,工具栏analyze,最下方会出现它。然后就可以对工程进行分析了。至于分析结果,大家自己看。
以上,仅供参考,其实我感觉提到的这些,无非是从几个方面告诉我们要有一个良好的编码格式和规范,避免因一些低级的错误导致程序的崩溃。至于发现bug或者潜在的性能问题,还需要实践。