The technical staff of any mobile development ecosystem are distributed in a pyramid.
That is to say, most people are developers, and only a few of them are real programmers.
The same is true for Android systems. Among the large groups of Android Developers, I think the following four levels are possible:
1) Application Layer Development
The Application Layer program is developed based on the android framework and class library in Java.
This type of development generally depends on short-term memory, that is, the class library prince.
This type of personnel, as long as they are familiar with the UI layout design, familiar with common widgets, and write several message callback functions.
Drum up the following network types, simple database operations, call the player, and send a short message.
Use a class like gallery on the surface.
Such developers generally feel good about themselves and are arrogant. They think that android development is not the same,
2) Middle Layer Development
C/C ++ language, developed based on ndk JNI.
We need to be familiar with the overall framework mechanism of Android and codebase of Android.
Generally, you can download the Android system source code and compile the image by yourself.
Familiar with the custom building system of the Android system.
Allows you to modify and expand Android frameworks and services.
Port and customize nativelibray and frameworks, such as opencore, OpenGL, and WebKit.
Customizes the UI of a system, that is, to skin the system.
This is our so-called self-developed mobile phone operating system in China.
This type of developers are generally somewhat senior and generally have a strong sense of technical hunger. They feel that they know little about it and constantly improve themselves.
3) operating system-level development and system Customization
Familiar with Linux driver development and Linux kernel structure
Port specific hardware
In fact, the technical content of this type of development is not much different from that of the middle layer development. In a sense, it is not as good as that of the middle layer development.
In fact, more important requirements for driver development require a certain amount of hardware knowledge.
Developers of these types of mobile phone manufacturers are generally inferior to middle-layer developers due to narrow contact areas.
4) Identify Android deficiencies and help Google continuously improve android
Such people are real Android programmers who may choose to read the source code of the android framework and carefully read the source code of Dalvik.
Its own knowledge structure is also relatively mature, with a wide range of knowledge.
There will be debugging and tracking skills that many of the above three do not have.