Job Recruitment Website - Job information - About learning the bottom layer of Android and knowing how to advance
About learning the bottom layer of Android and knowing how to advance
I have been working on Android sdk development for 3 years, but I felt that I was too exhausted to go any further, so I spent more than a year and probably got a feel for it. According to the experience of predecessors, it takes two years to fully get started with the bottom layer of Android.
Let me talk about my getting started process first:
Step 0, download the source code, I downloaded 4.2, the framework layer source code is 10G, the kernel is more than 2G, ctags is built for the framework layer The tag files are 600M each, which shocked me at the time. I used vim ctags cscope to read them, which was pretty good and the structure was quite clear.
In the first step, I found a good book "Android Design and Implementation Volume 1" which talks about the startup, initialization, service framework initialization, Binder, message loop, PackageManagerService of the Android framework layer, ActivityManagerService. According to the author, a second volume on UI subsystems will be released later, so stay tuned. In fact, after reading dozens of pages of this book, I realized that I needed the knowledge of the second step, otherwise I would not be able to read it, so I skipped to the second step.
The second step is to learn Linux system programming. When reading "The Design and Implementation of Android", I found that the Native part of the framework layer is all Linux programming. In order to master this part of knowledge, I spent 4 months studying the "Linux System Programming Manual" (TLPI), a book with more than 1,000 pages. I used to work on the WIndows file system, so I am relatively familiar with the C language. TLPI The exercises are very interesting and the amount is relatively large. If you stick to it, you will gain a lot.
The third step was to spend 4 months learning some knowledge about the Linux kernel. I watched LKD and more than half of PLKA. The more I learn, the less I know, and I feel like I don’t understand more and more. But this is normal. You just have to grind it slowly. I guess I will have to keep grinding it in the future.
The fourth step is to look back at the Android source code. This time I read "Android Design and Implementation Volume 1" in one go, and finally got a grasp of the framework layer. At the same time, it really made me dizzy several times. I was not so dizzy when I looked at the Linux kernel source code before. It was a bit brain-consuming to constantly jump between the Java layer and the Native layer. Among them, I felt that the foundation of Java was not very solid, so I went back and made up for the eighth edition of "Core Java" for a month. But this book did not cover the UI subsystem, so I read "Android Kernel Analysis"
The fifth step is "Android Kernel Analysis" (this book actually talks about the framework layer, and the author is also a researcher) Embedded, so when he wrote the framework layer, his writing was not very good and very wordy, but there were still many interesting points. When he later wrote ROM and played with the development board, he probably talked about his profession, and all of a sudden After walking around, I can see that it is quite good. The knowledge in this book is a bit old. After all, it is about 2.3. Many codes are outdated, but many of the author’s ideas are of great reference value.) This book talks about UI subsystems and key/touch message processing. The system is still very important, especially the View drawing in Chapter 13, which is very rewarding when combined with source code research. Later, he talked about compilation framework and ROM-related things, which are very valuable information.
The sixth step, in order to supplement the knowledge of other subsystems such as power management modules, I read the "In-depth Understanding of Android" series. I personally think this series looks a bit uncomfortable, but as a supplementary confirmation Still quite valuable.
The seventh step, "Android System Source Code Scenario Analysis", Luo Shengyang's source code analysis masterpiece, is more detailed than "Android Design and Implementation", but the disadvantage is that it involves fewer modules. The source code selected is also a little older than "Design and Implementation of Android". After reading the book, you need to study the author's blog. There is a lot of stuff and it will surely satisfy you.
The eighth step is to buy a development board and play it yourself. I haven't reached this step yet because I feel like I'm still not ready for the knowledge. It may take a few more months, and then we will be ready to launch the 6410 or Raspberry Pi.
Finally, since I worked in the Windows field 11 years ago, I don’t know much about Linux. I have to read these books. If you are someone who has been working on Linux, many steps can be saved. dropped. Going directly to the source code is the right way.
I am engaged in mobile GIS development. I learned the framework layer out of interest. However, the recruitment platform for Android framework layer developers is quite competitive. There are many customized ROMs and smart TVs. Talents are hard to find. After all, there is a certain threshold. Nowadays, various iOS trainings have caused an influx of people who are rushing to make money to develop. However, the shortcomings of iOS can only be used for SDK development are exposed. There are a lot of novices, veterans, and rookies. I don’t think it’s a good idea to focus entirely on SDK development. On the other hand, on the Android side, although the entry-level novices have not made money from iOS, the sustainability is very good, and they can continue from sdk-"framework" driver"kernel. There are many people who find themselves gradually becoming Linux developers/embedded developers after working hard. Newcomers, veterans, rookies and experts all occupy their own positions, and the hierarchy is very good.
- Related articles
- The calculation formula of recruitment unit evaluation in recruitment cost evaluation is
- How about Wujiang Ji Shen packaging co., ltd?
- What does it mean to write Du Dong on the train and then go from Guiyang to Wenzhou?
- What are the outstanding ladies in the ancient history of China?
- Where is the best place for internship in Fujian Medical University? Which one is better, Quanzhou First Hospital or Zhangzhou Hospital?
- Which is better, Suizhou Xingzhi High School or Baiyun High School?
- Xingyang 2022 Recruitment Examination Requirements
- Guizhou technical secondary school is better.
- What does Baoji Super Panda do?
- Hong Kong Central Hotel Raiders The newest hotel in Hong Kong Central