android framework
文章平均质量分 65
总结android framework
rockstore
这个作者很懒,什么都没留下…
展开
-
一场Toast引发的血案---WindowManager
在一场Toast引发的血案—Toast的显示中,已经大致了解了Toast的显示过程,但是还是有很多疑惑,Toast最终现实的时候是要通过WindowManager添加到一个Window的,但是这个WindowManager是哪个WindowManager,带着这个疑惑,我们开始深入。可能在此之前对Window不是很了解,但这不影响对WindowManager的理解,只需要大概知道一个Activ...原创 2018-07-07 17:52:19 · 697 阅读 · 0 评论 -
一场Toast引发的血案---Toast的显示
最普通不过的Toast我们进场使用,有没有想过这样的问题,可不可以在显示的时候取消Toast的显示,Toast到底是被添加到哪个Window的,WindowManager是如何添加Toast的,在添加Toast的时候总共有几个WindowManager参与,参与Toast显示的WindowManager是如何产生的……好吧,想到这么多的时候,我感觉头绪有点乱,还是从最简单的开始吧,先看下Toa...原创 2018-07-07 16:06:48 · 2618 阅读 · 2 评论 -
startService启动流程---Service在非App进程且未启动
在 Service启动流程(startService)的最后,分析了在调用startService时可能存在的三种情况,本文分析第三种情况—Service不在App进程且未启动。 Service启动流程(startService)最后已经说明,在这种情况下,系统会执行startProcessLocked函数。startProcessLocked函数是不是很熟悉,在前面分析Activity从La...原创 2018-04-19 21:36:01 · 1294 阅读 · 0 评论 -
startService启动流程---Service在App进程但未启动
在Service启动流程(startService)的最后,分析了在调用startService时可能存在的三种情况,本文分析第二种情况—Service与App在同一个进程,但未启动。 Service启动流程(startService)最后已经说明,在这种情况下,系统会执行realStartServiceLocked函数。 private final void realStartSer...原创 2018-04-19 16:29:03 · 1938 阅读 · 0 评论 -
startService启动流程---Service已经启动
在Service启动流程(startService)的最后,分析了在调用startService时可能存在的三种情况,本文分析第一种情况—Service已经启动。 Service启动流程(startService)中已经说明了Service已经启动时会执行函数sendServiceArgsLocked(r, false),接下来我们会分段分析这个函数。private final void...原创 2018-04-19 15:26:10 · 1376 阅读 · 0 评论 -
Service启动流程(startService)
前面分析了Activity的启动流程,下面开始分析Service的启动,本文分析的是startService的流程,android的版本为4.1.2@Overridepublic ComponentName startService(Intent service) { warnIfCallingFromSystemProcess(); return startServiceC...原创 2018-04-19 14:10:04 · 1384 阅读 · 0 评论 -
Activity启动流程总结---通信流程
通信概述Activity启动流程已经看完了,需要好好总结下。前面几篇描述Activity的启动流程是Activity所在应用进程未启动的情况下,直接点击Launcher界面的图标启动Activty的流,系统为android 4.1.2Activity的启动流程中,涉及到的进程有三个,Launcher, 应用进程(下文以App表示)、ActivityManangerService。他们三个进...原创 2018-04-11 22:03:30 · 600 阅读 · 0 评论 -
Activity启动流程(4)
在Activity启动流程(3)中,Launcher已经执行了onPause方法,并告知了ActivityManagerService,本篇就分析下ActivityManagerService收到Launcher的通知后会执行的操作。 ActivityManagerService类activityPausedpublic final void activityPaused(IBind...原创 2018-04-09 01:26:17 · 328 阅读 · 0 评论 -
Activity启动流程(3)
Activity启动流程(2)中详述了从Launcher启动一个应用时,ActivityManangerService进程的第一部分逻辑,这部分逻辑的主要工作总结起来就是解析即将启动的Activty信息,设置Activity Task,设置Launcher的UI逻辑,为即将启动的Activity做准备。本篇的主要内容是理解Launcher的pause过程。 在ctivity启动流程(2),A...原创 2018-04-03 01:09:19 · 185 阅读 · 0 评论 -
Activity的启动过程(2)
在Activity启动流程(1)中,Activity的启动经过binder通信就会进入ActivityManagerService所在的进程中继续执行startActivity方法,由于后续的方法涉及的逻辑比较多,在后面的分析中我可能会把某一个函数单独拿出来分析,最后我会做一个启动流程的总结。 ok,接下来看下startActivity的实现: ActivityManangerServ...原创 2018-03-29 21:15:46 · 385 阅读 · 1 评论 -
Activity的启动流程(1)
一直在使用Activity,今天开始就来看下这个Activity究竟是如何启动的。 Activity分为根Activity和应用内Activity,根Activity就是我们点击手机屏幕上的icon时启动的Activity,应用内Activity就是我们应用内部跳转的Activity。今天我们从根Activity开始分析它的启动流程。 点击手机屏幕上的icon,其实就是android的Laun...原创 2018-03-17 02:04:04 · 210 阅读 · 0 评论 -
resolveActivity解析
resolveActivity是Activity创建过程中非常重要的一个函数,会在ActivityStack的startActivityMayWait中调用。这个函数的主要作用就是根据intent去收集需要启动的activity的信息,看下函数的原型: ActivityInfo resolveActivity(Intent intent, String resolvedType, bo...原创 2018-03-27 18:55:01 · 11669 阅读 · 0 评论