ARCHIVE

Archives

按时间浏览全部文章,快速回到你想看的写作阶段和主题轨迹。

Activity启动流程浅析(一)-- API30调用流程

前言 Activity一般是安卓开发接触到的第一个重要组件,代表着与用户交互的活动视窗,活动与活动之间往往不是相互独立的, startActivity() 就是从一个活动跳转到另一个活动的桥梁。而对于 startActivity() 的了解,我们往往只停留在它的使用上,很少去深究...

2021-04-11

性能优化之内存优化

内存 JAVA是在JVM所虚拟出的内存环境中运行的,JVM的内存可分为三个区: 堆(heap)、栈(stack)和方法区(method)。 栈(stack) 是简单的数据结构,但在计算机中使用广泛。栈最显著的特征是:LIFO(Last In, First Out, 后进先出),栈...

2021-04-04

Jetpack之可观察的数据存储器-LiveData使用篇

LiveData 是一种可观察的数据存储器类。与常规的可观察类不同,LiveData 具有生命周期感知能力,意指它遵循其他应用组件(如 Activity、Fragment 或 Service)的生命周期。这种感知能力可确保 LiveData 仅更新处于活跃生命周期状态的应用组件观...

2021-03-10

白话说Handler-MessageQueue-Looper

若无明示源码版本,全文以Android API23为准分析 从何开始 如何解释:我写的Java代码是如何在手机上一直运行着的? 首先,显而易见的,作为一个Java程序,一定有一个程序入口main(String[] args), 那么Android程序的入口main()在哪里呢,我...

2021-03-08

Jetpack之界面数据存储组件-ViewModel

ViewModel这个名称常常使人误解为MVVM中的ViewModel层,那么它是不是同一个东西呢? ViewModel可以作为MVVM中的ViewModel层,但不是特指MVVM中的ViewModel层。 ViewModel 类旨在以注重生命周期的方式存储和管理界面相关的数据。...

2021-03-07

Jetpack之生命周期感知组件-Lifecycle原理篇

上一篇文章中我们讲了 Jetpack之生命周期感知组件-Lifecycle使用篇 ,接下来我们来看一下他是如何工作的吧。 在了解其工作原理前,我们需要先简单了解以下ActivityThread对Activity生命周期的分发流程,以便理解Lifecycle的工作原理。 此篇前半部...

2021-02-28

Jetpack之生命周期感知组件-Lifecycle使用篇

前言 什么是生命周期感知组件? 生命周期感知型组件可执行操作来响应另一个组件(如 Activity 和 Fragment)的生命周期状态的变化。这些组件有助于您写出更有条理且往往更精简的代码,这样的代码更易于维护。 Lifecycle是什么? Lifecycle 是一个类,用于存...

2021-02-25

Jetpack之应用启动组件-StartUp

前言 应用程序启动库 StartUp 提供了一种在应用程序启动时初始化组件的简单、高效的方法。库开发者和应用开发者都可以使用app Startup来简化启动序列,并显式设置初始化顺序。 不同于为每个需要初始化的组件定义单独的内容提供程序,App Startup允许你定义共享单个内...

2021-02-24

WorkManager基本使用及源码分析(七) - BroadcastReceiver

源码篇 - 广播接收者 ForceStopRunnable BroadcastReceiver ConstraintProxy BatteryNotLowProxy BatteryChargingProxy StorageNotLowProxy NetworkStateProxy...

2021-02-15

WorkManager基本使用及源码分析(一) - 使用篇

目录 ZERO 1. 使用篇 1.1 声明依赖项 1.2 该如何使用? 1.3 WorkRequest类型 1.4 一般操作 1.4.1 任务监听 1.4.2 传递数据 1.4.3 多任务串联 1.4.4 唯一任务 1.4.5 任务约束 1.4.6 任务延时 1.4.7 重试和退...

2021-02-06

WorkManager基本使用及源码分析(三) - SystemAlarmService

目录 源码篇 2.1.1 SystemAlarmService 如何处置命令 (processCommand) 如何分发命令 (CommandHandler) 是怎么调用到Worker.doWork()的? 如何完成回调 (DequeueAndCheckForCompletion...

2021-02-06

WorkManager基本使用及源码分析(二) - WorkManagerInitializer

目录 源码篇 2.1 AndroidManifest 2.1.1 WorkManagerInitializer 源码篇 上一篇中我们简单使用了WorkManager的一般功能,基础使用还是比较简单的。 “WorkManager 是一个 API,可供您轻松调度那些即使在退出应用或重...

2021-02-06

WorkManager基本使用及源码分析(五) - Processor

目录 源码篇 Processor 源码篇 前面从work-runtime库的AndroidManifest.xml中了解到,WorkManager工作主要通过ContentProvider、Service、BroadcastReceiver协同工作,而关注几个主要Service工...

2021-02-06

WorkManager基本使用及源码分析(六) - SystemForegroundService

目录 源码篇 SystemForegroundService 源码篇 上一篇中我们了解了WorkManager使用的的主要组件,猜测了各个组件的作用,并简单介绍了WorkManager是如何初始化的。本篇将延续前文,介绍WorkManager中Service组件之一的System...

2021-02-06

WorkManager基本使用及源码分析(四) - SystemJobService

目录 源码篇 SystemJobService 源码篇 上一篇中我们简单使用了WorkManager的一般功能,基础使用还是比较简单的。 “WorkManager 是一个 API,可供您轻松调度那些即使在退出应用或重启设备后仍应运行的可延期异步任务” 。那么我们来了解一下他到底是...

2021-02-06