But if you want to learn more about Android, look at some of my simple summaries.
- Knowledge
- Java
- Java is one of the main languages of AOSP. Have no say, must master skillfully.
- Proficiency in Android app development
- Linux
- Android Linux-based and the recommended compilation environment for AOSP is Ubuntu 12.04. Therefore, it is necessary to use and understand the Linux system skillfully. If you want to understand the underlying code, it is necessary to understand the basic Linux environment of the program development. If you go deeper into the drive layer, then the knowledge of kernel is also necessary.
- Make
- AOSP is compiled using the make system. Knowing the basics of makefile writing will give you a clearer idea of how AOSP's huge project is built.
- Git
- Aosp use Git+repo for source control. This should be a must-have skill for programmers.
- C++
- Some of the performance-sensitive modules and third-party libraries of the Android system are implemented in C + +, such as the input system, the Chromium project (WebView's bottom-up implementation).
- Hardware
- A smooth international network
- AOSP code download requires you to have a fluent international network. If you lose patience at the step of downloading the code, you certainly don't have the patience to look at the messy AOSP code. Plus, a good programmer would need a smooth Google.
- A PC that runs Ubuntu 12.04.
- If you just read the source code and do not make too many changes, in fact, do not need too high configuration.
- A Nexus Device
- The AOSP project only supports Nexus series devices by default. No, it doesn't matter, you can still read the code. But if you want to go farther on Daniel's path, change the code, then brush the machine and check it out.
- High quality USB Cable
- The line is broken when the machine is being brushed.
- Software
- Ubuntu 12.04
- Official recommendation, no choice.
- Oracle Java 1.6
- Eclipse
- It is estimated that a lot of people will vomit the trough, why use this antique. In fact, the reason is very simple, suitable. When I first started doing aosp, I tried Eclipse, IntelliJ idea, Vim+ctags, Sublime text+ctags in order to find the most efficient tool. The end result is eclipse. The main advantages are:
- There are grammatical analyses (fast and accurate classes, method jumps).
- Support for C + + (IntelliJ C + + support is too slow).
- Embedded DDMS, View hierarchy and other debugging tools.
- In order to improve efficiency, it is very worthwhile to spend 5 minutes on the back of common shortcut keys.
- Adjust your classpath and don't import useless code. Because the AOSP project code is too much. When you don't need to see C + + code, don't add C + + support for your project, and the indexing process will crash you.
- Intellij idea
- Develop App Essentials. When you want to debug a function of the system, often need to quickly write a debugging app, this time the old eclipse is not good use. Itellij idea's XML auto-completion is very force-full.
- The shoulders of Giants
- AOSP Project official: https://source.android.com/source/index.html
- This must be read first . Project Introduction, code download, environment building, brush machine method, eclipse configuration are here. This is the foundation of everything.
- Android Official training: https://developer.android.com/training/index.html
- This is actually for app developers to see. But there are also a lot of introduction to the system mechanism, it is worth reading.
- Lao Luo's Android Tour:/ http/blog.csdn.net/luoshengyang
- This old Luo is not old Luo. Luo Shenyang Teacher's blog is very nutritious, basic can guide you to start reading the AOSP source of the tutorial . You can follow the blog's chronological order to see what you need. But this series of blogs has some questions:
- The early blogs were based on older versions of Android;
- A lot of code flow tracking. When reading an article, you must be aware of what you are looking at in the entire system.
- Innost's Column:/ http/blog.csdn.net/innost
- Dengfanping teacher is also for Android Daniel, blog is also very nutritious. But it's not as systematic as the Luo Shenyang teacher. More is the deep discussion of some technical points.
- Android issues:/ http/code.google.com/p/android/issues/list
- Android official issue list. I found some strange bugs in the development process, and I finally found that there are basically records here. Of course you can mention some new ones, and it's another thing to have someone change.
- Google: https://www. Google.com
- Be sure to use this tool smoothly. A lot of relevant knowledge is no human system summary, you need to fix it yourself.
- Other
- Code Organization
- AOSP's compilation unit is not the same as Git project one by one, but corresponds to android.mk file one by one. The use of the MMM command to compile the module will save you a lot of time.
- Binder
- This is the most basic process communication between Android. is used extensively between application and system services. You need to know not only how to use Aidl, but also how to write the Binder interface. This is very important for you to understand how Android's application and system services interact. There's no need to worry about how binders are implemented.
- HAL
- Don't spend too much time on this floor unless you are particularly interested in hardware or want to work for a solution company.
- CyanogenMod
- This is a third-party ROM based on AOSP. From the wiki of this project you can learn a lot of things that AOSP officials haven't told you. For example, how to support devices other than Nexus.
- DIA
- This is a Linux under the UML tool, can help you comb the code you have seen.
- Wd.
- http://www. xda-developers.com/
- Here are the latest news and the most interesting forums.
- Thought of adding.
Copyright belongs to the author. Commercial reprint please contact the author for authorization, non-commercial reprint please specify the source. Wang Yurong Link: http://www.zhihu.com/question/19759722/answer/29213925 Source: Know
How to read the Android framework source code