Gityuan

Keep on going never give up

[置顶]Android开篇

基于Android 6.0的源码,专注于分享Android系统原理、架构分析的原创文章,这是Android系列文章的开篇。

多用户管理UserManager

基于Android 6.0的源码剖析多用户模型 framework/base/services/core/java/com/android/server/pm/UserManagerService.java framework/base/core/java/android/os/UserManager.java framework/base/core/java/android/co...

Installd守护进程

基于Android 6.0的源码剖析installd的过程 system/core/rootdir/init.rc frameworks/base/cmds/installd/installd.cpp rameworks/base/cmds/installd/commands.cpp rameworks/base/cmds/installd/utils.cpp 一、 概述 ...

PackageManager启动篇

基于Android 6.0源码, 分析PackageManagerService的启动过程 frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java frameworks/base/services/core/java/com/android/server/pm/Packa...

理解Binder线程池的管理

基于Android 6.0源码剖析,分析Binder线程池以及binder线程启动过程。 frameworks/base/cmds/app_process/app_main.cpp frameworks/native/libs/binder/ProcessState.cpp framework/native/libs/binder/IPCThreadState.cpp kernel...

Android进程绝杀技--forceStop

基于Android 6.0源码剖析,force-stop的全过程 一.概述 1.1 引言 话说Android开源系统拥有着App不计其数,百家争鸣,都想在这“大争之世”寻得系统存活的一席之地。然则系统资源有限,如若都割据为王,再强劲的CPU也会忙不过来,再庞大的内存终会消耗殆尽,再大容量的电池续航终会昙花一现。 面对芸芸众生,无尽变数,系统以不变应万变,一招绝杀神技forceS...

Android四大组件与进程启动的关系

一. 概述 Android系统将进程做得很友好的封装,对于上层app开发者来说进程几乎是透明的. 了解Android的朋友,一定知道Android四大组件,但对于进程可能会相对较陌生. 一个进程里面可以跑多个app(通过share uid的方式), 一个app也可以跑在多个进程里(通过配置Android:process属性). 再进一步进程是如何创建的, 可能很多人不知道fork的存在....

binderDied()过程分析

一. 概述 理解Android进程启动之全过程介绍了进程是如何从AMS.startProcessLocked一步步创建的; 当进程不再需要时便会有杀进程的过程; 理解杀进程的实现原理介绍了Process.killProcess()如何一步步地将进程杀死. 当系统内存不足时,会触发lmk杀进程; 以及系统本身通过AMS也会控制系统中各个状态的进程个数上限. 当进程真正的被杀死之后,通过bi...

理解Android线程创建流程

基于Android 6.0源码剖析,分析Android线程的创建过程 /android/libcore/libart/src/main/java/java/lang/Thread.java /art/runtime/native/java_lang_Thread.cc /art/runtime/native/java_lang_Object.cc /art/runtime/thre...

Android LowMemoryKiller原理分析

frameworks/base/services/core/java/com/android/server/am/ProcessList.java platform/system/core/lmkd/lmkd.c kernel/common/drivers/staging/Android/lowmemorykiller.c 一. 概述 Android的设计理念之一,便是应用程序退出,...

彻底理解Android Binder通信架构

基于Android 6.0的源码剖析, 本文深度剖析Binder IPC过程, 这绝对是一篇匠心巨作,从Java framework到Native,再到Linux Kernel,带你全程看Binder通信过程. 一. 引言 1.1 Binder架构的思考 Android内核是基于Linux系统, 而Linux现存多种进程间IPC方式:管道, 消息队列, 共享内存, 套接字, 信...