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

Capacitor Native Bridge: Android プラグインの基本

Capacitor Native Bridgeを使用して、高性能のAndroid プラグインを作成する方法を学びます。Capacitor Native Bridgeのセットアップ、開発、テストのベスト プラクティスを含みます。

マーティン ドナディュー

マーティン ドナディュー

コンテンツ マーケター

Capacitor Native Bridge: Android プラグインの基本

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

  • What It Does: Androidアプリ用のウェブアプリケーションにカメラやセンサなどのネイティブ機能をアクセスできる2方向のブリッジとして機能します。
  • Why Use It: ウェブテクノロジーと「ネイティブパフォーマンス」を組み合わせることで、プラグインの開発が容易になります。 Setup Essentials: Node.js、JDK 11+、Android Studio、および__CAPGO_KEEP_0__ __CAPGO_KEEP_1__が必要です。環境変数を適切に設定してください。
  • protectedTokenstargetLanguage textstranslations What It Does, and Capacitor CLI. Ensure proper environment variables and Gradle configurations.
  • はじめ方: Use npm init @capacitor/plugin プラグインのプロジェクトを生成するには、Javaでメソッドを定義し、Android Studioまたは実機でテストする。
  • Capgo 統合: ライブ更新、ロールバック、分析機能を使用してプラグインのデプロイを円滑にする。

Quick Setup チェックリスト:

  1. ツールのインストール: Node.js、JDK 11+、Android Studio。
  2. Gradleの設定: API 22+とCapacitorの依存関係。
  3. プラグインのプロジェクトをCapacitor CLIで作成する。
  4. エミュレータと実機でテスト。

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

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

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

開発を始めるには、 Capacitor Androidプラグイン、環境を慎重に設定する必要があります。ここでは、すべてを準備する方法を紹介します。

必要なツールのセットアップ

以下のツールがインストールおよび設定されていることを確認してください。

  • Node.jsとnpm: Node.js 14.0 またはそれ以上のバージョンをインストールしてください。
  • Java Development Kit (JDK): JDK 11 または新しいバージョンを使用してください。
  • Android Studio: 最新の安定版 (2023.1.1 またはそれ以降) をインストールしてください。
  • Capacitor CLIAndroid npm
  • : SDK のレベル 22 以上がインストールされていることを確認してください。: Ensure API level 22 or higher is installed.

環境変数が正しく設定されていることを確認してください。互換性の問題を避けるために。完了したら、Android Studio プロジェクトを設定してください。

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. プロジェクト設定

を更新してください。 build.gradle __CAPGO_KEEP_0__が必要な依存関係を含む

android {
    compileSdkVersion 33
    defaultConfig {
        minSdkVersion 22
        targetSdkVersion 33
    }
}
  1. ファイル:

Include the required Capacitor dependencies in your build.gradle 必要な権限と設定を含む

dependencies {
    implementation '@capacitor/android:5.0.0'
    implementation '@capacitor/core:5.0.0'
}
  1. __CAPGO_KEEP_0__ファイル:

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>

互換性テーブル

__CAPGO_KEEP_0__の最小バージョンと推奨バージョンの簡単な参照です。

コンポーネント最小バージョン推奨バージョン
Android Studio2023.1.12023.2.1
JDK1117
Gradle7.38.0
Android SDKAPI 22API 33

最適化 Gradle 設定

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

パフォーマンスと互換性を向上させるために、以下の設定を使用して更新してください。 gradle.properties Android Studioで自動インポートとリアルタイムコンパイルを有効にすることで、問題を迅速に検出して解決することができます。これらの手順は、開発がスムーズでリソースの効率的な使用が可能です。

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

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

__CAPGO_KEEP_0__を使用して最初のAndroid プラグインを作成する方法を学びましょう。このガイドでは、ステップバイステップのガイダンスと実践的なアドバイスを提供します。

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

__CAPGO_KEEP_0__ __CAPGO_KEEP_1__を使用してプラグインのスケルトンを生成してください。

Start by generating the plugin scaffold with the Capacitor CLI:

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

__CAPGO_KEEP_1__ 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

各キーファイルの役割

ファイルプラグインのAndroidロジックを処理
YourPlugin.javaTypeScriptインターフェイス定義を含む
definitions.tsウェブベースのフォールバック機能を提供
web.tsプラグインの依存関係とメタデータを管理
package.jsonプラグインメソッドの書き方

プラグインメソッドを定義する

Plugin Directory Structure 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);
}

複雑なロジックの場合、例外を処理して安定性を確保します:

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

プラグインのテスト

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

プラグインテストガイド

Androidデバイスでのテスト

Androidプラグインを効果的にテストするには、エミュレータと実機を両方使用してください。Android StudioのAVDマネージャーは、さまざまなAPIのレベルと画面サイズをシミュレートするのに適した素晴らしいツールです。

テスト用に準備するには、これらのコマンドを実行してください:

npx cap open android
npm run build
npx cap sync

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

Android Versionテスト優先度主な焦点領域
Android 14最新の API の互換性
Android 13コア機能
Android 12Mediumバックワード互換性
Android 11レガシーサポート

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

メモリリーク
__CAPGO_KEEP_0__ Android Studio を使用して、メモリリークを特定して解決するために使用します。主な焦点は:

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

プラグイン登録問題
__CAPGO_KEEP_0__

  • プラグイン登録 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 は完全にドキュメント化されていることを確認します。
  • __CAPGO_KEEP_0__

パフォーマンスのヒント

プラグインの構造化は、メンテナンス性だけでなくパフォーマンスも向上させる。以下の最適化戦略をご覧ください。

対象領域推奨アプローチ
スレッド管理バックグラウンドスレッドに重いタスクをオフロードする
メモリ使用量リソースのメモリリークを防ぐために、適切にリソースをクリーンアップする
ネットワーク呼び出しキャッシュレスポンスを実装し、リトライメカニズムを実装する
リソースロード大容量リソースのロードを遅延させる

大規模なリソースを使用するタスクでは、この例を考慮してください。

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

エラーマネジメント

__CAPGO_KEEP_0__のエラー処理は、プラグインが安定して信頼性が高くなるようにします。

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

エラーマネジメントのベストプラクティス

  • 正しい重大度のレベルでエラーをログに記録します。
  • エラー メッセージに意味のあるコンテキストを含めることで、デバッグを支援します。
  • エラーの頻度を監視し、繰り返し発生する問題を特定します。
  • 自動エラー報告を使用して、早期に問題を検出します。

重要なオペレーションでは、ロールバック機構が不可欠です。ここでは例を示します。

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

Capgoのエラー追跡とロールバックツールは、失敗から迅速に回復するのに役立ちます。 [1].

Capgo 統合ガイド

Capgo Live Update ダッシュボード インターフェース

Capgo のライブ テスト結果に基づくと、Capgo を統合することで、更新のデプロイをスムーズにすることができます。

Capgo の機能概要

Capgo は、ライブ アップデートの管理に不可欠なツールを提供し、安定したパフォーマンスを保証します。 Capacitor の Android プラグインに対する即時更新を可能にし、ストアの承認なしで実行できます。 Capgo が提供するものは次のとおりです。

機能説明
端末間の暗号化更新の安全な配信を保証します
部分的更新変更されたコンポーネントのみをダウンロード
チャンネルシステムターゲットされたステージドロールアウトを有効にする
リアルタイム分析__CAPGO_KEEP_0__の更新パフォーマンスを監視する
ワンクリックロールバック問題が発生した場合の迅速な復旧
CI/CD統合GitHubアクション、GitLab CI、Jenkinsと互換性があります。

Capgoの設定

Capgoを使用するには、以下のコマンドを実行してください。

npx @capgo/cli init

Capgoプラグインをビルドプロセスに追加します。Capgoはバックグラウンドで自動的に更新を処理し、組み込みの分析機能とロールバック機能を使用します。

チャンネルシステムを使用して、生産、ベータ、開発環境のロールアウトを管理できます。帯域幅の使用を最小限に抑え、必要な変更のみを配信することで、部分的な更新が利用可能です。

CapgoはCapacitorバージョン6と7をサポートしています。

Agile開発を実践し、@Capgoはユーザーに継続的に提供するmission-criticalな要素です。 [1]

概要

Capacitor Native Bridgeは、Androidプラグインを強力なネイティブ機能とstreamlined開発で強化します。このアプローチは、750の生産アプリケーションにわたる23.5万の更新を含む強力な結果をもたらします。 [1].

プラットフォームのパフォーマンスメトリックは、その効果を強調しています:更新の展開に伴うグローバル成功率82%、グローバルCDN経由で5MBのバンドルをダウンロードする平均時間114ms、24時間以内に更新を受け取るアクティブユーザーの95% [1].

これらの結果を達成するには、次の重要な実践が不可欠です:

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

開発者はこれらのツールを称賛しています。ベシー・クーパーは “Capgo is a must-have tool for developers who want to be more productive. Avoiding review for bug fixes is golden.” [1]

__CAPGO_KEEP_0__ は、開発者がより生産的になることを望む開発者にとって必須のツールです。バグ修正のレビューを避けることは金の卵です。

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

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

Get Started Now

Latest from our Blog

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