JetPack系列:001-JetPack概要介绍

文章目录

  • 1. 概念介绍
  • 2. 主要内容
    • 2.1 框架库
    • 2.2 UI界面库
  • 3. 核心思想
  • 4. 内容总结

JetPack系列:001-JetPack概要介绍_第1张图片

本章回是一起Talk AndroidJetpack吧专栏的第一章回,本章回中主要介绍JetPack的基本概念和编程思想,同时也会介绍它的基础知识。闲话休提,请我们一起Talk Android Jetpack吧

1. 概念介绍

Jetpack是Android新推出的库,该库包含框架和UI,目的在于加强框架设计,减去模板代码,提升开发效率。

我们在一起Talk Android专栏中介绍过它里面的内容,比如ViewBinding,LiveData等。本专栏除了介绍这些库外还会介绍它新推出的UI库:Jetpack Compose,以及配合它们使用的Kotlin编程语言。

2. 主要内容

Jetpack是在Android原生内容的基础上提供了高效的库和UI,接下来我们分别介绍这两个方面的知识。

2.1 框架库

它把我们常用的内容封装成了库,比如Activity,Fragment.有了这些库后我们就可以更加方便地使用库中提供的功能,比如在项目中创建Activity时不再向之前一样继承AppCompatActivity,而是继承ComponentActivity,该类就是库中的内容,它包含ViewModel,Lifecycle等内容,有了这些内容可以方便我们管理页面中的数据,更好地管理页面的周期。

Jetpack中其它的库,我们就不一一介绍了,大家可以参考文档。此外,这些库的兼容性非常强,支持Adnroid5以上的版本,可以说兼容了当前市场上99%以上的Android设备。

2.2 UI界面库

Jetpack中的UI界面通过compose库提供,它和以前UI界面中的View完全不同,而是使用可组合函数(Composable注释标记的函数),这些可组合函数可以相互嵌套使用,进而组成一个UI界面。虽然UI界面的载体仍然是Activity,但是界面中的布局和组件已经不再是xml文件以及各种View及其子View.有看官说没有xml文件后如何调整界面?官方提供了preview注解,在可组合函数前使用该注解后就可实时地预览界面中的UI,十分方便。

这种UI界面通过状态来管理,把UI绑定到一个状态上,如果状态有变化了,框架会自动去更新UI。

3. 核心思想

Jetpack的核心思想就是提供统一的数据管理和界面管理方式,这样有助于代码解耦,减少冗余代码,提高程序性能。这种思想也叫声明式框架思想,最早在RN框架中使用,现在几乎所有移动平台都在使用这种声明式框架。下面是使用Jetpack编译的HelloWorld程序,请大家参考:

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            CookbookTheme {
                // A surface container using the 'background' color from the theme
                Surface(
                    color = MaterialTheme.colorScheme.background
                ) {
                    Text(text = "Hello World")
                }
            }
        }
    }
}

上面的代码中使用Activity当作页面载体,页面中只有一个可组合函数Text,它和TextView组件的功能相同,通过该函数在页面上显示"Hello World".我在这里就不演示程序的运行结果了,建议大家自己动手去实践。

4. 内容总结

最后,我们对本章回的内容做一个归纳性的总结,详细如下:

  • Jetpack是一系列库的集合,这些库包含框架库和UI库;
  • 框架库用来提库数据和界面管理,比如LiveData,Activity;
  • UI库主要使用可组合函数来描述界面,通过状态来更新界面;
  • UI库的核心思想是声明式UI框架的思想;

看官们,关于Jetpack的基本内容就介绍这些,欢迎大家在评论区交流与讨论!

你可能感兴趣的:(一起Talk,AndroidJetPack吧,移动开发,Jetpack,compose,声明式UI,命令式UI)