15

ただ興味があるだけ :

一部のアプリ (通常は開発者向け) では、他のサンプル アプリをダウンロードして、インストールせずにサンプル アプリを実行できます。

そのようなアプリの例は、クールな「DevAppsDirect」アプリです (ところで、強くお勧めします)。

私の質問は:

そのようなアプリはどのように機能しますか?

つまり、彼らは APK をダウンロードしますか? インストール フェーズをスキップして、ダウンロードしたアプリを実行するにはどうすればよいでしょうか。それらはダウンロードされたコンテンツと何らかの形で融合しますか? プラグインのようなものですか?

このようなことは、プラグインや拡張機能を必要とするアプリや、私が考えられない他のアイデアに役立つ可能性があります.

また、他のアプリがプラグイン メカニズムをどのように使用するのかも気になります。多くのアプリでは、Play ストアから他のプラグイン アプリをダウンロードできます。彼らはどういうわけか他のapkファイルでいくつかのコードを実行しますか? 彼らは他のapkファイルに到達することさえできますか? 私のapkファイルにアクセスできるアプリをandroidに伝える方法はありますか?

4

5 に答える 5

8

Android のクラス ローダー (この場合はおそらく PathClassLoader) を使用して、実行時にクラスをインストールせずに動的にロードできます。

たとえば、https ://github.com/Rookery/AndroidDynamicLoaderを見て、これを実装する方法を確認してください。

プラグイン apk は、それほど複雑なものを必要としない場合もありますが、エクスポートされたアクティビティに送信され、結果がポストバックされたインテントを介して通信することができます。PackageManager ( http://developer.android.com/reference/android/content/pm/PackageManager.html ) を使用して、どのインテント アクティビティが登録されているかを照会できます。

于 2013-07-01T21:26:51.097 に答える
6

私は devAppsDirect (ウェブサイトはこちら) の開発者と話をしました。彼が書いたものは次のとおりです。

DevAppsDirect の背後にあるテクノロジーは、inAppSquared (www.inAppSquared.com) と呼ばれます。簡単に言えば、inAppSquared を使用すると、Android アプリをプラグインに変えることができます。これは、公開されている Android API のみを使用して行われ、クレイジーなハッキングは必要ありません。

これは、Xamarin と Titanium がモバイル プラットフォームであるのと同じように、新しい新しいモバイル プラットフォームを作成することで実現しました。違いは、inAppSquared には Android API と同じ API があり、アプリが inAppSquared に移植されると、インストールせずに実行できることです。

この技術には多くの可能性があります。プラグインと拡張機能について言及しましたが、App Discovery、広告、サブスクリプション サービス、A/B テスト、バグ修正などにも使用できます。

于 2013-07-21T12:24:13.700 に答える
2

とても興味深い!これは実行可能だと思いますが、自分で試したことはありません。

  • サーバーにapkがある場合は、アプリからダウンロードできます
  • zip ユーティリティを使用して、独自のアプリケーションのプライベート メモリに解凍できるようになりました。
  • マニフェスト ファイルを解析して主なアクティビティを特定する
  • 次に、ClassLoaderorDexClassLoaderを使用してアクティビティを動的にロードできます。

これがDevAppsDirectで起こっていることだと思います

于 2013-07-04T13:36:53.213 に答える
1

DevAppsDirect は「ランチャー」と呼ばれる Android オープン ソース プロジェクトの一部を使用しているようです。私の推測では、彼らは OS のその部分を取り、それを微調整して、ライブラリからコンパイル済みの APK を起動するために独自のアプリ内に含めることができました。デモ。

ランチャーは、携帯電話のホーム画面、他のアプリの起動、ウィジェットのホスティングなどを担当します。

ここで Android オープン ソース プロジェクトのコピーを入手できます: http://source.android.com/source/downloading.htmlおよび com.android.launcher パッケージをご覧ください。

于 2013-07-05T02:43:19.570 に答える