¿Dónde está main () en Android?

Soy nuevo en Android, y estaba estudiando el marco y me obligó a hacer esta pregunta. Ya que estamos extendiendo la actividad en Android, tiene que haber main en algún lugar de la Activity o hay una clase oculta que la Activity implementa que contiene main .

Miré por todas partes pero no pude encontrarlo. Le agradecería que alguien pudiera dar una idea clara de ello.

Android utiliza el lenguaje java, pero se ejecuta utilizando un modelo de tiempo de ejecución modificado. Como otros han dicho, hay un manifiesto incluido en cada paquete. El punto de inicio se especifica en este manifiesto. Vaya al sitio de Android y haga los tutoriales básicos. Esto lo pondrá en marcha con una comprensión del proceso de creación / implementación / ejecución y el ciclo de vida básico de la aplicación.

En los programas Java principales necesitamos un método main() , porque mientras ejecutamos el código de bytes, JVM buscará el método main() en la clase y comenzará a ejecutar allí.

En el caso de Android, la máquina virtual Dalvik está diseñada para encontrar una clase que es una subclase de Activity y que se establece como un LANZAMIENTO para iniciar la ejecución de la aplicación desde su método onCreate() , por lo que no es necesario un main() .

Para más información vea el ciclo de vida de Activity .

Lea esta entrada de blog para comprender cómo se inicia una aplicación de Android:

Durante el arranque del sistema Android, el kernel de Linux primero llama al proceso "init". Init lee los archivos "/init.rc" e "init.device.rc". "Init.device.rc" es específico del dispositivo, en el dispositivo virtual este archivo se llama "init.goldfish.rc".

Init.rc inicia el proceso "Zygote" a través del programa "/ system / bin / app_process". Zygote carga las clases Java principales y realiza el procesamiento inicial de las mismas. Estas clases pueden ser reutilizadas por la aplicación de Android y por lo tanto este paso los hace más rápidos para comenzar. Una vez realizado el trabajo inicial de Zygote, el proceso escucha un socket y espera solicitudes.

Si busca en la clase ZyogoteInit , encontrará el método principal.

Como otros han mencionado, este método main() está involucrado en la configuración del entorno de la aplicación para Android. Por lo que se refiere a un desarrollador, el punto de partida es el método onCreate() de la actividad del Lanzador.

 onCreate() Method....See lifecycle of android class (Activity)..... 

http://developer.android.com/reference/android/app/Activity.html

En Android, el sistema operativo utiliza la máquina virtual Dalvik. El punto de entrada principal a la ejecución de la aplicación está encapsulado en el marco. Es posible que desee echar un vistazo a " ¿Qué es Android? "

De hecho, cada actividad en Android se puede pensar que es una sola aplicación por sí solo con un ciclo de vida propio.

Dígale cuál ejecutar en inicio en el archivo de manifiesto. No hay una función main() porque no tiene que ser. main() puede ser una convención utilizada para aplicaciones java "regulares", pero no es para cosas como los applets de navegador. El sistema crea el objeto de actividad y llama a métodos dentro de él, que pueden o no pueden llamarse main. En este caso, no lo es.

onCreate es diferente de un método main() , y de un constructor, en el que se puede llamar dos veces en una sola actividad, como si el proceso se cancela y el usuario vuelve a la actividad. Vea esto

Muchas cosas que podrías considerar como una "aplicación" Java no tienen su propio método main() . Por ejemplo, IIRC, servlets, WARs y similares no tienen métodos main() – el método main() , si lo hay, está en el contenedor.

En realidad, el método main() es la clase de framework Android android.app.ActivityThread . Este método crea el Thread principal (UI) para un proceso de sistema operativo, establece el Looper en él y inicia el bucle de sucesos.

El framework de Android es responsable de crear y destruir procesos de SO, lanzar aplicaciones, iniciar actividades, servicios y otros componentes. ActivityManager es parte del framework de Android y es responsable de coordinar y administrar diferentes componentes.

La arquitectura de Android es un poco diferente de lo que se puede utilizar para aplicaciones independientes de Java. La mayor diferencia es que todos sus componentes ( Activity , Service , BroadcastReceiver , etc.) no funcionan necesariamente en el mismo proceso de SO o en la misma máquina virtual (VM). Es posible tener componentes de una sola aplicación que se ejecuta en diferentes procesos de SO y también es posible tener componentes de diferentes aplicaciones que se ejecutan en el mismo proceso de SO. En Java tradicional, el método main() es el método que se llama por la máquina virtual después de que se haya creado el proceso de SO y la máquina virtual haya completado su inicialización.

  • ¿Cómo llamar a un método definido en otra actividad / clase onClick () de un elemento del botón?
  • Android Java; ¿Cómo puedo analizar un archivo JSON local de carpeta de activos en un ListView
  • System.lineSeparator () no existe en android
  • cómo obtener el valor mínimo, máximo de una matriz?
  • IntelliJ IDEA Render error
  • ActionBarSherlock, ViewPager, TabsAdapter Fragmentos de tabulación anidados
  • UDP Multicasting desde el móvil a la PC
  • Android- ¿Cómo enviar datos de la actividad al servicio?
  • El archivo no se sube al servidor
  • cómo obtener textView texto en onclicklistener dentro de listView adaptador
  • Excepción de tiempo de ejecución extra cuando se ejecuta una aplicación de Android en algunos dispositivos
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.