Skip to content

Most visited

Recently visited

navigation

Memperbaiki Kode Anda dengan Lint

Selain menguji aplikasi Android untuk memastikannya memenuhi persyaratan fungsional, perlu dipastikan bahwa kode Anda tidak memiliki masalah struktural. Struktur kode yang buruk bisa memengaruhi keandalan dan efisiensi aplikasi Android dan membuat kode Anda lebih sulit dipelihara. Misalnya, jika file sumber daya XML Anda berisi namespace yang tidak terpakai, hal itu akan menyita tempat dan mengakibatkan pemrosesan yang tidak perlu. Masalah struktural lainnya, misalnya penggunaan elemen yang tidak digunakan lagi atau panggilan API yang tidak didukung oleh versi API target, dapat menyebabkan kode gagal dijalankan dengan benar.

Ringkasan

Android Studio menyediakan alat bantu pemindaian kode yang disebut lint untuk membantu Anda mengidentifikasi dan mengoreksi masalah pada kualitas struktural kode tanpa harus mengeksekusi aplikasi atau menulis kasus pengujian. Setiap masalah yang terdeteksi oleh alat bantu ini akan dilaporkan bersama pesan keterangan dan tingkat keseriusan, sehingga Anda bisa dengan cepat memprioritaskan perbaikan penting yang perlu dilakukan. Selain itu, Anda bisa menurunkan tingkat keparahan masalah untuk mengabaikan masalah yang tidak relevan dengan proyek Anda, atau menaikkan tingkat keparahan untuk menyoroti masalah tertentu.

Alat bantu lint memeriksa file sumber proyek Android Anda dari kemungkinan bug dan perbaikan optimalisasi untuk keakuratan, keamanan, kinerja, kegunaan, aksesibilitas, dan internasionalisasi. Saat menggunakan Android Studio, lint dan pemeriksaan IDE yang telah dikonfigurasi akan dijalankan saat membangun aplikasi. Akan tetapi, Anda bisa secara manual menjalankan pemeriksaan atau menjalankan lint dari baris perintah.

Catatan: Bila kode Anda telah dikompilasi di Android Studio, pemeriksaan kode IntelliJ tambahan akan dijalankan untuk mengefisienkan peninjauan kode.

Gambar 1 menampilkan cara alat bantu lint memproses file sumber aplikasi.

Gambar 1. Alur kerja pemindaian kode dengan alat bantu lint

File sumber aplikasi
File sumber terdiri dari file yang membentuk proyek Android, termasuk file Java dan XML, ikon, dan file konfigurasi ProGuard.
File lint.xml
File konfigurasi yang bisa Anda gunakan untuk menetapkan pemeriksaan lint yang ingin Anda kecualikan dan menyesuaikan tingkat keparahan masalah.
Alat bantu lint
Alat bantu pemindaian kode statis yang bisa Anda jalankan pada proyek Android bisa berasal dari baris perintah atau di Android Studio (lihat Menjalankan Pemeriksaan Secara Manual). Alat bantu lint memeriksa masalah kode struktural yang bisa memengaruhi kualitas dan kinerja aplikasi Android Anda. Anda sangat disarankan mengoreksi setiap kesalahan yang dideteksi oleh lint sebelum mempublikasikan aplikasi.
Hasil pemeriksaan lint
Anda bisa menampilkan hasil lint baik di konsol atau di jendela Inspection Results dalam Android Studio. Lihat Menjalankan Pemeriksaan Secara Manual.

Menjalankan lint dari baris perintah

Untuk menjalankan lint pada daftar file di direktori proyek, gunakan perintah berikut:

lint [flags] <project directory>

Misalnya, Anda bisa mengeluarkan perintah berikut untuk memindai file pada direktori myproject dan subdirektorinya. ID masalah MissingPrefix memberi tahu lint agar hanya memindai atribut XML yang tidak memiliki awalan namespace Android.

lint --check MissingPrefix myproject 

Untuk melihat daftar lengkap flag dan argumen baris-perintah yang didukung oleh alat bantu ini, gunakan perintah berikut:

lint --help

Contoh keluaran lint

Contoh berikut menampilkan keluaran konsol bila perintah lint dijalankan pada proyek bernama Earthquake.

$ lint Earthquake

Scanning Earthquake: ...............................................................................................................................
Scanning Earthquake (Phase 2): .......
AndroidManifest.xml:23: Warning: <uses-sdk> tag appears after <application> tag [ManifestOrder]
  <uses-sdk android:minSdkVersion="7" />
  ^
AndroidManifest.xml:23: Warning: <uses-sdk> tag should specify a target API level (the highest verified version; when running on later versions, compatibility behaviors may be enabled) with android:targetSdkVersion="?" [UsesMinSdkAttributes]
  <uses-sdk android:minSdkVersion="7" />
  ^
res/layout/preferences.xml: Warning: The resource R.layout.preferences appears to be unused [UnusedResources]
res: Warning: Missing density variation folders in res: drawable-xhdpi [IconMissingDensityFolder]
0 errors, 4 warnings

Keluaran di atas mencantumkan empat peringatan dan tidak ada kesalahan: tiga peringatan (ManifestOrder, UsesMinSdkAttributes, dan UnusedResources) di file AndroidManifest.xml proyek, dan satu peringatan (IconMissingDensityFolder) di file layout Preferences.xml.

Menjalankan lint dengan Gradle

Jika proyek Anda menyertakan varian versi, Anda bisa menggunakan Gradle wrapper untuk memanggil tugas lint bagi semua varian dengan memasukkan salah satu perintah berikut dari direktori akar proyek:

Jika Anda hanya ingin menjalankan tugas lint untuk varian versi tertentu, Anda harus mengkapitalkan nama varian dan memberinya awalan lint.

gradlew lintDebug

Bila alat bantu lint telah menyelesaikan pemeriksaannya, laporan lint akan menyediakan dua jalur ke laporan lint versi XML dan HTML. Untuk mengetahui selengkapnya tentang menjalankan tugas Gradle dari baris perintah, bacalah Membangun Aplikasi Anda dari Baris Perintah.

Mengonfigurasi lint

Secara default bila Anda menjalankan pemindaian lint, alat bantu ini akan memeriksa semua masalah yang didukung lint. Anda juga bisa membatasi masalah yang akan diperiksa lint dan menetapkan tingkat keparahan masalah. Misalnya, Anda bisa menonaktifkan pemeriksaan lint untuk masalah tertentu yang tidak relevan dengan proyek dan, Anda bisa mengonfigurasi lint agar melaporkan masalah yang tidak begitu penting dengan tingkat keparahan yang lebih rendah.

Anda bisa mengonfigurasi pemeriksaan lint dengan beberapa tingkatan berbeda:

Mengonfigurasi lint di Android Studio

Alat bantu bawaan lint akan memeriksa kode selagi Anda menggunakan Android Studio. Anda bisa menampilkan berbagai peringatan dan kesalahan dengan dua cara:

Mengonfigurasi file lint

Anda bisa menetapkan preferensi pemeriksaan lint di file lint.xml. Jika Anda membuat file ini secara manual, tempatkan di direktori akar proyek Android.

File lint.xml terdiri dari tag induk penutup <lint> yang berisi satu atau beberapa elemen anak <issue>. Lint mendefinisikan nilai atribut unik id untuk setiap <issue>.

<?xml version="1.0" encoding="UTF-8"?>
    <lint>
        <!-- list of issues to configure -->
</lint>

Anda bisa mengubah tingkat keparahan masalah atau menonaktifkan pemeriksaan lint untuk masalah dengan menyetel atribut keparahannya di tag <issue>.

Tip: Untuk daftar lengkap masalah yang didukung lint dan ID masalah yang bersangkutan, jalankan perintah lint --list.

File contoh lint.xml

Contoh berikut menampilkan materi file lint.xml.

<?xml version="1.0" encoding="UTF-8"?>
<lint>
    <!-- Disable the given check in this project -->
    <issue id="IconMissingDensityFolder" severity="ignore" />

    <!-- Ignore the ObsoleteLayoutParam issue in the specified files -->
    <issue id="ObsoleteLayoutParam">
        <ignore path="res/layout/activation.xml" />
        <ignore path="res/layout-xlarge/activation.xml" />
    </issue>

    <!-- Ignore the UselessLeaf issue in the specified file -->
    <issue id="UselessLeaf">
        <ignore path="res/layout/main.xml" />
    </issue>

    <!-- Change the severity of hardcoded strings to "error" -->
    <issue id="HardcodedText" severity="error" />
</lint>

Mengonfigurasi pemeriksaan lint untuk file sumber Java dan XML

Anda bisa menonaktifkan lint agar tidak memeriksa file sumber Java dan XML.

Tip: Anda bisa mengelola fitur pemeriksaan lint untuk file sumber Java atau XML dalam dialog Default Preferences. Pilih File > Other Settings > Default Settings, kemudian di panel kiri dialog Default Preferences, pilih Editor > Inspections.

Mengonfigurasi pemeriksaan lint di Java

Untuk menonaktifkan pemeriksaan lint khusus untuk suatu metode atau kelas Java di proyek Android, tambahkan anotasi @SuppressLint ke kode Java itu.

Contoh berikut menampilkan cara menonaktifkan pemeriksaan lint untuk masalah NewApi di metode onCreate. Alat bantu lint terus memeriksa masalah NewApi di metode lain dari kelas ini.

@SuppressLint("NewApi")
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

Contoh berikut menampilkan cara menonaktifkan pemeriksaan lint untuk masalah ParserError di kelas FeedProvider.

@SuppressLint("ParserError")
public class FeedProvider extends ContentProvider {

Untuk menyembunyikan pemeriksaan bagi semua masalah lint di file Java, gunakan kata kunci all, seperti ini:

@SuppressLint("all")

Mengonfigurasi pemeriksaan lint di XML

Anda bisa menggunakan atribut tools:ignore untuk menonaktifkan pemeriksaan lint untuk bagian tertentu pada file XML Anda. Masukkan nilai namespace berikut di file lint.xml agar alat bantu lint mengenali atribut tersebut:

namespace xmlns:tools="http://schemas.android.com/tools"

Contoh berikut menampilkan cara menonaktifkan pemeriksaan lint untuk masalah UnusedResources di elemen <LinearLayout> pada file layout XML. Atribut ignore diwarisi oleh elemen anak dari elemen induk tempat mendeklarasikan atribut itu. Dalam contoh ini, pemeriksaan lint juga dinonaktifkan untuk elemen anak <TextView>.

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:ignore="UnusedResources" >

    <TextView
        android:text="@string/auto_update_prompt" />
</LinearLayout>

Untuk menonaktifkan lebih dari satu masalah, cantumkan masalah tersebut dalam string yang dipisah koma. Misalnya:

tools:ignore="NewApi,StringFormatInvalid"

Untuk menyembunyikan pemeriksaan bagi semua masalah lint di elemen XML, gunakan kata kunci all, seperti ini:

tools:ignore="all"

Mengonfigurasi opsi lint dengan Gradle

Android Plugin for Gradle memungkinkan Anda mengonfigurasi opsi lint tertentu, misalnya pemeriksaan apa yang akan dijalankan atau diabaikan, dengan menggunakan blok lintOptions {} di file build.gradle level modul. Cuplikan kode berikut menampilkan beberapa properti yang bisa Anda konfigurasi:

android {
  ...
  lintOptions {
    // Turns off checks for the issue IDs you specify.
    disable 'TypographyFractions','TypographyQuotes'
    // Turns on checks for the issue IDs you specify. These checks are in
    // addition to the default lint checks.
    enable 'RtlHardcoded','RtlCompat', 'RtlEnabled'
    // To enable checks for only a subset of issue IDs and ignore all others,
    // list the issue IDs with the 'check' property instead. This property overrides
    // any issue IDs you enable or disable using the properties above.
    check 'NewApi', 'InlinedApi'
    // If set to true, turns off analysis progress reporting by lint.
    quiet true
    // if set to true (default), stops the build if errors are found.
    abortOnError false
    // if true, only report errors.
    ignoreWarnings true
  }
}
...

Menjalankan pemeriksaan secara manual

Anda bisa secara manual menjalankan lint yang telah dikonfigurasi dan pemeriksaan IDE lainnya dengan memilih Inspect Code > Analyze. Hasil pemeriksaan akan muncul di jendela Inspection Results.

Menyetel profil dan cakupan pemeriksaan

Pilih file yang ingin Anda analisis (cakupan pemeriksaan) dan pemeriksaan yang ingin Anda jalankan (profil pemeriksaan), seperti berikut:

  1. Di tampilan Android, buka proyek dan pilih proyek, folder, atau file yang ingin Anda analisis.
  2. Dari bilah menu, pilih Analyze > Inspect Code.
  3. Dalam dialog Specify Inspection Scope, tinjau setelan. Specify Inspection Scope

    Gambar 2. Meninjau setelan cakupan pemeriksaan

    Kombinasi opsi yang muncul dalam dialog Specify Inspection Scope bervariasi menurut proyek, folder, atau file yang Anda pilih. Anda bisa mengubah apa yang akan diperiksa dengan memilih salah satu tombol radio lainnya. Lihat dialog Specify Inspection Scope untuk keterangan mengenai semua bidang yang bisa dipilih pada dialog Specify Inspection Scope.

    • Bila Anda memilih satu proyek, file, atau direktori, dialog Specify Inspection Scope akan menampilkan jalur ke Project, File, atau Directory yang Anda pilih.
    • Bila Anda memilih lebih dari satu proyek, file, atau direktori, dialog Specify Inspection Scope akan menampilkan tombol radio yang telah dicentang untuk Selected files.
  4. Pada Inspection profile, pertahankan profil default (Project Default).
  5. Klik OK untuk menjalankan pemeriksaan. Gambar 3 menampilkan hasil pemeriksaan lint dan IDE lainnya setelah menjalankan Inspect Code:

    Gambar 3. Memilih sebuah masalah untuk melihat resolusinya

  6. Di tampilan pohon panel kiri, tampilkan hasil pemeriksaan dengan meluaskan dan memilih kategori, tipe, dan masalah kesalahan.

    Panel kanan menampilkan laporan pemeriksaan untuk kategori, tipe, atau masalah kesalahan yang dipilih, dan menyediakan nama serta lokasi kesalahan tersebut. Bila ada, laporan pemeriksaan akan menampilkan informasi lainnya seperti sinopsis masalah untuk membantu Anda mengoreksi masalah tersebut.

  7. Di tampilan pohon panel kiri, klik-kanan sebuah kategori, tipe, atau masalah untuk menampilkan menu konteksnya.

    Bergantung pada konteksnya, Anda bisa melakukan semua atau sebagian dari hal berikut: langsung masuk ke sumber, mengecualikan dan menyertakan item yang dipilih, menyembunyikan masalah, mengedit setelan, mengelola peringatan pemeriksaan, dan menjalankan kembali suatu pemeriksaan.

Untuk keterangan tentang tombol bilah alat sisi kiri, item menu konteks, dan bidang-bidang laporan pemeriksaan, lihat Inspection Tool Window.

Menggunakan cakupan khusus

Anda bisa menggunakan salah satu cakupan khusus yang disediakan di Android Studio, seperti berikut:

  1. Dalam dialog Specify Inspection Scope, klik Custom scope.
  2. Klik daftar tarik-turun Custom scope untuk menampilkan opsi Anda.

    Memilih Cakupan Pemeriksaan

    Gambar 4. Memilih cakupan khusus yang ingin Anda gunakan

    • Project Files: Semua file dalam proyek saat ini.
    • Project Production Files: Hanya file produksi dalam proyek saat ini.
    • Project Test Files: Hanya file pengujian dalam proyek saat ini. Lihat Tipe dan Lokasi Pengujian.
    • Open Files: Hanya file yang Anda buka dalam proyek saat ini.
    • Module <your-module>: Hanya file dalam folder modul yang bersesuaian dalam proyek Anda saat ini.
    • Current File: Hanya file saat ini dalam proyek Anda saat ini. Muncul bila Anda telah memilih file atau folder.
    • Class Hierarchy: Bila Anda memilih yang satu ini dan mengeklik OK, sebuah dialog akan muncul bersama semua kelas dalam proyek saat ini. Gunakan bidang Search by Name dalam dialog tersebut untuk memfilter dan memilih kelas yang akan diperiksa. Jika Anda tidak memfilter daftar kelas, pemeriksaan kode akan memeriksa semua kelas.
  3. Klik OK.

Membuat cakupan khusus

Bila Anda ingin memeriksa file dan direktori pilihan yang tidak termasuk dalam salah satu cakupan khusus yang tersedia, Anda bisa membuat sebuah cakupan khusus.

  1. Dalam dialog Specify Inspection Scope, pilih Custom scope.
  2. Klik tiga titik setelah daftar tarik-turun Custom Scope.

    Gambar 5. Dialog Specify Inspection Scope

    Dialog Scopes akan muncul.

    Gambar 6. Membuat cakupan khusus

  3. Klik Add untuk mendefinisikan cakupan baru.
  4. Dalam daftar tarik-turun Add Scope yang dihasilkan, pilih Local.

    Baik cakupan lokal maupun cakupan bersama digunakan dalam proyek untuk fitur Inspect Code. Cakupan Bersama juga bisa digunakan bersama fitur proyek lainnya yang memiliki bidang cakupan. Misalnya, bila Anda mengeklik Edit Settings untuk mengubah setelan Find Usages, dialog yang dihasilkan memiliki bidang Scope yang memungkinkan Anda memilih sebuah cakupan bersama.

    Gambar 7. Memilih sebuah cakupan bersama dari dialog Find Usages

  5. Beri nama cakupan tersebut dan klik OK.

    Panel kanan dialog Scopes diisi dengan opsi yang memungkinkan Anda mendefinisikan cakupan khusus.

  6. Dari daftar tarik-turun, pilih Project.

    Daftar proyek yang tersedia akan muncul.

    Catatan: Anda bisa membuat cakupan khusus untuk proyek atau paket. Langkah-langkahnya sama.

  7. Luaskan folder proyek, pilih mana yang ingin Anda tambahkan ke cakupan khusus, dan klik salah satu tombol di sebelah kanan.

    Gambar 8. Mendefinisikan cakupan khusus

    • Include: Menyertakan folder dan filenya, namun tidak menyertakan subfoldernya.
    • Include Recursively: Menyertakan folder dan semua filenya beserta subfolder dan filenya.
    • Exclude: Mengecualikan folder dan filenya, namun tidak mengecualikan subfoldernya.
    • Exclude Recursively: Mengecualikan folder dan semua filenya beserta subfolder dan filenya.

    Gambar 9 menampilkan bahwa folder main disertakan, dan folder java disertakan secara rekursif. Warna biru menunjukkan folder yang disertakan secara parsial dan warna hijau menunjukkan folder dan file yang disertakan secara rekursif.

    Gambar 9. Contoh pola cakupan khusus

    • Jika Anda memilih folder java dan mengeklik Exclude Recursively, sorotan hijau akan hilang pada folder java dan semua folder serta file di bawahnya.
    • Jika Anda memilih file MainActivity.java yang disorot hijau dan mengeklik Exclude, MainActivity.java tidak lagi disorot hijau namun item lain yang ada pada folder java akan disorot hijau.
  8. Klik OK. Cakupan khusus muncul di bagian bawah daftar tarik-turun.

Meninjau dan mengedit profil pemeriksaan

Android Studio menyertakan serangkaian profil lint dan profil pemeriksaan lainnya yang diperbarui melalui pembaruan Android. Anda bisa menggunakan profil ini apa adanya atau mengedit nama, keterangan, keparahan, dan cakupannya. Anda juga bisa mengaktifkan dan menonaktifkan keseluruhan grup profil atau profil individual dalam sebuah grup.

Untuk mengakses dialog Inspections:

  1. Pilih Analyze > Inspect Code.
  2. Dalam dialog Specify Scope pada Inspection Profile, klik More.

    Dialog Inspections akan muncul bersama daftar pemeriksaan yang didukung dan keterangannya.

    Gambar 10. Pemeriksaan yang didukung dan keterangannya

  3. Pilih daftar tarik-turun Profile untuk beralih antara pemeriksaan Default (Android Studio) dan Project Default (proyek aktif). Untuk informasi selengkapnya, lihat laman Specify Inspection Scope Dialog dari IntelliJ.
  4. Dalam dialog Inspections di panel kiri, pilih kategori profil level teratas, atau luaskan sebuah grup dan pilih profil tertentu. Bila memilih sebuah kategori profil, Anda bisa mengedit semua pemeriksaan dalam kategori itu sebagai pemeriksaan tunggal.
  5. Pilih daftar tarik-turun Manage untuk menyalin, mengganti nama, menambahkan keterangan, mengekspor, dan mengimpor pemeriksaan.
  6. Bila Anda selesai, klik OK.
This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields

Hooray!

Follow Google Developers on WeChat

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience.
(Sep 2017 survey)