Kompetensi Dasar :

3.31 Mengevaluasi penggunaan library pada aplikasi mobile

4.31 Memodifikasi aplikasi mobile menggunakan library

Materi Pokok :

1. Konsep Library Aplikasi Mobile.

2. Membuat modul library.

3. Mengonversi modul aplikasi menjadi modul library.

4. Menambahkan dependensi dengan Project Structure Dialog.

5. Memilih resource yang akan dijadikan publik.

Konsep Library Aplikasi Mobile

Library Android secara struktural sama dengan modul aplikasi Android. Library ini dapat mencakup semua yang diperlukan untuk mem-build aplikasi, termasuk kode sumber, file resource, dan manifes Android. Namun, library Android tidak dikompilasi ke dalam APK yang berjalan di perangkat, melainkan dikompilasi ke dalam file Android Archive (AAR) yang dapat Anda gunakan sebagai dependensi untuk modul aplikasi Android.


File AAR menawarkan fungsi berikut untuk aplikasi Android:

  • File AAR dapat berisi resource Android dan file manifes, yang memungkinkan Anda membuat bundle dalam resource bersama seperti tata letak dan drawable selain class dan metode Java.
  • File AAR dapat berisi library C/C++ untuk digunakan oleh kode C/C++ modul aplikasi.

Modul library berguna dalam situasi berikut:

  • Saat Anda mem-build beberapa aplikasi yang menggunakan sejumlah komponen yang sama, misalnya aktivitas, layanan, atau tata letak UI.
  • Saat Anda mem-build aplikasi yang ada dalam beberapa variasi APK, misalnya versi gratis dan berbayar, dan Anda membutuhkan komponen inti yang sama dalam kedua versi tersebut.

Dalam kasus ini, cukup pindahkan file yang ingin digunakan kembali ke dalam modul library, lalu tambahkan library sebagai dependensi untuk setiap modul aplikasi. Halaman ini mengajarkan cara melakukan keduanya.




Membuat modul library

Untuk membuat modul library dalam project Anda, lakukan langkah berikut:

1. Klik File > New > New Module.

2. Di jendela Create New Module yang muncul, klik Android Library, lalu klik Next.


Terdapat juga opsi untuk membuat Java Library, yang mem-build file JAR tradisional. Meskipun berguna untuk banyak project, terutama bila ingin membagikan kode dengan platform lain, file JAR tidak memungkinkan Anda menyertakan file manifes atau resource Android, yang sangat berguna untuk penggunaan kembali kode dalam project Android. Jadi, panduan ini berfokus pada pembuatan library Android.


3. Beri nama library Anda dan pilih versi SDK minimum untuk kode dalam library, lalu klik Finish.


Setelah sinkronisasi project Gradle selesai, modul library muncul dalam panel Project di sebelah kiri. Jika Anda tidak melihat folder modul baru, pastikan folder tersebut menampilkan tampilan Android.




Mengonversi modul aplikasi menjadi modul library

Jika sudah memiliki modul aplikasi yang memuat semua kode yang ingin digunakan kembali, Anda dapat mengubahnya menjadi modul library dengan cara berikut:


1. Buka file build.gradle level modul.

2. Hapus baris untuk applicationId. Hanya modul aplikasi Android yang dapat menentukan baris ini.

3. Di bagian atas file, Anda akan melihat kode berikut :


plugins { id 'com.android.application' }

Ubah menjadi seperti berikut:


plugins { id 'com.android.library' }

4. Simpan file, lalu klik File > Sync Project with Gradle Files.


Selesai. Struktur keseluruhan modul tetap sama, tetapi sekarang beroperasi sebagai library Android dan build kini akan membuat file AAR, bukan APK.


Bila Anda ingin mem-build file AAR, pilih modul library dalam jendela Project dan kemudian klik Build > Build APK.




Menambahkan dependensi dengan Project Structure Dialog

Menggunakan library Anda dari dalam project yang sama

Menggunakan library Anda dari dalam project yang sama

1. Buka File > Project Structure > Dependencies.

2. Pilih Modul tempat Anda akan menggunakan library.

3. Pada tab Declared Dependencies, klik , lalu pilih Module Dependency dalam dropdown.



4. Dalam dialog Add Module Dependency, pilih modul library Anda.



5. Pilih konfigurasi yang memerlukan dependensi ini, atau pilih "penerapan" jika sesuai untuk semua konfigurasi, lalu klik OK.



Studio akan mengedit file build.gradle modul Anda untuk menambahkan dependensi formulir:


implementation(project(path: ":example-library"))



Menggunakan library Anda dalam project lain

Untuk menggunakan kode library Android Anda dalam modul aplikasi lain, lakukan langkah berikut:

1. Buka File > Project Structure > Dependencies.

2. Pada tab Declared Dependencies, klik , lalu pilih Dependensi Library dalam dropdown.



3. Pada dialog Add Library Dependency, gunakan kotak pencarian guna menemukan library untuk ditambahkan. Formulir ini menelusuri repositori yang ditentukan dalam file build project di blok repositories.



4. Pilih konfigurasi yang memerlukan dependensi ini, atau pilih "penerapan" jika sesuai untuk semua konfigurasi.

5. Periksa file build.gradle aplikasi untuk mengonfirmasi deklarasi yang mirip dengan berikut (bergantung pada konfigurasi build yang Anda pilih):


implementation 'com.example:examplelibrary:1.0.0'



Menambahkan AAR atau JAR sebagai dependensi

Untuk menggunakan kode library Android Anda dalam modul aplikasi lain, lakukan langkah berikut:

1. Buka File > Project Structure > Dependencies.

2. Pada tab Declared Dependencies, klik , lalu pilih Jar Dependency dalam dropdown.



3. Pada dialog Add Jar/Aar Dependency, pertama-tama masukkan jalur ke file .aar atau .jar, lalu pilih konfigurasi tempat dependensi tersebut berlaku. Jika library harus tersedia untuk semua konfigurasi, pilih konfigurasi "penerapan".



4. Periksa file build.gradle aplikasi untuk mengonfirmasi deklarasi yang mirip dengan berikut (bergantung pada konfigurasi build yang Anda pilih):


implementation files('my_path/my_lib.aar')

Atau, jika Anda menjalankan build Gradle di luar Android Studio, dependensi dapat diimpor dengan menambahkan lokasi ke dependensi dalam file build.gradle aplikasi Anda.

Contoh:


dependencies { implementation fileTree(dir: "libs", include: ["*.jar", "*.aar"]) ... }



Memilih resource yang akan dijadikan publik

Semua resource dalam library secara default bersifat publik. Agar pengguna library tidak dapat mengakses resource yang hanya ditujukan untuk penggunaan internal, sebaiknya menggunakan mekanisme penetapan pribadi otomatis ini dengan mendeklarasikan satu atau beberapa resource publik.


Contohnya :


Untuk mendeklarasikan resource publik, tambahkan deklarasi <public> ke file public.xml library Anda. Jika belum pernah menambahkan resource publik, Anda perlu membuat file public.xml dalam direktori res/values/ library Anda.


Kode contoh berikut membuat dua resource string publik dengan nama mylib_app_name dan mylib_public_string:


<resources> <public name="mylib_app_name" type="string"/> <public name="mylib_public_string" type="string"/> </resources>

Anda harus menjadikan semua resource yang diinginkan bersifat publik agar tetap terlihat oleh developer yang menggunakan library Anda.




Pertimbangan pengembangan untuk modul library

  • Konflik penggabungan resource
  • Dalam build multi-modul, dependensi JAR dianggap sebagai dependensi transitif
  • Modul library dapat bergantung pada library JAR eksternal
  • minSdkVersion modul aplikasi harus sama dengan atau lebih baru daripada versi yang ditentukan oleh library
  • Setiap modul library membuat class R-nya sendiri
  • Modul library dapat menyertakan file konfigurasi ProGuard-nya sendiri
  • Menguji modul library sama dengan menguji aplikasi



  • Anatomi file AAR

    Ekstensi file AAR adalah .aar, dan jenis artefak Mavennya juga harus aar. Filenya sendiri adalah file zip. Satu-satunya entri wajib adalah /AndroidManifest.xml.


    Selain itu, file AAR dapat menyertakan satu atau beberapa entri opsional berikut:

    • /classes.jar
    • /res/
    • /R.txt
    • /public.txt
    • /assets/
    • /libs/name.jar
    • /jni/abi_name/name.so (dengan abi_name adalah salah satu ABI yang didukung Android)
    • /proguard.txt
    • /lint.jar
    • /api.jar
    • /prefab/ untuk mengekspor library native