Lebih cepat ke konten utama

Cara Menggunakan File AAR di Plugin Capacitor

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

Cara Menggunakan File AAR di Plugin Capacitor

Ingin mengintegrasikan fitur Android ke dalam aplikasi Anda Capacitor app? untuk menggabungkan fungsi Android asli dengan aplikasi web cross-platform. Capacitor plugins Cara Menggunakan File AAR di __CAPGO_KEEP_0__ Plugin

Poin Utama:

  • Apa itu file AAR? Perpustakaan Android yang sudah dikemas, berisi code, sumber daya, dan file native.
  • Mengapa menggunakan mereka? File AAR memungkinkan code digunakan kembali, memudahkan perawatan, dan melindungi fitur properti.
  • Apa yang dibutuhkan? Alat seperti Studio Android, Gradle, dan Node.js, ditambah dengan pengaturan proyek yang tepat.
  • Bagaimana cara mengintegrasikannya? Tempatkan file-file AAR di libskonfigurasi Gradle, dan hubungkan mereka ke Capacitor plugin.

Langkah-Langkah Cepat:

  1. Persiapkan Lingkungan Anda: Pasang alat-alat yang diperlukan dan konfigurasi Android Studio.
  2. Organisasi Projek Anda: Buat struktur yang jelas untuk} plugin Capacitor.
  3. Tempatkan mereka di dan perbarui dependensi Gradle. android/libs Tulis plugin __CAPGO_KEEP_0__:
  4. Tulis plugin code: Hubungkan fungsi AAR dengan JavaScript dengan Capacitor’s API.
  5. Tes secara menyeluruh: Pakai debugger Android Studio untuk memastikan integrasi lancar.

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

Cara menyematkan 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 kesalahan.

Perangkat Lunak yang Diperlukan

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

Perangkat Lunak Versi Minimum Tujuan
Studio Android 2022.1.1 atau lebih tinggi IDE utama untuk pengembangan Android
Paket Pengembang Java 11 atau lebih tinggi Diperlukan untuk pengembangan Android
Node.js 14.0 atau lebih tinggi Untuk mengelola Capacitor dan npm paket
Gradle 7.3 atau lebih tinggi Alat bangun Android
Git 2.30 atau lebih tinggi Untuk pengendalian versi dan pengelolaan paket

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

  • Platform Android SDK 33 (Android 13.0)
  • Alat Bangun Android SDK 33.0.0
  • Alat Perintah Baris Android SDK
  • Emulator Android
  • Platform-Tools Android SDK

Langkah-Langkah Pengaturan Proyek

1. Mulai dengan Mengatur Lingkungan Pengembangan Anda

Mulai dengan membuat direktori baru dengan struktur sebagai berikut:

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

2. Pengaturan Pengaturan Android Studio

Luncurkan Android Studio dan atur pengaturan berikut:

  • Setel JDK Gradle ke versi 11 atau lebih tinggi.
  • Dapatkan fitur pengunduhan otomatis untuk komponen Android SDK.
  • Perbarui variabel lingkungan sistem Anda dengan jalur Android SDK yang benar.

3. Persiapkan 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 Pengendalian 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

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

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 Jenis Sumber

Deskripsi Description Praktik Terbaik
SDK Pihak Ketiga Libraries yang Sudah Dikompilasi dari Vendor Catat Detail Versi Vendor di README
Libraries Android yang Dibuat Sendiri Modul Android yang Dibuat Sendiri Dokumentasikan Proses Pembangunan
Dependencies Maven Dikonversi dari Repositori Jarak Jauh Simpan Lokal untuk Membangun Offline

Setelah Anda memiliki file AAR yang siap dan didokumentasikan, Anda dapat mengonfigurasi plugin Anda untuk menyertakan mereka.

Mengatur File Plugin

Susun file-plugin Anda dengan baik untuk memastikan integrasi AAR yang lancar. Berikut contoh struktur plugin Anda mungkin terlihat seperti:

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 directory plugin Anda dengan mengikuti langkah-langkah berikut:

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

Menggunakan subdirektori untuk file konfigurasi vendor membantu menjaga organisasi dan menghindari konflik pembangunan ketika bekerja dengan beberapa ketergantungan AAR.

Gradle Langkah Konfigurasi

Interface Tool Pembangunan Gradle

Mengupdate build.gradle

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

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

Kemudian, masukkan 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 sebuah gradle.properties file di root proyek Anda 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'
    }
}

Saat Anda telah membuat perubahan, sinkronkan proyek Anda untuk menerapkan perubahan tersebut.

Menjalankan Sinkronisasi Gradle

Terbuka proyek Anda di Android Studio dan tunggu Gradle untuk sinkronisasi secara otomatis. Jika tidak berjalan, klik tombol "Sinkronisasi Proyek dengan File Gradle" di toolbar.

Setelah sinkronisasi, pastikan hal-hal berikut:

Poin Utama Hasil yang Diharapkan Masalah Umum
Hasil Pembangunan Tidak ada kesalahan terkait AAR Ketergantungan yang Hilang
Penyelesaian Library File AAR yang terkait dengan benar Referensi Jalur yang Salah
Konflik Versi No masalah versi dependensi Inkompatibilitas versi

Jika sinkronisasi gagal, periksa kembali konfigurasi Anda. Misalnya, pastikan pengaturan-pengaturan berikut 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-file AAR Anda seharusnya sudah sepenuhnya terintegrasi dan siap untuk diuji.

Menghubungkan Fitur AAR ke Capacitor

Membuat Kelas Plugin

Setelah file-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());
    }
}

Untuk menginisialisasi library AAR, Anda memerlukan:

Komponen Tujuan Catatan Implementasi
Konteks Konteks Aplikasi Android Use getContext() dari kelas Plugin
Configuration Mengirimkan Opsi dari Plugin Mengirimkan opsi dari plugin
Lifecycle Pengelolaan Status Plugin __CAPGO_KEEP_0__ load() dan handleOnDestroy()

Membuat Metode Plugin

Selanjutnya, definisikan metode di plugin menggunakan @PluginMethod annotasi. 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 memerlukan eksekusi secara asynchronous:

@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);
        }
    });
}

Sini adalah cara umum tipe-tipe yang dikonversi antara JavaScript dan Java:

Tipe JavaScript Tipe Java Metode Konversi
Objek JSObject call.getObject()
Array JSArray call.getArray()
String String call.getString()
Number Angka Bulat call.getInt()/call.getDouble()
Boolean Boolean call.getBoolean()

Untuk membersihkan sumber daya, override metode: handleOnDestroy method:

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

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

Menggunakan Debugger di

For resource cleanup, override the Studio Android

Studio Android

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

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

Tambahkan breakpoint di metode plugin Anda untuk melacak 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 Studio Android untuk memantau area kunci:

Area Debugging Apa yang Perlu Diperiksa Masalah Umum
Logcat Pesan inisialisasi AAR Kurangnya izin atau konteks yang salah
Variabel Konversi Tipe Data Nilai Kosong atau Kesalahan Tipe
Trace Pile Alur Eksekusi Metode Panggilan Metode yang Tidak Valid atau Masalah Threading
Memori Penggunaan Sumber Daya Penggunaan Sumber Daya

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

Langkah-Langkah Mengatasi Masalah

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

1. Konflik Dependensi

Periksa konflik versi di dalam proyek Anda build.gradle Anda dapat memaksakan versi tertentu untuk menyelesaikan konflik:

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

2. Kurangnya Librerai Nama Lokal

3. Masalah Penggabungan Manifest .so berkas-berkas di direktori yang tepat, seperti:

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

4. Kecelakaan Runtime dan Pengelolaan Memori

Jika Anda mengalami konflik manifest, masukkan hal-hal berikut dalam konfigurasi Anda AndroidManifest.xml file untuk menggantikan library yang bermasalah:

<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. Kegagalan Runtime dan Pengelolaan Memori

Gunakan tab Performance di Android Studio untuk memantau stabilitas waktu eksekusi. Untuk masalah inisialisasi, tangani kesalahan dengan hati-hati:

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

Pastikan memori tidak terlewatkan dengan melepaskan sumber daya secara tepat. Gunakan Profiler Memori di Android Studio untuk mengikuti penggunaan heap dan mengidentifikasi kebocoran apa pun.

Ringkasan

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

Fase Implementasi Utama

Fase Persyaratan Indikator Kesuksesan
Pengaturan Pengembangan Android Studio 4.0+, Gradle 7.0+ Proses build selesai tanpa adanya kesalahan
Pengintegrasian AAR Pemenuhan file dengan benar, ketergantungan yang tepat Tidak ada konflik dalam manifest
Pengembangan Plugin Struktur plugin yang jelas, pemetaan metode yang akurat Metode dieksekusi dengan benar
Pengujian Saat mode debug aktif, penanganan kesalahan yang efektif Tidak ada crash waktu runtime

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

Next Steps

Untuk meningkatkan plugin Anda, fokuslah pada area ini:

  • Performance Optimization
    Pakai Profiler Android Studio untuk memantau penggunaan memori dan pastikan sumber daya dibersihkan dengan benar.

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

  • Strategi Perawatan
    Automatisasikan pengujian, kelola versi AAR dengan pengendalian versi, simpan catatan perubahan, dan atur pelaporan kesalahan untuk menangani masalah produksi.

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

Teruskan 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 Capgo Direktori Plugin, 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 produk di Alternatif Plugin Enterprise Ionic, dan Capgo Pembangunan Nativ untuk alur produk di Capgo Pembangunan Nativ.

Live update untuk Capacitor aplikasi

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

Terbaru dari Blog kami

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