![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android os
文章平均质量分 63
MrPeng1991
这个作者很懒,什么都没留下…
展开
-
android 通信之 BitTube
AOSP中使用BitTube 的地方有显示(Display)子系统和Sensor子系统,在这里一探究竟文章目录1. 概述2 socketpair3 socketpair用法4 BitTube1. 概述BitTube是用来处理进程间通讯的机制,和管道类似,主要是socketpair的封装,2 socketpairsocketpair用来创建一堆未命名的,互相连接的套接字,套接字一端可以进行读写操作,用来实现全双工的通讯。函数原型 int socketpair(int domain, int typ原创 2022-05-05 14:11:37 · 2313 阅读 · 0 评论 -
android so文件与源码路径
libandroid.so——frameworks/base/native/androidlibandroid_runtime.so——frameworks/base/core/jnilibandroidfw.so——frameworks/base/libs/androidfwlibaudioutils.so——system/media/audio_utilslibbinder.so——frameworks/native/libs/binderlibbluedroid.so——system/blu原创 2022-04-14 20:35:51 · 658 阅读 · 0 评论 -
AMS系列- 应用启动流程
todo原创 2021-08-06 00:21:31 · 152 阅读 · 0 评论 -
3 Android硬件访问服务 JNI实现
Android系统的硬件访问服务通常运行在系统进程System中, 而使用这些硬件访问服务的应用程序运行在另外的进程中, 即应用程序需要通过进程间通信机制来访问这些硬件访问服务。Android系统提供了一种高效的进程间通信机制——Binder进程间通信机制, 应用程序就是通过它来访问运行在系统进程System中的硬件访问服务的。 Binder进程间通信机制要求提供服务的一方必须实现一个具有跨进程访问能力的服务接口, 以便使用服务的一方可以通过这个服务接口来访问它。 因此, 在实现硬件访问服务之前, 我们首原创 2021-05-08 01:03:12 · 332 阅读 · 0 评论 -
2. hal硬件抽象层
android系统硬件抽象层以模块形式管理各个硬件访问接口,每个硬件模块都对应一个动态链接库文件,这些动态链接库文件命名都要符合规范。在系统内部,每个硬件抽象层模块都要用结构体hw_module_t来描述, 而硬件设备则使用结构体hw_device_t来描述1 硬件抽象层模块文件命名规范:// hardware/libhardware/hardware.c/** * There are a set of variant filename for modules. The form of the f原创 2021-05-08 00:39:09 · 534 阅读 · 1 评论 -
1.hal 驱动开发
1 编码实现目录结构~/Android/kernel/goldfish drivers freg freg.h # 源代码文件 freg.c # 源代码文件 Kconfig # 编译选项配置文件 Makefile # 编译脚本文件// kernel\goldfish\drivers\freg\freg.h#ifndef _FAKE_REG_H_#def原创 2021-05-07 23:58:44 · 300 阅读 · 2 评论 -
AIDL
1 概述Android Interface Definition Language android接口定义语言,用于定义服务器和客户端通信接口的一种描述语言,可以拿来生成用于IPC的代码,在使用过程中,实际起作用的并不是AIDL文件,而是据此而生成的一个IInterface的实例代码,AIDL其实是为了避免我们重复编写代码而出现的一个模板。设计这门语言的目的就是为了实现进程间通信,android系统中每个进程都运行在一块独立的内存中,与其他进程分割开来。而进程间通信,AIDL就是为满足这种需求而诞生。通原创 2021-05-06 23:25:21 · 513 阅读 · 1 评论 -
anddroid日志系统
anddroid日志系统原创 2021-04-26 00:06:39 · 102 阅读 · 0 评论 -
AMS系列1——AMS启动流程
temp原创 2021-04-13 17:35:49 · 2112 阅读 · 0 评论 -
Android10.0系统启动之Zygote进程
1.概述Inite进程启动后,最重要的一个进程就是Zygote进程,Zygote是所有应用的鼻祖,SystemServer和其他Dalivik虚拟机进程都是由Zygote fork而来。Zygote进程由app_process启动,Zygote是一个C/S模型,Zygote是服务端,其他进程向他发出孵化-fork请求,而Zygote接收到这个请求后就孵化-fork出一个新的进程。由于Zygote进程在启动时会创建Java虚拟机,因此通过fork而创建的应用程序进程和SystemServer进程可以再内原创 2021-03-12 00:58:04 · 345 阅读 · 0 评论 -
HAL
概要编写硬件驱动程序编写C可执行程序访问硬件驱动程序编写jni方法,在应用程序框架层提供java接口访问硬件应用程序框架层增加硬件服务接口编写app通过应用程序框架层访问硬件服务原创 2021-03-04 17:37:55 · 100 阅读 · 1 评论 -
HAL——编写硬件驱动程序
HAL原创 2021-03-07 22:55:41 · 242 阅读 · 0 评论 -
HAL——概要
哈哈原创 2021-03-04 19:29:00 · 135 阅读 · 1 评论 -
selinux for android一、 基础概念
SElinuxSecurity-Enhanced Linux,安全增强型Linux,一个内核模块,也是Linux的安全子系统。由美国国家安全局开发,2.6及以上Linux版本都已经集成了SELinux模块。SElinux结构及配置非常复杂,而且有大量概念性东西,要学精难度很大,很多Linux系统管理员嫌麻烦把SElinux关了。SElinu目的在于明确指明某个进程可以访问哪些资源(文件,网络端口)强制访问控制系统的用途在于增强系统抵御0-Day攻击(利用尚未公开的漏洞实现的攻击行为)的能力。比如:原创 2021-01-15 16:58:28 · 452 阅读 · 0 评论 -
Android学习之路-Android10.0系统启动流程
概述BootRom->BootLoader->Linux Kernel->Init->Zygote->SystemServer->LauncherBootLoader:主要包括Boot Rom和Boot LoaderKernel层:主要是Android 内核层Native层:主要是包括init进程以及其fork出来的用户空间的守护进程、HAL层,开机动画。Java Framework层:主要是AMS和PMS初始化Application层:主要是SystemU原创 2021-01-13 17:19:10 · 1172 阅读 · 0 评论 -
Android学习之路-Android系统架构
系统启动过程核心服务原创 2021-01-08 11:02:08 · 196 阅读 · 0 评论 -
Android硬件抽象层(HAL)
参考老罗的文章,由于老罗的文章比较老,还有版本差异,整理一些坑记录文章目录内核驱动开发下载内核替换打包,输入镜像源码编译配置测试程序HIDL开发内核驱动开发类别版本说明编译环境Ubuntu-16.04.3–LTSLinux-4.10.0-28手机Pixel4Android10.0系统代码AOSP 10.0Kernel 4.14内核代码Kernelrepo分支:android-msm-coral-4.14-android10-qpr3下载内原创 2020-11-18 17:05:30 · 280 阅读 · 0 评论 -
android编译命令
文章目录引言编译命令代码搜索导航指令信息查询其他指令编译系统3.1 Makefile3.2 编译产物Android.mk解析引言source /opt/android1204_17.conf source setenv.shlunchmake -j12编译命令代码搜索导航指令信息查询其他指令编译系统3.1 Makefile3.2 编译产物Android.mk解析...原创 2020-11-18 17:13:08 · 953 阅读 · 0 评论 -
刷机
fastboot是比revovery更底层的刷机模式fastboot刷机必须解锁Bootloader,否则无法刷机,解锁方法,开发者模式 ’ OEM unlcok ’adb reboot bootloaderfastboot flashing unlock一般手机常用音量+进入fastbootmodefastboot rebootadb disable-verityadb rebo...原创 2020-03-12 12:16:17 · 3172 阅读 · 1 评论 -
andorid 系统服务概述
android系统服务提供最基本的,最稳定的核心功能,如设备控制,通知设定,消息显示等。存在与Framework与Android Libraries系统服务分类:本地系统服务java层系统服务本地系统服务:Audio Flinger,Surface Flinger,Media Play Service,Camera Service,Audio Policy Service等,除了Surf...原创 2019-12-16 23:53:27 · 234 阅读 · 0 评论 -
剖析binder
whatIPC涉及的基本概念进程隔离 很好理解,不容进程不能直接访问数据。不再赘述。进程空间划分:用户控件(UserSpace)/内核空间(Kernel Space)系统调用:用户态/内核态现在操作系统都是采用的虚拟存储器,对于 32 位系统而言,它的寻址空间(虚拟存储空间)就是 2 的 32 次方,也就是 4GB。操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空...转载 2019-09-06 13:53:59 · 135 阅读 · 0 评论 -
Android JNI(二)——hello world
两种方式实现NDK第一种: 沿用传统jni方式生成.class文件javah -jni 获取 .h文件学习下图表制作一个具有注脚的文本。[^1]表格项目Value电脑$1600手机$12导管$1Column 1Column 2centered 文本居中right-aligned 文本居右Markdow...原创 2019-06-06 21:33:30 · 142 阅读 · 0 评论 -
Android JNI(一)——基础
whatNative Develop Kit.why平台之间移植重复使用库提性能,尤其游戏这种计算密集型应用使用第三方库代码保护不依赖Dalvik Java虚拟机的设计目前Android系统支持以下七种不用的CPU架构,每一种对应着各自的应用程序二进制接口ABI:(Application Binary Interface)定义了二进制文件(尤其是.so文件)如何运行在相应的系...原创 2019-06-06 21:00:51 · 367 阅读 · 0 评论 -
刷机过程及原理&开机流程
一定要对源码体系有足够的认知,才能对刷机有深刻的理解。现在只能概述了最底层各种硬件设备略过不提Bootloader:PC主板上一小段程序较BIOS,主板加店跑起来的第一个程序,负责初始化硬件,OS启动,嵌入式设备里也有类似的程序,不叫BIOS,叫Bootloader。使用最广泛的是一个叫uboot的程序,编译后生成uboot.bin镜像,烧到特定分区,就可以作为Bootloader使用。Bo...原创 2019-09-05 12:07:31 · 7229 阅读 · 1 评论 -
mk语法
注释$() 取值:= 赋值+= 附加# 注释内容使用 "#" 号 # call 是调用一个系统提供的宏函数,此处是 my-dir# $() 是取值# := 是赋值LOCAL_PATH := $(call my-dir) # 我们也可以使用 ifeq 和 ifneq 进行条件判断ifeq ($(HOST_OS, linux) ...(省略)else ...原创 2019-08-14 21:27:34 · 2895 阅读 · 0 评论