Google官方Android开发资料整理之-App architecture(架构)
本章主要整理Goole官方提供的App architecture相关资源
Guide to app architecture
UI layer
- Guide to app architecture | Android Developers (google.cn)
- UI events | Android Developers (google.cn)
- State holders and UI State | Android Developers (google.cn)
- UI State production | Android Developers (google.cn)
Domain layer
Data layer
- Data layer | Android Developers (google.cn)
- Build an offline-first app | Android Developers (google.cn)
Architecture recommendations
Learning pathway
Modularization
- Guide to Android app modularization | Android Developers (google.cn)
- Common modularization patterns | Android Developers (google.cn)
Architecture components
UI layer libraries
View binding
- View binding | Android Developers (google.cn)
- Migrate from Kotlin synthetics to Jetpack view binding | Android Developers (google.cn)
Data binding library
- Data Binding Library | Android Developers (google.cn)
- App Architecture: UI Layer - Get Started - Android Developers (google.cn)
- Layouts and binding expressions | Android Developers (google.cn)
- Work with observable data objects | Android Developers (google.cn)
- Generated binding classes | Android Developers (google.cn)
- Binding adapters | Android Developers (google.cn)
- Bind layout views to Architecture Components | Android Developers (google.cn)
- Two-way data binding | Android Developers (google.cn)
Lifecycyle-aware components
Lifecycles
- Handling Lifecycles with Lifecycle-Aware Components | Android Developers (google.cn)
- Integrate Lifecycle with Compose | Android Developers (google.cn)
ViewModel
- ViewModel overview | Android Developers (google.cn)
- Create ViewModels with dependencies | Android Developers (google.cn)
- ViewModel Scoping APIs | Android Developers (google.cn)
- Saved State module for ViewModel | Android Developers (google.cn)
- ViewModel APIs cheat sheet | Android Developers (google.cn)
LiveData
Save UI states
Use Kotlin coroutines with lifecycle-aware components
Paging Library
- Paging library overview | Android Developers (google.cn)
- Load and display paged data | Android Developers (google.cn)
- Page from network and database | Android Developers (google.cn)
- Transform data streams | Android Developers (google.cn)
- Manage and present loading states | Android Developers (google.cn)
- Test your Paging implementation | Android Developers (google.cn)
- Migrate to Paging 3 | Android Developers (google.cn)
Paging 2
- Paging 2 library overview | Android Developers (google.cn)
- Display paged lists | Android Developers (google.cn)
- Gather paged data | Android Developers (google.cn)
Data layer libraries
WorkManager
- App Architecture: Data Layer - Schedule Task with WorkManager - Android Developers (google.cn)
- App Architecture: Data Layer - Schedule Task with WorkManager - Android Developers (google.cn)
Getting started
- Getting started with WorkManager | Background work | Android Developers (google.cn)
- Define work requests | Background work | Android Developers (google.cn)
How to
- Work states | Background work | Android Developers (google.cn)
- Managing work | Background work | Android Developers (google.cn)
- Chaining work | Background work | Android Developers (google.cn)
- Support for long-running workers | Background work | Android Developers (google.cn)
- Observe intermediate worker progress | Background work | Android Developers (google.cn)
- Update work that is already enqueued | Background work | Android Developers (google.cn)
Threading
- Threading in WorkManager | Background work | Android Developers (google.cn)
- Threading in Worker | Background work | Android Developers (google.cn)
- Threading in CoroutineWorker | Background work | Android Developers (google.cn)
- Threading in RxWorker | Background work | Android Developers (google.cn)
- Threading in ListenableWorker | Background work | Android Developers (google.cn)
Configuration
Migrate from legacy solutions
- Migrating from Firebase JobDispatcher to WorkManager | Background work | Android Developers (google.cn)
- Migrating from GCMNetworkManager to WorkManager | Background work | Android Developers (google.cn)
App entry points
Activities
- Introduction to activities | Android Developers (google.cn)
- The activity lifecycle | Android Developers (google.cn)
- Activity state changes | Android Developers (google.cn)
- Test your app’s activities | Android Developers (google.cn)
- Tasks and the back stack | Android Developers (google.cn)
- Processes and app lifecycle | Android Developers (google.cn)
- Parcelables and bundles | Android Developers (google.cn)
- Loaders | Android Developers (google.cn)
- Recents screen | Android Developers (google.cn)
- Restrictions on starting activities from the background | Android Developers (google.cn)
App shortcuts
- App shortcuts overview | Views | Android Developers (google.cn)
- Create shortcuts | Views | Android Developers (google.cn)
- Add capabilities to shortcuts | Views | Android Developers (google.cn)
- Manage shortcuts | Views | Android Developers (google.cn)
- Best practices for shortcuts | Views | Android Developers (google.cn)
App navigation
Navigation component
- Navigation | Android Developers (google.cn)
- Create a navigation controller | Android Developers (google.cn)
Design your navigation graph
- Design your navigation graph | Android Developers (google.cn)
- Dialog destinations | Android Developers (google.cn)
- Activity destinations | Android Developers (google.cn)
- Nested graphs | Android Developers (google.cn)
- Create a deep link for a destination | Android Developers (google.cn)
- Add support for new destination types | Android Developers (google.cn)
- Type safety in Kotlin DSL and Navigation Compose | Android Developers (google.cn)
- Encapsulate your navigation code | Android Developers (google.cn)
- Use Navigation actions and Fragments | Android Developers (google.cn)
- Build a graph programmatically using the Kotlin DSL | Android Developers (google.cn)
- Navigation Editor | Android Developers (google.cn)
Use your navigation graph
- Navigate to a destination | Android Developers (google.cn)
- Navigate with options | Android Developers (google.cn)
- Safe Args | Android Developers (google.cn)
- Pass data between destinations | Android Developers (google.cn)
- Animate transitions between destinations | Android Developers (google.cn)
- Conditional navigation | Android Developers (google.cn)
- Interact programmatically with the Navigation component | Android Developers (google.cn)
The back stack
- Dialog destinations | Android Developers (google.cn)
- Circular navigation | Android Developers (google.cn)
- Support multiple back stacks | Android Developers (google.cn)
Integrations
- Navigate with feature modules | Android Developers (google.cn)
- Navigation best practices for multi-module projects | Android Developers (google.cn)
- Connect UI components to NavController using NavigationUI | Android Developers (google.cn)
Migrate to the Navigation component
Test navigation
Custom back navigation
- Provide custom back navigation | Android Developers (google.cn)
- Add support for the predictive back gesture | Android Developers (google.cn)
- Add support for predictive back animations | Android Developers (google.cn)
Responsive design
- Handling configuration changes | Android Developers (google.cn)
- Design for different form factors | Android Developers (google.cn)
Swipe between views
- Create swipe views with tabs using ViewPager2 | Android Developers (google.cn)
- Create swipe views with tabs using ViewPager | Android Developers (google.cn)
Fragments
- Fragments | Android Developers (google.cn)
- Create a fragment | Android Developers (google.cn)
- Fragment manager | Android Developers (google.cn)
- Fragment transactions | Android Developers (google.cn)
- Navigate between fragments using animations | Android Developers (google.cn)
- Navigate between fragments using animations | Android Developers (google.cn)
- Saving state with fragments | Android Developers (google.cn)
- Communicate with fragments | Android Developers (google.cn)
- Working with the AppBar | Android Developers (google.cn)
- Display dialogs with DialogFragment | Android Developers (google.cn)
- Debug your fragments | Android Developers (google.cn)
- Test your fragments | Android Developers (google.cn)
App links
- Handling Android App Links | Android Developers (google.cn)
- Create Deep Links to App Content | Android Developers (google.cn)
- Verify Android App Links | Android Developers (google.cn)
- Create App Links for Instant Apps | Android Developers (google.cn)
Interact with other apps
- Interact with other apps | Android Developers (google.cn)
- Intents and intent filters | Android Developers (google.cn)
- Common intents | Android Developers (google.cn)
- Sending the user to another app | Android Developers (google.cn)
- Get a result from an activity | Android Developers (google.cn)
- Let other apps start your activity | Android Developers (google.cn)
- Limit loading in on-device Android containers | Android Developers (google.cn)
Package visibility
- Limit loading in on-device Android containers | Android Developers (google.cn)
- Know which packages are visible automatically | Android Developers (google.cn)
- Declare package visibility needs | Android Developers (google.cn)
- Fulfill common use cases while having limited package visibility | Android Developers (google.cn)
- Test package visibility behavior | Android Developers (google.cn)
Dependency injection
- Dependency injection in Android | Android Developers (google.cn)
- Manual dependency injection | Android Developers (google.cn)
- Dependency injection with Hilt | Android Developers (google.cn)
- Hilt in multi-module apps | Android Developers (google.cn)
- Use Hilt with other Jetpack libraries | Android Developers (google.cn)
- Hilt testing guide | Android Developers (google.cn)
- Hilt and Dagger annotations cheat sheet | Android Developers (google.cn)
Dagger
- Dagger basics | Android Developers (google.cn)
- Using Dagger in Android apps | Android Developers (google.cn)
- Using Dagger in multi-module apps | Android Developers (google.cn)
App Startup
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 墨香博客!