Lompat ke konten utama

Cara Menggunakan File AAR di Plugin Capacitor

Pelajari cara mengintegrasikan file AAR ke dalam plugin Capacitor untuk meningkatkan aplikasi web Anda dengan fitur Android asli melalui panduan langkah demi langkah yang jelas.

Martin Donadieu

Martin Donadieu

Pengembang Konten

Cara Menggunakan File AAR di Plugin Capacitor

Ingin mengintegrasikan fitur Android ke dalam Capacitor aplikasi Anda? Panduan ini menjelaskan cara menggunakan file AAR (Arsip Android) di dalam plugin __CAPGO_KEEP_0__ Capacitor plugin-plugin untuk menggabungkan fungsi Android asli dengan aplikasi web lintas platform.

Key Takeaways:

  • Apa itu file-file AAR? Lampiran Android yang sudah di-packaging, berisi code, sumber daya, dan file-file native.
  • Mengapa menggunakan mereka? File-file AAR memungkinkan code penggunaan ulang, memudahkan perawatan, dan melindungi fitur-fitur milik sendiri.
  • Apa yang dibutuhkan? Alat-alat seperti Android Studio, Gradle, dan Node.js, plus pengaturan proyek yang tepat.
  • Bagaimana cara mengintegrasikan? Tempatkan file-file AAR di libs, konfigurasi Gradle, dan hubungkan ke plugin-plugin Capacitor.

Langkah-Langkah Cepat:

  1. Persiapkan lingkungan Anda: Instal alat-alat yang diperlukan dan konfigurasi Android Studio.
  2. Organisir proyek Anda: Buat struktur yang jelas untuk plugin __CAPGO_KEEP_0__ Anda Capacitor plugin.
  3. __CAPGO_KEEP_0__ Tempatkan mereka di android/libs dan perbarui dependensi Gradle.
  4. Tulis plugin code: Hubungkan fungsi AAR ke JavaScript dengan Capacitor’s API.
  5. Uji secara menyeluruh: Gunakan debugger Android Studio untuk memastikan integrasi yang lancar.

Dengan mengikuti panduan ini, Anda dapat menyematkan file-file AAR ke dalam plugin Capacitor Anda dengan mudah, sehingga memungkinkan kemampuan Android native untuk aplikasi web Anda.

Cara menyematkan sebuah library Android (file AAR) ke dalam capacitor plugin

capacitor

Persyaratan Pengaturan Pengembangan

Sebelum bekerja dengan file AAR, pastikan lingkungan pengembangan Anda telah terkonfigurasi dengan benar untuk menghindari masalah.

Perangkat Lunak yang Diperlukan

Berikut adalah perangkat lunak yang Anda butuhkan untuk bekerja dengan file AAR di Capacitor plugin:

Perangkat LunakVersi MinimumTujuan
Studio Android2022.1.1 atau lebih tinggiIDE utama untuk pengembangan Android
Paket Pengembang Java11 atau lebih tinggiDiperlukan untuk pengembangan Android
Node.js14.0 atau lebih tinggiUntuk mengelola Capacitor dan npm paket
Gradle7.3 atau lebih tinggiAlat pembangunan Android
Git2.30 atau lebih tinggiUntuk pengendalian versi dan pengelolaan paket

Selain itu, pastikan komponen berikut termasuk dalam Manajer SDK Anda:

  • Platform Android SDK 33 (Android 13.0)
  • Build-Tools Android SDK 33.0.0
  • Tools Command-line Android SDK
  • Emulator Android
  • Tools Platform-Android SDK

Langkah-Langkah Pengaturan Proyek

1. Mulai dengan Membuat Direktori Baru dengan Struktur:

Tetapkan Pengaturan Android Studio

my-plugin/
├── android/
│   ├── src/
│   └── build.gradle
├── src/
│   └── definitions.ts
└── package.json

2. Buka Android Studio dan atur pengaturan berikut:

Atur JDK Gradle ke versi 11 atau lebih tinggi.

  • Aktifkan fitur download otomatis untuk komponen Android __CAPGO_KEEP_0__.
  • Enable the auto-download feature for Android SDK components.
  • Perbarui variabel lingkungan sistem Anda dengan jalur Android SDK yang benar.

3. Siapkan Struktur Plugin Anda

Perbarui android/build.gradle file dengan pengaturan ini untuk termasuk dukungan file AAR:

android {
    compileSdkVersion 33
    defaultConfig {
        minSdkVersion 22
        targetSdkVersion 33
    }

    repositories {
        flatDir {
            dirs 'libs'
        }
    }
}

4. Set Up Kontrol Versi

Mulai Git di direktori proyek Anda dan buat sebuah .gitignore file untuk mengabaikan file yang tidak perlu. Berikut adalah contoh .gitignore:

android/build/
node_modules/
dist/
*.iml
.idea/
.gradle/
local.properties

Saat langkah-langkah ini selesai, Anda akan siap untuk melanjutkan ke menambahkan file-file AAR.

Menambahkan File AAR ke Plugin Anda

Mendapatkan File AAR

File AAR dapat berasal dari SDK pihak ketiga, library kustom, atau dependensi Maven. Sebaiknya, dokumentasikan sumber, versi, dan tujuan mereka dalam sebuah README file yang terletak di libs Direktori.

Jenis SumberDeskripsiPraktik Terbaik
SDK Pihak KetigaLibraries yang sudah dikompilasi dari vendorDokumentasikan versi vendor dalam README
Libraries Android yang Dibuat SendiriModul Android yang Dibuat SendiriDokumentasikan proses pembangunan
Dependensi MavenDikonversi dari repositori jarak jauhMenggunakan cache lokal untuk membangun secara offline

Setelah Anda memiliki file AAR yang siap dan dokumentasi, Anda dapat mengonfigurasi plugin Anda untuk termasuk mereka.

Mengatur File Plugin

Organisir file plugin Anda untuk memastikan integrasi yang lancar dari dependensi AAR. Berikut adalah contoh struktur plugin Anda mungkin terlihat:

my-plugin/
├── android/
│   ├── libs/        # AAR files with README
│   ├── src/
│   └── build.gradle
├── src/
│   └── definitions.ts
└── package.json
{
    "files": [
        "android/libs/*.aar",
        "android/src/**/*",
        "src/**/*"
    ]
}

Penempatan File AAR

Untuk mengaktifkan fungsi AAR, tempatkan file-file tersebut di android/libs dari plugin Anda dengan mengikuti langkah-langkah berikut:

  • Gunakan format penamaan yang jelas dan konsisten, seperti libraryname-version.aar.
  • Kelola versi di versions.properties file. Misalnya:
library1=1.2.3
library2=2.0.0
  • Tambahkan dependencies.gradle file untuk dependensi lainnya:
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.aar'])
    implementation 'com.example:dependency:1.0.0'
}
  • Organisir file-file vendor khusus ke dalam subdirektori untuk pengelolaan yang lebih baik:
android/libs/
├── vendor1/
│   ├── feature.aar
│   └── config.json
└── vendor2/
    ├── module.aar
    └── settings.xml

Menggunakan subdirektori untuk menyimpan file konfigurasi vendor membantu menjaga organisasi dan menghindari konflik saat membangun dengan beberapa dependensi AAR.

Gradle Langkah-Langkah Konfigurasi

Interface Gradle Build Tool

Mengupdate build.gradle

Untuk mengintegrasikan file-file AAR ke dalam plugin Capacitor Anda, Anda perlu mengkonfigurasi Gradle dengan benar. Mulai dengan menambahkan pengaturan repository berikut ke android/build.gradle:

repositories {
    google()
    mavenCentral()
    flatDir {
        dirs 'libs'
    }
}

Lalu, tambahkan dependensi AAR ke dalam dependencies blok:

dependencies {
    implementation files('libs/your-library.aar')
    implementation fileTree(dir: 'libs', include: ['**/*.aar'])
    implementation "com.getcapacitor:core:${capacitorVersion}"
    implementation "androidx.appcompat:appcompat:1.6.1"
}

Untuk pengelolaan versi yang lebih baik, buatlah file gradle.properties di root project dan definisikan versi library Anda:

# Library versions
MY_LIBRARY_VERSION=1.2.3
CAPACITOR_VERSION=5.5.0

Jika file AAR datang dengan dependensi tambahan, deklarasikan mereka di android/build.gradle seperti ini:

android {
    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 33
    }

    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/LICENSE'
    }
}

Setelah Anda membuat perubahan ini, sinkronkan proyek Anda untuk menerapkan perubahan tersebut.

Menggunakan Gradle Sync

Buka proyek Anda di Android Studio dan tunggu sampai Gradle sinkron otomatis. Jika tidak berjalan, klik tombol “Sinkronkan Proyek dengan File Gradle” di toolbar.

Setelah disinkronkan, verifikasi hal-hal berikut:

Pemeriksaan PoinHasil yang DiharapkanMasalah Umum
Output PembangunanTidak ada kesalahan terkait AARKetergantungan yang Hilang
Penyelesaian LibraryFile AAR yang tepat terhubungReferensi jalur yang salah
Konflik VersiTidak ada masalah versi dependensiVersi yang tidak kompatibel

Jika sinkronisasi gagal, periksa kembali konfigurasi Anda. Misalnya, pastikan pengaturan ini sudah ada:

android {
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    lintOptions {
        abortOnError false
    }
}

Untuk file AAR besar, Anda mungkin perlu meningkatkan alokasi memori Gradle di gradle.properties:

org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m

Setelah sinkronisasi selesai dengan sukses, file AAR Anda seharusnya sudah terintegrasi sepenuhnya dan siap untuk diuji.

Menghubungkan Fitur AAR ke Capacitor

Membuat Kelas Plugin

Setelah file Gradle Anda disinkronisasi, saatnya menghubungkan fungsionalitas AAR Anda dengan mengembangkan Kelas Plugin kelas. Langkah ini menghubungkan JavaScript dengan Android native code.

@NativePlugin(
    permissions = {
        Manifest.permission.REQUIRED_PERMISSION
    }
)
public class YourPlugin extends Plugin {
    private YourAARLibrary libraryInstance;

    @Override
    public void load() {
        super.load();
        libraryInstance = new YourAARLibrary(getContext());
    }
}

Berikut yang Anda butuhkan untuk menginisialisasi library AAR:

KomponenTujuanCatatan Implementasi
KonteksKonteks aplikasi AndroidPenggunaan getContext() menggunakan kelas Plugin
PengaturanPengaturan libraryMelewati opsi dari plugin
Siklus HidupPengelolaan Status PluginMenggantikan load() dan handleOnDestroy()

Membuat Metode Plugin

Selanjutnya, definisikan metode di dalam plugin menggunakan @PluginMethod pengamatan. Metode-metode ini mengelola pertukaran data antara JavaScript dan Java.

@PluginMethod
public void performAction(PluginCall call) {
    try {
        // Get data from JavaScript
        String inputData = call.getString("inputKey");

        // Call AAR library method
        YourLibraryResult result = libraryInstance.processData(inputData);

        // Return result to JavaScript
        JSObject ret = new JSObject();
        ret.put("value", result.getValue());
        call.resolve(ret);
    } catch (Exception e) {
        call.reject("Error processing data", e);
    }
}

Untuk tugas-tugas yang perlu dijalankan secara asinkron:

@PluginMethod(returnType = PluginMethod.RETURN_CALLBACK)
public void startContinuousOperation(PluginCall call) {
    call.setKeepAlive(true);

    libraryInstance.setCallback(new LibraryCallback() {
        @Override
        public void onUpdate(String data) {
            JSObject ret = new JSObject();
            ret.put("data", data);
            call.resolve(ret);
        }
    });
}

Berikut adalah cara umum jenis-jenis data dikonversi antara JavaScript dan Java:

Tipe JavaScriptTipe JavaMetode Konversi
ObjekJSObjekcall.getObject()
ArrayJSArraycall.getArray()
StringStringcall.getString()
NomorBilangan Bulat/Desimalcall.getInt()/call.getDouble()
BooleanBooleancall.getBoolean()

Untuk membersihkan sumber daya, override metode: handleOnDestroy metode:

@Override
protected void handleOnDestroy() {
    if (libraryInstance != null) {
        libraryInstance.cleanup();
        libraryInstance = null;
    }
    super.handleOnDestroy();
}

Dengan metode-metode ini, jembatan asli Anda sudah siap. Uji implementasi Anda di lingkungan debug Android Studio untuk memastikan semuanya berjalan seperti yang diharapkan.

Menguji dan Mengatasi Masalah

Menggunakan Debug di Android Studio

Android Studio

Untuk mengdebug integrasi AAR Anda di Android Studio, mulai dengan mengaktifkan mode debug di proyek Anda’s build.gradle file:

android {
    buildTypes {
        debug {
            debuggable true
            minifyEnabled false
        }
    }
}

Tambahkan titik henti di metode-metode plugin Anda untuk mengikuti aliran data dan mengidentifikasi potensi masalah:

@PluginMethod
public void yourMethod(PluginCall call) {
    // Set a breakpoint here to inspect input data
    String inputValue = call.getString("key");
    // Another breakpoint here to check method calls to the AAR
    libraryInstance.someMethod(inputValue);
}

Gunakan panel Debug di Android Studio untuk memantau area kunci:

Area DebuggingApa yang Perlu DiperiksaMasalah Umum
LogcatPengaturan LogcatTidak ada izin atau konteks yang salah
VariabelPengubahan Tipe DataNilai Null atau Kesalahan Tipe
Trace PileAlur Eksekusi MetodePanggilan Metode yang Tidak Sah atau Masalah Threading
MemoriPenggunaan Sumber DayaKerusakan Memori

Jika debugging tidak menyelesaikan masalah, ikuti langkah-langkah troubleshooting di bagian berikutnya.

Langkah-Langkah Troubleshooting

Ketika debugging sendiri tidak cukup, gunakan langkah-langkah ini untuk menangani masalah umum:

1. Konflik Dependensi

Periksa konflik versi di file Anda. Anda dapat memaksa versi tertentu untuk menyelesaikan konflik: build.gradle 2. Libarai Nativ Tidak Ditemukan

configurations.all {
    resolutionStrategy {
        force 'com.google.android:android:4.1.1.4'
        // Add other forced versions as needed
    }
}

Pastikan AAR mencakup file yang diperlukan di direktori yang tepat, seperti:

3. Masalah Penggabungan Manifest .so Jika Anda mengalami konflik manifest, masukkan hal-hal berikut ke dalam file Anda untuk mengatasi library yang bermasalah:

  • jniLibs/armeabi-v7a/
  • jniLibs/arm64-v8a/
  • jniLibs/x86/
  • jniLibs/x86_64/

__CAPGO_KEEP_0__

__CAPGO_KEEP_1__ AndroidManifest.xml __CAPGO_KEEP_2__

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="your.plugin.package">
    <uses-sdk tools:overrideLibrary="conflicting.library.package"/>
</manifest>

4. Kecelakaan Runtime dan Pengelolaan Memori

Pakai tab Performance di Android Studio untuk memantau stabilitas runtime. Untuk masalah inisialisasi, tangani kecemasan dengan hati-hati:

try {
    libraryInstance = new YourAARLibrary(getContext());
} catch (Exception e) {
    Log.e("PluginError", "Failed to initialize library: " + e.getMessage());
    return;
}

Mencegah kebocoran memori dengan memastikan sumber daya dilepaskan dengan benar. Gunakan Profiler Memori di Android Studio untuk mengikuti penggunaan heap dan mengidentifikasi kebocoran apa pun.

Ringkasan

Untuk mengintegrasikan file-file AAR ke dalam Capacitor plugin, Anda perlu mengatur lingkungan Android, menempatkan file-file AAR dengan benar, mengonfigurasi Gradle dengan tepat, dan melakukan tes secara menyeluruh.

Fase Implementasi Utama

FasePersyaratanIndikator Kegagalan
Persiapan PengembanganAndroid Studio 4.0+, Gradle 7.0+Proses pembangunan selesai tanpa adanya kesalahan
Integrasi AARPenempatan file yang tepat, dependensi yang benarTidak ada konflik manifest
Pengembangan PluginStruktur plugin yang jelas, pemetaan metode yang akuratMetode dieksekusi dengan benar
PengujianMode debug aktif, penanganan kesalahan yang efektifTidak ada crash waktu eksekusi

Setelah Anda menguasai dasar-dasar ini, Anda dapat mengeksplorasi teknik-teknik yang lebih maju.

Langkah-Langkah Selanjutnya

Untuk meningkatkan plugin Anda, fokuslah pada area-area ini:

  • Optimasi Kinerja
    Pilih Profiler Android Studio untuk memantau penggunaan memori dan memastikan bahwa sumber daya dibersihkan dengan benar.

  • Persiapan Distribusi
    Dokumentasikan semua konfigurasi AAR, buat API dokumentasi, dan tes konsistensi dengan Android API level 29–34.

  • Strategi Pemeliharaan
    Lakukan otomatisasi tes, kelola versi AAR dengan kontrol versi, jaga log perubahan, dan atur laporan kesalahan untuk menangani masalah produksi.

Jika Anda berencana untuk berbagi plugin Anda secara publik, pastikan untuk menyediakan dokumentasi rinci tentang pengaturan AAR khusus dan semua keterbatasan platform. Hal ini akan membuatnya lebih mudah bagi pengembang lain untuk menerapkan dan menggunakan plugin Anda secara efektif.

Teruslah dari Cara Menggunakan File AAR di Capacitor Plugin

Jika Anda menggunakan Cara Menggunakan File AAR di Capacitor Plugin untuk merencanakan kerja plugin native, hubungkannya dengan Capgo Direktori Plugin untuk alur kerja produk di Direktori Plugin Capgo Capacitor Plugin oleh Capgo untuk detail implementasi di Capacitor Plugin oleh Capgo Menambahkan atau Mengupdate Plugin untuk detail implementasi di Menambahkan atau Mengupdate Plugin Alternatif Plugin Enterprise Ionic untuk alur kerja produk di Alternatif Plugin Enterprise Ionic, dan Capgo Build Natives untuk alur kerja produk di Capgo Build Natives

Pembaruan Langsung untuk Capacitor Aplikasi

Ketika bug layer web masih aktif, kirimkan perbaikan melalui Capgo bukan menunggu hari-hari untuk persetujuan toko aplikasi. Pengguna mendapatkan pembaruan di latar belakang sementara perubahan native tetap dalam jalur review normal.

Mulai Sekarang

Terbaru dari Blog Kami

Capgo memberikan Anda wawasan terbaik yang Anda butuhkan untuk menciptakan aplikasi mobile yang profesional.