Mir*_*mer 5 performance resources android
我试图弄清楚访问android字符串资源之间的区别。以下报价对我来说并不明确:
参照访问速度快
直接访问速度慢
通过引用方式访问:setTitle(R.string.title)
直接访问是指:setTitle(getResources().getString(R.string.title))
现在,我在android模拟器上运行了一些速度测试:
通过引用访问:
for(int i = 0; i< 100000; i++) {
setTitle(R.string.app_name);
}
Run Code Online (Sandbox Code Playgroud)
这花费了5090毫秒。相反,我使用直接访问来运行相同的代码:
for(int i = 0; i< 100000; i++) {
setTitle(getResources().getString(R.string.app_name));
}
Run Code Online (Sandbox Code Playgroud)
这花费了5191毫秒。我使用Android 4.2.2进行了测试。
因此,对我来说,看起来就像使用资源的方式无关紧要。在早期的android版本中这有关系吗?在实际设备上这有关系吗?换句话说:选择哪种访问方式有关系吗?
如果需要更多测试参数,我很乐意提供。感谢您抽出宝贵的时间,非常感谢。
看看代码:
(活动中)
public void setTitle(int titleId) {
setTitle(getText(titleId));
}
Run Code Online (Sandbox Code Playgroud)
(在上下文中)
public final CharSequence getText(int resId) {
return getResources().getText(resId);
}
Run Code Online (Sandbox Code Playgroud)
所以基本上,这是完全相同的事情。
Resource.getIdentifier(String, String, String)然而,如果您使用查找资源的 ID,则速度要慢得多。
| 归档时间: |
|
| 查看次数: |
1440 次 |
| 最近记录: |