3

I'm interested in learning how to develop for the Android OS so that I can begin contributing bug fixes and patches. I'm not interested in developing apps for Android. I've been a software developer for several years, although I don't have any Linux or OS development experience. Where is a good place for someone like me to start?

I've gone to developer.android.com, which seems to be only for developing apps on android. source.android.com seems like the place to get the source and learn how to set up my build environment, but it doesn't really seem to have much information on how the guts of the system work or provide much of a introduction to the source code itself. I imagine that I can probably make use of documents out there related to developing for other distributions, but are there any resources specifically for developing on Android? Are there any major differences between developing for Android vs other major distributions that I should take into account when doing research?

How can I get any other technical information I might need in regards to my specific hardware? When browsing through forums, there are some who seem to know the specific radio or GPS hardware models that exist on different phones, and even have some knowledge on how one model may function differently from another. I've looked briefly, but it doesn't seem like I can just google "Samsung Fascinate Hardware" and get a list of components and their documentation. How do people who do advanced device programming get this information?

Thanks,

Mike

mclark1129
  • 7,532
  • 5
  • 48
  • 84
  • 1
    Regarding learning more about the guts of the OS, you could Google info about how to create custom roms, and possibly create one on your own. xda.com often has good information regarding custom roms and kernels, though just including the letters 'xda' in your Google search is more effective than searching on the xda site. – Reed Oct 24 '11 at 15:03
  • @Bill, how should I be phrasing this question? Is it not constructive because I'm referencing Android specifically? Would it be better if the question was "Where can I go to learn about OS development?" I see similar questions like this all the time that are perfectly valid, such as http://stackoverflow.com/questions/4323809/design-patterns-with-c-sharp. People want to learn a new technology, language, or platform, and they ask where they can go for this information. I'm not trying to be argumentative, I would just like to better understand the scope of what is acceptable and what is not. – mclark1129 Oct 24 '11 at 19:31
  • Actually, those old questions asking for recommendations should be closed as not constructive as well. I understand that this is very unlikely to start an argument, but it is asking for opinions and extended discussion. – Bill the Lizard Oct 24 '11 at 20:24

1 Answers1

3

The core problem is that Android is Open Source more than it is Open for Contributions (and the source hasn't been open for a long time).

Not many people are patching android core, not enough for it to be worth the time to provide loads of documentation.

But there are a few things out there.

First place is probably the android-contrib google group. As well as some of the other community groups.

You should probably also check out the Oreilly book Embedded Android

Its the only book of this type that I've seen.

If you're interested in the architecture, then Oreily's other book Programming Android is pretty good. But its aimed at someone developing apps for the OS.

My suggestion is patiently wait for Android 4.0's source code to be released, and see whether it is more open in regards to contributions.

Or go get a job at Google, Amazon, or Samsung.

Matthew Rudy
  • 16,724
  • 3
  • 46
  • 44
  • Thanks, I think Embedded Android may be a great place for me to start as I'm probably pretty behind the curve on programming at such a low level. – mclark1129 Oct 24 '11 at 16:55