Android 代码优化工具 —— Lint Checks

[技术鸟]公众号自开通以来,致力于给大家分享以“移动开发”为主的技术知识,希望与大家交流学习,相比于 iOS,Android 方面的分享少了很多,也得到部分粉丝的吐槽。

由于亦枫本人专职于Android开发,因工作繁忙和集中于 iOS 的学习,导致技术分享有所失衡,望大家见谅。亦枫以后会更加努力,给大家分享更多的精彩文章。今天分享的是一篇关于Android 代码优化的文章,欢迎交流分享。

明日预告:Google 官方于开发者官网发布了 Android N 的相关功能预览,亦枫正抓紧翻译中,明天将发布翻译版,敬请期待~


一.  Android Lint Checks 简介

作为一个 Android Developer,难免会面临这样的困扰:随着产品需求的反复更改和App版本的不停迭代,Android 项目工程中出现了越来越多的警告性代码(Warnings),四处遍布着无用的Java类和图片等资源(Unused),Manifest.xml 文件中会不会定义了一些兼容性以及安全性的标签呢(Security),打包发布的Apk文件体积越来越大,潜在性的异常问题越来越多!

其实,你缺少的只是一款代码检查工具,譬如 Lint。Android Lint Checks,在 SDK Tools 16(ADT 16)才引入的一款静态代码分析工具,能够对 Android 源代码进行扫描和检查,并发现可优化的代码和潜在性的异常,从而方便开发人员尽早地予以处理。

二.  Android Lint Checks 作用

Lint 工具能够解决工程中存在的很多问题,具体可以参考官方介绍(需翻墙访问):Android Lint Checks,如图所示:


而在实际使用过程中,我们通常会使用 Lint 工具帮助解决如下一些主要问题:

  1. Layout performance problems
    布局性能问题。比如布局内容和层级嵌套过多;

  2. Unused resources
    未使用到的资源。冗余资源让Apk文件体积更大,编译更慢;

  3. Inconsistent array sizes
    不一致的数组大小。一个数组经过转化配置形成多个数组后,当某一个数组发生add或者remove操作导致该数组大小发生变化时,我们很容易忘记修改其他数组的大小,导致发生未知的错误;

  4. Accessibility and Internationalization problems
    访问权限和国际化问题。诸如硬编码的字符串,缺失的 contentDescription 等;

  5. Icon Problems
    图标问题。比如重复的图标,错误的大小;

  6. Usability problems
    可用性问题。如在文本输入框中没有指定输入类型;

  7. Manifest errors
    AndroidManifest.xml 文件错误。

三.  Eclipse插件集成使用

Android Lint 是一个命令行工具,提供了命令执行方式,同时也集中在如 Eclipse 、Android Studio 等集中开发环境(IDE)中,提供插件执行方式,也可以选择将分析结果以html等形式输入到文件中。自动分析,使用简单,这里以 Eclipse 为例,介绍一下 Android Lint 工具的使用。

在 Eclipse 中使用 Lint 工具有两种方式,选择工具栏中的对勾标识或者直接右键工程名称 → Android Tools → Run Lint: Check for Common Errors 。


运行之后,经过一段短暂时间的自动化分析之后,一份完整的分析结果便呈现于 Lint Warnings 视图中。通过点击标签,也可以实现排序功能,方便集中处理。


如图所示,分析结果中包含了工程中的潜在性错误和一些常见警告,也给出了问题的描述、类型和位置。双击单项描述,可以快速定位至问题的出处。

同时,在工程结构目录中,也会以红叉和感叹号的形式将这些错误和警告显示出来,而这些,在开发时的编译过程中不会显现。


根据这些提示信息,我们就可以逐一修改和优化工程的源代码了。

关于 Android Studio 插件和 命令行的使用,以及更多 Android Lint 的信息,可参考官方介绍(需翻墙访问):

http://developer.android.com/tools/help/lint.html

四.  注意事项

对于 Android Lint 检查出的未使用的资源,需要逐一分析有选择性的删除。比如对于图片资源,Android Lint 只能检测到在这些图片是否在其他资源文件(如 xml 布局文件)中有没有引用到,并不能检查 Java 代码或第三方库中是否引用,所以,如果你使用批量脚本代码等工具不经任何分析的删除,很容易造成误删,导致程序编译报错。建议配合 Ctrl + H 快捷键进行全局检索确认无误后,再行删除。

热门文章

☞ 女程序员做了个梦,各路大神惊现神级评论!

『IT女神节特刊』女神才露尖尖角,无数宅男尽折腰!

☞ 监狱里的囚犯都在学习编程,你还有什么理由拒绝呢?


左下角点击查看【简书文章】!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值