網(wǎng)站首頁 編程語言 正文
Jetpack
Jetpack,我覺得翻譯為“飛行器”更好聽,因為Google針對編程歷史亂象,整理出一套組件庫,幫助開發(fā)者創(chuàng)造更完美的應(yīng)用作品。現(xiàn)在市面上,很多公司招聘面試要求漸漸把Jetpack看作必會技能,Google也在瘋狂的安利Jetpack組件,和Kotlin一樣屬于親兒子一樣了。
1、那么Jetpack是什么呢
如圖所示,Jetpack是一個由多個技術(shù)庫組成的套件,可幫助開發(fā)者遵循最佳做法,減少樣板代碼并編寫可在各種Android版本和設(shè)備中一致運行的代碼,讓開發(fā)者精力集中編寫重要的代碼。
2、為何使用Jetpack
- 遵循最佳做法:Android Jetpack 組件采用最新的設(shè)計方法構(gòu)建,具有向后兼容性,可以減少崩潰和內(nèi)存泄露。
- 消除樣板代碼:Android Jetpack 可以管理各種繁瑣的Activity(如:后臺任務(wù)、導(dǎo)航和生命周期管理),以便你可以專注于打造出色的應(yīng)用。
- 減少不一致:這些庫可在各種Android 版本和設(shè)備中以一致的方式運作,助你降低復(fù)雜性!
3、Jetpack與AndroidX
- AndroidX命名空間中包含Android Jetpack庫
- AndroidX代替Android Support Library
- AAC(Android Architecture Component) 中的組件并入AndroidX
- 其他一些需要頻繁更新和迭代的特性也并入了AndroidX
LifeCycle
LifeCycle顧名思義是用來幫助開發(fā)者建立可感知生命周期的jetpack組件之一。LifeCycle在其內(nèi)部管理自己的生命周期,從而解藕頁面和組件,降低內(nèi)存泄露發(fā)生的可能性,Activity、Fragment、Service、Application均有LifeCycle支持。
1、LifeCycle的作用
如圖所示,LifeCycle用來監(jiān)聽Activity與Fragment的生命周期變化。
2、LifeCycle應(yīng)用
例如,一般我們在Activity中使用計時器時會在生命周期onPause和onReSume對其操作。因為計時器是長周期的變量,如果Activity關(guān)閉了,但沒有關(guān)閉計時器,就會繼續(xù)持用activity的引用造成內(nèi)存泄露。
1、設(shè)計組件
//自定義了控件,繼承了Chronometer計時器,實現(xiàn)了LifecycleObserver接口
@SuppressLint("ViewConstructor")
class MyChronometer : Chronometer, LifecycleObserver {
constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet)
var elapsedTime: Long = 0
//計時開始 ,方法添加了注解
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
open fun startMeter() {
base = SystemClock.elapsedRealtime() - elapsedTime
start()
}
//計時暫停 ,方法添加了注解
@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
open fun stopMeter() {
elapsedTime = SystemClock.elapsedRealtime() - base
stop()
}
}
2、使用組件
class Step2Activity : AppCompatActivity() {
private var chronometer: MyChronometer? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//組件
chronometer = findViewById(R.id.chronometer)
//添加觀察者
lifecycle.addObserver(chronometer!!)
}
}
3、總結(jié)LifeCycle的使用
1、繼承LifeCycle Observer方法
class lifecycleTest : LifecycleObserver {
@OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
fun onCreate() {
}
@OnLifecycleEvent(Lifecycle.Event.ON_START)
fun onStart() {
}
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
fun onResume() {
}
@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
fun onPause() {
}
@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
fun onStop() {
}
@OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
fun onDestroy() {
}
}
2、添加觀察者
lifecycle.addObserver(lifecycleTest)
原文鏈接:https://blog.csdn.net/csdn_aiyang/article/details/126783156
相關(guān)推薦
- 2023-03-04 React深入分析更新的創(chuàng)建源碼_React
- 2023-07-16 springboot動態(tài)端口
- 2022-08-19 R語言rhdf5讀寫hdf5并展示文件組織結(jié)構(gòu)和索引數(shù)據(jù)_R語言
- 2022-10-07 Go語言設(shè)計模式之實現(xiàn)觀察者模式解決代碼臃腫_Golang
- 2022-12-02 C語言實現(xiàn)動態(tài)順序表的示例代碼_C 語言
- 2022-09-15 windows中cmd下添加、刪除和修改靜態(tài)路由實現(xiàn)_DOS/BAT
- 2022-10-16 Qt實現(xiàn)串口助手_C 語言
- 2022-04-25 C#關(guān)于Func和Action委托的介紹詳解_C#教程
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支