1.1问题描述-- Issue
Android-Lint所要检查的问题以Issue来描述。
Issue分9类(Category):Correctness/ Correctness: Messages / Security / Performance / Usability: Typography /Usability: Icons / Usability / Accessibility / Internationalization。
Issue以一个文本短语来作为id,对Issue的定制等操作都是基于id的。
Issue以Severity来标识该Issue的危害程度:Fatal / Error / Warning/ Information / Ignore。对Issue的忽略操作其实也就是降低它的Severity为Ignore。
1.2 检查的潜在问题
Android-Lint所检查的潜在问题,可以通过命令行$lint --show来获得所要扫描问题的详细列表。
下面简要列举Android-Lint所检查的常见问题:
[plain] view plaincopy
1. Correctness
1) DuplicatedIds
Layout中id应该唯一
2) NewApi
代码中使用的某些API高于Manifest中的Min SDK
3) InconsistentArrays
字符串国际化中,同一名字的的String-Array对应的item值不相同
4) Registered
Activity/Service/ContentProvider没有通过AndroidManifest注册
5) Deprecated
使用已经废弃的API
6) PxUsage
避免使用px,使用dp
2. Correctness:Messeges
1) MissingTranslation
字符串国际化不完全
2) ExtraTranslation
国际化的字符串,在默认位置(defaultlocale),没有定义
3. Security
1) SetJavaScriptEnabled
不确定你的程序中确实需要JavaScript就不要执行SetJavaScriptEnabled。
2)ExportedContentProvider/ExportedReceiver/ExportedService/ExportedActivity
ContentProvider/Receiver/Service/Activity的exported为true时,设置一个Permission,让使用者获取了Permission才能使用。
3) HardcodedDebugMode
不要在manifest中设置android:debuggable。
设置它,编译的任何版本都要采用指定的debug模式。不设置,编译Eng版本采用debug模式;编译User版本采用release模式。
4. Performance
1) DrawAllocation
避免在绘制或者解析布局(draw/layout)时分配对象。E.g.,Ondraw()中实例化Paint对象。
2) ObsoleteLayoutParam
Layout中无用的参数。
3) UseCompoundDrawables
可优化的布局:如包含一个Imageview和一个TextView的线性布局,可被采用CompoundDrawable的TextView代替。
4) UseSparseArrays
尽量用Android的SparseArray代替Hashmap
5) DisableBaselineAlignment
如果LinearLayout被用于嵌套的layout空间计算,它的android:baselineAligned属性应该设置成false,以加速layout计算。
6) FloatMath
使用FloatMath代替Math。
7) NestedWeights
避免嵌套weight,那将拖累执行效率
8) UnusedResources/UnusedIds
未被使用的资源会是程序变大,并且编译速度降低。
9) Overdraw
如果为RootView指定一个背景Drawable,会先用Theme的背景绘制一遍,然后才用指定的背景,这就是所谓的“Overdraw”。
可以设置theme的background为null来避免。
10) UselessLeaf/UselessParent
View或view的父亲没有用
5. Usability:Typography
1) TypographyDashes
特殊字符需用编码代替:“–”需要用“–”;“—”需要用“—”
2) TypographyEllipsis
特殊字符需用编码代替:“…”需要用“…”
3) TypographyOther
问题:“(c)”需要用“©”
6. Usability:Icons
1) IconNoDpi
Icon在nodpi和指定dpi的目录下都出现。
2) GifUsage
Image不要用GIF,最好用PNG,可以用JPG。
7. Usability
1) BackButton
Android中不要设计有Back的按钮,Android中一般有Back的硬按键。
2) ButtonCase
Button的“Ok”/“Cancel”显示大小写一定,不要全大写或全小写。有标准的资源的字符串,不要自己再定义,而要用系统定义的:@android:string/ok和@android:string/cancel
8. Accessibility
1) ContentDescription
ImageView和ImageButton应该提供contentDescription
9. Internationalization
1) HardcodeText
硬编码的字符串应该在资源里定义
2) EnforceUTF8
所有XML资源文件都应该以UTF-8编码
...
分享到:
相关推荐
Android Lint Plugin for Jenkins Parses output from the Android lint tool and displays the results for analysis. https://wiki.jenkins-ci.org/display/JENKINS/Android Lint Plugin
C 和 C++ 的静态代码分析...从那里,PC-lint Plus 采用各种机制,包括数据流分析、抽象解释、价值跟踪、读写分析、强类型检查、函数语义验证和许多其他技术,以提供对单个文件和文件的稳健和整体分析。一个完整的项目。
The Android lint tool is a static code analysis tool that checks your Android project source files for potential bugs and optimization improvements for correctness, security, performance, usability, ...
让你的代码通过 PC-Lint 检查
PC-lint 在全球拥有广泛的客户群,许多大型的软件开发组织都把PC-Lint 检查作为代码走查的第一道工序。PC-Lint不仅能够对程序进行全局分析,识别没有被适当检验的数组下标,报告未被初始化的变量,警告使用空指针...
Android自定义Lint检查
PC-lint最新版本9.0i破解版,安装即可。
PC-Lint使用指南PC-Lint使用指南
PC-Lint最新破解版内含详细说明,并有基本操作PPT
lint - 自定义lint规则
文档描述了如何在keil MDK 中集成PC-lint 代码走查工具的方法。
PC-Lint报错详解(中文版) 难得的中文版本 -1―未关闭注释 (位置) 文件结束的时候,仍然有一个未关闭的注释存在,打开的这个注释位置将被显示出来。 ―2―未关闭的引号 在行尾的时候,仍然存在一个同行的未关闭的...
开源项目-golangci-golangci-lint.zip,golangci-lint: next generation of linters runner, 5x faster than gometalinter, has a lot of features
静态代码检查工具PC-Lint则偏重于代码的逻辑分析,它能够发现代码中潜在的错误,比如数组访问越界、内存泄漏、使用未初始化变量等。本文将介绍如何安装和配置PC-Lint代码检查工具以及如何将PC-Lint与常见的代码编辑...
pc-lint用于sourceinsight上静态代码检测,亲测可以使用。
PC-lint 代码规范检查,PC-lint 代码规范检查, PC-lint 代码规范检查, PC-lint 代码规范检查, PC-lint 代码规范检查,
PC-lint安装及使用总结,介绍代码检查工具 PC-lint 的安装方法、使用说明,非常详细、简单易学。
pc-lint9.0在keil5中的安装、环境配置、详细使用教程
PC-Lint静态代码检查工具说明 详细说明如何设置。