
AMS
文章平均质量分 86
起司锅仔
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ActivityManagerService bindService(7)
Android中Service是一个非常常用的组件,尤其是系统应用开发时,Service使用甚至会比Activity的频率更高。先说一下为什么需要Service吧,在刚刚接触Android开发的时候我非常不理解Service是什么,会把他和线程搞混,认为Service的作用和一个线程差不多,当时还在想为什么需要Service,直接启动一个线程来做需要做的工作不就行了吗?原创 2024-09-22 16:14:48 · 1216 阅读 · 0 评论 -
ActivityManagerService 分发广播(6)
上一节我们看了发送广播流程,主要是将广播信息封装至BroadcastRecord,然后通过BroadcastQueueImpl/BroadcastQueueModernImpl的enqueueBroadcastLocked来发送广播。这一节我们来看一下AMS是怎么分发广播的流程,BroadcastQueueImpl/BroadcastQueueModernImpl是两套策略,只是分发的模式不同,我们主要关心流程,策略细节就不去关注了,我们这里就挑BroadcastQueueImpl来看一下分发的流程。原创 2024-09-20 23:19:24 · 1433 阅读 · 0 评论 -
ActivityManagerService 发送广播(5)
AMS主要管理的四大组件,Activity,Service,Broadcast,ContentProvider。其中Activity和Service有一定类似,ContentProvider使用的场景比较少,广播的使用场景还是比较多的,常常用于跨进程通信,在系统中系统应用和系统通信使用的更多。广播的使用非常方便,比直接使用aidl binder更加容易,所以一般如果通信频率不是非常高,都会通过广播来做进程间通信,我们这一节就来看一下app发送广播SystemServer做了什么。原创 2024-09-19 22:22:07 · 793 阅读 · 0 评论 -
ActivityManagerService app状态流转(4)
等生命周期,前面在介绍Activity启动流程时,我们提到过SystemServer会通过ClientTransaction来通知app更新生命周期状态变化,以前SystemServer和app会来回通信,onCreate、onResume都会通过binder回调app侧,而新版本的Android在这里做了一定的优化,SystemServer只会通过一次binder通知app要达到的最终状态,app侧会自己控制状态流转到目标状态,这样就减少了binder通信的次数。原创 2024-09-18 21:41:54 · 1028 阅读 · 0 评论 -
ActivityManagerService 启动进程(3)
上一节我们介绍了Activity的启动流程,这一节会在上一节的基础上介绍当要启动的Activity所在的进程之前没有启动,这个情况下是怎么样启动一个新的进程,并且继续启动Activity。我们知道Android是基于linux系统开发的,而linux系统启动一个应用进程都是通过原来的进程fork出来的,Android里面的app都是通过Zygote进程fork启动的。原创 2024-09-17 19:46:15 · 1563 阅读 · 0 评论 -
ActivityManagerService Activity的启动流程(2)
提到ActivityManagerService,最重要的流程之一就是启动Activity了。原创 2024-09-16 15:36:02 · 2372 阅读 · 0 评论 -
ActivityManagerService 简述(1)
Activity启动流程是一个非常重要的流程,它对我们理解app生命周期会有非常大的帮助,Activity启动会分两个场景,一个是进程之前并未启动的情况,需要启动进程,另一个是进程之前已经启动了,我们之需要启动Activity即可。我们会分别来看这两个情况,其中我们还可以了解到app进程是如何启动的,了解这个流程会让应用开发者对Android app进程和平时接触的四大组件有更好的理解。除此之外我们还会了解一下广播和服务是如何实现的,这两个流程相对于Activity而言会简单一些。原创 2024-09-16 15:33:50 · 548 阅读 · 0 评论