📜  Android Jetpack的基础组件

📅  最后修改于: 2021-05-13 17:36:48             🧑  作者: Mango

Android Jetpack是一组软件组件,库,工具和指南,可帮助开发强大的Android应用程序。由Google在2018年推出的Jetpack包含现有的android支持库,android体系结构组件以及一个单独的模块化实体,另外还添加了Android KTX库。如今,Google Play商店中近99%的应用程序都使用Android Jetpack库。 android应用程序的核心系统组件位于Jetpack的“基础”区域中。语言支持和测试库的Kotlin扩展也包含在其中。此外,此组件中存在的库提供了向后兼容性。本文详细解释了Foundation组件的每个库。 Jetpack包含大量库,这些库以相互协作的方式构建,并构成了强大的移动应用程序。它的软件组件分为4类:

  1. 基础组件
  2. 建筑构件
  3. 行为成分
  4. UI组件

此外,以下是所有Foundation组件的列表:

  1. AppCompat
  2. Android KTX
  3. 测试
  4. 多重指数

在应用程序中包含Android Jetpack库的方法

  • 在应用程序项目的build.gradle文件中添加google仓库。
  • 所有Jetpack组件都可在Google Maven存储库中获得,并将它们包括在build.gradle文件中

基础组件

1. AppCompat

Jetpack基础中的AppCompat库包含v7库中的所有组件。这包括AppCompat,Cardview,GridLayout,MediaRouter,Palette,RecyclerView,Renderscript,Preferences,Leanback,Vector Drawable,Design,Custom选项卡等。此外,该库为材质设计用户界面提供了实现支持,这使得AppCompat对开发人员。以下是android应用程序的一些关键领域,这些领域很难构建,但是可以使用AppCompat库轻松进行设计:

  • 应用栏:应用程序中最顶层的元素是其应用栏/操作栏,通常包含应用程序名称或当前活动名称。 AppCompat库有助于开发人员设计更自定义的App栏。它提供了一个工具栏,用于使用原色或渐变背景(多种颜色)设计和绘制应用程序栏的背景。
  • 导航抽屉:这是左窗格菜单,可为应用程序提供简单的导航指南。如今,这是一种非常常见的设计模式,因此需要经常添加。通过使用AppCompat库,管理导航抽屉的颜色和图标非常简单。为了创建导航抽屉,开发人员只需要添加带有主视图和NavigationView的DrawerLayout。此外,该库还有助于利用XML资源管理每个菜单元素的活动状态。
  • 权限:在较新的android版本中 操作系统,应用程序要求用户许可,以便访问设备硬件(例如相机,麦克风等)或执行某些操作。应用程序执行的其他操作取决于用户选择的选择,即是否授予许可。但是,在Marshmallow(6.0)版本的Android OS之前不是这种情况。在较旧的版本中,开发人员无需在SDK中编写任何代码来征询用户的许可并检查是否已授予该代码。此问题已由ContextCompat (AppCompat的一个组件)解决,该设备可以检查操作的允许状态和是否需要用户的请求(与Android OS版本无关)。
  • 资源:以前,需要更多的代码行来设计XML资源(例如可绘制资源),这些资源受特定Android OS版本支持。使用ContextCompat (AppCompat的一部分),代码行数大大减少,并且可绘制对象对OS版本的依赖性也得到了消除。
  • 对话框: AppCompat库具有一个类似于工具栏的AppCompatDialog组件。它有助于在应用程序中制作“材料设计”对话框。
  • 共享操作:由于有AppCompat库,因此可以将任何文档/文件从一个应用程序共享到另一平台。如Gmail,脸谱,消息等出现当文档/文件被选择为共享屏幕上共享动作的列表是由程序兼容性库的活性的工具栏提供。

2. Android KTX

该库是Jetpack发行时首次引入的基础组件中的唯一一个。 Android KTX是Kotlin扩展的集合,这些扩展旨在帮助开发人员在使用Kotlin语言开发android应用程序时删除样板代码以及编写简洁的代码。这里的KTX代表Kotlin Extensions 。以下是不使用Android KTX库以及不使用Android KTX库后的一段代码示例:

不使用KTX库的SQLite代码片段:

上面的代码在使用KTX库后:

该示例清楚地描述了Android KTX库如何使用简单的函数以及尾随的lambda减少代码行并优雅地组织SQLite事务。许多jetpack库都与各种Android KTX模块链接。例如,在使用Android Jetpack的Navigation组件时,可以使用以下扩展名。

  • android.arch.navigation:navigation-common-ktx
  • android.arch.navigation:navigation-fragment-ktx
  • android.arch.navigation:navigation-runtime-ktx
  • 和android.arch.navigation:navigation-ui-ktx

3.测试

基础组件的这一部分包括用于运行时UI测试的Espresso UI测试框架和用于Android应用程序的单元测试目的的AndroidJUnitRunner 。 Espresso主要用于UI元素的测试。此外,AndroidJUnitRunner对每种方法的逻辑进行小型测试。它可以确保快速,准确地测试项目代码中的特定逻辑。

4. Multidex

Android的multidex属性是开发移动应用程序时最重要的功能之一。 Dex是在Android虚拟机(称为Dalvik)上运行的可执行文件的格式。要根据Dalvik可执行文件规范创建.dex文件,考虑到项目的所有库,该文件不得包含超过65,536个方法。

在制作任何现实的移动应用程序时,项目库中的方法数量可以轻松地超过该数量。在这种情况下,开发人员将利用Multidex库的帮助,该库将应用程序的.dex文件执行系统拆分为多个.dex文件。此外,Multidex组件还为应用程序的集合dex文件提供支持。

在应用程序中检测对Multidex的需求:

任何人在开发应用程序时保留方法计数的记录都是不切实际的。因此,要知道项目文件中是否需要Multidex,应该注意以下错误。如果IDE在构建应用程序文件时显示这些错误之一,则意味着需要启用Multidex。

错误消息1:

错误消息2:

启用Multidex:

启用Multidex的代码取决于android应用的最低SDK版本。对于不同的SDK版本,以下是build.gradle文件的代码片段。

一种。对于等于或大于21的最低SDK版本:

b。对于小于21的最低SDK版本:

一世。对于AndroidX

ii。对于旧的支持库:

想要一个节奏更快,更具竞争性的环境来学习Android的基础知识吗?
单击此处前往由我们的专家精心策划的指南,以使您立即做好行业准备!