BroadcastReceiver篇 3 - unregisterReceiver 和 TimeOut 流程分析|AndroidFramework源码分析BroadcastReceiver广播接收者|BroadcastReceiver广播接收者[toc]
基于 Android 7.1.1 源码,分析 BroadcastReceiver 动态注册 的过程,转载请说明出处!
0 综述BroadcastReceiver 动态注册后,需要动态取消注册:
1public void unregisterReceiver(BroadcastReceiver receiver);
下面,我们来进入源码,分析 unregisterReceiver 的流程 ...
阅读更多
BroadcastReceiver篇 2 - registerReceiver 动态注册流程分析|AndroidFramework源码分析BroadcastReceiver广播接收者|BroadcastReceiver广播接收者[toc]
基于 Android 7.1.1 源码,分析 BroadcastReceiver 动态注册 的过程,转载请说明出处!
0 综述BroadcastReceiver 动态注册,就是应用程序在运行过程中,调用 registerReceiver 方法注册:12345678910111213@Overridepublic Intent registerReceiver( Broadcast ...
阅读更多
JobScheduler第 8 篇 - JobInfo JobStatus 和 JobParameters|AndroidFramework源码分析JobScheduler任务调度|JobScheduler任务调度基于 Android 7.1.1 源码分析,本文为原创,转载请说明出处,谢谢!
前言这一篇我们来分析一下 JSS 中的一些对象,看看我们能对 job 做哪些属性的设置:
JobInfo
JobStatus
JobParameters
1 JobInfo我们先来看看 JobInfo 的简化结构:
123456789public class JobInfo implements Parcelab ...
阅读更多
JobScheduler第 7 篇 - JobSchedulerService - package and uid change|AndroidFramework源码分析JobScheduler任务调度|JobScheduler任务调度基于 Android 7.1.1 源码分析:
前言我们想象这样的场景,如果有一个应用,它 schedule 了一些 job, 这些 job 可能正在运行,可能在 pending!这个时候,用户卸载了这个应用,那这个应用对应的 job 该何去何从?这里就要涉及到 package change 对 job 的影响了!
同时,进程优先级的变化,其实也会影响进程内的 job 的优先级!
我们回到 JSS ...
阅读更多
JobScheduler第 6 篇 - JobSchedulerService - job controll|AndroidFramework源码分析JobScheduler任务调度|JobScheduler任务调度基于 Android 7.1.1 源码分析,分析 job controller 的实现机制!
前言我们知道,当我们把 job schedule 进入 JobSchedulerService 中后,JobSchdulerService 会拉起它,之前我们分析了用户主动 cancel 和 jobFinished job 时,具体的函数调用,而对于 job 除了受的到用户的主动操作之外,还有 contr ...
阅读更多
JobScheduler第 5 篇 - JobSchedulerService - jobFinished|AndroidFramework源码分析JobScheduler任务调度|JobScheduler任务调度基于 Android 7.1.1 源码分析
前言当任务完成时,应用需要手动调用 jobFinished 方法,这个方法是属于 JobService 的:123456public final void jobFinished(JobParameters params, boolean needsReschedule) { ensureHandler(); Message m = ...
阅读更多
JobScheduler第 4 篇 - JobSchedulerService - cancel|AndroidFramework源码分析JobScheduler任务调度|JobScheduler任务调度基于 Android 7.1.1 源码分析
前提接下来,我们来看看 JobServiceService 服务中和 cancel 相关的服务:1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556// 取消指定设备用户的所有的 job!void ca ...
阅读更多
JobScheduler第 3 篇 - JobSchedulerService - schedule|AndroidFramework源码分析JobScheduler任务调度|JobScheduler任务调度基于 Android 7.1.1 源码分析,本文为作者原创,转载请说明出处,谢谢。
前言我们先从基本的方法开始,也就是 schedule 方法,方法参数传递:
JobInfo job:需要 schedule 的任务!
int uId:调用方的 uid!
12345678910111213141516171819202122232425262728293031323334353637383940 ...
阅读更多
Process篇 4 - 进程的 priority 和 oomAdj 简析|AndroidFramework源码分析Process进程|Process进程基于 Android 7.1.1 源码,分析和总结进程相关的知识!
本文参考:
1https://developer.android.com/guide/components/processes-and-threads.html
1 进程的重要性层次进程的重要性层次一共有 5 级,以下的部分内容截取自 Android Developer Guide!
From Android Develope ...
阅读更多
Serivce 篇 3 - stopService 流程分析|AndroidFramework源码分析Service服务|Service服务本文基于 Android 7.1.1 源码分析,转载请说明出处!
0 综述我们通过 startService 启动的服务,需要通过 stopService 来停止:
1context.stopService(intent);
以前我们只是会调用,但是其底层的调用到底是什么样的呢?知其然知其所以然,今天我们就来学习下 stopService 的过程!
如果之前并不了解这块逻辑的话,那该如何去学习呢? ...
阅读更多