約 30 の製品フレーバーを含むプロジェクトがあります。これらの製品フレーバーの一部は、コードを共有する必要がありますが、ほとんどの製品フレーバーと共有する必要はありません。コードをフレーバー グループに割り当てることはできますか?
1 に答える
1) 特定の製品フレーバーのフォルダーを作成する方法を知っていますか? 特定のフレーバーの組み合わせに使用されるソースまたはリソースを含むフォルダーを作成することもできます。https://developer.android.com/studio/build/build-variants.html#sourcesets
たとえば、ある次元では「beta」、「prod」、別の次元では「newApi」、「oldApi」というフレーバーがあります。新しい API を使用したベータ版の場合を除き、すべてのフレーバーの組み合わせに対して 1 つのクラス実装を使用します。そこで、gradle がこの buidle バリアント (betaNewApi) に名前を付け、フォルダー project/app/src/betaNewApi を作成し、そこにクラスを配置して、パッケージのプロジェクト構造を保存する方法を見つけました。その結果、この特定のクラスを必要とするクラスは、このフレーバーの組み合わせで通常のクラスまたはこの特定のクラスのみを取ります。
2) クラス全体ではなく、コードのごく一部のみを共有する必要がある場合は、フレーバーのランタイム チェックを使用できます。
if (BuildConfig.FLAVOR_releaseType.equals("prod"))
&& BuildConfig.FLAVOR_apiLvl.equals("newApi")) {
// here is your shared code
}
「prod」などの定数を Application クラスに抽出し、そのような方法で使用します。