私は、スポーツ チームのファンが使用するためのアプリに取り組んでいます。将来的には、同じアプリを別のチームで使用する予定です。変更点は、色、チームロゴ、アプリ名などです。
では、リソースを複製することなく、さまざまなチームのバイナリを構築できる手法はありますか?
おそらく最善の方法は、デフォルトのビルド システムから離れることです。これは通常、カスタム Ant スクリプトを作成することを意味します (または、デフォルト ビルドを呼び出す前に、リソースを操作する何らかの準備スクリプトを使用することもできます)。
以前、似たようなことを達成する方法の概要をスケッチしました。
すべてのリソースを含む 1 つのバイナリを作成し、ユーザーがアプリ自体から必要なチームを選択できるようにすることは可能ですか? その後、アプリは必要なリソースを読み込むことができます。
これを行うためのより良い方法があるかもしれませんが、次のようになります。
最初のチーム用にアプリを構築し、すべてのロゴ、チーム名、スタイルなどのリソースを作成します。次に、プロジェクトの res/ フォルダー内のすべてのアイテムを削除し、それらを別のアイテムに置き換えることができるスクリプトを自分で作成します。頭が良ければ、文字列のようなチーム名のほとんどがロゴに含まれているため、スクリプトで行う必要があるのは、古いものを削除し、ハード ドライブの別の場所から新しいものをコピーすることだけです。
これに関する最悪の部分は、スタイル用に Android タイプのファイルを定義する必要があることです。スクリプトでチームのプライマリ カラーとセカンダリ カラーをパラメータとして取り、実際に Android タイプのスタイル ファイルをすべて生成するとよいでしょう。
繰り返しますが、もっと良い方法があるかもしれません。この方法が解決策になる可能性があると言っているだけです。
インターネット/サーバーから画像、色情報をロードするアプリケーションを構築すると思います。それから、
1)フォローしているチーム名をユーザーに尋ね、インターネット/サーバーから画像、色情報をダウンロードして、ローカルとして保存します。次回はダウンロードしないでください。
2)ユーザーがアプリケーションを初めてインストールしたときにサーバーから画像、色の情報をダウンロードする各ビルドにグローバルIDを添付します。