文章目录
- ????为什么要学习此专栏?
- ????通过专栏可以学到什么?
- ????本专栏特点
- ????平台介绍
- 目录导读
- ????一、环境搭建篇
- ????二、开发工具命令篇
- ????三、Linux系统 & Android 调试手段篇
- ????四、Linux内核基础知识篇
- ????五、Linux内核驱动子系统篇
- ????六、Linux系统篇
- ????七、LCD显示篇
- ????八、音视频篇
- ????九、常见外设篇
- ????十、NPU篇
- ????十一、安卓适配篇
- ????十二、Android 11 系统层开发篇
- ????十三、网络篇
- ????十四、系统优化篇
- ????十五、深度学习项目篇
????为什么要学习此专栏?
????从 2007
年 Android
系统出现到现在已经 15
年了,Android
智能手机系统市场份额统治了半壁*。随着智能手机的飞跃发展,特别是 android
智能机的爆炸性发展,android
底层工程师变成了????越来越受欢迎的一个职位,很多人想要通过android
底层快速加入到这个行列。
但是不免心生疑惑:
- ????
Android
底层驱动难不难? - ????
Android
底层学习要点是什么? - ????如何将
Android
系统移植到特定的硬件平台上? - ????
Android
Framework
难不难?
尽管目前已经有一些这方面的书籍和视频教程,但是理论讲的多一些,这对于初学者来说是很难理解消化的,而且可能书中并未提供完整的代码,对于新手来说,实践操作困难比较大。还有一些 Linux
底层开发的书使用的源码版本比较低,有些书的内容仍然为 linux 2.4.x
的较低版本,这对于学习底层开发的学习者会造成一定的困惑。学习低版本的 linux
内核是没什么用处的,因为现在 Android
系统都使用了较高版本的 Linux
内核。
为了满足大家的上述需求,????故推出了 《RK3568
Android11
从入门到实战项目专栏》。
????通过专栏可以学到什么?
-
Android
平台音视频相关知识; -
RK3568
NPU
的使用知识; - 基于
Linux 4.19
学习底层Linux
驱动知识; -
Android
平台Framework
层系统知识; -
Camera
、LCD
、触摸屏、音频、WIFI
等各种常见外设底层知识; -
Android11
系统知识。
????本专栏特点
- 瑞芯微
Android 11
源代码全开源; - 采用较新
4.19
内核进行讲解,紧跟潮流; - 以高性能开发板
RK3568
为学习平台,理论+实践结合,大大提高了学习效率;
????平台介绍
本专栏采用AIO-3568J
四核高性能人工智能主板。
Rockchip RK3568
是四核处理器,集成双核心架构GPU
以及高效能NPU
;支持8G
大内存;板载M.2
与SATA3.0
接口;支持POE
+供电;支持WiFi 6
,5G/4G
无线网络通讯;拥有丰富的扩展接口,可应用于智能NVR
、云终端、物联网网关、工业控制等场景。
????下面就让我们跟着RK3568
平台一起学习把~????????
目录导读
欢迎大家来到内核笔记的《RK3568
Android11
从入门到实战项目专栏目录及介绍》,开始前博主先列出RK3568
平台学习的大纲,同时这也可以作为大家学习RK3568
平台内核与安卓框架的参考。下面蓝字都是传送门,点击进入即可:
????一、环境搭建篇
- RK3568平台开发系列讲解(环境篇)瑞芯微RK3568亮点介绍
- RK3568平台开发系列讲解(环境篇)瑞芯微原厂源码目录介绍
- RK3568平台开发系列讲解(环境篇)RK3568 SDK 安装准备工作
- RK3568平台开发系列讲解(环境篇)RK3568 SDK软件架构
- RK3568平台开发系列讲解(环境篇)RK3568 SDK Linux编译服务器开发坏境搭建
- RK3568平台开发系列讲解(环境篇)编译 Android 固件
- RK3568平台开发系列讲解(环境篇)使用cmake编译Android可执行程序
- RK3568平台开发系列讲解(环境篇)RK3568上OpenCV 的编译移植
- RK3568平台开发系列讲解(环境篇)kernel编译及打包
????二、开发工具命令篇
- RK3568平台开发系列讲解(工具命令篇)adb manual
- RK3568平台开发系列讲解(工具命令篇)svc 命令的使用
- RK3568平台开发系列讲解(工具命令篇)Android Debug Bridge常用命令
- RK3568平台开发系列讲解(工具命令篇)使用TOP查看CPU使用率
- RK3568平台开发系列讲解(工具命令篇)常用 GIT 命令汇总
- RK3568平台开发系列讲解(工具命令篇)vim开发工具命令分析
- [RK3568平台开发系列讲解(工具命令篇)Linux系统常用命令] –
- [RK3568平台开发系列讲解(工具命令篇)RKDevTool烧录工具的使用] –
- [RK3568平台开发系列讲解(工具命令篇)Ubuntu基本操作] –
????三、Linux系统 & Android 调试手段篇
- RK3568平台开发系列讲解(调试篇)Android11 proc 文件系统相关信息
- RK3568平台开发系列讲解(调试篇)如何跟踪系统事件
- RK3568平台开发系列讲解(调试篇)Linux相关日志分析
- RK3568平台开发系列讲解(调试篇)网络性能工具总结
- RK3568平台开发系列讲解(调试篇)磁盘的 I/O 的调试手段介绍
- [RK3568平台开发系列讲解(调试篇)PCIe调试方法汇总]
- [RK3568平台开发系列讲解(调试篇)I2C调试方法汇总]
- [RK3568平台开发系列讲解(调试篇)GPIO调试方法汇总]
- [RK3568平台开发系列讲解(调试篇)SPI调试方法汇总]
- [RK3568平台开发系列讲解(调试篇)USB调试方法汇总]
????四、Linux内核基础知识篇
- RK3568平台开发系列讲解(驱动基础篇)misc 设备驱动简介
- RK3568平台开发系列讲解(驱动基础篇)Linux 用户层和内核层
- RK3568平台开发系列讲解(驱动基础篇)驱动模块传参
- RK3568平台开发系列讲解(驱动基础篇)Linux内核面向对象思想之封装
- RK3568平台开发系列讲解(驱动基础篇)Linux内核面向对象思想之继承
- RK3568平台开发系列讲解(驱动基础篇)深入剖析LDM(Linux设备模型)
- RK3568平台开发系列讲解(驱动基础篇)驱动程序框架
- RK3568平台开发系列讲解(驱动基础篇)驱动模块如何编译进内核
- RK3568平台开发系列讲解(驱动基础篇)Linux设备驱动基础之Linux内核模块
- RK3568平台开发系列讲解(驱动基础篇)Linux 设备和分类
- RK3568平台开发系列讲解(驱动基础篇)内核锁机制 –
- RK3568平台开发系列讲解(驱动基础篇)工作延迟机制 –
- RK3568平台开发系列讲解(驱动基础篇)内核中断机制 –
- [RK3568平台开发系列讲解(驱动基础篇)makefile文件分析] –
????五、Linux内核驱动子系统篇
- RK3568平台开发系列讲解(设备驱动篇)Platform 平台驱动模型 –
- RK3568平台开发系列讲解(设备驱动篇)设备树常用 of 函数 –
- [RK3568平台开发系列讲解(设备驱动篇)添加设备树节点案例] –
- [RK3568平台开发系列讲解(设备驱动篇)设备树描述
platform
设备] – - RK3568平台开发系列讲解(设备驱动篇)Pinctrl子系统详解 –
- RK3568平台开发系列讲解(设备驱动篇)GPIO子系统详解 –
- RK3568平台开发系列讲解(设备驱动篇)Linux内核定时器详解 –
- RK3568平台开发系列讲解(设备驱动篇)输入子系统详解 –
- RK3568平台开发系列讲解(设备驱动篇)Linux I2C驱动介绍 –
- RK3568平台开发系列讲解(设备驱动篇)驱动开发之ADC的使用
- RK3568平台开发系列讲解(设备驱动篇)驱动开发之GPIO使用
- RK3568平台开发系列讲解(设备驱动篇)驱动开发之I2C使用
- RK3568平台开发系列讲解(设备驱动篇)驱动开发之红外遥控IR
- RK3568平台开发系列讲解(设备驱动篇)驱动开发之LCD使用
- RK3568平台开发系列讲解(设备驱动篇)驱动开发之RTC 使用
- RK3568平台开发系列讲解(设备驱动篇)驱动开发之PWM 使用
- RK3568平台开发系列讲解(设备驱动篇)Linux中断实验
- RK3568平台开发系列讲解(设备驱动篇)中断下文之tasklet的使用
- RK3568平台开发系列讲解(设备驱动篇)等待队列
- RK3568平台开发系列讲解(设备驱动篇)中断下文之工作队列的使用
- RK3568平台开发系列讲解(设备驱动篇)Binder驱动层的线程管理
- RK3568平台开发系列讲解(设备驱动篇)Linux 下电容触摸屏驱动框架
????六、Linux系统篇
- [RK3568平台开发系列讲解(Linux系统篇)内核启动过程]
- RK3568平台开发系列讲解(Linux系统篇)详解文件 I/O 操作
- RK3568平台开发系列讲解(Linux系统篇)内存映射与虚拟内存
- RK3568平台开发系列讲解(Linux系统篇)理解Ext文件系统
- RK3568平台开发系列讲解(Linux系统篇)理解Ext特殊的块组
- RK3568平台开发系列讲解(Linux系统篇)内核启动过程
- RK3568平台开发系列讲解(Linux系统篇)进程管理
- RK3568平台开发系列讲解(Linux系统篇)内存管理
????七、LCD显示篇
- RK3568平台开发系列讲解(LCD篇)屏幕调试常用的 debug 方法
- RK3568平台开发系列讲解(LCD篇)根据屏参和硬件设计填写DTS
- RK3568平台开发系列讲解(LCD篇)显示驱动硬件抽象层
- RK3568平台开发系列讲解(LCD篇)FrameBuffer内核层详解
- RK3568平台开发系列讲解(LCD篇)显示驱动硬件抽象层
- RK3568平台开发系列讲解(LCD篇)DRM 显示框架
- RK3568平台开发系列讲解(LCD篇)屏幕点亮流程
- RK3568平台开发系列讲解(LCD篇)息屏显示介绍
????八、音视频篇
- RK3568平台开发系列讲解(音视频篇)音视频的封装与转码
- RK3568平台开发系列讲解(音视频篇)音频信号基础知识
- RK3568平台开发系列讲解(音视频篇)视频图像基础概念
- RK3568平台开发系列讲解(音视频篇)图像数据格式
- RK3568平台开发系列讲解(音视频篇)音频系统架构基础
- RK3568平台开发系列讲解(音视频篇)Overlay视频输出系统结构
- RK3568平台开发系列讲解(音频篇)Audio 音量控制流程
- RK3568平台开发系列讲解(视频篇)视频渲染OpenGL ES是什么
- RK3568平台开发系列讲解(音视频篇)如何把音视频流进行网络传输?
- RK3568平台开发系列讲解(音频篇)Android AudioRecord 采集音频
- RK3568平台开发系列讲解(视频篇)视频编码的工作原理
- RK3568平台开发系列讲解(视频篇)摄像头采集视频的相关配置
- RK3568平台开发系列讲解(图像篇)JPEG图像处理
- RK3568平台开发系列讲解(图像篇)BMP图像处理
- RK3568平台开发系列讲解(图像篇)YUV & RGB色彩空间介绍
- RK3568平台开发系列讲解(音视频篇)FFmpeg公共基础参数
????九、常见外设篇
- RK3568平台开发系列讲解(USB篇)USB线缆的要求
- RK3568平台开发系列讲解(WIFI篇)WIFI连接过程
- RK3568平台开发系列讲解(WIFI篇)IEEE 802.11 无线网络接口的类型
- RK3568平台开发系列讲解(电源管理篇)RK809 电源管理芯片配置
- RK3568平台开发系列讲解(电源管理篇)wakelock和early_suspend
- RK3568平台开发系列讲解(电源管理篇)Power Management系统内核层power.c分析
- RK3568平台开发系列讲解(电源管理篇)分析Android Power Management Framework层\
- RK3568平台开发系列讲解(电源管理篇)Android Power Management JNI层架构分析
- RK3568平台开发系列讲解(电源管理篇)PowerManagerService息屏控制
- RK3568平台开发系列讲解(触摸屏篇)Android11 触摸芯片移植
- RK3568平台开发系列讲解(Camera篇)Camera系统的结构
- RK3568平台开发系列讲解(Camera篇)实现V4L2驱动
- RK3568平台开发系列讲解(Camera篇)Camera2 代码结构(从APP到Driver)
- RK3568平台开发系列讲解(Camera篇)Camera2简介
- RK3568平台开发系列讲解(Time Device驱动)Timed Output驱动的具体实现
- RK3568平台开发系列讲解(输入系统篇)输入系统架构分析
- RK3568平台开发系列讲解(输入系统篇)event机制详解
- RK3568平台开发系列讲解(输入系统篇)Input(输入)系统驱动详解
- RK3568平台开发系列讲解(输入系统篇)Android 输入事件拦截机制
- RK3568平台开发系列讲解(振动器篇)振动器系统架构各层详解
- RK3568平台开发系列讲解(振动器篇)振动器系统架构
- RK3568平台开发系列讲解(Alarm篇)Alarm层次结构介绍
- RK3568平台开发系列讲解(蓝牙篇)蓝牙系统结构
- RK3568平台开发系列讲解(蓝牙篇)Android 蓝牙框架概览
????十、NPU篇
- RK3568平台开发系列讲解(NPU篇)RKNPU SDK软件架构
- RK3568平台开发系列讲解(NPU篇)什么是RKNPU
- RK3568平台开发系列讲解(NPU篇)让 NPU 跑起来
????十一、安卓适配篇
- RK3568平台开发系列讲解(安卓移植篇)瑞芯微原厂源码目录介绍
- RK3568平台开发系列讲解(安卓移植篇)Android11 修改 uboot logo
- RK3568平台开发系列讲解(安卓适配篇)Android11 修改开机动画
- RK3568平台开发系列讲解(安卓适配篇)Android11旋转屏幕
- RK3568平台开发系列讲解(安卓适配篇)Android 源码的 device 目录
- RK3568平台开发系列讲解(安卓适配篇)Android 源码本地化
- RK3568平台开发系列讲解(安卓适配篇)Android11 预安装应用功能
- RK3568平台开发系列讲解(安卓适配篇)获取 root 权限
- RK3568平台开发系列讲解(安卓适配篇)Android11 预安装应用功能
????十二、Android 11 系统层开发篇
- RK3568平台开发系列讲解(Logger篇)日志写入接口驱动
- RK3568平台开发系列讲解(Logger篇)日志库Liblog驱动
- RK3568平台开发系列讲解(Logger篇)Logger驱动程序
- RK3568平台开发系列讲解(安卓篇)JNI调用流程分析
- RK3568平台开发系列讲解(安卓篇)PackageInstaller(应用安装)流程介绍
- RK3568平台开发系列讲解(安卓篇)Apk数字签名安装流程
- RK3568平台开发系列讲解(安卓篇)勿扰模式系统流程
- RK3568平台开发系列讲解(安卓篇)LED呼吸灯系统流程
- RK3568平台开发系列讲解(安卓篇)Android dex文件生成流程
- RK3568平台开发系列讲解(安卓篇)WakeLock分析
- RK3568平台开发系列讲解(安卓篇)Android关机Framework 代码流程
- [RK3568平台开发系列讲解(安卓篇)传感器系统分析]
- [RK3568平台开发系列讲解(安卓篇)电话系统分析]
- [RK3568平台开发系列讲解(安卓篇)时钟系统分析]
- [RK3568平台开发系列讲解(安卓篇)多媒体框架分析]
????十三、网络篇
- RK3568平台开发系列讲解(网络篇)网络连通性(NetworkMonitor)分析
- [RK3568平台开发系列讲解(网络篇)内核如何接收网络包过程分析]
- [RK3568平台开发系列讲解(网络篇)内核如何发送网络包过程分析]
- [RK3568平台开发系列讲解(网络篇)TCP建立连接过程分析]
- [RK3568平台开发系列讲解(网络篇)bridge网桥分析]
- [RK3568平台开发系列讲解(网络篇)网卡的创建过程分析]
- [RK3568平台开发系列讲解(网络篇)网络数据软中断分析]
????十四、系统优化篇
- RK3568平台开发系列讲解(系统优化篇)排查卡顿的工具介绍
- RK3568平台开发系列讲解(系统优化篇)系统卡顿了怎么办
- RK3568平台开发系列讲解(系统优化篇)如何进行内存优化
- RK3568平台开发系列讲解(系统优化篇)常见CPU性能问题
- [RK3568平台开发系列讲解(系统优化篇)常见网络性能优化]
- [RK3568平台开发系列讲解(系统优化篇)常见IO性能优化]
- [RK3568平台开发系列讲解(系统优化篇)进程调度性能分析]
????十五、深度学习项目篇
- RK3568平台开发系列讲解(项目篇)RK3568 赋能 NVR/XVR应用项目
- [RK3568平台开发系列讲解(项目篇)RK3568 运行 openCV] –
- [RK3568平台开发系列讲解(项目篇)RK3568 语言识别项目]
- [RK3568平台开发系列讲解(项目篇)RK3568 人脸识别项目]
- [RK3568平台开发系列讲解(项目篇)RK3568 手势识别]