相关疑难解决方法(0)

字符串的硬编码会影响性能吗?

每当我创建任何应用程序时,我总是对字符串进行硬编码,而不是从XML中的字符串资源引用它.应用程序工作正常,但让我警告使用@string资源

示例按钮:

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="click here" />
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果我这样做或者它(@string资源)仅用于国际化,它是否会影响我的应用程序性能.

performance android

17
推荐指数
1
解决办法
3285
查看次数

在Android应用程序中,何时将资源加载到内存?

我已将大约35个图像添加到res/drawable文件夹,将另外30个声音文件添加到res/raw文件夹.现在我的应用程序需要花费5秒钟才能启动,即使只有1个图像,启动画面也会使用1个声音资源.这让我问:我的图像资源什么时候加载到内存中?

它们是在应用程序启动时还是第一次使用时加载的?(例如:当我调用ImageView.setImageResource(myResId);)

如果它们在应用程序启动时全部加载,我该如何避免这种情况?如果按需加载每个应用程序,为什么我的应用程序需要更长时间才能启动?

有关应用洞察的信息:使用ViewPager进行单项活动.每个视图页面使用一个图像资源,即700x400像素分辨率(~50K)的jpeg文件和一个mp3文件<5秒(~60K)的声音文件.

performance android android-resources

15
推荐指数
1
解决办法
605
查看次数

XML字符串资源与Java常量字符串?

我有一个字符串就像 String data="apps";

我知道在Android中以两种方式加载String ..

第一个是

所以它是一个常数,我把它定义为

public static final String data="apps";
Run Code Online (Sandbox Code Playgroud)

另一种类型是在res/vslues/strings.xml文件中对它进行修改,如..

<string name="data">apps</string>
<string name="hello_world">Hello world!</string>
Run Code Online (Sandbox Code Playgroud)

如果我想用它..

第一种方式 ClassName.data

第二种方式 context.getResources().getString(resourceid)

题:

所以现在我的问题是我想String在不同的类中使用相同的30次.并且我有更多的变量.这将加载更快并且在上述方法中占用更少的内存.

java xml string android

7
推荐指数
2
解决办法
3936
查看次数

在Android中,是否有理由将字符串资源用于不会被翻译的字符串?

我想知道在Android代码中使用java文件中定义的字符串有什么缺点.

我喜欢使用普通的旧Java字符串来处理不可见字符串的内容,例如我正在解析的XML文档中的名称,或者bundle的键.将所有这些内容保存在使用它们的java文件中而不是将它们移动到XML文件中并使代码更复杂似乎是个好主意.

然而,我看到许多Android代码示例似乎将每个字符串放入资源文件中.

在java文件中使用字符串有什么问题?人们不这样做的原因是什么?我一直在我的应用程序中这样做,到目前为止还没有看到任何问题.

请注意,我知道XML文件对于需要翻译的内容非常有意义.这个问题适用于字符串保持不变的情况.

让我试着让这个问题更清楚:

有什么理由除外:

  • 因为它是标准/最佳实践等 - 我的问题基本上是:为什么它是最佳实践,仅仅因为i8n,还是有其他原因?
  • 因为它允许您使用资源框架进行翻译,依赖于设备的字符串等.
  • 因为它允许您使用非ASCII字符.

java android android-resources

5
推荐指数
2
解决办法
1466
查看次数

标签 统计

android ×4

android-resources ×2

java ×2

performance ×2

string ×1

xml ×1