2012-05-16 19 views

Respuesta

10

Los comentarios en los archivos Java se eliminan, o se ignoran, cuando se compilan en archivos de clase. Los archivos de clase no son para lectura humana, están optimizados para ejecutarse eficientemente en una máquina virtual. Si los comentarios permanecieran, solo causarían que los archivos de clase fueran más grandes de lo necesario y sin beneficio adicional (es decir, el compilador y las máquinas virtuales no entienden los comentarios, entonces ¿por qué incluirlos?

En cuanto a Archivos XML, los comentarios generalmente se conservan. Mientras que un archivo de clase compilado solo tiene 1 propósito (para ejecutarse en una máquina virtual), un archivo XML podría servir para muchos propósitos. Por ejemplo, puede cargar un archivo XML en su aplicación y manipularlo. Dependiendo del uso del archivo XML en su aplicación, podría ser necesario mantener los comentarios allí; de hecho, su aplicación podría buscar específicamente comentarios. Debido a que los archivos XML pueden tener una amplia gama de usos, los comentarios no se eliminan de los archivos XML en caso de que sean necesarios para algún otro propósito.

+0

Gracias! Lo tengo. :) Tal vez deba eliminar algunos de mis comentarios en XML antes de exportar mi aplicación por razones de seguridad. – Arci

+2

Definitivamente recomendaría que elimine los comentarios de XML si le preocupan las implicaciones de seguridad. Si tiene muchos comentarios, también hará que la aplicación se ejecute un poco más lento porque tiene que omitir todos los comentarios cuando lee el archivo XML. Vale la pena recordar que los archivos XML están diseñados deliberadamente para ser legibles por el ser humano :-) – wattostudios

+0

¡Gracias! Voy a eliminar mis comentarios ya. – Arci

5

Los comentarios no están presentes en el código de bytes/versión .class de los file..comments son ignorados por el compilador en el momento de la compilación ..

Un compilador funciona de una manera que convierte todas las Altas Código de idioma de nivel a máquina Código comprensible ... todo a la vez ... no línea por línea como un intérprete ... en el caso de Android ... el compilador convierte los archivos fuente .java en sus archivos de código de bytes/.class ... y luego eso a archivos .dex (Dalvik Executables) .. Todas las aplicaciones en Android se ejecutan en la parte superior de una máquina virtual llamada Dalvik Virtual Machine que necesita archivos .dex ..

Intenta abrir un archivo apk como un zip .. usin g cualquier archivador ... vería el archivo classes.dex allí ...

Y en lo que respecta a los archivos xml ... la aplicación los utiliza solo cuando se visualiza algo en la pantalla (es decir, la actividad es renderizado) .. por lo que en el momento de la actividad que se muestra ... su archivo xml correspondiente se utiliza para construir la interfaz de usuario .. este proceso se llama inflar!

EDITAR: [Pero 1 punto que recuerdo ahora con respecto a esto es que ... las aplicaciones del sistema que están presentes en un teléfono Android ... como todas las aplicaciones provistas por Google (Gmail, mapas, etc.) ... Contactos, Teléfono. apk, etc., todos son apks del sistema ... presentes en/system/app/directory ... pueden contener o no los archivos .dex en ellos ...

si contienen el .dex dentro de los archivos apk (al igual que cualquier aplicación normal que desarrollemos) ... entonces la ROM se llama ROM desionizada (el firmware del sistema operativo Android) ... pero esto a su vez da como resultado un arranque más lento cuando la ROM se instala por primera vez debido a la copia de todos los archivos .dex de los archivos .apk del sistema a un caché dalvik ... ya que todos los archivos .dex de los apk del sistema son necesarios al inicio/inicio del sistema ...

Pero si se odexed la ROM .. todos los archivos .dex del sistema de .apk no están presentes en el interior del apk sino como un archivo separado en/system/app/directorio .. con una extensión .odex

Para todas las aplicaciones que usted y yo desarrollemos (aplicaciones que no sean del sistema) ... solo aplicaciones de play store ... que contienen el .dex dentro de la .apk]

EDIT: sé que no está relacionado con el funcionamiento o la pregunta ... ¡pero solo quería mencionar la diferencia de ubicación de los archivos .dex para las aplicaciones sys y no sys! :)

Espero que haya sido de ayuda! :)

+0

Gracias, RiASH! ¿Qué hay de los comentarios sobre el XML? ¿También se eliminan en la compilación? – Arci

+1

¡Los comentarios en archivos xml generalmente se guardan! – ritesht93

Cuestiones relacionadas