この質問は主観的なものかもしれませんが、Stackoverflow が質問するのに最適な場所だと思います。
問題のドメインは「高度な Android プログラミング」です。単一の Android プロジェクトをセットアップする方法、ライブラリ プロジェクトを使用する方法、または ANT を使用して通常のプロジェクトをビルドする方法についての情報は必要ありません。
Jenkins / Ant / Proguard によってビルドされた通常の Android プロジェクト (IDE は IntelliJ を選択しますが、それは重要ではありません) を実行中のアプリと仮定します。このビルドの結果は、Play ストアに配置する最終的な APK です。
このアプリが無料版と有料版として必要だと想像してみてください。今のところ問題ありません。すべての共有コードをライブラリ プロジェクトに入れ、2 つの子プロジェクトを作成します。
ここで、Amazon もターゲットにしたいと考えて、プレス リリース バージョンなどを作成したいとします。そのため、コードは分岐し始め、まだ多くのものを共有していますが、特定の部分はターゲットとする市場などに固有のものです。
C# には、「IF PLAY_STORE ...」のような「条件付きコンパイル ステートメント」があります。Java / Android に似たものはありますか。また、それらは ANT とビルド プロセスで適切に機能しますか。
しかし、私は条件付きコンパイルに限定されていません。「市場ごとに 1 つのプロジェクト」というアプローチは別のものです。これらのさまざまな「ビルド構成」を持続可能な方法でどのように管理しているかを把握しようとしています。つまり、2 つのフレーバー (無料と有料) で 3 つの市場をターゲットにして、15 のプロジェクトで機能します。私がほのめかしていることを理解していただければ幸いです。コードはすべてのアプリで非常によく似ていますが、上記の例では 90 個の異なる APK があります。これらの数を使用すると、「このビルドにのみ必要なソース コードに手動でコメントする」などの作業はもはや必要ありません。
したがって、これらの問題ドメインに関するヒント、ツール、検索ワード、経験 (たとえば、MAVEN、それは私を助けてくれるでしょうか、または build.xml を生成する ANT + スクリプトの方が良いでしょうか)。もう 1 つの例として、すべてのターゲット市場向けの「実際の」Android プロジェクトがある場合、これにより、ほとんど何でも行うことができます。もちろん、マイナス面として、最下位レベルに新しいページを追加する場合 (たとえば、インプリント ページ)、ページを追加するために 90 Manifest.xml に移動する必要があります...
これについて助けてくれてありがとう、クリス
PS: このトピックに関して見つけたいくつかのリンクを下部に追加します。回答がないときに誰かがこの質問に出くわした場合、これは「最初にこれを読む」セクションになる可能性があります。
http://www.asyncdev.net/2011/02/android-dev-prod-builds/
http://www.slf4j.org/ (「JAR を入れて IMPL を提供する」方法に関連)
(SLF4J は、別の JAR を追加するだけで、依存関係を減らし、展開中に構成を提供するための優れたアプローチです。このようなものを使用することは、独自のプロジェクトではやり過ぎかもしれませんが、1 つの方法です。たとえば、ライセンス書き込みインターフェイスとSLF4J のようなコードを少し追加し、ビルド中に Lib フォルダーに PressRelease.jar または Productive.jar を提供して、アプリの動作を変更します...)