`
lxfgrace
  • 浏览: 74694 次
  • 性别: Icon_minigender_2
  • 来自: 重庆
社区版块
存档分类
最新评论

Android-Lint检查的潜在问题

阅读更多
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-summary,更漂亮的android lint问题展示.zip

    Android Lint 是一个静态代码分析工具,用于检测 Android 应用程序中的潜在错误和不良实践。这个名为 "android-lint-summary" 的开源项目专注于提供一个更美观、更易读的方式来展示 Lint 检查的结果。它使得开发者...

    Android-Android自定义Lint检查

    而"Android-Android自定义Lint检查"则涉及到如何扩展Lint的功能,为你的项目或团队定制专属的检查规则。 首先,理解Lint的基本工作原理至关重要。Lint通过扫描项目中的源代码、资源文件和构建配置,寻找可能的问题...

    Android-lint-自定义lint规则

    - **visitNode()**:覆盖`visitNode()`方法,这是lint检查的主要入口点。在这里,你可以遍历抽象语法树(AST)来分析代码。 - **issue()**:定义一个`LintIssue`对象,描述你的规则,包括ID、严重性、描述和修复...

    Android-基于注释的Androidlint检查生成

    本项目"基于注释的Androidlint检查生成"专注于利用注释实现自定义的lint检查,帮助开发者识别和修复Kotlin扩展使用不当或者其他违反编码约定的情况。 首先,了解`AndroidLint`的工作原理。它通过扫描项目的源代码,...

    android-lint-checks:android lint检查源代码-android

    1. **Lint检查机制**:Android Lint通过遍历项目中的Java、XML和其他资源文件,应用一系列预定义的检查规则。每个检查规则都有特定的ID,用于识别和报告特定类型的问题。 2. **检查类别**:Lint检查涵盖了多个方面...

    android-lint-plugin:Jenkins的Android Lint解析器插件

    集成Android Lint插件的目的是在每次构建时自动运行Lint检查,这样开发者可以在代码合并之前及时发现并修复问题,提高团队的开发效率。 虽然原插件不再推荐使用,但目前Jenkins可以通过更现代的方式来实现类似的...

    Android-AndrLintWatchDog一些典型的Custom-Lint-Check示例集合

    `AndrLintWatchDog`是一个专为Android定制的Lint检查工具集,它包含了多种自定义的Lint检查规则,旨在帮助开发者发现并修复潜在的问题,提高应用程序的稳定性和性能。本文将深入探讨这个工具集中的典型Custom Lint ...

    Lint-Checks,android lint中没有现成的有用lint检查集合.zip

    这就是为什么有些开发者会创建并分享自定义的`Lint`检查集合,如"Lint-Checks, android lint中没有现成的有用lint检查集合.zip"。 这个开源项目,"Lint-Checks",包含了开发者社区贡献的一系列非官方的`Lint`检查...

    android-runtimepermissions-lint

    在这个特定的Lint检查中,它可能专注于以下几个方面: 1. **未处理的权限检查**:确保在使用需要权限的功能前,应用进行了适当的权限检查。例如,使用`ContextCompat.checkSelfPermission()`来检查当前是否已获得所...

    Android-Lin是一个让AndroidLint更简单的工具

    它通过集成和封装Android Lint的功能,使得开发者无需深入了解Lint的底层机制,也能方便地运行Lint检查,获取关于代码质量的反馈。这不仅节省了开发者的学习成本,也减少了在项目中集成和使用Lint的复杂性。 Lin...

    Android-LintSummarySample:如何在Gradle中使用android-lint-summary的示例

    在Android开发中,确保代码质量是非常重要的,而`Android-Lint`是一个强大的静态代码分析工具,可以帮助开发者检测出潜在的问题,如性能优化、错误处理、兼容性问题等。本示例项目"Android-LintSummarySample"是关于...

    Android-采用更漂亮的方式展示AndroidLint问题

    在Android开发过程中,Android Lint是一个非常重要的静态代码分析工具,它能帮助开发者发现并修复潜在的代码问题、性能优化建议、编码规范等。本文将详细介绍如何以更美观、直观的方式来展示Android Lint检测出的...

    Android Studio Chipmunk(android-studio-2021.2.1.16-linux.tar.gz)

    - **代码分析工具**:增强了代码检查工具Lint的功能,帮助开发者更好地发现潜在的代码问题。 - **多平台支持**:虽然主要针对Linux系统,但Chipmunk版本也支持跨平台操作,方便开发者在不同的操作系统之间切换。 ##...

    android开发-Android自定义Lint开发示例工程.zip

    完成上述步骤后,将你的自定义Lint检查器添加到项目中,可以在`build.gradle`文件中指定依赖。为了使其他项目也能使用你的规则,可以将其打包成一个独立的库,并发布到Maven仓库。 在实际开发中,自定义Lint规则...

    Android-为您的Android项目轻松设置CheckStyleFindBugsPMD和Lint

    本文将详细介绍如何为Android项目设置CheckStyle、FindBugs、PMD和Lint这四个知名的代码质量检查工具。 1. CheckStyle: CheckStyle是一个开源的代码质量检查工具,它可以帮助开发者遵循特定的编程规范和风格指南。...

    Android Lint

    对于更高级的定制,开发者可以编写新的Lint检查规则或者自定义现有的规则。这通常涉及到深入理解Lint的工作原理,以及学习如何使用`Writing New Lint Checks`和`Writing Custom Lint Rules`等官方文档中的指导。 在...

    android-studio-bundle-141.1903250-windows

    4. **Lint 工具**:提供静态代码分析,帮助开发者找出潜在的问题和性能优化建议。 二、Android Studio 的安装步骤 1. **下载安装包**:获取"android-studio-bundle-141.1903250-windows",解压后运行安装程序。 2...

    android-studio-2021.1.1.10-windows.zip

    6. **代码分析和Lint**:新的代码检查和Lint工具可以帮助开发者发现潜在问题,遵循最佳实践。 7. **Android模拟器改进**:可能会有更快的启动速度、更低的资源占用,以及更多的设备配置选项。 8. **多语言支持**:...

    android-studio-2021.3.1.16-windows.exe

    7. **源代码分析**:新增的代码分析工具,如Lint检查,可帮助开发者遵循最佳实践并发现潜在问题。 **三、应用实践** 1. **项目创建**:通过Android Studio的向导,可以快速创建新的Android项目,选择合适的项目...

    android-studio-ide-201.7042882-windows(企业开发常用版本).zip

    3. 代码分析:内置代码质量检查工具,如Lint,可自动检测潜在的错误和性能问题,帮助企业保持代码的健壮性。 4. 性能优化:提供CPU Profiler和Memory Profiler等工具,帮助企业开发者优化应用性能,减少内存泄漏和...

Global site tag (gtag.js) - Google Analytics