logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Android 匿名共享内存驱动源码分析

Android系统的匿名共享内存Ashmem驱动程序利用了Linux的共享内存子系统导出的接口来实现,本文通过源码分析方式详细介绍Android系统的匿名共享内存机制。在Android系统中,匿名共享内存也是进程间通信方式的一种。相比于malloc和anonymous/named mmap等传统的内存分配机制,Ashmem的优势是通过内核驱动提供了辅助内核的内存回收算法机制(pin/unpin)。

Android 启动过程介绍

一般开机过程大致可以分为三个大阶段:1. OS级别,由bootloader载入linux kernel后,kernel开始初始化, 并载入built-in的驱动程序。Kernel完成开机后,载入init process,切换至user-space后,结束kernel 的循序过程(sequence),进入排程模式(process scheduling)。2. Android-leve

Android Init进程源码分析

Init 进程源码分析基于Linux内核的android系统,在内核启动完成后将创建一个Init用户进程,实现了内核空间到用户空间的转变。在Android启动过程介绍一文中介绍了Android系统的各个启动阶段,init进程启动后会读取init.rc配置文件,通过fork系统调用启动init.rc文件中配置的各个Service进程。init进程首先启动启动android的服务大管家S

#android#linux
Android 系统属性SystemProperty分析

Android System Property属性变更的请求时init事件循环处理的另一个事件,在Android平台中,为了让运行中的所有进程共享系统运行时所需要的各种设置值,系统开辟了属性存储区域,并提供了访问该区域的API。属性由键(key)与值(value)构成,其表现形式为“键=值”。在Linux系统中,属性服务主要用来设置环境变量,提供各进程访问设定的环境变量值。在And

Android显示系统设计框架介绍

1. Linux内核提供了统一的framebuffer显示驱动,设备节点/dev/graphics/fb*或者/dev/fb*,以fb0表示第一个显示屏,当前实现中只用到了一个显示屏。2. Android的HAL层提供了Gralloc,分为fb和gralloc两个设备。设备fb负责打开内核中的framebuffer以及提供post、setSwapInterval等操作,设备gralloc则负责

Android IPC数据在内核空间中的发送过程分析

在上一篇文章Android请求注册服务过程源码分析中从Java层面和C++层面分析了服务请求注册的过程,无论Java还是C++最后都是将需要发送的数据写入的Parcel容器中,然后通过Binder线程持有对象IPCThreadState向Binder驱动发送,本文继续在Android请求注册服务过程源码分析的基础上更深入地介绍服务注册的整个过程。客户进程向ServiceManager进程发送I

#android#java
Android Binder通信机制

Binder是Android系统进程间通信(IPC)方式之一。Linux已经拥有管道,systemVIPC,socket等IPC手段,却还要倚赖Binder来实现进程间通信,说明Binder具有无可比拟的优势。深入了解Binder并将之与传统IPC做对比有助于我们深入领会进程间通信的实现和性能优化。本文将对Binder的设计细节做一个全面的阐述,首先通过介绍Binder通信模型和Binde

#android#java
Android硬件抽象Hardware库加载过程源码分析

作为开放而非开源的Android系统,由于其基于Linux内核实现,在不违背Linux基于GPL许可前提下,为了隐藏各厂家自身特定硬件驱动实现细节,在用户空间定义了一套硬件抽象层,对硬件的操作细节从内核空间转移到用户空间。各厂商在Android的硬件抽象层实现特定硬件的操作细节,并编译成动态库,以库的形式提供给用户使用。因此Android就提供了一套访问硬件抽象层动态库的接口,各厂商只需要为他们的

AndroidO Treble架构分析

从AndroidO开始,google引入了Treble架构,目的是为了方便系统升级,将oem定制的东西和Framework分离。AndroidO之前的版本:在此之前的Android系统架构当中,Android Framework与Android HAL是打包成一个system.img的,而且Framework与HAL之间是紧耦合的,通过链接的方式使用相应的硬件相关so库。老版本的android 的

Android安装服务installd源码分析

在Android系统中,PackageManagerService用于管理系统中的所有安装包信息及应用程序的安装卸载,但是应用程序的安装与卸载并非PackageManagerService来完成,而是通过PackageManagerService来访问installd服务来执行程序包的安装与卸载的。PackageManagerService通过套接字的方式访问installd服务进程

    共 13 条
  • 1
  • 2
  • 请选择