JobScheduler第 5 篇 - JobSchedulerService - jobFinished
基于 Android 7.1.1 源码分析 前言当任务完成时,应用需要手动调用 jobFinished 方法,这个方法是属于 JobService 的:123456public final void jobFinished(JobParameters params, boolean needsReschedule) { ensureHandler(); Message m = ...
阅读更多
JobScheduler第 4 篇 - JobSchedulerService - cancel
基于 Android 7.1.1 源码分析 前提接下来,我们来看看 JobServiceService 服务中和 cancel 相关的服务:1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556// 取消指定设备用户的所有的 job!void ca ...
阅读更多
JobScheduler第 3 篇 - JobSchedulerService - schedule
基于 Android 7.1.1 源码分析,本文为作者原创,转载请说明出处,谢谢。 前言我们先从基本的方法开始,也就是 schedule 方法,方法参数传递: JobInfo job:需要 schedule 的任务! int uId:调用方的 uid! 12345678910111213141516171819202122232425262728293031323334353637383940 ...
阅读更多
Process篇 4 - 进程的 priority 和 oomAdj 简析
基于 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 流程分析
本文基于 Android 7.1.1 源码分析,转载请说明出处! 0 综述我们通过 startService 启动的服务,需要通过 stopService 来停止: 1context.stopService(intent); 以前我们只是会调用,但是其底层的调用到底是什么样的呢?知其然知其所以然,今天我们就来学习下 stopService 的过程! 如果之前并不了解这块逻辑的话,那该如何去学习呢? ...
阅读更多
JobScheduler第 2 篇 - JobSchedulerService 的启动
基于 Android 7.1.1 源码分析,本文为原创,转载请说明出处。。。 0 前言JobSchedulerService 服务的启动,是在 SystemServer 的 startOtherServices 方法中:123456789private void startOtherServices() { ... mSystemServiceManager.startService ...
阅读更多
Process篇 2 - Android 进程的创建
[toc] 基于 Android 7.1.1 源码,分析进程的创建! 1 前言当 Android 系统在启动一个应用进程时,如果发现某个进程没有创建,那就要先创建这个进程, Android 系统中每一个应用进程,包括 SystemServer 进程都是由 Zygote 直接孵化出来的! 本片文章,就来总结下进程的 fork 流程! 2 Process - prepare fork我们来继续看: 2 ...
阅读更多
Process篇 1 - Android 进程的启动
[toc] 基于 Android 7.1.1 源码分析,进程 1 前言我们知道,在 Android 系统中,每一个 app 都至少运行在一个进程中的,可以通过配置 Android:process 属性,来使 app 的某个组件运行在不同的进程中的,从而达到一个 app 在运行在多个进程中! 本文将总结和分析 Android 进程启动进程的主要流程,更深入地理解 Android 系统的架构! 2 启 ...
阅读更多
Service 篇 2 - startService 流程分析
基于 Android 7.1.1 源码分析 startService 的流程,本文为作者原创,转载请说明出处! 0 综述我们在应用中经常会启动 Service: 1startService(intent); 这个方法最终会拉起 Service 的 onStartCommand 方法:12345@Overridepublic int onStartCommand(Intent intent, int ...
阅读更多
ActivityManager第 1 篇 - ActivityManagerService 的启动
[toc] 基于 Android 7.1.1 源码分析 AMS 的机制,本文为作者原创,转载请说明出处,谢谢! 0 综述Android 系统开机时,在 SystemService 进程被 Zygote 启动后,SystemSevice 进程需要启动一些系统的重要服务:1234Trace.traceBegin(Trace.TRACE_TAG_SYSTEM_SERVER, "StartService ...
阅读更多