この図を検討してください。
Q:私は完全に機能& URLのアドレス指定可能なモジュールにアプリを分割するにはどうすればよいですか?
ベースモジュール:には、アプリで必要なすべての共通リソースが含まれています。したがって、私たちの場合、feature1とfeature2のすべてのアクティビティは、ベースモジュールからの共有resを使用します。これは、短剣、バターナイフのようなライブラリを持つことがあります。
今度は、あなたのアプリ全体を、フィーチャーと呼ばれる小さな単位に分割してください。 1つの機能は複数のアクティビティで構成され、アプリを垣間見るだけでなく、ユーザーにそのアプリのインストールを促す目標を達成することもできます。今は、あなたがあなたのアプリをダウンロードするようにあなたに伝えたいことがあなたには完全に依存しています。
Feature1:私たちは、アプリをfeature1とfeature2に分割しました。この機能1では、ユーザーにアイテムの検索と参照を許可します。 項目のユーザーのクリックが、私たちがいるので、閲覧活動から項目をクリックするだけで、我々は
Intent intent = new Intent(Intent.ACTION_VIEW,
Uri.parse("https://yourdomain.com/itemdetail"));
intent.setPackage(getPackageName());
intent.addCategory(Intent.CATEGORY_BROWSABLE);
startActivity(intent);
のように呼びますので特長2からのアイテムの詳細をロードする必要があるとき:特長1は直接特長2にActivity2を呼び出すことはできませんからActivity1。そのためには、activity1のactivity2のURLアドレスを要求する必要があります。
フィーチャー2: フィーチャー2はインスタントアプリにロードされました。アイテムの詳細のアクティビティが表示されるようになりました。
注:各機能のサイズが4MBを超えないようにするため、アプリの機能を分割する際には、機能のサイズも考慮する必要があります。
- ないですべて。彼らはなぜでしょうか?私は最近、DaggerとButterKnifeの大規模なコードベースでこのようなリファクタリングを行いました。それは私にとっては問題ではないと言えます。詳細については私の答えをチェックしてください。あなたには明らかではありません。 – Idolon