私は最近、65,000 を超える参照を持つアプリを操作するための Android の新しい MultiDex 機能を発見しました。参照: https://developer.android.com/tools/building/multidex.html
誰かが次の質問を理解するのを手伝ってくれますか:
1) Gradle ビルド プラグインは、プライマリ dex ファイル (classes.dex) とセカンダリ dex ファイルに何を入れるかをどのように決定しますか? ドキュメントに基づいて、プライマリ dex に必要な特定の事項がありますが、例はありません。すべてのアクティビティをプライマリ dex ファイルに含める必要がありますか?
引用文:
Dalvik ランタイムで実行する場合、プライマリ dex ファイルで必要なクラスに関して複雑な要件があります。Android ビルド ツールの更新は Android の要件を処理しますが、他の組み込みライブラリには、イントロスペクションの使用やネイティブ コードからの Java メソッドの呼び出しなど、追加の依存関係要件がある可能性があります。一部のライブラリは、multidex ビルド ツールが更新されて、プライマリ dex ファイルに含める必要があるクラスを指定できるようになるまで使用できない場合があります。
2) Android API レベル 21 (Android L) 以降のみをビルドする場合、Gradle Build Plugin の動作が異なります。「アプリケーションの各モジュール (依存関係を含む) を個別の dex ファイルとしてビルドするため、はるかに高速です。これは、一般に pre-dexing と呼ばれます。」Androidのモジュールの定義は何ですか? これは、http: //developer.android.com/sdk/installing/studio-build.html#projectModulesで言及されている Java ライブラリ、Android ライブラリ、および Android アプリケーション モジュールですか? リモートまたはローカルのバイナリ依存関係 (例: Jar) は個別のモジュールとしてカウントされるため、別の dex ファイルに入れられますか、またはそれらに応じてモジュールに含まれますか?