1

GWT と PhoneGap を使用して、Android、iPhone/iPad、および Windows Phone 用のアプリを設計しています。GWT を使用すると、アプリ全体を Java (JavaScript や CSS とは異なり、私の得意分野) で作成でき、それをクロスブラウザーの JavaScript/AJAX に変換できます。その後、PhoneGap はその結果の JavaScript をラップし、上記の 3 つのプラットフォームのそれぞれのネイティブ アプリに変換します。

アプリの機能を強化する「アドオン」(プラグイン/拡張機能) をユーザーがオプションで購入 (または他の手段で資格を得る) できる「プラグイン指向のアーキテクチャ」が必要です。

通常は、Java Simple Plugin Framework (JSPF)を使用してこれを実現し、ユーザーが料金を支払ったときにプラグイン JAR をダウンロードできるようにします。次に、これらのプラグイン JAR がメイン アプリのクラスパスに追加されるため、次に起動してプラグインのクラスパスをスキャンするときに、それらを見つけてロードします。

これはネイティブアプリで可能ですか? APK、IPA、XAP (それぞれ Android、iPhone、WinPhone) ファイル以外をこれらのマーケットプレイスにデプロイできるとは思えません。

Java ランドでは、これは実行可能な JAR (独自のmainメソッドを含む) の形式で「ベース」アプリをダウンロードする必要があり、次に実行可能な JAR でもある「プラグイン」アプリをダウンロードする必要があるようなものです。 2 つが通常のプラグイン アーキテクチャのように動作するようにします (これは、実行可能な JAR ベース アプリが 1 つと、プラグインの実行不可能な JAR ライブラリが 1 つ以上ある場合です)。

そこで質問します: 展開/ダウンロードの観点から見て、アドオンはネイティブ アプリに対してどのように機能しますか? クライアント側で 2 つ以上の APK/IPA/XAP を相互に通信させるにはどうすればよいですか? 不可能な場合、ネイティブ アプリの開発者はアドオンをどのように処理しますか (存在することは知っていますし、見たこともあります!)? 前もって感謝します!

4

2 に答える 2

0

私はコアな Android 開発者ではありませんが、これまでの Android の経験からいくつかの提案があります。

Android で考えられる解決策の 1 つは、アプリケーションに Updates を使用することです。これを実現する 1 つの方法は、アプリが起動するたびに更新をチェックするバックグラウンド サービスを使用するか、GCM (Google Cloud Messaging) を使用して更新メッセージをアプリにプッシュすることです。2 番目のオプションは、ユーザーがアドオン機能を購入するとすぐに、デバイスごとに (ユーザーは複数のデバイスを持つことができます) 即時更新をユーザーに提供できるため、はるかに優れています。ユーザーが更新メッセージを受け取ったら、新しい機能を含むアプリ全体をダウンロードし、デバイスでアプリを更新できます。もちろん、この場合、アプリの既存のデータをバックアップし、更新されたアプリのインストール後に復元する必要があります。

これが可能かどうかはわかりませんが、特定のアドオンを購入した正当なユーザーに、Android マーケットを通じて更新されたアプリを提供できるのであれば、それも良い選択肢だと思います。

もう 1 つの方法は、各アドオンをサービスとして作成し、メイン アプリが起動時にそれらのサービスを検出 (またはバインド) できるようにすることです。これらのサービスが利用可能な場合、アプリはそれらと簡単に通信できます。Intents と BroadcastReceivers を使用して、新しくデプロイされたアドオンの UI 部分をメイン アプリから呼び出すこともできます。

Android に関する限り、これも役立つ場合があります。

ただし、アプリケーションが他のアプリケーションとデータを共有したり、アプリケーションがシステム サービスにアクセスしたりする方法はいくつかあります。

2 つのアプリケーションが同じ Linux ユーザー ID を共有するように調整することは可能です。この場合、それらは互いのファイルにアクセスできます。システム リソースを節約するために、同じユーザー ID を持つアプリケーションを同じ Linux プロセスで実行し、同じ VM を共有するように調整することもできます (アプリケーションは同じ証明書で署名する必要もあります)。

これがあなたに役立つ情報を提供することを願っています。

于 2012-08-25T18:16:21.883 に答える
0

iPhone の場合 - 唯一の方法は、追加機能を実装し、ユーザーがアプリで購入して機能のロックを解除するまでそれらを無効にすることです。

Android では、ユーザーがアドオン機能のみを提供するアドオン アプリをロードできるように、アプリが相互に通信できるようにすることができます。詳細については 、2 つのアプリケーション間の Android 通信を参照してください。

WP8 - まだ経験がない

于 2012-08-25T15:05:32.207 に答える