Строгое кодирование строки влияет на производительность?
Всякий раз, когда я делаю какое-либо приложение, я всегда жестко кодирую строку вместо ссылки на нее из строкового ресурса из XML. Приложение работает нормально, но дает мне предупреждение использовать ресурс @string
Пример кнопки:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="click here" />
Мой вопрос в том, повлияет ли это на производительность моего приложения, если я это сделаю или (ресурс @string
) используется только для интернационализации.
Ответы
Ответ 1
Это предупреждение для линков Android, которое поможет вам в локализации.
Технически жесткие строки кодирования заставят ваше приложение работать немного лучше, так как ему не нужно каждый раз искать строку из соответствующего R
int. Однако эта разница в производительности будет незначительной, и никто не сможет ее заметить.
Однако вы всегда должны сохранять свои ресурсы String в папке значений, поскольку это делает локализацию очень простой.
Ответ 2
Я не вижу причин, по которым вам будет хуже работать, используя стробированную строку. Есть меньше шагов, связанных с жестко закодированными строками. Однако, безусловно, лучше всего отделить строки ресурсов от приложения и кода пользовательского интерфейса.
Ответ 3
Он не будет создавать проблемы с производительностью. Но определение строк в strings.xml рекомендуется для удобства обслуживания и лолизации. Например, рассмотрим два сценария ниже.
Сценарий 1
Когда вам нужно изменить строку, используемую во многих местах. В вашем случае вам придется изменить все "click here"
во всех макетах. Но если вы указали в файле strings.xml, то только изменение, сделанное в xml, изменит их все.
Сценарий 2
В другом примере, если вы хотите показать другой язык для разных языков, вам нужно использовать string.xml.
Ответ 4
Как говорили другие, он для локализации,
но для производительности это зависит от того, сколько раз в секунду эти строки просматриваются.
Я видел случай, когда приложение запускается медленно, а выборка в стеке показала, что 50% времени было потрачено на поиск ресурсов по строкам, и причина, по которой были просмотрены строки, заключалась в том, чтобы отображать их на заставке, которая дает пользователю что-то посмотреть, пока приложение запускается!
Ответ 5
Я не думаю, что жесткая кодировка строки заставит вашу программу работать медленнее. Infact это повысит производительность, так как нет необходимости в поиске String в классе R.java.
Ссылка на строку из strings.xml
- лучшая практика из-за двух причин: -
1- Локализация
2- если вы используете одну и ту же строку в нескольких местах и хотите отредактировать ее во всех местах, вы сохраните накладные расходы на редактирование всех жестко закодированных строк отдельно.
Ответ 6
Строки жесткого кодирования напрямую не влияют на производительность. Это влияет на ремонтопригодность.
Если вы жестко задаете строку и на более позднем этапе, если хотите изменить строку "Click me", чтобы "добавить" или что-то еще, тогда вам нужно выполнить поиск в вашем полном проекте, чтобы изменить строку, где и все это используемый. Так лучше следить за strings.xml всегда.:)
Ответ 7
Ваше приложение не будет поддерживать Localization, тогда, если это не является требованием вашего приложения, тогда не будет проблем с использованием жесткого кодирования строки.