Подтвердить что ты не робот

Строгое кодирование строки влияет на производительность?

Всякий раз, когда я делаю какое-либо приложение, я всегда жестко кодирую строку вместо ссылки на нее из строкового ресурса из XML. Приложение работает нормально, но дает мне предупреждение использовать ресурс @string

Пример кнопки:

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="click here" />

Мой вопрос в том, повлияет ли это на производительность моего приложения, если я это сделаю или (ресурс @string) используется только для интернационализации.

4b9b3361

Ответ 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, тогда, если это не является требованием вашего приложения, тогда не будет проблем с использованием жесткого кодирования строки.