2017-12-11 24 views
2

アンドロイドのモジュールとフレーバーの主な違いは何ですか?モジュール定義からモジュールとフレーバーのAndroidの違い

https://developer.android.com/studio/projects/add-app-module.html

モジュールは、モジュールレベルのビルドファイルとAndroidマニフェストファイルなど、アプリケーションのソースコード、リソースファイル、およびアプリレベルの設定のための容器を提供します。各モジュールは、独立してビルド、テスト、デバッグすることができます。

しかし、私はフレーバーについても同じことを言うことができます。

誰かがこの2つの主要な違いを指摘できますか?

答えて

0

モジュールは完全に異なるファイルセットです。 フレーバーは、ほとんどのコードや設定を共有でき、わずかな違いしかありません。味は、多かれ少なかれ構成/実装されているのに対し、

+0

を。 ? –

+0

私は、味をapp/src/flavorNameとして定義することができ、完全に異なるコードのセットにもなります。 Modulsもコードを共有できますが、それは良い方法ではないと思います。フレーバーの違いは私の実装に依存します。 –

+0

はい、反対にすることはできません - モジュールをコードを共有するようにします。 この2つのエンティティは、異なるケースでの使用を意図していますが、必要に応じて同様のことを行うことができます。 –

0

モジュールは

モジュールの具体例のプロジェクトの一部である:あなたがライブラリを作っている場合は、複数のモジュールを持つことができます 、例えば図書館そのものとデモプロジェクトです。それらのそれぞれは、モジュール

です:あなたは、いくつかのオンライン機能を持つアプリケーションを作っている :各モジュールは、独自のコード

味のための具体的な例があります。これにはいくつかの環境があります(テスト用サーバーenv、ライブバージョン用)。これは、わずかな結論である

味が(メインフォルダを使用して)自分のコードを共有することができます(必要に応じて、独自の実装) あなたは

は注意独自の設定ですべての環境用のビルド味を作ることができます。モジュールとフレーバーは、この短い説明よりはるかに強力ですが、私はそれが最も重要な違いを指摘すると思います。

EDIT:主な違いは、特にgradleに関するプロジェクトの構造です。あなたは次のような構造を得るよう

モジュールは常に、自分自身のGradleファイルを持っている:

projectName.gradle 
    module1.gradle 
    module2.gradle 
    ... 

味がモジュールのGradleのファイルで定義されています。

例えばmodule1.gradleは次のようになります。

// some other gradle stuff before 

buildTypes { 
    dev { 
     // your config 
    } 
    debug { 
     // your config 
    } 
    release { 
     // your config 
    } 
} 

ご覧のとおり、フレーバーとモジュールを混在させることができます。これで、module1に2つのモジュールと異なるフレーバーを持つプロジェクトが作成されました。プロジェクトフォルダに

、あなたのファイルエクスプローラで構造を次のようしておく必要がありますそれらのわずかな違いが何であるかを

/project 
    /module1 
    /src 
     /main 
     /dev 
     /debug 
     /release 
    /module2 
+0

具体的な例については尋ねませんでしたが、主な違いを尋ねました。 app/src/flavorNameディレクトリを作成すると、モジュールと同じ "プロジェクトレベルの一部"になります。 –

+0

私は違いをより明確にするためにこの例を作成しました。 あなたはまだどんな質問をしていますか? – beal

+0

フレーバーとモジュラーが表現される方法は、ポストで作成している有効な点です。違いはありますが、私はこれらの2つのキーの差**キーとは言いません。私は1つではできるが、他のものではできない機能は何ですか? –