Website | Docs | Jetpack | Testing | Security | Performance
App fundamentals: Four different types of app components (activities, services, broadcast receivers, content providers), three of which activated by intents. Application components declared in an application manifest. Apps also contain resources.
App resources: Overview discusses the different kinds of resources, the use of project file structure (res/
directory and subdirectories) to group them, and the convention-based approach to providing alternative resources depending on the device hardware. Accessing resources via code or referencing them from the various XML files. If access to the original files is necessary, store them as "assets" (in assets/
) instead of as "resources". Describes how Android finds the best resource match. Handle configuration changes describes how Android handles device/hardware configuration changes (such as screen orientation) by either retaining an object (in which state is stored) or by handling the configuration change manually. Localize your app is the first guide in the Localization section (Test your app with pseudolocales, Unicode and internationalization support, and Language and local resolution are the rest); in essence, it's more about resource management again. Complex XML resources describes a means by which multiple related XML resources can be collected into one file via AAPT. Resource types lists out the different resource types available in Android: Animation, Color state list for changes based on View state, Drawable resources like graphics, Layout resources for UI, Menus, Strings, Styles, Fonts, and more (booleans, colors, dimensions, IDs, integers, int arrays, and typed arrays).
App manifest, which includes links as a reference to each of the XML elements in the manifest file format.
App architecture: Kicks off the Android app architecture section:
UI layer libraries:
Data layer libraries:
App actions: Voice-enabled actions on an Android device.
On-device search enables the device to search documents stored in the search database, even when offline.
Handle mixed connectivity: Store data, queue requests, handle images properly for offline/slow connections.
Build for device range: Lower app memory footprint, build for a range of device capabilities
Provide data controls: Give users control over app's data, reduce app's size, be mindful of consumption
Privacy: Pay attention to permissions; minimize use of location; handle data safely; use resettable identifiers
Accessibility: Make apps more accessible, Principles for improve app accessibility, Testing app accessibility, Making custom views more accessible, Creating custom accessibility service
Simplify: Generic Android Deobfuscator: "Simplify virtually executes an app to understand its behavior and then tries to optimize the code so that it behaves identically but is easier for a human to understand. Each optimization type is simple and generic, so it doesn't matter what the specific type of obfuscation is used."
Last modified 02 October 2024