メインコンテンツにスキップ

Capacitor Native Bridge: Android Plugin Basics

Learn how to create high-performance Android plugins with Capacitor Native Bridge, including setup, development, and testing best practices.

Capacitor Native Bridge: Android Plugin Basics

Capacitor Native Bridge simplifies building Android plugins by connecting JavaScript and native Android code. Here’s what you need to know:

プラグインのデプロイにLive Update、ロールバック、分析機能を提供します。

  1. Quick Setup Checklist:
  2. Configure Gradle for API 22+ and Capacitor dependencies.
  3. Scaffold your plugin with Capacitor CLI.
  4. エミュレータと実機でテストする。

Capacitorは、ウェブとネイティブAndroidの間のギャップを埋めるのに役立つ、開発者が高性能プラグインを作成するための信頼できる方法を提供します。

Ionicで実行するネイティブiOS/Android Code

セットアップとインストール

__CAPGO_KEEP_0__ Androidプラグインを作成するには、まず環境を細かく設定する必要があります。ここでは、すべてを準備する方法を紹介します。 Capacitor Android plugin__CAPGO_KEEP_0__がインストールされていて、設定されていることを確認してください。

Node.jsと__CAPGO_KEEP_0__

Node.jsのバージョン14.0以上をインストールしてください。

  • npmインストール
  • Java Development Kit (JDK): JDK 11 11 (or later)
  • Android Studio: 2023.1.1 (or later)
  • Capacitor CLI: Install globally using npm.
  • Android SDK: Ensure API level 22 or higher is installed.

Double-check that your environment variables are set up correctly to avoid compatibility issues. Once done, move on to configuring your Android Studio project.

ANDROID_HOME=/Users/username/Library/Android/sdk
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home

Android Studio

__CAPGO_KEEP_0__ __CAPGO_KEEP_1__ プロジェクトの設定

Android Studio

Android Studioでプロジェクトを設定するには、次の手順に従ってください。

  1. プロジェクトの設定

Update your build.gradle ファイルに次の設定を追加してください:

android {
    compileSdkVersion 33
    defaultConfig {
        minSdkVersion 22
        targetSdkVersion 33
    }
}
  1. プラグインの依存関係を追加

Capgoの依存関係を含む必要があるCapacitorファイル: build.gradle マニフェストファイルの設定

dependencies {
    implementation '@capacitor/android:5.0.0'
    implementation '@capacitor/core:5.0.0'
}
  1. 必要なパーミッションと設定を含むファイル:

Android Studio AndroidManifest.xml 必要なパーミッションと設定を含むファイル:

<manifest>
    <uses-permission android:name="android.permission.INTERNET" />
    <application
        android:allowBackup="true"
        android:label="@string/app_name">
        <!-- Additional configurations -->
    </application>
</manifest>

互換性テーブル

ここでは、主なコンポーネントの最小および推奨バージョンの簡単な参照です。

コンポーネント 最小バージョン 推奨バージョン
Android Studio 2023.1.1 2023.2.1
JDK 11 17
Gradle 7.3 8.0
Android SDK API 22 API 33

最適化 Gradle 設定

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

パフォーマンスと互換性を向上させるために、次の設定を使用して更新してください。 gradle.properties ファイルに次の設定を追加してください:

org.gradle.jvmargs=-Xmx2048m
org.gradle.parallel=true
android.useAndroidX=true

Android Studioで自動インポートとリアルタイムコンパイルを有効にすると、問題を迅速に検出して解決できます。これらのステップは、開発がスムーズでリソースの使用効率が高くなります。

最初のAndroidプラグインの作成

Learn how to build your first Android plugin using Capacitor. This guide walks you through the steps and shares practical tips.

プラグインの作成手順

まず、Capacitor CLIを使用してプラグインのスケルトンを生成してください。

npm init @capacitor/plugin your-plugin-name
cd your-plugin-name
npm install

次に、__CAPGO_KEEP_0__ファイルに次の構成を追加してください: package.json __CAPGO_KEEP_0__ファイルに次の構成を追加してください:

{
  "name": "your-plugin-name",
  "version": "1.0.0",
  "capacitor": {
    "android": {
      "src": "android"
    }
  }
}

この設定により、CapacitorはプラグインとそのAndroidソースファイルを認識します。

プラグインディレクトリ構造

プロジェクトは次の構造を採用します。

your-plugin-name/
├── android/
│   ├── src/main/
│   │   ├── java/com/yourcompany/plugin/
│   │   │   └── YourPlugin.java
│   ├── build.gradle
│   └── proguard-rules.pro
├── src/
│   ├── definitions.ts
│   └── web.ts
├── package.json
└── README.md

各キーファイルの役割は次のとおりです。

ファイル 目的
YourPlugin.java コンテキスト:Capgoマーケティングウェブサイト。役割:短いUIラベルまたはナビゲーションアイテム。メッセージキー`subprocessors_table_purpose` (Subprocessors Table Purpose)。
definitions.ts プラグインのAndroidロジックを処理します。
web.ts TypeScriptインターフェイス定義を含みます。
package.json ウェブベースのフォールバック機能を提供します。

プラグインの依存関係とメタデータを管理します。

プラグインメソッドを定義する YourPlugin.java ファイル。例えば、ここに単純なメソッドがあります。

@PluginMethod
public void echo(PluginCall call) {
    String value = call.getString("value");
    JSObject ret = new JSObject();
    ret.put("value", value);
    call.resolve(ret);
}

各メソッドには必要なアノテーションがあり、パラメーターと結果を扱うオブジェクトを使用します。エラー処理を含む別の例があります。 @PluginMethod 複雑なロジックの場合、例外を処理して安定性を確保します。 PluginCall プラグインのテスト

@PluginMethod
public void getData(PluginCall call) {
    String id = call.getString("id", null);
    if (id == null) {
        call.reject("Must provide an id");
        return;
    }

    int limit = call.getInt("limit", 10); // Default value

    JSObject result = new JSObject();
    result.put("id", id);
    result.put("limit", limit);
    call.resolve(result);
}

Android Studioのデバッグツールを使用して各メソッドを徹底的にテストします。メソッドは特定のタスクに焦点を当て、__CAPGO_KEEP_0__をきれいに保ち、容易にメンテナンスできるようにしてください。デバッグが完了したら、実際のAndroidデバイスでプラグインをテストして、期待どおりに動作することを確認します。

@PluginMethod
public void processData(PluginCall call) {
    try {
        // Processing logic here
        call.resolve();
    } catch (Exception e) {
        call.reject("Error processing data: " + e.getMessage());
    }
}

プラグインのテストガイド

Androidデバイスでのテスト Androidプラグインを効果的にテストするには、エミュレータと実機を両方使用します。Android StudioのAVDマネージャーは、さまざまな__CAPGO_KEEP_0__のレベルと画面サイズをシミュレートするのに適したツールです。 to test each method thoroughly. Ensure that your methods are focused on specific tasks to keep the code clean and easy to maintain. Once debugging is complete, test your plugin on actual Android devices to confirm everything works as expected.

Android StudioのAVDマネージャーは、さまざまな__CAPGO_KEEP_0__のレベルと画面サイズをシミュレートするのに適したツールです。

Android Studioのデバッグツールを使用して各メソッドを徹底的にテストします。

Android StudioのAVDマネージャーは、さまざまなAPIのレベルと画面サイズをシミュレートするのに適したツールです。

テスト用に準備するコマンドを実行してください:

npx cap open android
npm run build
npx cap sync

USBデバッグが有効になっていることを確認し、デバイスの接続性を確認する: adb devicesテストマトリックスを作成して、主なAndroidバージョンをカバーする:

Androidバージョン テスト優先度 主な焦点エリア
Android 14 APIの最新バージョンと互換性がある
Android 13 基本機能
Android 12 Medium バックワード互換性
Android 11 Low レガシーサポート

プラグインの一般的な問題の修正

メモリリーク
Android Studioでメモリプロファイラーを使用して、メモリリークを検出して解決する。主な対象は:

  • 未登録のブロードキャスト受信機
  • 未閉じたデータベース接続
  • アクティビティまたはコンテキストへの強い参照

プラグイン登録の問題
プラグインが登録できない場合は、以下を確認してください。

  • プラグインの登録 MainActivity.java
  • パッケージ名の一貫性
  • 正しいGradle依存関係

パフォーマンスの問題
CPUプロファイラーを使用してパフォーマンスのボトルネックを特定する

  • ベストプラクティスとして、以下のことが推奨されます。
  • プラグインメソッドを軽量に保つ
  • バックグラウンドスレッドで重いタスクを実行する

適切なエラーハンドリングメカニズムを追加する

Capgoツール ライブテストと更新を簡素化できます。 以下の例を使用して、ワークフローを強化します。

  • エラートラッキングの初期化:

    CapacitorUpdater.notifyAppReady();
  • 更新失敗のハンドリング:

    CapacitorUpdater.addListener('updateFailed', (info) => {
      console.error('Update failed:', info);
    });
  • ロールバックの使用(修正のための迅速な修正):

    try {
      await CapacitorUpdater.rollback();
    } catch (err) {
      console.error('Rollback failed:', err);
    }
  • 段階的なロールアウトの設定:

    await CapacitorUpdater.setChannel({
      channel: 'beta',
      preventAutoUpdateOnFail: true
    });

プラグイン開発の基準

Code構造ガイドライン

Javaでプラグインの基本的な構造を示すテンプレートです。

public class MyPlugin extends Plugin {
    private static final String TAG = "MyPlugin";
    private final Context context;

    public MyPlugin(Context context) {
        this.context = context;
    }

    @PluginMethod
    public void methodName(PluginCall call) {
        try {
            // Method implementation
            call.resolve();
        } catch (Exception e) {
            call.reject("Error message", e);
        }
    }
}

重要な構造的慣行を実行します。

  • 明確で、適切なアクセス修飾子を持つメソッドシグネチャを使用します。
  • 目的を明確に説明する変数とメソッド名を選択します。
  • パブリックAPIは完全にドキュメント化されていることを確認します。
  • ビジネスロジックはUI関連コンポーネントから分離してください。

パフォーマンスのヒント

構造化されたプラグインは、メンテナンス性の向上だけでなくパフォーマンスの向上にもつながります。ここでは、最適化戦略について説明します。

対象領域 推奨アプローチ
スレッド管理 バックグラウンドスレッドに重いタスクをオフロードする
メモリ使用量 リソースを適切にクリーンアップして、リークを防ぎましょう
ネットワークコール キャッシュを実装し、リトライメカニズムを実装してください
リソースのロード リソースの読み込みを遅延させる

大量のリソースを使用するタスクの場合、以下の例を考慮してください。

@PluginMethod
public void heavyOperation(PluginCall call) {
    taskQueue.execute(() -> {
        try {
            // Perform intensive operation
            JSObject result = new JSObject();
            call.resolve(result);
        } catch (Exception e) {
            call.reject("Operation failed", e);
        }
    });
}

エラーマネジメント

エラー管理のためのベストプラクティス

@PluginMethod
public void criticalOperation(PluginCall call) {
    try {
        // Operation code
        if (!operationSuccessful) {
            throw new PluginException("Operation failed");
        }
        call.resolve();
    } catch (Exception e) {
        Logger.error(TAG, "Critical operation failed", e);
        handleRollback();
        call.reject("Operation failed", e);
    }
}

エラーを正しいレベルの重大度でログ化する

  • エラーのメッセージに意味のあるコンテキストを含めることで、デバッグを支援する
  • エラーの頻度を監視し、繰り返し発生する問題を特定する
  • 自動エラー報告を使用して、問題を早期に発見する
  • 重要なオペレーションでは、ロールバック機構の使用が不可欠です。以下の例を参照してください。

__CAPGO_KEEP_0__のエラートラッキングとロールバックツールを使用して、失敗から迅速に回復することができます。

private void handleRollback() {
    try {
        bridge.triggerJSEvent("rollbackRequired", "{}");
    } catch (Exception e) {
        Logger.error(TAG, "Rollback failed", e);
    }
}

Capgo [1].

Capgo 統合ガイド

Capgo ライブアップデートダッシュボードインターフェイス

ベースとなるライブテスト結果に基づくと、Capgo を統合することでアップデートの展開をスムーズにすることができます。

Capgo の機能概要

Capgo はライブアップデートの管理に不可欠なツールを提供し、平穏なパフォーマンスを保証します。 Capacitor のAndroidプラグインに対して即時アップデートを可能にし、アプリストアの承認を必要とせずにアップデートを展開することができます。 Capgo が提供する機能は次のとおりです。

機能 説明
端末間の暗号化 アップデートの配信を確実にする
部分アップデート 変更されたコンポーネントのみをダウンロード
チャンネルシステム Android プラグインの基本
リアルタイム アナリティクス アップデート パフォーマンスの監視
ワンクリック ロールバック 問題の場合の迅速な復旧
CI/CD統合 Compatible with GitHub Actions, GitLab CI, and Jenkins

Setting Up Capgo

To get started with Capgo, run the following command:

npx @capgo/cli init

Add the plugin to your build process. Capgo automatically handles updates in the background, using its built-in analytics and rollback features.

プラグインをビルドプロセスに追加してください。Capacitor は自動的にバックグラウンドでアップデートを処理し、組み込みのアナリティクスとロールバック機能を使用します。

Capgo supports Capacitor versions 6 and 7.

We practice agile development and @Capgo is mission-critical in delivering continuously to our users! [1]

概要

Capacitor Native Bridge boosts Android plugins with powerful native features and streamlined development. This approach delivers strong results, including 23.5 million updates across 750 production apps [1].

プラットフォームのパフォーマンス メトリクスは、その効果を強く示しています: アップデートの展開に成功した割合が 82%、グローバル CDN を通じて 5 MB のバンドルを 114 ms でダウンロードする平均時間、24 時間以内にアップデートを受け取るアクティブ ユーザーの割合が 95% など [1].

これらの結果を実現するには、以下の重要な実践を遵守することが重要です:

ベスト プラクティス 利点
ライブ アップデートを実装する 修正や機能を迅速に展開する
チャンネル システムを使用する アップデートを選択的に展開し、ベータ版をテストする
分析を監視する パフォーマンスとユーザー採用を評価する
ロールバックを自動で有効にします。 迅速に問題から回復する

開発者はこれらのツールを称賛している。ベシー・クーパーは「 “Capgoは開発者にとって不可欠なツールです。バグ修正のレビューを避けることは、金の価値です。” [1]

エラー追跡、パフォーマンスモニタリング、端末間暗号化、CI/CD統合など、機能は、更新の成功率が高く、パフォーマンスがスムーズになるように、迅速かつ信頼性の高い更新を実現します。

Keep going from Capacitor Native Bridge: Android Plugin Basics

Capacitor Native Bridge Android Plugin Basics If you are using Capgo, you may have noticed that the Android plugin is a crucial part of the development process. Capacitor Native Bridge: Android プラグインの基本 native プラグイン作業を計画するには、それを接続する Capgo プラグインディレクトリ Capacitor Native Bridge Android Plugin の製品ワークフロー内で Capgo プラグインディレクトリに。 Capacitor Plugins by Capgo for the implementation detail in Capacitor Plugins by Capgo, __CAPGO_KEEP_0__プラグイン __CAPGO_KEEP_1__ プラグインの追加または更新 __CAPGO_KEEP_0__プラグイン Capgo Native Builds for the product workflow in Capgo Native Builds.

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

ウェブ層のバグが生じた場合、Capgo を通じて修正を配信するのではなく、数日間待ってアプリストアの承認を待つ必要がなくなる。ユーザーはバックグラウンドで更新を受け取り、ネイティブの変更は通常のレビュー経路を通じて行われる。

マーティンによる人間のサポート

今すぐ始める

最新のブログ記事

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