There’re lots of websites, books, videos and articles to read and start Android development. But to work on AOSP (Android Open Source Project) you can’t find that much information except Google docs which sometimes makes you confused. So, what should you do?!
The big picture, AOSP’s understanding
Whenever I want to start working on a new subject I spend enough time understanding the big picture. Then, it’s easier to look around or walk through. Because you know where/how to start and find your way through it.
In terms of AOSP, the kick-off can be AOSP architecture. Try to have an understanding of that and know how they’re connected and communicate together. You don’t need to gain deep knowledge in this step, however, you will have the picture. It’s up to you that how much time you like to spend on this step. The big picture will play its own role in the future, just keep it and go on!
Roll up your sleeves, Build AOSP
Let’s take an action. Always, It’s helpful to have practical experience, because, it will break the ice and you can get rid of fears and thoughts. This step is building AOSP and running it with the emulator. You need to set up the environment, clone the source code and build it. Then, it’s ready to run through the emulator. So, you have all you need to start developing. It’s your laboratory!
Where do you start?
Now you should decide what you’re interested in more: application layer, framework development, HAL layer, device driver, kernel development or even Automotive features(To work on the device driver and kernel you need to set up the environment for the kernel and build it.)
There’re some other concepts that you need to learn, even if you are going to start with the application layer. They’re IPC, AIDL, etc. Don’t worry, you don’t need all of them at once. Based on what you’ve focused on you can cover new topics.
Books to read
As I mentioned before, there’s no comprehensive resource covering everything. Thus, we need to gain knowledge from different sources. I’ve introduced some books that can help to understand part of AOSP.
I’ll try to update this page later with some more information!