This next post took a lot of time to compile together and therefore the delay. We build up upon our earlier post where we have successfully pulled all the relevant files from the Google Android repository into a working directory on our computer. Now looking at the files and folders do not make much of a sense at first, neither banging you head aimlessly will.
The Android build environment we just pulled off the the repository contains the following
- Framework (Core libraries)
- Kernels for some supporting devices (Nexus & HTC)
- Generic apps (Calendar, Maps, Gtalk)
- Native apps (sqlite)
- Developer tools (adb, logcat, monkeyrunner)
These are the most important that we might deal with in the future. There are a lot of other things included like libraries for the Dalvik VM, the complete virtual machine compiler, libraries to handle hardware and much more. To go through all that code can give a headache! Watch out.
All these files are written up either in Java or C++. Depending on what changes you want to make and which components you need to analyze, the file and its corresponding tree can be pulled up in the workspace. Android is modular and a close knit operating system from what I have seen so far. You cannot change a piece of code without affecting a multitude of other dependencies. Android is coded so that it pulls GUIs from one end, part functionality from a set of APIs and part from others. Settings are dispersed, and changing one value for example cannot give you the motherload of access. I’ll try to put up some examples and work through some parts of the code for a better understanding.