android jetpack 简书,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,

90bee6b63f90

`Activity&Fragment+ViewModel`

创建完成后目录结构

90bee6b63f90

目录结构.JPG

上图中MainActivity是App入口,初始化App时的根Activity

MainFragment,初始化app时的根Fragment

还有一个MainViewModel,初始化App时调用。

以上三个,还有ui.main都可以在创建过程中更改名称。

直接运行效果

90bee6b63f90

直接运行效果

看看使用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(R.id.navigate_bt)?.setOnClickListener {

// Navigate to the login destination

view?.let { Navigation.findNavController(it).navigate(R.id.end_action) }

如果你的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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值