Android Jetpack入门

关于Jetpack

Jetpack是一个类库(libraries)、工具(tools)、帮助快易开发构建令人满意的Android App的指导(architectural guidance)集合,它提供了通用的基础代码(code),这样你可以专注于让你app与众不同的工作。

特性

  • 快速开发
    组件可单独使用,也可以同时工作,当使用kotlin语言特性时,可以让你更有效率
  • 消除样板代码
    Android Jetpack管理乏味的活动,例如后台任务、导航和生命周期管理,你可以专注于让你的app更棒的东西。
  • 构建高质量、健壮的app
    基于现代设计实践,Android Jetpack组件可以减少崩溃和内存泄漏,且向后兼容。

组件-可全部使用或者混合搭配

  • Foundation Components
    包含核心系统能力、Kotlin扩展、混合dex(multidex)和测试自动化支持的组件
    4大模块:AppCompat,Android KTX,Multidex,Test
  • Architecture Components
    一个类库的集合,可以帮助你设计健壮、可测、可维护的app。主要为管理UI Components生命周期和处理数据持久化。
    8大模块:Data Binding,Lifecycles,LiveData,Navigation,Paging,Room,ViewModel,WorkManager
  • Behavior Components
    一个类库的集合,用于帮助你设计健壮、可测、可维护的app。主要为管理UI Components生命周期和处理数据持久化。
    6大模块:DownloadManager,Media&Palyback,Notifications,Permissions,Sharing,Slices
  • UI Components
    不仅仅是更容易,更乐于使用的构建app的类库
    8大模块:Animations and Transitions,Auto(汽车),Emoji,Fragment,Layout,Palette,TV,WearOS

Hello Jetpack-创建第一个Jetpack App

  • 首先需要AndroidStudio3.2(目前还是Preview release)
  • 如下图,创建App过程中选择Activity&Fragment+ViewModel,Activity&Fragment+ViewModel用来更容易的在你的app中集成Jetpack,
    Android Jetpack入门_第1张图片
    `Activity&Fragment+ViewModel`
  • 创建完成后目录结构
    Android Jetpack入门_第2张图片
    目录结构.JPG

    上图中MainActivity是App入口,初始化App时的根Activity
    MainFragment,初始化app时的根Fragment
    还有一个MainViewModel,初始化App时调用。
    以上三个,还有ui.main都可以在创建过程中更改名称。
  • 直接运行效果


    Android Jetpack入门_第3张图片
    直接运行效果

看看使用Jetpack的好处

  • 通过这些碎片,你可以选择实现ViewModel对象,如下例:
    class StartViewModel : ViewModel() {
        private val _data = MutableLiveData()
        val data: LiveData
            get() = _data

        init {
            _data.value = "Hello, Jetpack!"
        }
    }
  • 如果你的app包含多个界面,你可以添加Navigation类来实现Fragment的导航开关。如下例:
    // Set up a click listener on the login button
    view?.findViewById
  • 如果你的app需要访问本地SQLite数据,你可以添加Room 持久化类库。如果你的app需要在单个屏幕上展示大量数据,你可以考虑使用 Paging类库。

编译你的Gradle文件

要使用Jetpack,你必须在Gradle文件中适当的添加几行。因为这个app使用了 ViewModel, LiveData, and NavigationController,gradle包含如下几行:

       // LiveData + ViewModel
       implementation "android.arch.lifecycle:extensions:$rootProject.archLifecycleVersion"
       // Navigation
       implementation 'androidx.navigation:navigation-fragment:' + rootProject.navigationVersion
       implementation 'androidx.navigation:navigation-ui:' + rootProject.navigationVersion

你可能感兴趣的:(Android Jetpack入门)