中控车机开发
文章平均质量分 77
智能座舱中控学习与开发实战。
1、Android系统开机流程
2、Android系统核心模块BINDER HANDER AMS WMS PMS
3、Android车载系统开机时间优化
4、Vehicle HAL,CarService模块
5、Car Audio模块
6、...............
Johnny2004
这个家伙很懒,什么都没留下....
展开
-
15 Binder通信之AIDL的原理
上一节写了AIDL的示例,实现了两个应用见的通信,这一节来具体看看AIDL是如何实现的?AIDL的原理是什么?原创 2023-05-24 23:57:05 · 642 阅读 · 0 评论 -
14 Binder通信之应用层AIDL实现示例
AIDL:Android Interface Definition Language,即Android接口定义语言Android系统中,每个进程都运行在一块独立的内存中,在其中完成自己的各项活动,与其他进程都分 隔开来。可是有时候我们又有应用间进行互动的需求,比较传递数据或者任务委托等, AIDL就是为了满 足这种需求而诞生的。通过AIDL,可以在一个进程中获取另一个进程的数据和调用其暴露出来的方法, 从而满足进程间通信的需求。原创 2023-05-24 23:51:11 · 286 阅读 · 0 评论 -
13 Binder通信之ServiceManager
Android系统中存在很多service,当某个应用调用系统某个service的功能时,往往向系统发出请求,调用该服务的外部接口,这种外部接口我们通常叫做代理接口,也就是说要拿到目标服务需要先拿到目标服务的代理。这个时候,如果每个应用client端都向service端直接获取代理对象,势必开销很大。因此Android系统中,引入一个serviceManager的系统服务,也可以称之为Binder的守护进程来管理这些服务对象。原创 2023-05-24 23:43:45 · 753 阅读 · 0 评论 -
12 Binder的原理
从前一节,我们知道从Android 8.0 开始,Binder机制,被拆分成了Binder(System分区 进程间通信)、HwBinder(支持System/Vendor分区进程间通信)、VndBinder(Vendor分区进程间通信)。现在我们先单独分析一下Binder的机制,HwBinder和VndBinder留到后面慢慢分析。原创 2023-05-24 23:32:47 · 1025 阅读 · 0 评论 -
11 认识binder及分类
binder是IPC通信中的一种,IPC:进程间通信机制(Inter-Process Communication)在Android中常用的进程间通信有共享内存、管道、信号处理、sockect、Binder等;内核和用户空间之间常用的是共享内存机制;一些低数据传输使用sockect处理应用进程之间传输使用Binder机制binder最底层其实是一个驱动设备,android 8.0对应的驱动设备: /dev/binder然后还对应一个守护进程:/system/bin/serviceManager。原创 2023-05-24 23:28:50 · 547 阅读 · 0 评论 -
10 工具Bootchart的使用(windows)
原创 2023-05-22 14:28:50 · 967 阅读 · 0 评论 -
09 工具Bootchart的使用方法(linux)
bootchart是用于记录开机时进程启动时间的工具。原创 2023-05-22 14:27:23 · 841 阅读 · 1 评论 -
08 Android开机启动组成总结
08 Android开机启动组成总结原创 2023-05-22 14:02:31 · 89 阅读 · 0 评论 -
07 Android开机启动log分析
抓取kernel log: adb shell dmesg > dmesg.log抓取android log:adb logcat -b all > android.log。原创 2023-05-22 13:58:39 · 679 阅读 · 0 评论 -
06 Android开机启动之Bootanimation
手机或其他Android智能终端开机都会先显示一个动画,然后才进入桌面,接下来看看这个bootanimation程序是怎么跑的。原创 2023-05-22 13:56:33 · 1509 阅读 · 0 评论 -
05 Android开机启动之SystemServer
从上面整个Android开机启动思维导图中可以看到:SystemServer是从Zygote中启动的。开机->bootloader->kernel->init->zygote->SystemServer。原创 2023-05-22 13:48:16 · 1232 阅读 · 0 评论 -
04 Android开机启动之Zygote
Zygote中文翻译为“受精卵”,正如其名,它主要用于孵化子进程。在Android系统中有以下两种程序:java应用程序,主要基于ART虚拟机,所有的应用程序apk都属于这类native程序,也就是利用C或C++语言开发的程序,如bootanimation。所有的Java应用程序进程及系统服务SystemServer进程都由Zygote 进程通过Linux的fork()函数孵化出来的,这也就是为什么把它称为Zygote的原因,因为他就像一个受精卵,孵化出无数子进程,而native程序则由Init程序创原创 2023-05-22 13:41:12 · 775 阅读 · 0 评论 -
03 Android开机启动之init进程
init进程第一阶段做的主要工作是挂载分区,创建设备节点和一些关键目录,初始化日志输出系统,启用SELinux安全策略。init进程第二阶段主要工作是初始化属性系统,解析SELinux的匹配规则,处理子进程终止信号,启动系统属性服务,可以说每一项都很关键,如果说第一阶段是为属性系统,SELinux做准备,那么第二阶段就是真正去把这些功能落实。init进行第二阶段还做了解析init.rc 来启动其他进程(如zygote和bootanima),进入无限循环,进行子进程实时监控。原创 2023-05-22 13:35:26 · 959 阅读 · 0 评论 -
02 Android开机启动之BootLoader及kernel的启动
第一阶段:硬件初始化,SVC模式,关闭中断,关闭看门狗,初始化栈,进入C代码第二阶段:cpu/board/中断初始化;初始化内存以及flash,将kernel从flash中拷贝到内存中,执行bootm,启动内核。原创 2023-05-22 13:27:57 · 852 阅读 · 0 评论 -
01 Android开机启动之整体分析
Android是谷歌开发的一款基于Linux的开源操作系统PowerManagement:系统最底层是电源管理,只有通过电源上电,系统才能开启Linux kernel:驱动层,里面包括Audio、Carmera、usb等各种外设的驱动程序。HAL层:硬件抽象层,HAL 是一个抽象层,具有供硬件供应商实现的标准接口。硬件抽象层(HAL) 提供标准界面,向更高级别的Java API 框架显示设备硬件功能。HAL 包含多个库模块,其中每个模块都为特定类型的硬件组件实现一个界面,例如相机或蓝牙模块。原创 2023-05-22 13:21:22 · 505 阅读 · 0 评论