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 是一个静态代码分析工具,用于检测 Android 应用程序中的潜在错误和不良实践。这个名为 "android-lint-summary" 的开源项目专注于提供一个更美观、更易读的方式来展示 Lint 检查的结果。它使得开发者...
而"Android-Android自定义Lint检查"则涉及到如何扩展Lint的功能,为你的项目或团队定制专属的检查规则。 首先,理解Lint的基本工作原理至关重要。Lint通过扫描项目中的源代码、资源文件和构建配置,寻找可能的问题...
- **visitNode()**:覆盖`visitNode()`方法,这是lint检查的主要入口点。在这里,你可以遍历抽象语法树(AST)来分析代码。 - **issue()**:定义一个`LintIssue`对象,描述你的规则,包括ID、严重性、描述和修复...
本项目"基于注释的Androidlint检查生成"专注于利用注释实现自定义的lint检查,帮助开发者识别和修复Kotlin扩展使用不当或者其他违反编码约定的情况。 首先,了解`AndroidLint`的工作原理。它通过扫描项目的源代码,...
1. **Lint检查机制**:Android Lint通过遍历项目中的Java、XML和其他资源文件,应用一系列预定义的检查规则。每个检查规则都有特定的ID,用于识别和报告特定类型的问题。 2. **检查类别**:Lint检查涵盖了多个方面...
集成Android Lint插件的目的是在每次构建时自动运行Lint检查,这样开发者可以在代码合并之前及时发现并修复问题,提高团队的开发效率。 虽然原插件不再推荐使用,但目前Jenkins可以通过更现代的方式来实现类似的...
`AndrLintWatchDog`是一个专为Android定制的Lint检查工具集,它包含了多种自定义的Lint检查规则,旨在帮助开发者发现并修复潜在的问题,提高应用程序的稳定性和性能。本文将深入探讨这个工具集中的典型Custom Lint ...
这就是为什么有些开发者会创建并分享自定义的`Lint`检查集合,如"Lint-Checks, android lint中没有现成的有用lint检查集合.zip"。 这个开源项目,"Lint-Checks",包含了开发者社区贡献的一系列非官方的`Lint`检查...
在这个特定的Lint检查中,它可能专注于以下几个方面: 1. **未处理的权限检查**:确保在使用需要权限的功能前,应用进行了适当的权限检查。例如,使用`ContextCompat.checkSelfPermission()`来检查当前是否已获得所...
它通过集成和封装Android Lint的功能,使得开发者无需深入了解Lint的底层机制,也能方便地运行Lint检查,获取关于代码质量的反馈。这不仅节省了开发者的学习成本,也减少了在项目中集成和使用Lint的复杂性。 Lin...
在Android开发中,确保代码质量是非常重要的,而`Android-Lint`是一个强大的静态代码分析工具,可以帮助开发者检测出潜在的问题,如性能优化、错误处理、兼容性问题等。本示例项目"Android-LintSummarySample"是关于...
在Android开发过程中,Android Lint是一个非常重要的静态代码分析工具,它能帮助开发者发现并修复潜在的代码问题、性能优化建议、编码规范等。本文将详细介绍如何以更美观、直观的方式来展示Android Lint检测出的...
- **代码分析工具**:增强了代码检查工具Lint的功能,帮助开发者更好地发现潜在的代码问题。 - **多平台支持**:虽然主要针对Linux系统,但Chipmunk版本也支持跨平台操作,方便开发者在不同的操作系统之间切换。 ##...
完成上述步骤后,将你的自定义Lint检查器添加到项目中,可以在`build.gradle`文件中指定依赖。为了使其他项目也能使用你的规则,可以将其打包成一个独立的库,并发布到Maven仓库。 在实际开发中,自定义Lint规则...
本文将详细介绍如何为Android项目设置CheckStyle、FindBugs、PMD和Lint这四个知名的代码质量检查工具。 1. CheckStyle: CheckStyle是一个开源的代码质量检查工具,它可以帮助开发者遵循特定的编程规范和风格指南。...
对于更高级的定制,开发者可以编写新的Lint检查规则或者自定义现有的规则。这通常涉及到深入理解Lint的工作原理,以及学习如何使用`Writing New Lint Checks`和`Writing Custom Lint Rules`等官方文档中的指导。 在...
4. **Lint 工具**:提供静态代码分析,帮助开发者找出潜在的问题和性能优化建议。 二、Android Studio 的安装步骤 1. **下载安装包**:获取"android-studio-bundle-141.1903250-windows",解压后运行安装程序。 2...
6. **代码分析和Lint**:新的代码检查和Lint工具可以帮助开发者发现潜在问题,遵循最佳实践。 7. **Android模拟器改进**:可能会有更快的启动速度、更低的资源占用,以及更多的设备配置选项。 8. **多语言支持**:...
7. **源代码分析**:新增的代码分析工具,如Lint检查,可帮助开发者遵循最佳实践并发现潜在问题。 **三、应用实践** 1. **项目创建**:通过Android Studio的向导,可以快速创建新的Android项目,选择合适的项目...
3. 代码分析:内置代码质量检查工具,如Lint,可自动检测潜在的错误和性能问题,帮助企业保持代码的健壮性。 4. 性能优化:提供CPU Profiler和Memory Profiler等工具,帮助企业开发者优化应用性能,减少内存泄漏和...