I can assume myself as fairly good Java developer. But Android Development learning curve got a bit ahead of me. This might be because of the not-so-familiar platform design by bright Google Developers or me getting old.

I thought that writing things that I don't understand down would help me identify them more easily. Hopefully I will comprehend them and post an update about it. So here they are:
- What exactly is a "Context"? How is it used by Android internal API? Is it used find the instance of the class that is referred?
- Application lifecycle. When will my Activity's constructor be called? When will there be more than one instance of my Activity? When exactly will onCreate(), onStop(), onResume(), onRestart() be called?
- Reference holding. Can I hold references to Service or Activity class instances? Or should I just communicate with them via Intents?
- Why is "Service" class seems to me as some kind of a monster? Wouldn't it be better to exclusively separate background service classes, remote service classes and inline service classes?
I know that most of these designs are related to the limited system and UI estate resources. Anyhow, reference documents or books do not clearly state the design approaches taken by Google and compare them to the related desktop programming concepts. I hope that I will.