メインコンテンツにジャンプ

Capacitor プラグインで使用するAARファイルの使い方

Capacitor プラグインを使用して、Native Android機能を組み込んだWebアプリを開発するための、明確で手順が簡単なガイドを学びましょう。

マーティン・ドナディュー

マーティン・ドナディュー

コンテンツマーケター

Capacitor プラグインで使用するAARファイルの使い方

__CAPGO_KEEP_0__ を使用してAndroid機能を組み込んだアプリを作りたいですか? Capacitor アプリ このガイドでは、AAR (Android Archive) ファイルを使用して、 Capacitor プラグイン を使用して、ネイティブのAndroid機能とクロスプラットフォームのWebアプリを組み合わせる方法を説明します。

重要なポイント:

  • AARファイルとは何ですか? Pre-packaged Android libraries containing code, resources, and native files.
  • __CAPGO_KEEP_0__、リソース、ネイティブファイル。 AAR files enable code reuse, simplify maintenance, and protect proprietary features.
  • AARファイルは__CAPGO_KEEP_0__の再利用、メンテナンスの簡素化、秘密の機能の保護を可能にします。 何が必要ですか? Android Studioなどのツール, Gradle, そして Node.js, さらに適切なプロジェクト設定。
  • Capgoを統合する方法 AARファイルを libs, Gradleを設定し、Capacitor プラグインに接続する。

Quick Steps:

  1. 環境を設定する: 必要なツールをインストールし、Android Studioを設定する。
  2. プロジェクトを整理する: 「__CAPGO_KEEP_0__ プラグイン」の明確な構造を作成する。 Capacitor plugin.
  3. AARファイルを追加: を置き、Gradle依存関係を更新します。 android/libs プラグインを記述します: __CAPGO_KEEP_0__
  4. JavaScriptとAAR機能をリンクするには、codeの__CAPGO_KEEP_1__を使用します。 徹底的なテスト: Capacitor’s API.
  5. このガイドを参考にすると、AARファイルを__CAPGO_KEEP_0__プラグインに組み込むことができます。WebアプリケーションにネイティブのAndroid機能を活用できます。 Androidライブラリ(AARファイル)を__CAPGO_KEEP_0__プラグインに埋め込む方法

By following this guide, you can seamlessly incorporate AAR files into your Capacitor plugins, unlocking native Android capabilities for your web apps.

AARファイルを capacitor AARファイルを

capacitor

開発環境の設定要件

__CAPGO_KEEP_0__でAARファイルと取り組む前に、開発環境が適切に設定されていることを確認してください。

必要なソフトウェア

Capacitor プラグインでAARファイルと取り組むには、次のソフトウェアが必要です:

ソフトウェア最低バージョン目的
Android Studio2022.1.1 またはそれ以上Androidアプリ開発の主なIDE
Java Development Kit11 以上Android 開発用に必要
Node.js14.0 以上パッケージ Capacitor と npm の管理に使用
Gradle7.3 以上Android のビルドツール
Git2.30 以上バージョン管理とパッケージ管理に使用

さらに、次のコンポーネントが含まれていることを確認してくださいSDKマネージャー:

  • Android SDKプラットフォーム 33 (Android 13.0)
  • Android SDKビルドツール 33.0.0
  • Android SDKコマンドラインツール
  • Android エミュレータ
  • Android SDKプラットフォームツール

プロジェクト設定手順

1. 開発環境を初期化する

新しいディレクトリを作成し、この構造を使用して開始してください:

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

2. Android Studioの設定を構成する

Android Studioを起動し、次の設定を調整する

  • Gradle JDKをバージョン11以上に設定する
  • Android SDK の自動ダウンロード機能を有効にします。
  • システム環境変数を正しい Android SDK パスで更新してください。

3. プラグイン構造を用意する

以下の設定を含むファイルを更新して、AAR ファイルのサポートを含めることができます: android/build.gradle バージョン管理を設定する

android {
    compileSdkVersion 33
    defaultConfig {
        minSdkVersion 22
        targetSdkVersion 33
    }

    repositories {
        flatDir {
            dirs 'libs'
        }
    }
}

4. プロジェクトディレクトリで Git を初期化し、不要なファイルを除外するためのファイルを作成します。以下のサンプルを参考にしてください。

これらの手順が完了したら、AAR ファイルを追加する準備が整います。 .gitignore プラグインに AAR ファイルを追加する .gitignore:

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

AAR ファイルの取得

AAR ファイルは、第三者の SDK、カスタム ライブラリ、または Maven の依存関係から得られます。ソース、バージョン、目的を記録することは、良いアイデアです。

AARファイルのソース、バージョン、目的を記録することは、良いアイデアです。

AARファイルの取得方法 README ファイルはディレクトリ内にあります。 libs ディレクトリ。

ソースタイプ説明ベストプラクティス
第三者SDKベンダーから提供されるプリコンパイルされたライブラリREADMEにベンダー版のバージョン詳細を記載する
カスタムAndroidライブラリ自社開発のAndroidモジュールビルドプロセスを記載する
Maven依存関係リモートリポジトリから変換オフラインビルド用にローカルにキャッシュ

__CAPGO_KEEP_0__が用意できた後、__CAPGO_KEEP_0__をドキュメント化して、プラグインを設定してください。

プラグインファイルの設定

AAR依存関係の平滑な統合を確保するために、プラグインファイルを整理してください。ここでは、プラグイン構造の例を示します。

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

AARファイルの配置

AAR機能を有効にするには、次の手順に従って、プラグインのディレクトリにファイルを配置してください。 android/libs 明確で一貫した命名形式を使用することをお勧めします。例えば

  • バージョン管理を行うファイルを使用してください。例えば libraryname-version.aar.
  • バージョン管理を行うファイルを使用してください。例えば versions.properties ファイルにバージョン情報を追加してください。
library1=1.2.3
library2=2.0.0
  • バージョン情報を追加 dependencies.gradle 他の依存関係用のファイル:
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.aar'])
    implementation 'com.example:dependency:1.0.0'
}
  • ベンダー固有のファイルをサブディレクトリに分割して、管理の向上を実現します。
android/libs/
├── vendor1/
│   ├── feature.aar
│   └── config.json
└── vendor2/
    ├── module.aar
    └── settings.xml

__CAPGO_KEEP_0__ プラグインに AAR ファイルを統合するには、Gradle を適切に設定する必要があります。まず、次のリポジトリ設定を追加してください。

Gradle 設定手順

Gradle ビルド ツール インターフェイス

build.gradle を更新する

To integrate AAR files into your Capacitor plugin, you need to configure Gradle appropriately. Start by adding these repository settings to android/build.gradle:

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

AAR ファイルを __CAPGO_KEEP_0__ プラグインに統合するには、次の AAR 依存関係を含める必要があります。 dependencies バージョン管理の向上のために、プロジェクトのルートディレクトリに "__CAPGO_KEEP_0__" ファイルを作成し、ライブラリのバージョンを定義してください。

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"
}

Gradle Build Tool Interface gradle.properties For better version management, create a __CAPGO_KEEP_0__ file in your project root and define your library versions:

# Library versions
MY_LIBRARY_VERSION=1.2.3
CAPACITOR_VERSION=5.5.0

AARファイルに付随する追加の依存関係があれば、次のように宣言する。 android/build.gradle 例えば

android {
    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 33
    }

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

これらの変更を適用するには、プロジェクトをSyncする必要があります。

Gradle Syncを実行

Android Studioでプロジェクトを開き、Gradleが自動的にSyncされるのを待ちます。Syncが始まらない場合は、ツールバーの「Sync Project with Gradle Files」ボタンをクリックしてください。

Syncが完了したら、次の点を確認する。

チェックポイント予想される結果一般的な問題
ビルド出力AAR関連のエラーが存在しない依存関係が欠落している
ライブラリ解決AARファイルが正しくリンクされているパス参照が不正
バージョンコンフリクト依存関係のバージョン問題が存在しない互換性のないバージョン

同期が失敗した場合、設定を確認してください。たとえば、次の設定が有効になっていることを確認してください。

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

    lintOptions {
        abortOnError false
    }
}

大きなAARファイルの場合、Gradleのメモリ割り当てを増やす必要があるかもしれません。 gradle.properties:

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

同期が成功した場合、AARファイルは完全に統合され、テスト用に準備されています。

AAR機能をCapacitorに接続する

プラグインクラスを書く

Gradleファイルが同期されたら、AAR機能を接続する準備が整いました。プラグインクラスを拡張してください。 プラグイン クラス。 このステップでは、JavaScript をネイティブの Android 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());
    }
}

AAR ライブラリの初期化に必要なものはこちらです。

コンポーネント目的実装注意点
背景Android アプリのコンテキスト使用方法 getContext() プラグイン クラスから
設定ライブラリ設定プラグインからオプションをパスする
ライフサイクルプラグインの状態管理オーバーライド load() そして handleOnDestroy()

プラグインメソッドの作成

次に、プラグインでメソッドを定義するには、注釈を使用します。これらのメソッドは、JavaScriptとJavaの間のデータ交換を処理します。 @PluginMethod 非同期に実行する必要があるタスクの場合:

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

JavaScriptとJavaの間で一般的な型は次のように変換されます:

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

JavaScriptの型

Javaの型__CAPGO_KEEP_0____CAPGO_KEEP_0__
オブジェクトJSオブジェクトcall.getObject()
配列JS配列call.getArray()
文字列文字列call.getString()
数値整数/小数call.getInt()/call.getDouble()
真偽値真偽値call.getBoolean()

リソースのクリーンアップのために、オーバーライドしてください。 handleOnDestroy method:

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

これらの方法を実装すると、ネイティブブリッジは準備が整いました。Android Studioのデバッグ環境で実装をテストして、期待どおりに動作することを確認してください。

テストと問題の修正

デバッグ Android Studio

Android Studio

Android StudioでAAR統合をデバッグするには、プロジェクトのデバッグモードを有効にします。 build.gradle ファイル:

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

プラグインメソッドでブレークポイントを追加して、データフローを追跡し、潜在的な問題を特定します:

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

Android Studioのデバッグパネルを使用して、重要なエリアを監視します。

デバッグエリア確認するべきこと一般的な問題
ログキャットAAR初期化メッセージ権限の欠如または不正なコンテキスト
変数データ型の変換Null値または型の不一致
スタックトレースメソッドの実行フロー無効なメソッドの呼び出しまたはスレッドの問題
メモリリソースの使用メモリリーク

__CAPGO_KEEP_0__

トラブルシューティング ステップ

__CAPGO_KEEP_1__

1. 依存関係の競合

__CAPGO_KEEP_2__ build.gradle 依存関係のバージョンが競合している可能性があります。バージョンを強制することで解決できます。

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

2. 不存在のネイティブ ライブラリ

__CAPGO_KEEP_3__ .so AAR に必要なファイルが含まれていることを確認し、適切なディレクトリに配置してください。

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

3. マニフェスト マージの問題

__CAPGO_KEEP_4__ AndroidManifest.xml 問題のあるライブラリを上書きするファイル:

<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. ランタイムクラッシュとメモリ管理

Android Studioのパフォーマンスタブでランタイムの安定性を監視してください。初期化問題の場合、例外を慎重に処理してください:

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

メモリリークを防ぐには、リソースを適切に解放してください。Android Studioのメモリプロファイラーを使用して、ヒープの使用状況を追跡し、リークを特定してください。

概要

Capacitor プラグインに AAR ファイルを統合するには、Android 環境を設定する必要があります。 AAR ファイルを正しく配置し、Gradle を正確に構成し、徹底的にテストする必要があります。

主な実装フェーズ

フェーズ要件成功の指標
開発環境の設定Android Studio 4.0+、Gradle 7.0+__CAPGO_KEEP_0__
AAR統合ファイルの正しい配置、依存関係の正確さマニフェストの競合なし
プラグイン開発プラグインの明確な構造、正確なメソッドマッピングメソッドの実行は予想どおり
テストデバッグモードが有効、効果的なエラーハンドリング実行時クラッシュなし

これらの基本をマスターした後、より高度なテクニックを探索できます。

次のステップ

プラグインを強化するには、以下の領域に焦点を当ててください:

  • パフォーマンス最適化
    Android Studioのプロファイラーを使用して、メモリ使用量を監視し、リソースが適切にクリーンアップされることを確認してください。

  • 配布準備
    APIドキュメントを生成し、Android API 29–34のレベルで互換性をテストするなど、すべてのAAR構成をドキュメント化してください。

  • メンテナンス戦略
    テストを自動化し、バージョン管理でAARバージョンを管理し、変更履歴を維持し、エラー報告を設定して生産性の低下を解決するようにしてください。

プラグインを公開する予定の場合は、AAR固有の設定やプラットフォームの制限について、詳細なドキュメントを提供してください。これにより、他の開発者がプラグインを効果的に使用できるようになります。

Capacitorアプリのリアルタイム更新

ウェブ層のバグが実行中の場合、Capgo を使用して修正を配信するのではなく、アプリストアの承認待ちの日数を待つのではなく、ユーザーはバックグラウンドで更新を受け取り、ネイティブの変更は通常のレビュー経路に残る。

スタートする

ブログの最新記事

Capgo は、プロフェッショナルなモバイルアプリを作成するために必要な最良の洞察を提供します。