Android-Lint检查的潜在问题

转载地址:http://lxfgrace.iteye.com/blog/1693639

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编码  
  
...  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值