獨孤碼農

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

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 SystemProperties属性分析

SystemProperties.set方法可以设置系统属性,通过设置系统属性可以启动一些服务和操作,如关机,重启,uncrypt服务等

SystemProperties.set方法可以设置系统属性,通过设置系统属性可以启动一些服务和操作,如关机,重启、uncrypt服务等。下面将分析为什么设置系统属性,可以做到即时生效某些操作。 下面将以SystemProperties.set(“ctl.start”, “uncrypt”);为例说明整个流程。 一、属性服务客户端 1....

Android10 BroadcastCast广播原理分析

广播(BroadcastCast)用于进程/线程间的通信,广播有发送广播和接收广播两部分组成

一、概述 广播(BroadcastCast)用于进程/线程间的通信,广播有发送广播和接收广播两部分组成,其中广播接收者BroadcastReceiver是四大组件之一。 BroadcastReceiver分为两类: 静态广播:通过AndroidManifeset.xml的标签来注册BroadcastRece...

Android10 ContentProvider原理分析

ContentProvider用于提供数据的统一访问格式,封装具体的实现。对于数据的使用无需知道是数据库、文件、网络

一、概述 ContentProvider用于提供数据的统一访问格式,封装具体的实现。对于数据的使用无需知道是数据库、文件、网络,只需要使用ContentProvider的数据操作接口,即增(insert)删(delete)改(update)查(query...

系统死锁导致的死机案例分析

内核出现死锁导致的系统死机

1. 问题现象 界面定住,没有任何刷新,所有输入事件无效,包括电源键;watchdog没有重启system_server;问题现场可以连接adb; 执行ps命令卡住; 2. 初步分析 对于死机问题,我们需要做一些分析前的准备工作: (1)拿...

Android10 StartActivity启动过程分析

startActivity的整体流程和startService相近,启动后都是通过AMS来完成的。但相比service启动更加复杂

一、概述 startActivity的整体流程和startService相近,启动后都是通过AMS来完成的。但相比service启动更加复杂,多了任务栈、UI、生命周期。其启动流程如下: 二、启动流程 启动Activity,一般是用startActivity。 2.1 Activity.startActivity [->Acti...

Android10 StartService启动过程分析

这篇文章分析一下StartService 的整体启动流程

一、概述 前面已经介绍了详细介绍了管理Android四大剑客Activity、Service、Broadcast、ContentProvider的ActivityManagerService启动的详细流程,这里讲从应用startService的启动过程来分析AMS。 ActivityManagerService相关的类图如下: 启动服务通过startServie...

Android10 APK安装过程分析

本篇文章我们来学习一下APK安装的过程

1.概述 Android应用安装有如下四种方式: 1)系统应用和预制应用安装――开机时完成,没有安装界面,在PKMS的构造函数中完成安装 2)网络下载应用安装――通过应用商店应用完成,调用PackageManager.installPackages(),有安装界面。 3)ADB工具安装――没有安装界面,...

Android10 Installd守护进程

PackageManagerService底层真正干活的是installd,通过Native Binder调用,实现应用的安装

PackageManagerService真正干活的是installd,通过Native Binder调用。 为什么需要installd守护进程?因为权限问题,PKMS只有system权限,installd却具有root权限。 在SystemServer中installd服务启动 1、客服端实现 //启动installer服务,PKMS相关任务的执行者 // Wait for instal...

Android10 PKMS相关类分析

本文罗列学习一下与PackageManagerService相关的一些类

1.Settings类 // Settins文件 data/system/packages.xml private final File mSettingsFilename; //这个文件不一定存在,是备份文件,如果存在则说明更新packages.xml出错 //data/system/packages_backup.xml private final File mBackupSetti...

Android10 PKMS启动过程分析

PackageManagerService是Android系统核心服务之一,今天我们就来学习一下启动的过程

1.概述 PackageManagerService是Android系统核心服务之一,主要负责的功能如下: 解析 AndroidManifest.xml,主要包括AndroidManifest中节点信息的解析和target-name的分析和提炼 扫描本地文件,主要针对apk,主要是系统应用、本地安装应用等等。这部分会在下面仔...