Lint: dasar-dasar, penganalisis statis untuk proyek Android

Penulis: IT Sectr Diterbitkan: 2026-02-13 Waktu membaca: 10 mnt

Android Lint — penganalisis kode statis bawaan di Android Studio dan Gradle yang memeriksa file sumber sesuai rekomendasi Google. Lint menemukan potensi kesalahan sebelum kompilasi: sumber daya tidak terpakai, masalah kinerja, kebocoran memori, dan ketidakcocokan API. Alat ini menganalisis file XML, Java, dan Kotlin. Selengkapnya di Android Lint Guide.

Poin Utama

  • Android Lint — penganalisis statis bawaan di Android Studio dan Gradle untuk pemeriksaan kode
  • Pemeriksaan Lint — analisis XML, Java, dan Kotlin untuk kesalahan sebelum tahap kompilasi aplikasi
  • lint.xml — file konfigurasi untuk mengatur aturan Lint di proyek Android
  • Lint baseline — mekanisme penetapan peringatan yang ada untuk penerapan bertahap
  • Integrasi CI — menjalankan Lint di server build untuk kontrol kualitas kode otomatis

Apa itu Lint — penganalisis kode statis?

Android Lint — alat analisis statis yang merupakan bagian dari Android SDK dan Android Studio. Lint memindai kode sumber aplikasi tanpa menjalankannya dan menemukan masalah yang dilewatkan kompiler: sumber daya tidak terpakai, lokalisasi tidak benar, potensi kebocoran memori, ketidakcocokan API dengan minSdkVersion, dan pelanggaran rekomendasi Google tentang kinerja.

Analisis statis — metode pemeriksaan perangkat lunak tanpa eksekusi kode yang sebenarnya. Tidak seperti kompiler yang hanya memeriksa sintaks dan tipe, penganalisis statis mencari kesalahan logis, anti-pola, dan penyimpangan dari praktik terbaik. Lint melakukan lebih dari 200 pemeriksaan bawaan dalam kategori: correctness, performance, security, accessibility, usability, dan I18N.

Lint bekerja pada beberapa level: Analisis XML memeriksa tata letak (layout), sumber daya (strings, colors, dimens), manifes, dan file konfigurasi. Analisis Java/Kotlin — kode sumber untuk pemanggilan API usang, masalah thread, dan kebocoran konteks. Analisis Gradle — konfigurasi build untuk kompatibilitas versi.

Bagaimana Lint memeriksa kode proyek Android

Pemeriksaan Lint dijalankan melalui Android Studio (Analyze > Inspect Code) atau perintah Gradle: ./gradlew lint. Hasilnya — laporan HTML di folder build/reports/lint-results.html dan laporan XML untuk sistem CI. Lint menganalisis setiap file secara independen, menerapkan serangkaian aturan (Issue), masing-masing memiliki ID unik, deskripsi, kategori, dan tingkat keparahan.

Tingkat keparahan Lint: Error (kesalahan — memblokir build), Warning (peringatan — mempengaruhi kualitas), Informational (informasi — untuk pengetahuan), Ignore (diabaikan secara default). Tingkat dikonfigurasi di lint.xml. Kesalahan Lint dapat dikonfigurasi agar build Gradle gagal saat ada kesalahan melalui lintOptions.abortOnError true.

groovy
android {
    lintOptions {
        abortOnError true
        checkAllWarnings true
        baselineFile file("lint-baseline.xml")
        htmlReport true
        xmlReport true
        lintConfig file("lint.xml")
    }
}

Lint baseline — file yang menetapkan peringatan saat ini sebagai dapat diterima. Dibuat dengan perintah lint --baseline baseline.xml. Setelah baseline ditambahkan ke proyek, Lint hanya melaporkan masalah baru. Ini berguna untuk menerapkan Lint di proyek lama dengan ratusan peringatan — tim memperbaiki kesalahan secara bertahap.

Konfigurasi aturan Lint di file konfigurasi

lint.xml — file konfigurasi di root proyek untuk mengatur aturan Lint. Di dalamnya ditentukan aturan yang diabaikan, tingkat keparahan, dan pengecualian untuk file atau direktori tertentu. File dibuat secara manual dan diterapkan secara global ke semua modul proyek. Tanpa lint.xml semua aturan berjalan dengan pengaturan default.

xml
<?xml version="1.0" encoding="UTF-8"?>
<lint>
    <!-- Nonaktifkan pemeriksaan sumber daya tidak terpakai -->
    <issue id="UnusedResources" severity="ignore" />

    <!-- Tingkatkan keparahan kebocoran konteks -->
    <issue id="StaticFieldLeak" severity="error" />

    <!-- Abaikan di file yang dihasilkan -->
    <issue id="MissingTranslation" severity="ignore">
        <ignore path="build/generated" />
    </issue>
</lint>

@SuppressLint — anotasi untuk menonaktifkan Lint di tingkat metode atau kelas di Java/Kotlin. Contoh: @SuppressLint("SetTextI18n") untuk metode di mana teks diatur secara dinamis di TextView. Anotasi @RequiresApi menentukan tingkat API minimum untuk suatu metode — Lint tidak akan mengeluarkan peringatan jika minSdk lebih tinggi dari nilai yang ditentukan.

Menjalankan pemeriksaan Lint di pipeline CI/CD

Integrasi CI Lint — praktik standar dalam pengembangan Android. Perintah ./gradlew lint menjalankan analisis semua modul dan menghasilkan laporan. Dalam konfigurasi CI/CD (Jenkins, GitLab CI, GitHub Actions) Lint dijalankan pada setiap pull request. Saat ada kesalahan, build gagal dan pengembang mendapat notifikasi dengan laporan HTML Lint.

yaml
lint-check:
  script:
    - ./gradlew lint
  artifacts:
    paths:
      - app/build/reports/lint-results.html
    when: always

Laporan HTML Lint berisi tabel semua masalah yang ditemukan dengan kategori, ID aturan, file, baris, dan deskripsi. Laporan tersedia di server CI atau dipublikasikan sebagai artefak build. Laporan XML (lint-results.xml) digunakan untuk integrasi dengan sistem analisis kode (SonarQube, CodeClimate) dan pembuatan tugas otomatis di pelacak (Jira, YouTrack).

Lint di pull request — konfigurasikan GitHub Actions atau GitLab CI agar Lint berjalan otomatis saat membuat MR/PR. Jika Lint menemukan kesalahan, CI mengembalikan status failure dan penggabungan diblokir. Ini mencegah kode bermasalah masuk ke cabang utama dan menjaga kualitas basis kode.

Kategori utama aturan Lint di Android

Kategori Lint mencakup semua aspek pengembangan Android. Google membagi aturan menjadi 12 kategori, masing-masing bertanggung jawab untuk jenis masalah tertentu. Kategori terpenting — Correctness, Performance, Security, dan Accessibility. Pengembang cukup mengetahui pemeriksaan kunci setiap kategori untuk bekerja secara efektif dengan Lint.

KategoriDeskripsiContoh aturan
CorrectnessKesalahan yang mempengaruhi operasi aplikasiMissingPermission, WrongConstant
PerformanceMasalah kinerja dan memoriUnusedResources, ViewHolder, DrawAllocation
SecurityKerentanan dan pelanggaran keamananExportedContentProvider, WorldReadableFiles
AccessibilityMasalah aksesibilitas bagi penggunaContentDescription, TouchTargetSize
UsabilityKegunaan dan pengalaman penggunaNotSibling, BackButton, HardcodedText
I18NInternasionalisasi dan lokalisasiMissingTranslation, ExtraTranslation

Aturan Performance — paling berguna dalam praktik. UnusedResources menemukan sumber daya yang dideklarasikan di XML tetapi tidak digunakan dalam kode. ViewHolder memeriksa apakah pola ViewHolder digunakan di adapter RecyclerView. DrawAllocation memperingatkan tentang pembuatan objek di metode onDraw. Memperbaiki masalah ini mengurangi ukuran APK dan mempercepat kinerja aplikasi.

Aturan Security wajib untuk aplikasi yang dipublikasikan. ExportedContentProvider memeriksa apakah ContentProvider diekspor tanpa perlindungan. WorldReadableFiles memperingatkan tentang pembuatan file yang dapat diakses semua aplikasi. AllowBackup memeriksa flag allowBackup di manifes — disarankan untuk menonaktifkannya demi keamanan data.

Pertanyaan Umum

Apa perbedaan antara Lint dan kompiler?

Kompiler memeriksa sintaks dan tipe, menerjemahkan kode menjadi bytecode untuk dieksekusi. Lint menganalisis kode tanpa kompilasi dan menemukan masalah logis yang dilewatkan kompiler: variabel tidak terpakai, kebocoran sumber daya, masalah lokalisasi, pelanggaran kinerja, dan ketidakcocokan API dengan minSdkVersion. Lint melengkapi kompiler, tetapi tidak menggantikannya.

Bagaimana menonaktifkan peringatan Lint tertentu dalam kode?

Di file XML gunakan atribut tools:ignore dengan ID aturan: tools:ignore="UnusedResources". Di Java/Kotlin tambahkan anotasi @SuppressLint pada metode atau kelas: @SuppressLint("SetTextI18n"). Untuk seluruh direktori konfigurasikan lint.xml dengan node issue dan severity="ignore". Untuk seluruh proyek konfigurasikan lint.xml di root modul.

Apa itu Lint baseline dan bagaimana menggunakannya?

Lint baseline — file XML yang menetapkan peringatan Lint saat ini sebagai dapat diterima. Dibuat dengan perintah ./gradlew lint -Pbaseline atau melalui lintOptions.baselineFile di build.gradle. Setelah baseline ditambahkan, Lint hanya melaporkan masalah baru. Ini berguna untuk menerapkan Lint di proyek dengan kode warisan — tim memperbaiki kesalahan secara iteratif.

Bagaimana membuat aturan Lint kustom?

Buat modul Java/Kotlin baru dengan dependensi lint-api dan lint-checks dari pustaka com.android.tools.lint. Implementasikan kelas Detector untuk menemukan masalah dan kelas Issue untuk mendeskripsikannya. Build modul menjadi JAR, tempatkan di folder lintLibs proyek Android Anda. Android Studio akan secara otomatis menerima aturan kustom.

Mengapa pemeriksaan Lint wajib di proyek Android?

Lint menemukan masalah yang tidak dilihat kompiler: kebocoran konteks (Activity, Fragment), ketidakcocokan API dengan minSdkVersion, masalah konfigurasi Gradle, ikon PNG terlalu besar, tidak adanya sumber daya alternatif untuk berbagai bahasa dan konfigurasi layar. Google Play merekomendasikan Lint sebelum publikasi. Tanpa Lint, aplikasi bisa crash di perangkat lama.

Ringkasan

  • Android Lint — penganalisis kode statis bawaan di Android SDK dan Android Studio
  • Pemeriksaan Lint — analisis XML, Java, dan Kotlin untuk potensi kesalahan sebelum kompilasi aplikasi
  • lint.xml — file konfigurasi untuk mengatur aturan Lint di proyek Android
  • Lint baseline — mekanisme penetapan peringatan yang ada untuk penerapan bertahap
  • Integrasi CI — menjalankan Lint di server build memblokir PR dengan kesalahan kritis
  • Kategori Lint — Correctness, Performance, Security, Accessibility, dan I18N
  • @SuppressLint — anotasi untuk menonaktifkan Lint di tingkat metode atau kelas

Kami akan mengembangkan aplikasi seluler turnkey

IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.

Diskusikan proyek

Baca juga