草庐IT

Jetpack第一篇:走进Jetpack

AxeChen 2023-09-14 原文

1、什么是Jetpack

Google2018年推出的一系列组件的统称。其目的是为了统一安卓开发规范,提高安卓开发效率,提高应用的质量。

jetpack

总共分为四个部分

  • Architecture :架构组件
  • UI:UI组件
  • Behavior:行为组件
  • Foundation : 基础组件

Jetpack官方地址:

https://developer.android.google.cn/jetpack/

2、架构组件

  • Data Binding(数据绑定):使用声明性格式将布局中的界面组件绑定到应用中的数据源。
  • Lifecycles(生命周期感知):构建生命周期感知型组件,这些组件可以根据 Activity 或 Fragment 的当前生命周期状态调整行为。
  • LiveData(基于Lifecycles的数据发送):感知生命周期的组件,能在组件处于活跃的状态发送数据。
  • Navigation(页面导航):构建和组织应用内界面,处理深层链接以及在屏幕之间导航。
  • Paging(数据分页): 在页面中加载数据,并在 RecyclerView 中呈现。
  • Room(数据库): 创建、存储和管理由 SQLite 数据库支持的持久性数据。
  • ViewModel(数据存储):感知生命周期的数据存储组件,一般和LiveData组合使用。
  • WorkManager(后台任务管理):调度和执行可延期且基于约束条件的后台任务。

3、UI组件

  • Animation&Transaction:动画
  • Auto,TV&Wear: 车载设备、电视等大屏设备、穿戴设备
  • Emoji:在当前设备和旧版本设备上显示表情符号。
  • Fragment: 将您的应用细分为在一个 Activity 中托管的多个独立屏幕。
  • Layout:界面布局
  • Palette:从图片中提取具有代表性的调色板。

4、行为组件

  • DownLoader Manager:下载管理
  • Media&Playback:与其他应用共享媒体内容和控件。
  • Permissions:应用权限
  • Notifcations:应用通知
  • Sharing:可以将快捷方式用作直接共享目标。
  • Slice:在应用外显示模板化界面元素。

5、基础组件

  • AppCompat:兼容性的基础Api,允许在平台旧版 API 上访问新 API(很多使用 Material Design)。
  • Android KTX:包含在 Android Jetpack 及其他 Android 库中的一组 Kotlin 扩展程序。KTX 扩展程序可以为 Jetpack、Android 平台及其他 API 提供简洁的惯用 Kotlin 代码
  • Multidex:在搭载 Android 5 之前版本的设备上部署包含多个 dex 文件的应用。(分包)
  • Test:在 Android 中进行测试。

以上有部分描述来自Jetpack官网:

https://developer.android.google.cn/jetpack/androidx/explorer

6、前提条件

  • AndroidStudio:使用 Android Studio 3.2 及更高版本,现在已经开始使用4.0的版本之上了。
  • gradle.properties设置
android.useAndroidX=true
android.enableJetifier=true
  • 最低支持的Android版本为:minSdkVersion : 21

7、学习主要思路

提供几条学习Jetpack的思路:

  • Activity\Fragment的生命周期:这个是Jetpack组件的核心点之一,lifecycle,ViewMode,LiveData都依赖生命周期。

  • 像学习新控件一样学习Jetpack控件:想想是如何学会RecyclerView等后面Google推出的新控件的,Jetpack中同样包含了很多新的控件,这些控件学习起来并不是很复杂,都用几次就会熟悉。

  • 熟悉观察者模式:很多组件都依靠观察者模式,比如观察Activity\Fragment的生命周期等等。

  • 多写代码实操:多多练习,熟能生巧!

  • 去官网参考示例代码。

有关Jetpack第一篇:走进Jetpack的更多相关文章

  1. ruby-on-rails - CarrierWave - PDF - 只选择第一页 - 2

    我的Rails应用程序中安装了carrierwave。但是,当用户上传多页pdf时,我只希望应用程序获取文档中的第一页并将其转换为jpeg。这可能吗?用什么命令?这是我的uploader。#encoding:utf-8classImageUploader[200,300]##defscale(width,height)##dosomething#end#Createdifferentversionsofyouruploadedfiles:version:thumbdoprocess:resize_to_fill=>[150,210]process:convert=>:jpgdefful

  2. ruby - 如何跳过 CSV 文件的第一行并将第二行作为标题 - 2

    有没有办法跳过CSV文件的第一行,让第二行作为标题?我有一个CSV文件,第一行是日期,第二行是标题,所以我需要能够在遍历它时跳过第一行。我尝试使用slice但它会将CSV转换为数组,我真的很想将其读取为CSV,以便我可以利用header。 最佳答案 根据您的数据,您可以使用另一种方法和skip_lines-option此示例跳过所有以#开头的行require'csv'CSV.parse(DATA.read,:col_sep=>';',:headers=>true,:skip_lines=>/^#/#Markcomments!)do|

  3. arrays - 在一行中选择数组的第一个和最后一个元素 - 2

    我的任务是从数组中选择最高和最低的数字。我想我很清楚我想做什么,但只是努力以正确的格式访问信息以满足通过标准。defhigh_and_low(numbers)array=numbers.split("").map!{|x|x.to_i}array.sort!{|a,b|ba}putsarray[0,-1]end数字可能看起来像"80917234100",要通过,我需要输出"9234"。我正在尝试putsarray.first.last,但一直无法弄明白。 最佳答案 有Array#minmax完全满足您需要的方法:array=[80,

  4. ruby-on-rails - Ruby 或 Rails 有只将第一个字符大写的方法吗? - 2

    或者好像我必须自己写方法?(保持DHA不变):ruby-1.9.2-p180:001>s='omega-3(DHA)'=>"omega-3(DHA)"ruby-1.9.2-p180:002>s.capitalize=>"Omega-3(dha)"ruby-1.9.2-p180:003>s.titleize=>"Omega3(Dha)"ruby-1.9.2-p180:005>s[0].upcase+s[1..-1]=>"Omega-3(DHA)" 最佳答案 如果我的回答只是垃圾,我深表歉意(我不做ruby)。但我相信我已经为您找到了答

  5. ruby - gsub 删除第一个逗号前的所有内容 - 2

    我有这个字符串:auteur="comtedeFlandreetHainaut,Baudouin,Jacques,Thierry"我想删除第一个逗号之前的所有内容,即在这种情况下保留“Baudouin,Jacques,Thierry”试过这个:nom=auteur.gsub(/.*,/,'')但这会删除最后一个逗号之前的每个逗号,只保留“Thierry”。 最佳答案 auteur.partition(",").last#=>"Baudouin,Jacques,Thierry" 关于rub

  6. ruby-on-rails - Order Hash 并删除第一个键值对 - 2

    我有一个以时间戳为键的哈希。hash={"2016-05-31T22:30:58+02:00"=>{"path"=>"/","method"=>"GET"},"2016-05-31T22:31:23+02:00"=>{"path"=>"/tour","method"=>"GET"},"2016-05-31T22:31:05+02:00"=>{"path"=>"/contact_us","method"=>"GET"}}我订购了这个系列并得到了第一双这样的:hash.sort_by{|k,_|k}.first.first但是我该如何删除它呢?删除方法requiresyou知道key的准确

  7. arrays - 字符串数组中字符串第一部分的总和 - 2

    我有一个字符串数组,我需要从中提取第一个单词,将它们转换为整数并获得它们的总和。示例:["5Apple","5Orange","15Grapes"]预期输出=>25我的尝试:["5","5","15"].map(&:to_i).sum 最佳答案 我从你的问题中找到了答案。["5Apple","5Orange","15Grapes"].map(&:to_i).sum在数组中,如果存在任何整数可转换值,那么它将自动转换为整数。 关于arrays-字符串数组中字符串第一部分的总和,我们在Sta

  8. ruby-on-rails - Rails 3 : Looping through array of objects, 忽略数组中的第一个对象? - 2

    在我看来,我正在尝试显示一个对象表,这是我的代码:CategoriesCBB's">然而这是抛出一个错误说:can'tconvertCapabilityBuildingBlockintoArray关系是正确的,错误来self尝试在此处减去数组的第一个对象的行:有什么方法可以忽略数组中的第一个对象来遍历数组吗?谢谢 最佳答案 尝试使用Array.drop-http://www.ruby-doc.org/core/classes/Array.html#M000294 关于ruby-on-ra

  9. ruby-on-rails - 我如何跳过前三行而不是 FasterCSV 中的第一行 - 2

    我正在使用FasterCSV我正在循环使用这样的foreachFasterCSV.foreach("#{Rails.public_path}/uploads/transfer.csv",:encoding=>'u',:headers=>:first_row)do|row|但问题是我的csv将前3行作为标题...有什么方法可以使fasterCSV跳过前三行而不是仅跳过第一行?? 最佳答案 不确定FasterCSV,但在Ruby1.9标准CSV库(由FasterCSV制作)中,我可以执行以下操作:c=CSV.open'/path/to/

  10. Ruby 删除数组的第一个索引 - 2

    我有一个数组。我需要保留除索引0处的元素以外的所有内容。此时我的大脑被炸毁了。我整天都在编程。任何帮助都会很棒。谢谢! 最佳答案 使用Array#shift方法,它完全符合您的要求:a=[1,2,3]a.shift#=>1a#=>[2,3] 关于Ruby删除数组的第一个索引,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/11783005/

随机推荐