最初に文字列を宣言せずに、単純なテキストを xml ファイルに直接配置するのが大好きです。それはより簡単で、よりシンプルで、面倒ではありません。ただし、そうするたびに、常に警告バッジが表示されます。
警告を気にせずに xml ファイルにハードコードされた多数の文字列がある場合はどうなりますか? トラブルになりますか?
前もって感謝します。
最初に文字列を宣言せずに、単純なテキストを xml ファイルに直接配置するのが大好きです。それはより簡単で、よりシンプルで、面倒ではありません。ただし、そうするたびに、常に警告バッジが表示されます。
警告を気にせずに xml ファイルにハードコードされた多数の文字列がある場合はどうなりますか? トラブルになりますか?
前もって感謝します。
Java コードと xml ファイルの両方でハードコードされた文字列を使用すると、アプリケーションはこれらの文字列を RAM に直接書き込みます。ただし、それらを文字列リソースとして宣言すると、アプリケーションの起動時に RAM に書き込まれませんが、アプリケーションがそれらを使用する必要があるときに RAM に書き込まれます。リソースで 10 億個の文字列を宣言でき、軽量で RAM フレンドリーな Android アプリケーションを作成できます。
それで困ることはありません。ただし、 を使用string.xml
してアプリにテキストを配置することは、優れたプログラミング手法と見なされます。アプリの複数の場所で同じテキストを使用したいとします。特にテキストが多少大きい場合は、毎回ハードコードされたテキストを配置するのは困難です。テキストを 1 つのファイルに入れるということは、アプリのどこからでも同じテキストにアクセスできることを意味します。
いいえ、問題が発生することはありませんが@string/yourString
、xml で使用することは良い習慣になり、多言語サポートが容易になります。
これらの警告について心配する必要はありません。おそらく、Android 開発者は、それは良い習慣ではないと考えました。
ただし、アプリケーションが多言語をサポートする可能性がある場合は、@string/mystring を使用するのがベスト プラクティスです。
これは、パフォーマンスに関するいくつかのコメント (@PankajKumar、@TechEnd、@Ken YN) を参照しています。
Google のドキュメントによると、「文字列はコンパイルされたリソース データ型です。文字列へのリソース ポインタです。」(リンク: http://developer.android.com/guide/topics/resources/string-resource.html#String )
したがって、違いは目立たないかもしれませんが、メモリフットプリントを減らすことでパフォーマンスが向上すると思います。
これは、XML ファイルで文字列を宣言すると、そのリソースへのポインターが維持されるためです。そのリソースを別の場所で再利用する必要があるときはいつでも、既存の String へのポインタを取得するだけで、同じ String に新しいメモリを割り当てる際にメモリを節約できます。これは、同じ文字列リソースに毎回メモリが割り当てられるハードコードされた文字列を使用するのとは対照的です。
お役に立てれば。コメントは大歓迎です。
よろしく、MM。