Process篇 6 - 从 dumpsys meminfo 看进程的优先级
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 流程分析
本文基于 Android 7.1.1 源码分析,转载请说明出处! 0 综述我们在应用中经常会启动 Service: 1context.bindService(intent, mConnection, Service.BIND_AUTO_CREATE); 以前我们只是会调用,但是其底层的调用到底是什么样的呢?知其然知其所以然,今天我们就来学习下 bindService 的过程! 如果之前并不了解这块 ...
阅读更多
Process篇 5 - 进程的 oomAdj 调度算法
[toc] 基于 Android 7.1.1 源码,总结进程状态调整的调度策略! 1 进程 oomAdj 的调度方法和进程的 oomAdj 调度相关的主要有`3 个方法: updateOomAdjLocked:用于更新进程的 adj,该方法会依次调用 computeOomAdjLocked 和 applyOomAdjLocked; computeOomAdjLocked:计算进程的 adj,返回 ...
阅读更多
BroadcastReceiver篇 5 - sendBroadcast 流程分析
[toc] 本文基于 Android 7.1.1,分析发送广播的流程,转载请说明出处! 写本文的目的: 了解广播发送的流程; 了解 AMS 对广播接收者组件的管理; 记录自己的研究和分析; 0 综述在 Android 系统中,有如下种类的广播,他们的发送方式各不一样,我们先来简单的了解一下: 1. 普通广播 发送普通广播的方法如下:123sendBroadcast(...)sendBroadc ...
阅读更多
BroadcastReceiver篇 4 - BroadcastReceiver 静态注册
[toc] 本文基于 Android 7.1.1 源码,分析 BroadcastReceiver 的静态注册过程,转载请说明出处,谢谢! 0 综述广播接收者除了动态注册之外,还有静态注册,就是在 AndroidManifest.xml 文件中进行配置! 123456789101112<receiver android:enabled=["true" | "false"] and ...
阅读更多
BroadcastReceiver篇 3 - unregisterReceiver 和 TimeOut 流程分析
[toc] 基于 Android 7.1.1 源码,分析 BroadcastReceiver 动态注册 的过程,转载请说明出处! 0 综述BroadcastReceiver 动态注册后,需要动态取消注册: 1public void unregisterReceiver(BroadcastReceiver receiver); 下面,我们来进入源码,分析 unregisterReceiver 的流程 ...
阅读更多
BroadcastReceiver篇 2 - registerReceiver 动态注册流程分析
[toc] 基于 Android 7.1.1 源码,分析 BroadcastReceiver 动态注册 的过程,转载请说明出处! 0 综述BroadcastReceiver 动态注册,就是应用程序在运行过程中,调用 registerReceiver 方法注册:12345678910111213@Overridepublic Intent registerReceiver( Broadcast ...
阅读更多
JobScheduler第 8 篇 - JobInfo JobStatus 和 JobParameters
基于 Android 7.1.1 源码分析,本文为原创,转载请说明出处,谢谢! 前言这一篇我们来分析一下 JSS 中的一些对象,看看我们能对 job 做哪些属性的设置: JobInfo JobStatus JobParameters 1 JobInfo我们先来看看 JobInfo 的简化结构: 123456789public class JobInfo implements Parcelab ...
阅读更多
JobScheduler第 7 篇 - JobSchedulerService - package and uid change
基于 Android 7.1.1 源码分析: 前言我们想象这样的场景,如果有一个应用,它 schedule 了一些 job, 这些 job 可能正在运行,可能在 pending!这个时候,用户卸载了这个应用,那这个应用对应的 job 该何去何从?这里就要涉及到 package change 对 job 的影响了! 同时,进程优先级的变化,其实也会影响进程内的 job 的优先级! 我们回到 JSS ...
阅读更多
JobScheduler第 6 篇 - JobSchedulerService - job controll
基于 Android 7.1.1 源码分析,分析 job controller 的实现机制! 前言我们知道,当我们把 job schedule 进入 JobSchedulerService 中后,JobSchdulerService 会拉起它,之前我们分析了用户主动 cancel 和 jobFinished job 时,具体的函数调用,而对于 job 除了受的到用户的主动操作之外,还有 contr ...
阅读更多