Android图形显示系统——下层显示1:基础知识与相关文件

简介: 基础知识和相关文件基础知识Android下层显示相关的代码相对而言并不是很多,核心部分在三件厂商或SOC厂商提供/集成的驱动之中。尽管如此,这部分代码涉及到一系列基础类库,不了解的话也很难读懂。 这些基础知识这里只做简单介绍,详细了解看链接或可自行百度或Googlebinder/ServiceAndroid中用于进程间通信的基本方法,需要了解它是怎么使用

基础知识和相关文件

基础知识

Android下层显示相关的代码相对而言并不是很多,核心部分在三件厂商或SOC厂商提供/集成的驱动之中。尽管如此,这部分代码涉及到一系列基础类库,不了解的话也很难读懂。
这些基础知识这里只做简单介绍,详细了解看链接或可自行百度或Google

binder/Service

Android中用于进程间通信的基本方法,需要了解它是怎么使用的,不然会搞不明白surfaceflinger服务怎么起来,怎么发挥作用的。
http://blog.csdn.net/new_abc/article/details/8097775

Thread

Android自己实现的线程类封装。主要关注子类需要重写哪些虚函数,做什么事情。
system/core/libutils/Threads.cpp
这篇文章可以参考一下,不过 libutils的目录在Android4.4之后改到system/core下面了。
http://www.csdn123.com/html/blogs/20130802/46970.htm

sp/wp

Android里面的智能指针和弱引用,基础类型了,主要留意onFirstRef的调用时机。
http://blog.chinaunix.net/uid-24922718-id-3787722.html

MessageHandler/Loop

Android中的消息处理机制,对显示而言,主要是用来做vsync垂直同步时用到。
http://www.cnblogs.com/angeldevil/p/3340644.html

Zygote

Android所有进程的父进程,涉及开机动画。不过这部分代码和上层显示关联更多(预加载)。
http://blog.csdn.net/zhgxhuaa/article/details/24201127

OpenGL和EGL

图形标准和窗口标准。使用GPU硬件加速功能必须。
OpenGL没什么文章能讲清的,没有背景知识的了解一下就好。
EGL可以参考这篇:
http://blog.csdn.net/ldh_123456/article/details/17422479

Android下层显示主要相关文件

系统头文件

上层库共享接口定义

system/core/include/system/graphics.h
system/core/include/system/window.h

硬件模块接口定义

hardware/libhardware/include/hardware/gralloc.h
hardware/libhardware/include/hardware/hwcomposer_defs.h
hardware/libhardware/include/hardware/hwcomposer.h

系统库

主要模块和相关类如下图所示:
系统库与类

驱动

设备相关的HAL层驱动各厂商并不相同且一般属于保密信息,Kernel也主要是根据芯片使用手册配置寄存器,不适合讲且没有太多参考价值。

目录
相关文章
|
Linux 测试技术 语音技术
【车载Android】模拟Android系统的高负载环境
本文介绍如何将Linux压力测试工具Stress移植到Android系统,用于模拟高负载环境下的CPU、内存、IO和磁盘压力,帮助开发者优化车载Android应用在多任务并发时的性能问题,提升系统稳定性与用户体验。
1037 6
基于Android的电子记账本系统
本项目研究开发一款基于Java与Android平台的开源电子记账系统,采用SQLite数据库和Gradle工具,实现高效、安全、便捷的个人财务管理,顺应数字化转型趋势。
|
移动开发 安全 Java
Android历史版本与APK文件结构
通过以上内容,您可以全面了解Android的历史版本及其主要特性,同时掌握APK文件的结构和各部分的作用。这些知识对于理解Android应用的开发和发布过程非常重要,也有助于在实际开发中进行高效的应用管理和优化。希望这些内容对您的学习和工作有所帮助。
1917 83
|
Android开发 开发者
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
本文详细介绍了如何通过自定义 `attrs.xml` 文件实现 Android 自定义 View 的属性配置。以一个包含 TextView 和 ImageView 的 DemoView 为例,讲解了如何使用自定义属性动态改变文字内容和控制图片显示隐藏。同时,通过设置布尔值和点击事件,实现了图片状态的切换功能。代码中展示了如何在构造函数中解析自定义属性,并通过方法 `setSetting0n` 和 `setbackeguang` 实现功能逻辑的优化与封装。此示例帮助开发者更好地理解自定义 View 的开发流程与 attrs.xml 的实际应用。
512 2
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
|
Java Android开发
Android studio中build.gradle文件简单介绍
本文解析了Android项目中build.gradle文件的作用,包括jcenter仓库配置、模块类型定义、包名设置及依赖管理,涵盖本地、库和远程依赖的区别。
1234 19
|
存储 XML Java
Android 文件数据储存之内部储存 + 外部储存
简介:本文详细介绍了Android内部存储与外部存储的使用方法及核心原理。内部存储位于手机内存中,默认私有,适合存储SharedPreferences、SQLite数据库等重要数据,应用卸载后数据会被清除。外部存储包括公共文件和私有文件,支持SD卡或内部不可移除存储,需申请权限访问。文章通过代码示例展示了如何保存、读取、追加、删除文件以及将图片保存到系统相册的操作,帮助开发者理解存储机制并实现相关功能。
3233 2
|
安全 搜索推荐 Android开发
Android系统SELinux安全机制详解
如此看来,SELinux对于大家来说,就像那位不眠不休,严阵以待的港口管理员,守护我们安卓系统的平安,维护这片海港的和谐生态。SELinux就这样,默默无闻,却卫士如山,给予Android系统一份厚重的安全保障。
606 18
|
监控 Java Android开发
深入探索Android系统的内存管理机制
本文旨在全面解析Android系统的内存管理机制,包括其工作原理、常见问题及其解决方案。通过对Android内存模型的深入分析,本文将帮助开发者更好地理解内存分配、回收以及优化策略,从而提高应用性能和用户体验。
1347 38
|
12月前
|
移动开发 前端开发 Android开发
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
1956 12
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
12月前
|
移动开发 JavaScript 应用服务中间件
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
1248 5
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡

热门文章

最新文章