獨孤碼農

毕生求一败而不可得 终埋剑于剑冢 诚寂寥难堪也

Android10系统架构和学习总纲

本文为Android10系统架构和学习总纲,会分类列出博主学习android10的所有博文,方便大家查阅

一.Android系统架构 Android系统架构分为五层,从上到下依次是应用层、应用框架层、系统运行库层、硬件抽象层和Linux内核层,下图是一张官网经典的架构分层图 应用层 系统内置的应用程序以及非系统级的应用程序都是属于应用层。负责与用户进行直接交互,通常都是用Java进行开发的。 应用框架层(Java Framework) 应用框...

Android源码查看和下载

汇总一下android源码下载和在线查看的网站和方法

本文最后更新于 2021-07-25 更新内容:删除了访问不了的网站,更新网站截图,添加新的资源网站    学习研究android系统,最直接最好的方法就是阅读源码(Read The Fucking Source Code),本篇教程汇总一下能够查看android源码的网站和下载源码的方法 一 在线查看 https://source.android.com/source/ 首...

Android10 lowmemorykiller机制学习

Android底层还是基于Linux,在Linux中低内存是会有oom killer去杀掉一些进程去释放内存

1.概述 Android底层还是基于Linux,在Linux中低内存是会有oom killer去杀掉一些进程去释放内存,而Android中的lowmemorykiller就是在此基础上做了一些调整来的。因为手机上的内存毕竟比较有限,而Android中APP在不使用之后并不是马上被杀掉,虽然上层ActivityManagerService中也有很多关于进程的调度以及杀进程的手段,但是毕竟还需要...

JNI修改引入的死机案例

对系统底层接口的修改一定要慎重,否则会引入各种问题

1. 问题现象 滑动屏幕和按键都无响应,屏幕内容没有任何刷新; watchdog没有重启system_server; 问题现场可以连接adb; 2. 初步分析 对于死机问题,我们需要做一些分析前的准备工作: (1)拿到问题现场,及时充电以保证问题现场不被破坏;...

Android10系统启动之Launcher启动详解

这篇文章我们来详细学习下Android10系统启动中Launcher启动过程

1.概述 上一节我们学习了AMS\ATM的启动流程,这一节主要来学习Launcher的启动流程。 在Android的中,桌面应用Launcher由Launcher演变到Launcher2,再到现在的Launcher3,Google也做了很多改动。 Launcher不支持桌面小工具动画效果,Launc...

Android10系统启动之AMS服务启动详解

这篇文章我们来详细学习下Android10系统启动中AMS服务启动过程

1.概述 上一节我们讲完了SystemServer的启动过程,这一节接着上一节的步骤,来讲解ActivityManagerService的启动过程。 ActivityManagerService简称AMS,具有管理Activity行为、控制activity的生命周期、派发消息事件、内存管理等功能。 2.核心源码 /frameworks/bas...

Android10系统启动之SystemServer进程详解

这篇文章我们来详细学习下Android10系统启动中SystemServer进程的启动过程

1.概述 上一节讲解了Zygote进程的整个启动流程。Zygote是所有应用的鼻祖。SystemServer和其他所有Dalivik虚拟机进程都是由Zygote fork而来。Zygote fork的第一个进程就是SystemServer,其在手机中的进程名为 system_server。 system_server 进程承载着整个framework的核心服务,例...

Android10系统启动之Zygote进程详解

这篇文章我们来详细学习下Android10系统启动中Zygote进程的启动过程

1.概述 上一节接讲解了InIt进程的整个启动流程。Init进程启动后,最重要的一个进程就是Zygote进程,Zygote是所有应用的鼻祖。SystemServer和其他所有Dalivik虚拟机进程都是由Zygote fork而来。 Zygote进程由app_process启动,Zygote是一个C/S模型,Zygote进程作为服务端,...

Android10系统启动之init进程详解

这篇文章我们来详细学习下Android10系统启动中init进程的启动过程

1.概述: init进程是linux系统中用户空间的第一个进程,进程号为1. 当bootloader启动后,启动kernel,kernel启动完后,在用户空间启动init进程,再通过init进程,来读取init.rc中的相关配置,从而来启动其他相关进程以及其他操作。 init进...

Android10系统启动概述

Android10系统启动大纲,后面有时间将会详细分析每一个启动阶段

本文总结一下android10系统启动的整个流程,作为系统启动系列文章的开篇大纲 系统启动相关文章列表 Android10系统启动之init进程详解 Android10系统启动之Zygote进程详解 Android10系统启动之SystemServer进程详解 Android10系统启动之AMS服务启动详解 Android10系统启动之Launcher启动详解/...

Android10系统源码编译

Android10系统源码编译步骤和遇到的问题记录

本文适合想要基于ubuntu18.04系统编译android10系统源码的人查看 一 硬件环境 在ubuntu18.04系统中下载编译android10(Q)源码需要如下条件. 1,至少4G内存,小于4G内存编译源码期间的等待将会是很痛苦的一件事. 2,至少200G硬盘,越大越好,我在编译的过程中使用的是虚拟机,第一次编译分配了150硬盘不够用,最后不得已折腾了三天重装了一次系统分...