网站首页 > 编程文章 正文
一. 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 工具帮助解决如下一些主要问题:
- Layout performance problems
布局性能问题。比如布局内容和层级嵌套过多; - Unused resources
未使用到的资源。冗余资源让Apk文件体积更大,编译更慢; - Inconsistent array sizes
不一致的数组大小。一个数组经过转化配置形成多个数组后,当某一个数组发生add或者remove操作导致该数组大小发生变化时,我们很容易忘记修改其他数组的大小,导致发生未知的错误; - Accessibility and Internationalization problems
访问权限和国际化问题。诸如硬编码的字符串,缺失的 contentDescription 等; - Icon Problems
图标问题。比如重复的图标,错误的大小; - Usability problems
可用性问题。如在文本输入框中没有指定输入类型; 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
快捷键进行全局检索确认无误后,再行删除。猜你喜欢
- 2025-03-25 linux下开发一个应用,首先要做什么?
- 2025-03-25 jquery mobile + 百度地图 + phonegap 写的一个"校园助手"的app
- 2025-03-25 AdGuard home 过滤规则地址(adguard过滤器开启哪几个)
- 2025-03-25 万事开头难,手把手教你搭建Appium自动化测试环境,实践案例详解
- 2025-03-25 Android关于Gradle构建流程,简单易懂,收获满满
- 2025-03-25 派早报:iOS 8.4 & Apple Music 明日发布,支持 Force Touch 的 iPhone 已开始生产等
- 2025-03-25 手机软件开发从零开始【Android第2篇Hello】
- 2025-03-25 android实现消息提示框(android提示信息)
- 2025-03-25 Android入门图文教程集锦(android新手入门)
- 2025-03-25 「全栈工程师之梦的开始--安卓开发(二)」开发安卓app
你 发表评论:
欢迎- 最近发表
-
- 90岁老人科目三一把过火爆网络!考驾照、爱美甲……这群“90后”比年轻人潮
- DNF:遗忘之地任务流程,适用于新手起小号,装备修理白漂
- dnf手游:“首款流拍宝珠”,6位玩家眼睁睁看着500万泰拉丢失!
- dnf手游:小熊卡正式升级!可附魔到工会勋章,千万别卖!
- dnf手游:首张“涨抗魔”粉卡火了!以前3万没人要现在准备断货!
- dnf手游:团本币增加!3月26号打团有坑提前避开,浪费门票?
- dnf手游:涨价20倍!曾经没人要的,如今已是妥妥的T0材料!
- dnf手游:“官方鼓励回归”火了,白送玩家+20装备和王子卡等!
- dnf手游:无根之源千万别用!竞拍系统一定要抢否则错过崛起机会
- dnf手游:DNF手游各职业技能加点攻略、装备推荐!小白一看就会
- 标签列表
-
- spire.doc (70)
- instanceclient (62)
- solidworks (78)
- system.data.oracleclient (61)
- 按键小精灵源码提取 (66)
- pyqt5designer教程 (65)
- 联想刷bios工具 (66)
- c#源码 (64)
- graphics.h头文件 (62)
- mysqldump下载 (66)
- libmp3lame (60)
- maven3.3.9 (63)
- 二调符号库 (57)
- git.exe下载 (68)
- diskgenius_winpe (72)
- pythoncrc16 (57)
- solidworks宏文件下载 (59)
- qt帮助文档中文版 (73)
- satacontroller (66)
- hgcad (64)
- bootimg.exe (69)
- android-gif-drawable (62)
- axure9元件库免费下载 (57)
- libmysqlclient.so.18 (58)
- springbootdemo (64)
本文暂时没有评论,来添加一个吧(●'◡'●)