配套系列教学视频链接:
说明
系统:Android10.0
设备: FireFly RK3399 (ROC-RK3399-PC-PLUS)
前言
本人写文章都是站在实用的角度去做, 让大家先学会用,这样才能快速进行开发,完成公司安排的任务, 并且将知识点进行系统化, 形成一个完整的知识体系, 做到让大家知道学习Android系统开发是需要学习哪些内容。 同时还会讲解如何通过源码去理解背后的实现,这样才能举一反三,实现掌握自我独立学习的能力。
本文重点介绍在Android系统启动中, init祖先进程的运行流程中涉及到的一些重要技术点, 通将这些技术点做一个简单的梳理, 让大家在后期的学习中做到心中有数, 这些知识点作为开发系统底层的基础, 系统开发工程师掌握它就非常有必要。
一, 大纲
1, RK3399 开发板操作
这部分内容重点介绍如何在FIreFly开发板上将Android 10系统运行起来, 包含编译FireFly的Android源码下载和编译, 镜像烧录运行,内核和模块编译,以及RK3399内核启动init进程的过程。
2, 产品定制
这部分讲解获取到方案商或者原厂提供的源码后, 如何定制一个新的产品,产品配置文件和模型, 原始代码中的配置文件和定制化东西
3, Android日志代码编写
之前讲过Android的日志系统, 并没涉及到代码编写, 这个部分重点讲解C/C++, java代码编写日志的API和代码
4, 属性系统
在Android中,属性使用的非常频繁的,可以用来作为进程间通信,也可以用于一些行为控制, 这个部分会重点介绍属性系统框架, API接口, 属性文件等知识点
5,selinux
进程对文件进行访问时,Android 4.3就开始集成了selinux权限管控, 如果需要启动某个脚本或者服务, selinux的配置就避免不了,并且Android8之后, Android系统对进程访问的权限管控的非常严格。
6, init.rc脚本
Android定义的一种脚本, 改脚本是有init进程启动, 是非常重要的一个脚本, 会包含系统中的其他很多脚本, 在我们系统开发时, 我们经常通过这个脚本进行一些定制化动作。
7, uevent和watchdog
这两个是共享init进程的代码, 但是会走不同分支, uevent类似mdev,负责创建文件,以及管控权限, watchdog看门狗,负责监测系统
8, init进程代码分析
想要了解一个系统,就必须对源码进行分析和理解, 这个章节,带大家去跟读init进程代码, 这样,换了另外一个Android版本,完全就可以去读代码, 知道有什么变化。
总结
大体内容介绍就如上, 后期会根据实际准备的内容进行调整, 平常要上班, 又要尽量准备的充分, 所以课程更新不会那么快, 还请各位见谅。