Start with Android app development, wait until you are familiar with the app mastery, start reading some of the Android application framework layer source code, and then gradually down to understand the Android JNI, Libraries, Dalvik virtual machine, HAL layer, hardware driver, Linux kernel, ARM technology architecture, and so on, while Intel has recently announced that it wants Intel chips to support Android, the advantages of arm should not be shaken for a foreseeable period of time on mobile devices.
You can start by building your own Android system on the board to understand the overall architecture and start-up process of the Android system, so you have a preliminary understanding of Android, and then you can learn about Android's key components, UI components, there is a perceptual knowledge of Android app development first. After being able to build up the user interface, we will gradually enrich the functions of the application, for example: adding event processing to enable it to interact with the user, plus the data storage function, plus the networking function. After learning the application, on this basis to learn game programming, first understand the basic idea of game design, and then start from the small game, little module start, to the end can complete a similar to the current popular "fishing man" such a game. After mastering the content of these application levels, you can learn how to use JNI to invoke the interface of the C + + in Android application, then learn Linux kernel and driver development such as character device driver, flash device driver, network device driver and so on, on this basis, Learn about Android driver development, HAL (Hardware abstraction Layer) development, ARM architecture, and instructions, so the entire system of Android development runs through. Of course, because the time is limited, and the bottom part of the content is more complex, so in the real to do this part of the work, we only need to understand its basic principles, good knowledge of the reserves.
Android's System learning