vitals udacity tutorial test studio developer basics app advanced android performance

android - udacity - ¿La codificación de la cadena afecta el rendimiento?



performance android studio (7)

Como han dicho otros, es para la localización, pero para el rendimiento, depende de cuántas veces por segundo se vean esas cadenas. He visto un caso donde una aplicación es lenta en el inicio, y el muestreo de pila mostró que el 50% del tiempo se gastaba en la búsqueda de recursos de las cadenas, y la razón por la que se buscaban las cadenas era para mostrarlas en la pantalla de bienvenida que ¡le da al usuario algo que ver mientras se inicia la aplicación!

Cada vez que hago una aplicación, codifico la cadena en lugar de hacer referencia a ella desde el recurso de cadena de XML. La aplicación funciona bien pero me advierte que use el recurso @string

Botón de ejemplo:

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

Mi pregunta es si afectará el rendimiento de mi aplicación si lo hago o si (recurso de @string ) solo se utiliza para la internacionalización.


Esta es una advertencia de pelusa de Android para ayudarlo con la localización.

Técnicamente, las cadenas de codificación duras harían que su aplicación se desempeñe un poco mejor, ya que no tendrá que buscar la cadena desde la R int correspondiente cada vez. Sin embargo, esta diferencia de rendimiento será despreciable y ningún ser humano podrá notarlo.

Sin embargo, siempre debe mantener sus recursos de cadena en la carpeta de valores, ya que facilita la localización.


Las cadenas de codificación no afectarán directamente el rendimiento. Afecta la mantenibilidad.

En caso de que cuando codifique una cadena y en una etapa posterior, si desea cambiar la cadena "Haga clic en mí" para "agregar" o algo más, tenga que buscar en su proyecto completo para cambiar la cadena donde y todo se usa. Así que mejor seguir las cadenas.xml siempre. :)


No creará ningún problema de rendimiento. Pero la definición de cadenas en strings.xml se recomienda para la facilidad de mantenimiento y lolalización. Por ejemplo, considere los dos escenarios siguientes.

escenario 1

Cuando necesitas cambiar una cadena usada en muchos lugares. En su caso, deberá cambiar todos los "click here" en todos los diseños. Pero si declaró en strings.xml, solo los cambios realizados en el xml los cambiarán a todos.

Escenario 2

En otro ejemplo, si desea mostrar un idioma diferente para una configuración regional diferente, debe utilizar el archivo string.xml.


No creo que codificar una cadena hará que su programa se ejecute más lento. De hecho, mejorará el rendimiento ya que no hay necesidad de buscar la Cadena en la clase R.java. strings.xml referencia a la cadena desde strings.xml es una buena práctica debido a 2 razones:

1- Localización 2- si está utilizando la misma cadena en varios lugares y desea editarla en todos los lugares, le ahorra la sobrecarga de editar todas las cadenas codificadas de forma individual.


No veo ninguna razón por la que obtendría un peor rendimiento al utilizar una cadena codificada. Hay menos pasos involucrados con las cadenas codificadas. Sin embargo, es ciertamente una buena práctica separar las cadenas de recursos de la aplicación y el código de UI.


Su aplicación no admitirá la Localization entonces, si ese no es el requisito de su aplicación, entonces no habrá ningún problema en el uso de cadenas codificadas.