1

翻訳の問題が発生して以来、Android でリソースを使用して Android で文字列を宣言しようとしてきました。しかし、ログ メッセージに使用する文字列のように、文字列を宣言する必要がない場合もあります。しかし、少し調べてみたところ、strings.xml から文字列をコードにロードしたり、インラインでハードコーディングしたりして、どちらが高速かを誰もテストしていないことがわかりました。ログメッセージを使用する通常の方法は次のとおりです。

log.d(TAG, "This is My Hard Coded String");

「This is My Hard Coded String」をstrings.xmlに入れてコードで呼び出す場合と比較して:

log.d(TAG, getResurce().getString(R.string.hardcodedstring));

これらのテスト時間をいくつか実行してみましたが、すべての側面を考慮したかどうかはわかりません. では、他の誰かがこれを行った方が速いですか?

4

4 に答える 4

2

私が得たテスト結果は、インライン コードの場合で、ログ ファイルに 100 回書き出す平均時間は次のとおりでした。

20.6ミリ秒

getResource 文字列の呼び出しとログ ファイルへの書き込みを 100 回行う平均時間は次のとおりです。

29.0 ms

getResources() 呼び出しの方が速いと思っていたのに驚きました。

于 2013-04-29T15:13:10.020 に答える
1

アプリケーションのボトルネックが getString() である場合、ネットワーク、データベース アクセス、ビューの描画など、他のすべてを最適化するという、非常に驚​​くべき仕事を成し遂げたことになります。

私は本当にそれについて心配することはありません。

于 2013-04-29T14:28:40.060 に答える
0

同じ値の複数の文字列 (Strings.xml またはプログラムで) を使用しても、関連するオーバーヘッドはありません。すべての文字列と文字列値式は、再度使用する場合に再作成されるのではなく、再利用されます。

ポイントは、各用語のすべての出現に簡単にアクセスして編集し、複数の言語をサポートすることです.

于 2013-04-29T14:27:04.037 に答える