This is just a write up of some of the things I figured out during my time spent on figuring out Android. P.S I may be wrong. Things change all the time in android Most of this is based on M This is mostly about the Java part of the framework Contents: The Startups: Init The Startups: App_Process The Startups: AndroidRuntime The Startups: ZygoteInit The Startups: SystemServer ActivityManager: Basics ActivityManager: How an Activity Starts ActivityManager:Configuration Management
Configuration describes all device configuration information that can impact the resources the application retrieves. This includes both user-specified configuration options (locale and scaling) as well as device configurations (such as input modes, screen size and screen orientation). Configuration is defined in: frameworks/base/core/java/android/content/res/Configuration.java You can get the value for an activity by - Configuration config = getResources().getConfiguration(); These include values like: MCC MNC Locale Orientation colormode densitydpi fontscale keyboard hardkeyboardHidden keyboard keyboardHidden navigation navigatioHidden screenHeightDp screenLayout screenwidthDp touchscreen uimode android:configChanges: flag that lists configuration changes that the activity will handle itself. When a configuration change occurs at runtime, the activity is shut down and restarted by default, but declaring a configuration with this attribute...