More Related Content Similar to AndroidLint #DroidKaigi (20) More from Yukiya Nakagawa (20) AndroidLint #DroidKaigi2. Who are you?
• Yukiya Nakagawa / @Nkzn
• ウォーターセル株式会社@新潟
• 農業向けサービス「アグリノート」
• エンジニア募集中です
• Androidは2009年からチマチマと
12. Severity
レベル 意味 アプリへの影響
Fatal 致命的 ビルドや実行に必ず失敗する
Error エラー
ビルドはできるが実行時エラー
を引き起こす可能性が高い
Warning 警告
動作はするが修正したほうが
より良いアプリになる
Information 情報
ほぼ問題ないが頭の片隅に
置いておいたほうがよい
Ignore 無視
問題があったとしても
検出しない
14. 1. Manifest file
2. Resource files, in alphabetical order by resource type
3. Java sources
4. Java classes
5. Gradle files
6. Generic files
7. Proguard files
8. Property files
18. Android Way is どこ
https://twitter.com/konifar/status/698760496837603328
27. こんなコード書いてませんか
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_commit_transaction);
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new MyFragment());
}
あれー? Fragmentが表示されないなー?
30. こう書きましょう
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_commit_transaction);
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new MyFragment())
.commit();
}
47. おまけ: 検出条件
1. targetSdkがAPI Level 14以上
• API Level 13まではOKが左で正しかった
2. ラベルが”OK”, “Cancel”, android.R.string.ok, android.R.string.cancelのいずれか
3. 親レイアウトの設定上、並びが明らか
• LinearLayoutかTableRowで、orientationがhorizontal
• RelativeLayoutで、toRightOf, toLeftOfの関係で順序が分かる
• RelativeLayoutで、alignParentLeft, alignParentRightの関係で順序が分かる
71. IconColors
• Summary: Icon colors do not follow the
recommended visual style
• Priority: 6 / 10
• Severity: Warning
• Category: Usability:Icons
74. おまけ
// com.android.tools.lint.checks.IconDetector.java
for (int y = 0,
height = image.getHeight();
y < height; y++) {
for (int x = 0,
width = image.getWidth();
x < width; x++) {
int rgb = image.getRGB(x, y);
if ((rgb & 0xFF000000) != 0) {
int r = (rgb & 0xFF0000) >>> 16;
int g = (rgb & 0x00FF00) >>> 8;
int b = (rgb & 0x0000FF);
if (r != g || r != b) {
1pxずつ色を評価していて執念を感じた
89. 参考文献
• lint | Android Developers
http://developer.android.com/intl/ja/tools/help/lint.html
• Improving Your Code with lint | Android Developers
http://developer.android.com/intl/ja/tools/debugging/improving-w-lint.html
• Android Lint - Android Tools Project Site
http://tools.android.com/tips/lint
• Writing a Lint Check - Android Tools Project Site
http://tools.android.com/tips/lint/writing-a-lint-check
• platform_tools_base
https://android.googlesource.com/platform/tools/base
• LintOptions - Android Plugin 1.5.0 DSL Reference
http://google.github.io/android-gradle-dsl/current/
com.android.build.gradle.internal.dsl.LintOptions.html