[解決済み] アンドロイドで定数を定義するには、静的クラス、インターフェース、xmlリソースのうちどれが一番良い方法ですか?
質問
サーバーからデータを取得するためにWebサービスを使用するアンドロイドアプリケーションを開発しています。そのために、開発システム、テストサーバー、ライブサーバーを指す3つの異なるURLのセットを持っています。テスト用/ライブ用のアプリケーションを提供するたびにURLを変更するのは難しいので、私はそれを設定可能にすることを計画し、私の構築タイプの構成定数に基づいて、アプリケーションが適切なURLを取得できるようにしました。 というわけで。
- この定数を保持するには、Javaの静的クラス、または それともxmlリソースファイルでしょうか? いつ?なぜですか?
- どちらが良い性能を発揮するか? いつ?なぜ?
例:xmlリソース
<integer name="config_build_type">0</integer>
<string-array name="url_authentication">
<item >http://development.com/xxxx</item>
<item >http://test.com/xxx</item>
<item >http://example.com/xxx</item>
</string-array>
Java静的定数
public class Config {
public static final int BUILD_TYPE = 0; // 0 - development, 1 - test, 2 - live
public static final String[] URL_AUTHENTICATION = {"http://development.com/", "http://test.com/", "http://example.com"};
}
どのように解決するのですか?
XML レイアウトでプロジェクト リソースを参照できるという点で、両者には大きな違いがあります。これらはアプリケーション コンテキストで使用できるため、グローバルなアプリケーション全体でアクセスできます。プロジェクト リソースを使用する最大の利点は、アクセスが簡単であることと、プロジェクトを大幅に整理できることです。
static final
定数はJavaバイトコードにコンパイルされ、プロジェクトリソースはapk内のバイナリ形式にコンパイルされます。どちらかにアクセスするのは非常に効率的です。この 2 つの間に違いがあるとすれば、それはせいぜい些細なことです。
プロジェクトでリソース/定数をどのように使用すべきかについて、決まったルールはありません。とはいえ、私自身は、XML で使用する必要がありそうな値にはリソースを使用します。
または
java コードで使用する必要がある値にリソースを使用します。一方、私は通常
static final
になるような値には定数を使います。
のみ
で、私の実装に固有のものです。
また、デバイスの現在の設定(画面サイズ、ロケールなど)に応じて、実行時にXMLリソースをロードすることが可能であることに注意してください。そのため、定数を XML で宣言するか、直接
.java
ファイルの中で直接宣言するかどうかを決める際には、この点を考慮する必要があります。
関連
-
[解決済み] Android XML drawable ファイルに円形を定義する方法を教えてください。
-
[解決済み] Androidで'Context'を取得する静的な方法?
-
[解決済み] AndroidでEditTextのテキスト長を制限する最も良い方法は何ですか?
-
[解決済み] Objective-Cで定数を作成する最も良い方法は何ですか?
-
[解決済み] ArrayAdapter<myClass> の使用方法
-
[解決済み] プログラムでソフトキーボードを開く
-
[解決済み] Gmailの3分割アニメーションシナリオの完全動作サンプル?
-
[解決済み] onCreate(Bundle savedInstanceState)とは?
-
[解決済み] Android StudioからADBを手動で再起動する方法
-
[解決済み] サポートライブラリのアクションバーをPreferenceActivityに追加するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Android Webview - キャッシュを完全に削除する
-
[解決済み] バイト配列の画像ファイルをビットマップに変換するには?
-
[解決済み] Androidのadb logcatでTAG名で特定のメッセージを除外する方法は?
-
[解決済み] Android Studioの「未実装メソッドの追加」機能
-
[解決済み] onCreate(Bundle savedInstanceState)とは?
-
[解決済み] Android: ランドスケープモード用の代替レイアウト xml
-
[解決済み] Android Lintが翻訳されていない文字列を訴えないようにする。
-
[解決済み] google-services.jsonって実際何してるの?
-
[解決済み] アンドロイドボタンセレクター
-
[解決済み] ブルートゥースアプリケーションのテストにアンドロイドエミュレータを使用するには?