作为移动应用开发者,我们总希望发布的apk文件越小越好,不希望资源文件没有用到的图片资源也被打包进apk,不希望应用中使用了高于minSdk的api,也不希望AndroidManifest文件存在异常,lint就能解决我们的这些问题。Android lint是在ADT 16提供的新工具,它是一个代码扫描工具,能够帮助我们识别代码结构存在的问题,主要包括:
1)布局性能(以前是 layoutopt工具,可以解决无用布局、嵌套太多、布局太多)
2)未使用到资源
3)不一致的数组大小
4)国际化问题(硬编码)
5)图标的问题(重复的图标,错误的大小)
6)可用性问题(如不指定的文本字段的输入型)
7)manifest文件的错误
Android lint可以解决如上的问题,当然还有更多,具体的可以参考Android Lint Checks。Android官方也总结了lint能解决的问题,如下图。
lint是命令工具,它已经完美的集成到了Eclipse中,我们可以方便的使用。通过lint,我们可以检测出每个问题的说明和问题的严重性,根据检测报告可以对程序作出改进。下面介绍下在Eclipse怎么使用lint。
lint的使用可以通过两个途径,Eclipse左上角的打钩的按钮或者选择项目->右键->Android Tools,如下图所示:
图一 图二
lint工具简单实用,自动化分析,分析完成会给我们分析报告:
分析包括中会包括错误和警告,会给出具体的描述、类别、位置。上图是一个错误的描述,下图给出警告描述。
Android lint是对android开发者很有帮助的一款工具,对于项目打包发布前优化代码、查找没用到的资源、查找错误等非常有帮助。作为开发者是必须掌握的工具之一,如果想了解更多可以参考lint。
lint
.
tools/
directory on your path, you can invoke it as “
lint
”. Just point to a specific Android project directory. You can also point to a random directory, which (if it is not an Android project) will be searched recursively and all projects under that directory will be checked. (And you can also specify multiple projects separated by spaces)
<p style="margin-top: 0px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px;"></p><div><span class="pln"> lint </span><span class="pun" style="color: rgb(102, 102, 0);">/</span><span class="pln">src</span><span class="pun" style="color: rgb(102, 102, 0);">/</span><span class="pln">astrid</span><span class="pun" style="color: rgb(102, 102, 0);">/</span></div><div><span class="typ" style="color: rgb(102, 0, 102);">Scanning</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">GreenDroid</span><span class="pun" style="color: rgb(102, 102, 0);">-</span><span class="typ" style="color: rgb(102, 0, 102);">GoogleAPIs</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">..</span></div><div><span class="typ" style="color: rgb(102, 0, 102);">Scanning</span><span class="pln"> stream</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">...</span></div><div><span class="typ" style="color: rgb(102, 0, 102);">Scanning</span><span class="pln"> api</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">...........................</span></div><div><span class="typ" style="color: rgb(102, 0, 102);">Scanning</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">GDCatalog</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">.......................</span></div><div><span class="typ" style="color: rgb(102, 0, 102);">Scanning</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">GreenDroid</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">...........................................................</span></div><div><span class="typ" style="color: rgb(102, 0, 102);">Scanning</span><span class="pln"> tests</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">...</span></div><div><span class="typ" style="color: rgb(102, 0, 102);">Scanning</span><span class="pln"> filters</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">....</span></div><div><span class="typ" style="color: rgb(102, 0, 102);">Scanning</span><span class="pln"> tests</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">.....</span></div><div><span class="typ" style="color: rgb(102, 0, 102);">Scanning</span><span class="pln"> astrid</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">....................................................................................................................................................</span></div><div><span class="typ" style="color: rgb(102, 0, 102);">Scanning</span><span class="pln"> simple</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">.......</span></div><div><span class="pln">api</span><span class="pun" style="color: rgb(102, 102, 0);">/</span><span class="pln">res</span><span class="pun" style="color: rgb(102, 102, 0);">/</span><span class="pln">values</span><span class="pun" style="color: rgb(102, 102, 0);">-</span><span class="pln">ca</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Error</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Locale</span><span class="pln"> ca </span><span class="kwd" style="color: rgb(0, 0, 136);">is</span><span class="pln"> missing translations </span><span class="kwd" style="color: rgb(0, 0, 136);">for</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> sync_SPr_bgwifi_key</span><span class="pun" style="color: rgb(102, 102, 0);">,</span><span class="pln"> sync_SPr_forget_key</span><span class="pun" style="color: rgb(102, 102, 0);">,</span><span class="pln"> sync_SPr_interval_values</span><span class="pun" style="color: rgb(102, 102, 0);">,</span><span class="pln"> sync_SPr_logged_in_prefix</span><span class="pun" style="color: rgb(102, 102, 0);">...</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">(</span><span class="lit" style="color: rgb(0, 102, 102);">2</span><span class="pln"> more</span><span class="pun" style="color: rgb(102, 102, 0);">)</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">[</span><span class="typ" style="color: rgb(102, 0, 102);">MissingTranslation</span><span class="pun" style="color: rgb(102, 102, 0);">]</span></div><div><span class="pln">astrid</span><span class="pun" style="color: rgb(102, 102, 0);">/</span><span class="pln">res</span><span class="pun" style="color: rgb(102, 102, 0);">/</span><span class="pln">values</span><span class="pun" style="color: rgb(102, 102, 0);">-</span><span class="pln">ca</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Error</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Locale</span><span class="pln"> ca </span><span class="kwd" style="color: rgb(0, 0, 136);">is</span><span class="pln"> missing translations </span><span class="kwd" style="color: rgb(0, 0, 136);">for</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> DLG_cancel</span><span class="pun" style="color: rgb(102, 102, 0);">,</span><span class="pln"> DLG_dismiss</span><span class="pun" style="color: rgb(102, 102, 0);">,</span><span class="pln"> DLG_ok</span><span class="pun" style="color: rgb(102, 102, 0);">,</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">EPr_deactivated</span><span class="pun" style="color: rgb(102, 102, 0);">...</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">(</span><span class="lit" style="color: rgb(0, 102, 102);">117</span><span class="pln"> more</span><span class="pun" style="color: rgb(102, 102, 0);">)</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">[</span><span class="typ" style="color: rgb(102, 0, 102);">MissingTranslation</span><span class="pun" style="color: rgb(102, 102, 0);">]</span></div><div><span class="pln">api</span><span class="pun" style="color: rgb(102, 102, 0);">/</span><span class="pln">res</span><span class="pun" style="color: rgb(102, 102, 0);">/</span><span class="pln">values</span><span class="pun" style="color: rgb(102, 102, 0);">-</span><span class="pln">cs</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Error</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Locale</span><span class="pln"> cs </span><span class="kwd" style="color: rgb(0, 0, 136);">is</span><span class="pln"> missing translations </span><span class="kwd" style="color: rgb(0, 0, 136);">for</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> sync_SPr_bgwifi_key</span><span class="pun" style="color: rgb(102, 102, 0);">,</span><span class="pln"> sync_SPr_forget_key</span><span class="pun" style="color: rgb(102, 102, 0);">,</span><span class="pln"> sync_SPr_interval_values</span><span class="pun" style="color: rgb(102, 102, 0);">,</span><span class="pln"> sync_SPr_logged_in_prefix</span><span class="pun" style="color: rgb(102, 102, 0);">...</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">(</span><span class="lit" style="color: rgb(0, 102, 102);">2</span><span class="pln"> more</span><span class="pun" style="color: rgb(102, 102, 0);">)</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">[</span><span class="typ" style="color: rgb(102, 0, 102);">MissingTranslation</span><span class="pun" style="color: rgb(102, 102, 0);">]</span></div><div><span class="pun" style="color: rgb(102, 102, 0);">(</span><span class="pln">many lines omitted</span><span class="pun" style="color: rgb(102, 102, 0);">)</span></div><div><span class="lit" style="color: rgb(0, 102, 102);">43</span><span class="pln"> errors</span><span class="pun" style="color: rgb(102, 102, 0);">,</span><span class="pln"> </span><span class="lit" style="color: rgb(0, 102, 102);">466</span><span class="pln"> warnings</span></div><p style="margin-top: 0px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px;"></p>
<p style="margin-top: 0px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px;"></p><div><span class="pln">C</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln">\Documents </span><span class="kwd" style="color: rgb(0, 0, 136);">and</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Settings</span><span class="pln">\Administrator</span><span class="pun" style="color: rgb(102, 102, 0);">></span><span class="pln">lint D</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln">\workspace\Test</span> <span class="typ" style="color: rgb(102, 0, 102);">Scanning</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Test</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">.........................................................................................................</span> <span class="pun" style="color: rgb(102, 102, 0);">........................................................................................................................</span> <span class="pun" style="color: rgb(102, 102, 0);">...................</span> <span class="typ" style="color: rgb(102, 0, 102);">Scanning</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Test</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">(</span><span class="typ" style="color: rgb(102, 0, 102);">Phase</span><span class="pln"> </span><span class="lit" style="color: rgb(0, 102, 102);">2</span><span class="pun" style="color: rgb(102, 102, 0);">):</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">......</span> <span class="pln">res\layout\internet_image_demo</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">xml</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="lit" style="color: rgb(0, 102, 102);">9</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Warning</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">The</span><span class="pln"> id </span><span class="str" style="color: rgb(0, 136, 0);">"button1"</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">is</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">not</span><span class="pln"> referring to any views </span><span class="kwd" style="color: rgb(0, 0, 136);">in</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">this</span><span class="pln"> layout </span><span class="pun" style="color: rgb(102, 102, 0);">[</span><span class="typ" style="color: rgb(102, 0, 102);">UnknownIdI</span> <span class="pln">nLayout</span><span class="pun" style="color: rgb(102, 102, 0);">]</span> <span class="pln"> android</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln">layout_alignLeft</span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="str" style="color: rgb(0, 136, 0);">"@+id/button1"</span> <span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">^</span> <span class="pln">res\layout\internet_image_demo</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">xml</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="lit" style="color: rgb(0, 102, 102);">10</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Warning</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">The</span><span class="pln"> id </span><span class="str" style="color: rgb(0, 136, 0);">"textView1"</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">is</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">not</span><span class="pln"> referring to any views </span><span class="kwd" style="color: rgb(0, 0, 136);">in</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">this</span><span class="pln"> layout </span><span class="pun" style="color: rgb(102, 102, 0);">[</span><span class="typ" style="color: rgb(102, 0, 102);">Unknown</span> <span class="typ" style="color: rgb(102, 0, 102);">IdInLayout</span><span class="pun" style="color: rgb(102, 102, 0);">]</span> <span class="pln"> android</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln">layout_below</span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="str" style="color: rgb(0, 136, 0);">"@+id/textView1"</span> <span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">^</span> <span class="typ" style="color: rgb(102, 0, 102);">AndroidManifest</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">xml</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="lit" style="color: rgb(0, 102, 102);">52</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Warning</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Exported</span><span class="pln"> receiver does </span><span class="kwd" style="color: rgb(0, 0, 136);">not</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">require</span><span class="pln"> permission </span><span class="pun" style="color: rgb(102, 102, 0);">[</span><span class="typ" style="color: rgb(102, 0, 102);">ExportedReceiver</span><span class="pun" style="color: rgb(102, 102, 0);">]</span> <span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);"><</span><span class="pln">receiver android</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln">name</span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="str" style="color: rgb(0, 136, 0);">".AlarmReceiver"</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">></span> <span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">^</span> <span class="pln">res\menu\activity_main</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">xml</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Warning</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">The</span><span class="pln"> resource R</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">menu</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">activity_main appears to be unused </span><span class="pun" style="color: rgb(102, 102, 0);">[</span><span class="typ" style="color: rgb(102, 0, 102);">UnusedResources</span><span class="pun" style="color: rgb(102, 102, 0);">]</span> <span class="pln">res\drawable</span><span class="pun" style="color: rgb(102, 102, 0);">-</span><span class="pln">hdpi\ic_action_search</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">png</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Warning</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">The</span><span class="pln"> resource R</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">drawable</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">ic_action_search appears to be unused </span><span class="pun" style="color: rgb(102, 102, 0);">[</span><span class="typ" style="color: rgb(102, 0, 102);">UnusedRe</span> <span class="pln">sources</span><span class="pun" style="color: rgb(102, 102, 0);">]</span> <span class="pln">res\values\strings</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">xml</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="lit" style="color: rgb(0, 102, 102);">7</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Warning</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">The</span><span class="pln"> resource R</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="kwd" style="color: rgb(0, 0, 136);">string</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">hello appears to be unused </span><span class="pun" style="color: rgb(102, 102, 0);">[</span><span class="typ" style="color: rgb(102, 0, 102);">UnusedResources</span><span class="pun" style="color: rgb(102, 102, 0);">]</span> <span class="pun" style="color: rgb(102, 102, 0);"><</span><span class="kwd" style="color: rgb(0, 0, 136);">string</span><span class="pln"> name</span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="str" style="color: rgb(0, 136, 0);">"hello"</span><span class="pun" style="color: rgb(102, 102, 0);">>你好!</</span><span class="kwd" style="color: rgb(0, 0, 136);">string</span><span class="pun" style="color: rgb(102, 102, 0);">></span> <span class="pun" style="color: rgb(102, 102, 0);">^</span> <span class="pln">res\drawable</span><span class="pun" style="color: rgb(102, 102, 0);">-</span><span class="pln">mdpi</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Warning</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Missing</span><span class="pln"> the following drawables </span><span class="kwd" style="color: rgb(0, 0, 136);">in</span><span class="pln"> drawable</span><span class="pun" style="color: rgb(102, 102, 0);">-</span><span class="pln">mdpi</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> icon</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">png</span><span class="pun" style="color: rgb(102, 102, 0);">,</span><span class="pln"> icon2</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">png </span><span class="pun" style="color: rgb(102, 102, 0);">[</span><span class="typ" style="color: rgb(102, 0, 102);">IconDensities</span><span class="pun" style="color: rgb(102, 102, 0);">]</span> <span class="pln">res\drawable</span><span class="pun" style="color: rgb(102, 102, 0);">-</span><span class="pln">xhdpi</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Warning</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Missing</span><span class="pln"> the following drawables </span><span class="kwd" style="color: rgb(0, 0, 136);">in</span><span class="pln"> drawable</span><span class="pun" style="color: rgb(102, 102, 0);">-</span><span class="pln">xhdpi</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> icon</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">png</span><span class="pun" style="color: rgb(102, 102, 0);">,</span><span class="pln"> icon2</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">png </span><span class="pun" style="color: rgb(102, 102, 0);">[</span><span class="typ" style="color: rgb(102, 0, 102);">IconDensities</span><span class="pun" style="color: rgb(102, 102, 0);">]</span> <span class="pln">res\layout\internet_image_demo</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">xml</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="lit" style="color: rgb(0, 102, 102);">5</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Warning</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">[</span><span class="typ" style="color: rgb(102, 0, 102);">Accessibility</span><span class="pun" style="color: rgb(102, 102, 0);">]</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Missing</span><span class="pln"> contentDescription attribute on image </span><span class="pun" style="color: rgb(102, 102, 0);">[</span><span class="typ" style="color: rgb(102, 0, 102);">ContentDes</span> <span class="pln">cription</span><span class="pun" style="color: rgb(102, 102, 0);">]</span> <span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);"><</span><span class="typ" style="color: rgb(102, 0, 102);">ImageView</span> <span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">^</span> <span class="pln">res\layout\activity_main</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">xml</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="lit" style="color: rgb(0, 102, 102);">17</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Warning</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">[</span><span class="pln">I18N</span><span class="pun" style="color: rgb(102, 102, 0);">]</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Hardcoded</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">string</span><span class="pln"> </span><span class="str" style="color: rgb(0, 136, 0);">"go Hello"</span><span class="pun" style="color: rgb(102, 102, 0);">,</span><span class="pln"> should </span><span class="kwd" style="color: rgb(0, 0, 136);">use</span><span class="pln"> </span><span class="lit" style="color: rgb(0, 102, 102);">@string</span><span class="pln"> resource </span><span class="pun" style="color: rgb(102, 102, 0);">[</span><span class="typ" style="color: rgb(102, 0, 102);">HardcodedText</span> <span class="pun" style="color: rgb(102, 102, 0);">]</span> <span class="pln"> android</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln">text</span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="str" style="color: rgb(0, 136, 0);">"go Hello"</span> <span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">^</span> <span class="pln">res\layout\activity_main</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">xml</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="lit" style="color: rgb(0, 102, 102);">23</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Warning</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">[</span><span class="pln">I18N</span><span class="pun" style="color: rgb(102, 102, 0);">]</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Hardcoded</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">string</span><span class="pln"> </span><span class="str" style="color: rgb(0, 136, 0);">"打印所有任务栈信息"</span><span class="pun" style="color: rgb(102, 102, 0);">,</span><span class="pln"> should </span><span class="kwd" style="color: rgb(0, 0, 136);">use</span><span class="pln"> </span><span class="lit" style="color: rgb(0, 102, 102);">@string</span><span class="pln"> resource </span><span class="pun" style="color: rgb(102, 102, 0);">[</span><span class="typ" style="color: rgb(102, 0, 102);">Har</span> <span class="pln">dcodedText</span><span class="pun" style="color: rgb(102, 102, 0);">]</span> <span class="pln"> android</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln">text</span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="str" style="color: rgb(0, 136, 0);">"打印所有任务栈信息"</span> <span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">^</span> <span class="pln">res\layout\activity_main</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">xml</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="lit" style="color: rgb(0, 102, 102);">29</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Warning</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">[</span><span class="pln">I18N</span><span class="pun" style="color: rgb(102, 102, 0);">]</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Hardcoded</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">string</span><span class="pln"> </span><span class="str" style="color: rgb(0, 136, 0);">"打印所有服务信息"</span><span class="pun" style="color: rgb(102, 102, 0);">,</span><span class="pln"> should </span><span class="kwd" style="color: rgb(0, 0, 136);">use</span><span class="pln"> </span><span class="lit" style="color: rgb(0, 102, 102);">@string</span><span class="pln"> resource </span><span class="pun" style="color: rgb(102, 102, 0);">[</span><span class="typ" style="color: rgb(102, 0, 102);">Hardc</span> <span class="pln">odedText</span><span class="pun" style="color: rgb(102, 102, 0);">]</span> <span class="pln"> android</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln">text</span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="str" style="color: rgb(0, 136, 0);">"打印所有服务信息"</span> <span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">^</span> <span class="pln">res\layout\activity_main</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">xml</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="lit" style="color: rgb(0, 102, 102);">35</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Warning</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">[</span><span class="pln">I18N</span><span class="pun" style="color: rgb(102, 102, 0);">]</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Hardcoded</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">string</span><span class="pln"> </span><span class="str" style="color: rgb(0, 136, 0);">"打印进程信息"</span><span class="pun" style="color: rgb(102, 102, 0);">,</span><span class="pln"> should </span><span class="kwd" style="color: rgb(0, 0, 136);">use</span><span class="pln"> </span><span class="lit" style="color: rgb(0, 102, 102);">@string</span><span class="pln"> resource </span><span class="pun" style="color: rgb(102, 102, 0);">[</span><span class="typ" style="color: rgb(102, 0, 102);">Hardcoded</span> <span class="typ" style="color: rgb(102, 0, 102);">Text</span><span class="pun" style="color: rgb(102, 102, 0);">]</span> <span class="pln"> android</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln">text</span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="str" style="color: rgb(0, 136, 0);">"打印进程信息"</span> <span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">^</span> <span class="pln">res\layout\hello</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">xml</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="lit" style="color: rgb(0, 102, 102);">23</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Warning</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">[</span><span class="pln">I18N</span><span class="pun" style="color: rgb(102, 102, 0);">]</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Hardcoded</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">string</span><span class="pln"> </span><span class="str" style="color: rgb(0, 136, 0);">"please click me"</span><span class="pun" style="color: rgb(102, 102, 0);">,</span><span class="pln"> should </span><span class="kwd" style="color: rgb(0, 0, 136);">use</span><span class="pln"> </span><span class="lit" style="color: rgb(0, 102, 102);">@string</span><span class="pln"> resource </span><span class="pun" style="color: rgb(102, 102, 0);">[</span><span class="typ" style="color: rgb(102, 0, 102);">HardcodedText</span><span class="pun" style="color: rgb(102, 102, 0);">]</span> <span class="pln"> android</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln">text</span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="str" style="color: rgb(0, 136, 0);">"please click me"</span> <span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">^</span> <span class="lit" style="color: rgb(0, 102, 102);">0</span><span class="pln"> errors</span><span class="pun" style="color: rgb(102, 102, 0);">,</span><span class="pln"> </span><span class="lit" style="color: rgb(0, 102, 102);">14</span><span class="pln"> warnings</span> </div><div> </div><p style="margin-top: 0px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px;"></p>
<p style="margin-top: 0px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px;"><span class="pln">$ lint </span><span class="pun" style="color: rgb(102, 102, 0);">--</span><span class="pln">disable </span><span class="typ" style="color: rgb(102, 0, 102);">MissingTranslation</span><span class="pun" style="color: rgb(102, 102, 0);">,</span><span class="typ" style="color: rgb(102, 0, 102);">UnusedIds</span><span class="pun" style="color: rgb(102, 102, 0);">,</span><span class="typ" style="color: rgb(102, 0, 102);">Usability</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="typ" style="color: rgb(102, 0, 102);">Icons</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">/</span><span class="pln">src</span><span class="pun" style="color: rgb(102, 102, 0);">/</span><span class="pln">astrid</span><span class="pun" style="color: rgb(102, 102, 0);">/</span></p>
<p style="margin-top: 0px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px;"></p><div><span class="pln">C</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln">\Documents </span><span class="kwd" style="color: rgb(0, 0, 136);">and</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Settings</span><span class="pln">\Administrator</span><span class="pun" style="color: rgb(102, 102, 0);">></span><span class="pln">lint </span><span class="pun" style="color: rgb(102, 102, 0);">--</span><span class="pln">disable </span><span class="typ" style="color: rgb(102, 0, 102);">Internationalization</span><span class="pln"> D</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln">\workspace\Test</span></div><div> </div><div><span class="typ" style="color: rgb(102, 0, 102);">Scanning</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Test</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">.........................................................................................................</span></div><div><span class="pun" style="color: rgb(102, 102, 0);">........................................................................................................................</span></div><div><span class="pun" style="color: rgb(102, 102, 0);">...................</span></div><div><span class="typ" style="color: rgb(102, 0, 102);">Scanning</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Test</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">(</span><span class="typ" style="color: rgb(102, 0, 102);">Phase</span><span class="pln"> </span><span class="lit" style="color: rgb(0, 102, 102);">2</span><span class="pun" style="color: rgb(102, 102, 0);">):</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">......</span></div><div><span class="pln">res\layout\internet_image_demo</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">xml</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="lit" style="color: rgb(0, 102, 102);">9</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Warning</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">The</span><span class="pln"> id </span><span class="str" style="color: rgb(0, 136, 0);">"button1"</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">is</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">not</span><span class="pln"> referring to any views </span><span class="kwd" style="color: rgb(0, 0, 136);">in</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">this</span><span class="pln"> layout </span><span class="pun" style="color: rgb(102, 102, 0);">[</span><span class="typ" style="color: rgb(102, 0, 102);">UnknownIdI</span></div><div><span class="typ" style="color: rgb(102, 0, 102);">nLayout</span><span class="pun" style="color: rgb(102, 102, 0);">]</span></div><div><span class="pln"> android</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln">layout_alignLeft</span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="str" style="color: rgb(0, 136, 0);">"@+id/button1"</span></div><div><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">^</span></div><div><span class="pln">res\layout\internet_image_demo</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">xml</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="lit" style="color: rgb(0, 102, 102);">10</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Warning</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">The</span><span class="pln"> id </span><span class="str" style="color: rgb(0, 136, 0);">"textView1"</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">is</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">not</span><span class="pln"> referring to any views </span><span class="kwd" style="color: rgb(0, 0, 136);">in</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">this</span><span class="pln"> layout </span><span class="pun" style="color: rgb(102, 102, 0);">[</span><span class="typ" style="color: rgb(102, 0, 102);">Unknown</span></div><div><span class="typ" style="color: rgb(102, 0, 102);">IdInLayout</span><span class="pun" style="color: rgb(102, 102, 0);">]</span></div><div><span class="pln"> android</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln">layout_below</span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="str" style="color: rgb(0, 136, 0);">"@+id/textView1"</span></div><div><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">^</span></div><div><span class="typ" style="color: rgb(102, 0, 102);">AndroidManifest</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">xml</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="lit" style="color: rgb(0, 102, 102);">52</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Warning</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Exported</span><span class="pln"> receiver does </span><span class="kwd" style="color: rgb(0, 0, 136);">not</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">require</span><span class="pln"> permission </span><span class="pun" style="color: rgb(102, 102, 0);">[</span><span class="typ" style="color: rgb(102, 0, 102);">ExportedReceiver</span><span class="pun" style="color: rgb(102, 102, 0);">]</span></div><div><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);"><</span><span class="pln">receiver android</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln">name</span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="str" style="color: rgb(0, 136, 0);">".AlarmReceiver"</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">></span></div><div><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">^</span></div><div><span class="pln">res\menu\activity_main</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">xml</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Warning</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">The</span><span class="pln"> resource R</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">menu</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">activity_main appears to be unused </span><span class="pun" style="color: rgb(102, 102, 0);">[</span><span class="typ" style="color: rgb(102, 0, 102);">UnusedResources</span><span class="pun" style="color: rgb(102, 102, 0);">]</span></div><div><span class="pln">res\drawable</span><span class="pun" style="color: rgb(102, 102, 0);">-</span><span class="pln">hdpi\ic_action_search</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">png</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Warning</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">The</span><span class="pln"> resource R</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">drawable</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">ic_action_search appears to be unused </span><span class="pun" style="color: rgb(102, 102, 0);">[</span><span class="typ" style="color: rgb(102, 0, 102);">UnusedRe</span></div><div><span class="typ" style="color: rgb(102, 0, 102);">sources</span><span class="pun" style="color: rgb(102, 102, 0);">]</span></div><div><span class="pln">res\values\strings</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">xml</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="lit" style="color: rgb(0, 102, 102);">7</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Warning</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">The</span><span class="pln"> resource R</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="kwd" style="color: rgb(0, 0, 136);">string</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">hello appears to be unused </span><span class="pun" style="color: rgb(102, 102, 0);">[</span><span class="typ" style="color: rgb(102, 0, 102);">UnusedResources</span><span class="pun" style="color: rgb(102, 102, 0);">]</span></div><div><span class="pun" style="color: rgb(102, 102, 0);"><</span><span class="kwd" style="color: rgb(0, 0, 136);">string</span><span class="pln"> name</span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="str" style="color: rgb(0, 136, 0);">"hello"</span><span class="pun" style="color: rgb(102, 102, 0);">>你好!</</span><span class="kwd" style="color: rgb(0, 0, 136);">string</span><span class="pun" style="color: rgb(102, 102, 0);">></span></div><div><span class="pun" style="color: rgb(102, 102, 0);">^</span></div><div><span class="pln">res\drawable</span><span class="pun" style="color: rgb(102, 102, 0);">-</span><span class="pln">mdpi</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Warning</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Missing</span><span class="pln"> the following drawables </span><span class="kwd" style="color: rgb(0, 0, 136);">in</span><span class="pln"> drawable</span><span class="pun" style="color: rgb(102, 102, 0);">-</span><span class="pln">mdpi</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> icon</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">png</span><span class="pun" style="color: rgb(102, 102, 0);">,</span><span class="pln"> icon2</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">png </span><span class="pun" style="color: rgb(102, 102, 0);">[</span><span class="typ" style="color: rgb(102, 0, 102);">IconDensities</span><span class="pun" style="color: rgb(102, 102, 0);">]</span></div><div><span class="pln">res\drawable</span><span class="pun" style="color: rgb(102, 102, 0);">-</span><span class="pln">xhdpi</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Warning</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Missing</span><span class="pln"> the following drawables </span><span class="kwd" style="color: rgb(0, 0, 136);">in</span><span class="pln"> drawable</span><span class="pun" style="color: rgb(102, 102, 0);">-</span><span class="pln">xhdpi</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> icon</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">png</span><span class="pun" style="color: rgb(102, 102, 0);">,</span><span class="pln"> icon2</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">png </span><span class="pun" style="color: rgb(102, 102, 0);">[</span><span class="typ" style="color: rgb(102, 0, 102);">IconDensities</span><span class="pun" style="color: rgb(102, 102, 0);">]</span></div><div><span class="pln">res\layout\internet_image_demo</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">xml</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="lit" style="color: rgb(0, 102, 102);">5</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Warning</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">[</span><span class="typ" style="color: rgb(102, 0, 102);">Accessibility</span><span class="pun" style="color: rgb(102, 102, 0);">]</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Missing</span><span class="pln"> contentDescription attribute on image </span><span class="pun" style="color: rgb(102, 102, 0);">[</span><span class="typ" style="color: rgb(102, 0, 102);">ContentDes</span></div><div><span class="typ" style="color: rgb(102, 0, 102);">cription</span><span class="pun" style="color: rgb(102, 102, 0);">]</span></div><div><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);"><</span><span class="typ" style="color: rgb(102, 0, 102);">ImageView</span></div><div><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">^</span></div><div><span class="lit" style="color: rgb(0, 102, 102);">0</span><span class="pln"> errors</span><span class="pun" style="color: rgb(102, 102, 0);">,</span><span class="pln"> </span><span class="lit" style="color: rgb(0, 102, 102);">9</span><span class="pln"> warnings</span></div><p style="margin-top: 0px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px;"></p>
<p style="margin-top: 0px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px;"><span class="pln">$ lint </span><span class="pun" style="color: rgb(102, 102, 0);">--</span><span class="pln">disable </span><span class="typ" style="color: rgb(102, 0, 102);">MissingTranslation</span><span class="pun" style="color: rgb(102, 102, 0);">,</span><span class="typ" style="color: rgb(102, 0, 102);">UnusedIds</span><span class="pun" style="color: rgb(102, 102, 0);">,</span><span class="typ" style="color: rgb(102, 0, 102);">Usability</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="typ" style="color: rgb(102, 0, 102);">Icons</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">/</span><span class="pln">src</span><span class="pun" style="color: rgb(102, 102, 0);">/</span><span class="pln">astrid</span><span class="pun" style="color: rgb(102, 102, 0);">/</span></p>
$
lint
--list
Valid issue categories:
Correctness
Security
Performance
Usability
Usability:Icons
Accessibility
Internationalization
Valid issue id's:
"ContentDescription": Ensures that image widgets provide a contentDescription
"DuplicateIds": Checks for duplicate ids within a single layout
"StateListReachable": Looks for unreachable states in a <selector>
"InefficientWeight": Looks for inefficient weight declarations in LinearLayouts
"ScrollViewSize": Checks that ScrollViews use wrap_content in scrolling dimension
"MergeRootFrame": Checks whether a root <FrameLayout> can be replaced with a <merge> tag
...
$ lint --show MissingPrefix
MissingPrefix
-------------
Summary: Detect XML attributes not using the Android namespace
Priority: 8 / 10
Severity: Warning
Category: Correctness
Most Android views have attributes in the Android namespace. When
referencing these attributes you *must* include the namespace prefix,
or your attribute will be interpreted by aapt as just a custom
attribute.
<p style="margin-top: 0px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px;"></p><div><span class="pln">C</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln">\Documents </span><span class="kwd" style="color: rgb(0, 0, 136);">and</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Settings</span><span class="pln">\Administrator</span><span class="pun" style="color: rgb(102, 102, 0);">></span><span class="pln">lint </span><span class="pun" style="color: rgb(102, 102, 0);">--</span><span class="pln">html D</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln">\workspace\Test\report</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">htm</span></div><div><span class="pln">l D</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln">\workspace\Test</span></div><div> </div><div><span class="typ" style="color: rgb(102, 0, 102);">Scanning</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Test</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">.................................................................</span></div><div><span class="pun" style="color: rgb(102, 102, 0);">................................................................................</span></div><div><span class="pun" style="color: rgb(102, 102, 0);">................................................................................</span></div><div><span class="pun" style="color: rgb(102, 102, 0);">...................</span></div><div><span class="typ" style="color: rgb(102, 0, 102);">Scanning</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Test</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">(</span><span class="typ" style="color: rgb(102, 0, 102);">Phase</span><span class="pln"> </span><span class="lit" style="color: rgb(0, 102, 102);">2</span><span class="pun" style="color: rgb(102, 102, 0);">):</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">......</span></div><div><span class="typ" style="color: rgb(102, 0, 102);">Wrote</span><span class="pln"> HTML report to D</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln">\workspace\Test\report</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">html</span></div><p style="margin-top: 0px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px;"></p>
$ lint --html /tmp/report.html --url /src/MyProj=http://buildserver/src/MyProj
- Automatic fixes for many warnings自动修正大量警告
- Lint gets run automatically on various editing operations当编辑操作完成后,立即自动运行
- Ability to suppress types of errors as well as specific instances of an error可以suppress(忽略)一种类型的erro,也可以suppress(忽略)特定的一个erro
- Ability to configure issue severities能够配置issue(问题)的severities(严重性)
- Jump directly to the problem source from the lint view通过lint视图能直接跳转到其问题对应的源码处
- Export an APK. In this case it runs lint in a special mode which only looks for fatal errors (which is faster) and aborts the export if any fatal errors are found. You can turn off this in the Lint Options.在导出APK文件的时候,lint会做快速的扫描,以寻找fatal的错误。如果发现有fatal的错误,导出APK的操作将被迫终止
- Edit and Save and XML file, such as a layout file or a manifest file. In this case, all the file-scope checks that apply to the given file are run and editor markers are added for any issues found.编辑和保存XML文件,lint也会自动扫描这些文件。另外从ADT20开始,对于java源码文件在编辑和保存后,lint也会对他们进行扫描。
- Use the layout editor. After every UI operation, file-scope checks (such as the various layoutopt rules) are run on the layout file and the results are shown in a special lint window (which can be opened from the error marker which shows in the top right corner of the layout editor when errors are found).对于使用layout editor来操作布局文件时,在每个UI操作后,lint也会自动扫描该布局文件。
- Refresh, which re-runs the current analysis on the same projects
- Fix, which automatically fixes the issue (this applies to issues where a quickfix is available)
- Suppress this issue with an attribute or annotation
- Ignore in this file (saves suppress information in lint.xml)
- Ignore in this project (ditto)
- Always ignore
- Delete this lint marker
- Delete all lint markers
-
Expand All,Collapse All
-
Configure Columns用于设置在lint Window中对于检查出的issue的哪些项显示哪些项不显示,如图3-7所示
- Edit Options Edit Options 点击该按钮会弹出Lint Preference dialog,如图1或图3-8在里面你可以定制默认/全局的Android Lint的基本检查规则,在其中可以设置所有项目默认的lint检查规则的检查级别,把检查级别(Severity)设为”ignore“,其实就是忽略(suppress)该检查规则
- From the lint view(如图3-6所示), click the lightbulb
to invoke a fix. - From the layout editor warning summary, click the Fix button to fix.
- And from the XML source editor, invoke the Quick Fix (Ctrl-1 or Command-1) and pick the quick fix associated with the warning.
- Ignore the warning in this file only
- Ignore the warning in this project
- Ignore the warning, period.
- Ignore warnings using annotations or attributes, as explained here.
These choices are stored in a file named
lint.xml
in the project, which is also read by the command line tool. Thus, you can ignore warnings from the UI, and check in the
lint.xml
file with your source projects, and others running lint will not see warnings you have ignored (presumably because they have been manually verified).
lint.xml
文件中