¿Cómo funciona el compilador de Android? ¿Elimina los comentarios en código Java y archivos Android XML en compilación?¿Qué sucede con los comentarios después de compilar los archivos java en Android?
Respuesta
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.
Gracias! Lo tengo. :) Tal vez deba eliminar algunos de mis comentarios en XML antes de exportar mi aplicación por razones de seguridad. – Arci
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
¡Gracias! Voy a eliminar mis comentarios ya. – Arci
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! :)
- 1. ¿Qué sucede con los comentarios en JavaScript miniaturizado?
- 2. Mantener comentarios en archivos .js después de compilar desde .coffee
- 3. ¿Qué son los archivos ODEX en Android?
- 4. ¿Qué sucede con el código JavaScript después de compilar la aplicación utilizando Titanium Mobile?
- 5. Qué sucede con los espacios de trabajo existentes después de actualizar a TFS 2010
- 6. ¿Qué sucede con los identificadores en un programa?
- 7. ¿Qué debo poner en los comentarios del encabezado en la parte superior de los archivos fuente?
- 8. ¿Por qué están prohibidos los comentarios anidados?
- 9. ¿Qué sucede con los punteros a la memoria asignada dinámicamente después de una horquilla UNIX?
- 10. ¿Qué sucede para confirmar los registros en una sucursal después de la fusión?
- 11. ¿Qué sucede después de capturar un paquete?
- 12. ¿Qué sucede cuando los proveedores de tipo cambian en F #?
- 13. ¿Qué sucede con la memoria después de free()?
- 14. ¿Cómo controlo los archivos para compilar con git?
- 15. WinMerge: cómo ignorar los comentarios
- 16. ¿Qué sucede con los elementos DOM no utilizados?
- 17. ¿Por qué los archivos compilados de clase Java son más pequeños que los compilados en C?
- 18. ¿Qué aplicación web recomendaría para los comentarios de los usuarios?
- 19. ¿Los comentarios afectan el tiempo de compilación?
- 20. fichero Make: compilar todos los archivos .cpp a .o archivos
- 21. ¿Cómo se escriben los comentarios en archivos macro de doskey?
- 22. ¿Qué sucede con los miembros de la clase cuando se usa malloc en lugar de nuevo?
- 23. ¿Qué sucede en los niveles inferiores después de una llamada al sistema fork?
- 24. ASP.NET: ¿Qué sucede con el código después de Response.Redirect (...)?
- 25. ¿Qué sucede con el atributo view.frame.size después de CGAffineTransform (Rotate)?
- 26. ¿Comentarios HTML dentro de los comentarios?
- 27. terminando los comentarios de haml
- 28. ¿Cómo recoger los comentarios de los clientes?
- 29. ¿Por qué XCode 4 siempre copia todos los archivos de recursos en mi iPhone después de compilar?
- 30. Aprobar automáticamente todos los comentarios en el complemento de comentarios
comentarios son ignorados por el compilador, y no están en el código de bytes resultante o código de máquina –