¿Puede un programador de Java usar Android SDK sin ningún entrenamiento? ¿Cuál es la diferencia entre Android SDK y Java?

Hay pocas cosas … a diferencia de Java, donde el punto de entrada es el método principal … Android tiene pocas funciones como oncreate … onresume, etc. El bytecode de Java no se ejecuta. En cambio, las clases de Java se compilan en un formato de código de bytes patentado y se ejecutan en Dalvik, una máquina virtual especializada (VM) diseñada específicamente para Android. A diferencia de las máquinas virtuales Java, que son máquinas apiladas, la máquina virtual Dalvik es una arquitectura basada en registros.

Dalvik tiene algunas características específicas que lo diferencian de otras máquinas virtuales estándar

La VM fue diseñada para usar menos espacio.
El grupo constante se ha modificado para usar solo índices de 32 bits para simplificar el intérprete.
El código de bytes estándar de Java ejecuta instrucciones de pila de 8 bits. Las variables locales deben copiarse ao desde la pila de operandos mediante instrucciones separadas. En cambio, Dalvik usa su propio conjunto de instrucciones de 16 bits que funciona directamente en variables locales. La variable local es comúnmente elegida por un campo de ‘registro virtual’ de 4 bits.
Debido a que el bytecode cargado por la máquina virtual Dalvik no es Java bytecode, y de la forma específica en que Dalvik carga las clases, no es posible cargar paquetes de bibliotecas como archivos jar, e incluso se debe usar una lógica específica para cargar bibliotecas de Android (específicamente el contenido del archivo dex subyacente debe copiarse en el área de almacenamiento interno privado de la aplicación, antes de poder cargarse).

Sí, pero puede que tenga que usar google una y otra vez, ya que enfrentará muchos problemas