Access by referene is fast
Direct access is slow
通过引用访问意味着:setTitle(R.string.Title)
直接访问意味着:setTitle(getResources().getString(R.string.Title))
现在我在androID模拟器上运行了一些速度测试:
通过参考访问:
for(int i = 0; i< 100000; i++) { setTitle(R.string.app_name);}
这花费了5090毫秒.相反,我使用直接访问运行相同的代码:
for(int i = 0; i< 100000; i++) { setTitle(getResources().getString(R.string.app_name));}
这耗时5191毫秒.我用AndroID 4.2.2测试了这个.
所以对我而言,看起来很像我使用资源的方式无关紧要.这在早期的AndroID版本中有用吗?这在真实设备上有用吗?换句话说:我选择哪种访问权限是否重要?
如果需要更多我测试的参数,我很乐意给他们.感谢您抽出宝贵时间,非常感谢.
解决方法 看看代码:(在活动中)
public voID setTitle(int TitleID) { setTitle(getText(TitleID));}
(在上下文中)
public final CharSequence getText(int resID) { return getResources().getText(resID);}
所以基本上,它完全是一回事.
然而,更慢的是,如果使用Resource.getIDentifIEr(String,String,String)来查找资源的ID.
总结以上是内存溢出为你收集整理的两种访问android字符串资源的方法全部内容,希望文章能够帮你解决两种访问android字符串资源的方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)