Soy un novato, ¿cuál es la mejor manera de ser un desarrollador de Android? ¿Estoy menos interesado en el desarrollo de aplicaciones y más en el código fuente y el núcleo en sí?

Suponiendo que tiene experiencia en desarrollo, descargue el proyecto de código abierto de Android y comience a leer el código. Si eres totalmente nuevo en Java, también puedes leer los tutoriales de Oracle Java. Una mejor comprensión de sus antecedentes y experiencia dará una mejor respuesta.

=== Editar ===

Divulgación: en realidad no soy el más calificado para responder a esta pregunta, ya que soy un desarrollador de aplicaciones de Android, a diferencia de un desarrollador de sistemas operativos Android, pero tomaré una oportunidad.

Aprender Java, aunque es importante, no debería ser su enfoque principal, si está interesado en programar el sistema operativo Android. Debes concentrarte en aprender el lenguaje C y C ++, aunque aprender cómo se hacen las cosas en varios lenguajes puede enriquecer tu pensamiento crítico, que es muy importante para programar en cualquier lenguaje.

El lenguaje más utilizado para programar aplicaciones de Android es Java versión 7 y 8. Asegúrese de tener ambas versiones instaladas en su entorno como mínimo. Android Studio es el IDE recomendado para programar aplicaciones Java. Solo ciertas características de Java 8 que son compatibles con la plataforma Android.

Comprender la arquitectura de la plataforma Android lo ayudará a comprender cómo todos los paquetes se unen para formar el sistema operativo Android.

El Android Native Development Kit (NDK) que puede programar en C o C ++, le permite programar aplicaciones de Android en C y / o C ++. Aprender C es el precursor generalmente aceptado para aprender cualquier otro lenguaje de programación, ya que los elementos de C son comunes a cualquier otro lenguaje que se encuentre.

Al programar aplicaciones de Android usando el NDK, comenzará a aprender a codificar en C & C ++, además, se conectará con el SDK de Android, que también le dará una mejor comprensión de la arquitectura de Android.

Además, al programar una aplicación de Android utilizando el NDK, apreciará lo que espera del SDK (que es lo que aspira a desarrollar), cómo se pueden hacer las cosas de manera diferente o por qué un desarrollador quizás ha elegido un particular forma de proporcionar la interfaz que está utilizando en su código fuente. Todo esto te ayudará a convertirte en un mejor desarrollador de SDK en el futuro.

Entender Linux como un sistema operativo lo ayudará a comprender la arquitectura de seguridad de Android, ya que Android 4.3 SELinux se usa para definir entornos limitados de aplicaciones, mientras que antes de 4.3 se usaba un UID de Linux único para garantizar la seguridad del sistema.

Si es el sistema operativo Android al que aspira el programa, aprender a codificar en Linux también proporcionará una base posiblemente necesaria para la codificación en Android, las dos plataformas comparten lenguajes de desarrollo comunes, C y C ++, sin mencionar muchos de los mismos paquetes de software.

Si desea convertirse en un desarrollador de “kernel” de Android, dependiendo de su aptitud para la programación, el pensamiento crítico, las habilidades de resolución de problemas y las habilidades de aprendizaje, necesitará mucha paciencia y perseverancia.

Siento que no debe depositarse sobre usted las expectativas injustas de los resultados de aprendizaje al aprender el material requerido. El tiempo disponible que tiene para asignar a esta tarea influirá si puede alcanzar sus objetivos de convertirse en un desarrollador de Android SDK dentro de 1 año o más de 3 años.

Además, su estado civil, edad y actividades extracurriculares combinadas con sus prioridades en la vida determinarán el tiempo disponible que debe asignar al aprendizaje requerido para alcanzar sus metas.

Teniendo en cuenta su objetivo de convertirse en un desarrollador de kernel de Android, mi consejo es que primero aprenda el desarrollo de aplicaciones nativas utilizando Java. Una vez que se sienta cómodo con eso, pase al desarrollo de aplicaciones nativas utilizando el NDK. Una vez que esté familiarizado con el desarrollo de NDK, solo intentaré pasar al desarrollo del kernel. Convertirse en un desarrollador de kernel sin apreciar primero cómo se usa el kernel sería una ruta que no recomendaría.

Además, durante su viaje de aprendizaje, puede encontrar un área alternativa que le interese dado que tendrá una mejor comprensión del ecosistema.

¡Te deseo suerte en tu viaje y te animo a que saltes!

Descargue el código fuente o vaya a este sitio

Fragmento – android.app.Fragment (.java) – Fuente de clase GrepCode

Este sitio aloja el código fuente de Android para todas las versiones, como las versiones 15 a 22

Sin embargo, deberá comprender algunos principios básicos de ingeniería de software, como

Programación orientada a objetos, encapsulación, polimorfismo, patrones de diseño como Factory, Builder, MVC, Adapter, etc.

Comprenda qué es una “Clase” u “objeto”, así como los métodos (o funciones).

Cómo seguir las declaraciones “if”, para bucles, try / catch, etc.

Todo el código está escrito en Java, así que comienza a aprender eso.

Si intentas aprender solo una cosa nueva cada día, eventualmente te convertirás en un desarrollador de Android, una vez estuve en tu posición (un novato), pero después de aprender continuamente ahora trabajo como desarrollador de Android y ahora empiezo a aprender Swift (para Apple) .

Comienza a aprender Java a través de fuentes en línea gratuitas. La mejor que he visto hasta ahora es Sololearn.

More Interesting

Quiero crear una aplicación de juegos para iOS y Android con muchos minijuegos para niños pequeños. ¿Qué sistema / marco de desarrollo es mejor: PhoneGap, Cocos2Dx o CoronaSDK? ¿Por qué?

Quiero desarrollar una aplicación de Android que ofrezca contenido a diario. ¿Debo usar firebase o una API REST?

Estoy buscando una aplicación de seguimiento de ubicación para mis empleados. ¿Cuáles son algunas sugerencias?

Quiero aprender sobre el desarrollo de juegos de Android. ¿Qué cosas básicas debo saber para comenzar a aprender?

He aprendido el núcleo de Java. Han pasado tres meses y ni siquiera estoy cerca de hacer una aplicación. ¿Cómo aprendo a desarrollar aplicaciones para Android?

Quiero externalizar un proyecto de aplicación de Android a un profesional independiente. ¿Cuáles son las mejores herramientas (gratuitas) que puedo usar para asignar tareas y rastrear el trabajo?

Mi aplicación de Android en Google Play solo recibe entre 500 y 800 instalaciones diarias por dispositivo cada día. ¿Debería molestarme en monetizarlo a través de anuncios?

Me está costando mucho tratar de crear mi primera aplicación de Android. ¿Quién puede ayudarme?

Me gustaría desarrollar aplicaciones de Android. ¿Qué curso debo tomar para aprender el desarrollo de aplicaciones de Android?

Google Play rechaza mi aplicación de Android porque consiste en un póster de película. Pero he usado API gratis. ¿Alguien puede ayudarme a publicar?

Tengo un mes para convertirme en el mejor desarrollador de Android. ¿Qué tengo que hacer?

¿Cuál es la forma más fácil de comenzar a desarrollar aplicaciones de Android?

Quiero crear aplicaciones de Android como Foursquare, basadas en ubicación y tareas, pero soy un principiante. ¿Qué debo aprender? ¿Qué necesito?

Comencé una empresa de outsourcing en Ucrania que se especializa en el desarrollo de aplicaciones web / móviles y consultoría UI / UX. ¿Dónde puedo encontrar clientes de países occidentales?

Acabo de lanzar mi juego de Android a Play Store. ¿Debo usar la campaña de AdMob?