2017-07-18 16 views
0

インストールされているバージョンのアプリケーションで、カスタマイズされたロジックが必要です。 完全に異なるアクティビティを使用する必要があります。 Googleが提供するマルチフィーチャーサンプルアプリから、インストールされたモジュール内に新しいアクティビティといくつかのリソースファイルを含むsrcフォルダが追加されました。 また、私が追加したアクティビティを指すように、インストールされたモジュール内のmanifest.xmlを変更しました。 いいえコンパイルしようとすると、新しいresフォルダファイルが含まれていないようです。私は手動でどこかにそれらを含める必要がありますか?インストールされたバージョンのアプリケーションにカスタムロジックを含める方法

また、インストールされたモジュールに基本プロジェクトを含める必要がある理由が分かりません。これは、他の機能プロジェクトには既にそれらが含まれているからです。そして、最も奇妙な部分は、基本プロジェクト自体にも機能とアプリケーションが含まれているということです。内包物のようなそのサークル。どのように混乱することができます..本当に私はこの奇妙なアーキテクチャでスーパー混乱している唯一の人であるかどうかと思う。

答えて

0

をチェックコードに私は私の問題への解決策を発見しました。 まず、私はusecaseをもう少し良くするべきでしょう。基本的に私が望むのは、インスタントアプリとインストール可能なアプリのためのさまざまなアクティビティです。彼らは多くを共有しますが、すべてを共有するわけではありません。インストール可能なAPKには、インスタントアプリが共有、ログイン、設定などのないスーパーライトであるような、より拡張された機能があります。また、インストール可能なアプリでは、インスタントアプリが画面/機能ごとにユニークなアクティビティを持つため、複数のスクリーン/フィーチャ(フラグメント置換あり)に対して1つのアクティビティがある場合もあります。 私はいつもisInstantAppを使いたくありません。私はできるだけ多くの共有コアロジックを持つ別々のロジックを持つ方がクリーンであると思います。

私のインストール可能なアプリは機能ではなく、すべての依存関係とすべての機能ロジックにアクセスできる必要があります。

私は以下のモジュールを作成:

  • (アプリのAPKバージョン)

    • インストールインスタント(アプリのインスタントアプリのバージョン)
    • base_feature
    • feature_A
    • feature_B
    • installable_combined

    現在、機能AとBは基本プロジェクトとして "base_feature"を持っています。 "base_feature"のフィーチャープロジェクトに "feature_A"と "B"があります。 "installable"は、 "base_feature"、 "feature_a"、 "feature_b"に応じて通常の "library"です。

    これまでのところ素晴らしいです。基本的に私はインスタントとインストール可能なアプリケーション用に別々のコードを持っていますが、ほとんどのロジックは両方で共有されています。

  • 0

    あなたが最初にあなたの機能モジュールでこの依存関係をadddingことにより、現在のインスタンスがインスタントまたはインストールアプリであるかどうかを確認することで、あなたのロジックをカスタマイズすることができ、あなたが達成しようとしているかを判断することは非常に困難ですが、私の知る限り

    api "com.google.android.instantapps:instantapps:1.0.0" 
    

    そして、あなたは

    isInstantApp(Context context) 
    
    +0

    いいえ、それは本当に私が望んでいたものではありません。 私は数日後です。私は今、基礎を理解し始めます。だから私は、インスタントアプリには含まれないが、インストール可能なアプリに含まれるフィーチャーライブラリーを追加しています。 どうにかして、それをベースフィーチャーに追加する必要があります(なぜか、ベースフィーチャーにフィーチャーを組み込む必要がある理由はまだ分かりません)。そして、それは動作するようです。 –

    +0

    @GillisHaasnootそれでは今は動作していますか? –

    関連する問題