Process篇 6 - 从 dumpsys meminfo 看进程的优先级|AndroidFramework源码分析Process进程|Process进程0 前言基于 android 7.1.1 源码,分析和总结 Process 相关知识!
1 dumpsys meminfo –oomdumpsys meminfo 可以来看系统的内存使用情况,这里我们重点关注:Total PSS by OOM adjustment:
默认的 dumpsys meminfo 是出了可以看 Total PSS by OOM adjustment,还可以看 Total ...
阅读更多
Serivce 篇 4 - bindService 流程分析|AndroidFramework源码分析Service服务|Service服务本文基于 Android 7.1.1 源码分析,转载请说明出处!
0 综述我们在应用中经常会启动 Service:
1context.bindService(intent, mConnection, Service.BIND_AUTO_CREATE);
以前我们只是会调用,但是其底层的调用到底是什么样的呢?知其然知其所以然,今天我们就来学习下 bindService 的过程!
如果之前并不了解这块 ...
阅读更多
Process篇 5 - 进程的 oomAdj 调度算法|AndroidFramework源码分析Process进程|Process进程[toc]
基于 Android 7.1.1 源码,总结进程状态调整的调度策略!
1 进程 oomAdj 的调度方法和进程的 oomAdj 调度相关的主要有`3 个方法:
updateOomAdjLocked:用于更新进程的 adj,该方法会依次调用 computeOomAdjLocked 和 applyOomAdjLocked;
computeOomAdjLocked:计算进程的 adj,返回 ...
阅读更多
BroadcastReceiver篇 5 - sendBroadcast 流程分析|AndroidFramework源码分析BroadcastReceiver广播接收者|BroadcastReceiver广播接收者[toc]
本文基于 Android 7.1.1,分析发送广播的流程,转载请说明出处!
写本文的目的:
了解广播发送的流程;
了解 AMS 对广播接收者组件的管理;
记录自己的研究和分析;
0 综述在 Android 系统中,有如下种类的广播,他们的发送方式各不一样,我们先来简单的了解一下:
1. 普通广播
发送普通广播的方法如下:123sendBroadcast(...)sendBroadc ...
阅读更多
BroadcastReceiver篇 4 - BroadcastReceiver 静态注册|AndroidFramework源码分析BroadcastReceiver广播接收者|BroadcastReceiver广播接收者[toc]
本文基于 Android 7.1.1 源码,分析 BroadcastReceiver 的静态注册过程,转载请说明出处,谢谢!
0 综述广播接收者除了动态注册之外,还有静态注册,就是在 AndroidManifest.xml 文件中进行配置!
123456789101112<receiver android:enabled=["true" | "false"] and ...
阅读更多
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 ...
阅读更多