8

きれいな解決策がないように見えるので、私はこの問題に戻ってきます。Android の子プロジェクトからリソースを除外する良い戦略を持っている人はいますか?

2 つのシナリオがあります。

1 - ベース ライブラリ プロジェクトには、en、es などのローカライズ ファイルがあります。

-- 子プロジェクト 1 はすべてのローカリゼーションを使用し、すべてが良好です

-- 子プロジェクト 2 は英語にのみローカライズされていますが、最終的な .apk は親リソースのために部分的にローカライズされます (ただし、ADT19 などで Lint ルールが追加され、これを行うことを警告/防止します)。

これに対する現在の唯一の解決策は、ローカリゼーション用に別の親ライブラリを用意し、それを子プロジェクト 1 にのみ含めることです。ライブラリ プロジェクトが多数ある場合、これは大きな苦痛です。

2 - ビルド固有のリソースの除外。フラグによってトリガーされるアプリの Nook 固有のビルドにのみ必要なイメージがいくつかあります。条件付きコードはうまく機能しますが、リソースは常に含まれています。

アプリごとに別の子プロジェクトを作成したくありません。ビルド/コンパイル フラグを設定して特定のイメージ リソースを除外し、最終的な .apk に含まれないようにする方法はありますか?

2 番目の問題は私に固有のものかもしれませんが、1 番目の点について適切な議論が見つからないことに驚いています。一部のアプリだけをローカライズしている開発者は他にいませんか? それとも、ほとんどの人がこの問題を無視しているだけですか?

4

1 に答える 1

3

1 - ベース ライブラリ プロジェクトには、en、es などのローカライズ ファイルがあります。

このライブラリを使用する 2 つのプロジェクトがあり、そのうちの 1 つだけがすべての翻訳を必要とします。したがって、これらの翻訳は、ライブラリ自体ではなく、ライブラリを使用して翻訳を必要とするプロジェクトにある可能性があります。これは、ライブラリのリソースをカスタマイズする他のプロジェクト (アイコンの置き換え、レイアウトの置き換えなど) と同じです。

より複雑なミックスに取り掛かると (たとえば、2 つのプロジェクトでは翻訳が必要で、3 つ目のプロジェクトでは翻訳が必要ないなど)、問題が発生し始めます。

ビルド固有のリソースの除外。フラグによってトリガーされるアプリの Nook 固有のビルドにのみ必要なイメージがいくつかあります。条件付きコードはうまく機能しますが、リソースは常に含まれています。

Xav と私は、この号で条件付きリソースについて少し話しました。彼の焦点は、デバッグと本番 (に相当するリソースBuildConfig.DEBUG) ですが、より柔軟なものが可能性があるように思えます。

これらは両方とも、カスタム リリース ビルド スクリプトで処理できます。通常のデバッグ ビルドでは、そのままにしておきます。プロダクション ビルドでは、プロジェクトのコピーから Ant スクリプトを動作させ、コンパイル、署名、および zipalign を行う前に、不要なディレクトリを削除します。

于 2012-07-02T22:47:42.607 に答える