瑞芯微原厂源码目录介绍2-RK3568

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

在上一个小节中,下载并解压了瑞芯微提供的 Android 源码,解压完成以后的目录如下图所示:

在这里插入图片描述

顶层目录分析

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

out 目录

编译 android 完毕,会生成 out 目录,目录下主要有俩个子目录,
host 当前编译主机需要用到的工具和库,一般都是 x86 架构的。

host/
├── common
│
└── obj
└── linux-x86
├── bin
├── com.android.i18n
├── com.android.tzdata
├── fake_packages
├── framework
├── lib
├── lib64
├── obj
├── obj32
└── usr

另外一个就是 target 目录,就是目标机器运行所需要二进制文件,普遍都是arm 架构的二进制文件,该目录一般都是存放编译的中间文件,如.o 文件,以及目标文件,包含 strip 和 unstrip 的。同时对这些文件进行分门别类的进行存放

tree -L out/target/product/rk3568_r/obj
├── APPS :内置 app 的中间编译文件
├── CONFIG
├── ETC :etc 的中间编译文件,一般都会最终生成到 system/etc 或者 vendor/etc
目录
├── EXECUTABLES :可执行的中间编译文件
├── FAKE
├── JAVA_LIBRARIES :java jar 库的中间编译文件
├── PACKAGING :镜像打包时的中间编译文件
├── RENDERSCRIPT_BITCODE
├── SHARED_LIBRARIES :动态库的中间编译文件
└── STATIC_LIBRARIES:静态库的中间编译文件
├── ramdisk
├── ramdisk-debug.img
├── ramdisk.img
├── ramdisk-recovery.img
├── rebuild-dtbo.img
├── recovery
├── recovery.img
├── root
├── super_empty.img
├── super.img
├── symbols
├── system
├── system_ext
├── system_ext.img
├── system.img
├── testcases
├── vendor
└── vendor.img

system 目录

Android 作为 Linux 系统,在构建最小系统时,需要祖先 init 进程,依赖库,二进制工具 linux 命令,以及各种守护进程等,system 目录就提供了这些东西,该目录大部分都是 C/C++代码

├── apex:apexd 守护进程源码,负责处理 apex 安装包的。
├── bpf
├── bpfprogs
├── bt:Android bluedroid 协议栈
├── ca-certificates
├── chre:Context Hub Runtime Environment (CHRE),用于平衡大小核运行不同
程序的场景, 提供 api,保证小 型的本机应用程序(称为 nanoapps )在低功
耗处理器上执行。
├── connectivity:包含 wificond 进程,该进程通过标准 nl80211 命令与 WLAN
驱动程序进行通信
├── core:包含各种依赖库,adb,祖先 init 进程源码,lmkd,logcat, toolbox
├── extras:各种额外的命令工具,比如 su,memtrack(追踪 graphic 相关内存),
playwav 命令,以及一些测 试代码
├── gatekeeper:防护程序,如锁屏密码等。
├── gsid:通用系统镜像守护进程
├── hardware:网络相关的 HIDL 描述文件。
├── hwservicemanager:HAL 服务管理中心,负责管理系统中的所有 HAL 服
务,由 init 进程启动,属于 vendor 的 binder 通信机制,类似 framework 中的
binder.
├── incremental_delivery
├── iorap:iorap 用于缩短应用程序的启动时间,该目录包含 iorapd 守护进程
和相应的库文件。
├── keymaster
├── libartpalette
├── libfmq
├── libhidl:硬件接口定义语言依赖库
├── libhwbinder:hwbinder 依赖库
├── libsysprop
├── libufdt
├── libvintf
├── linkerconfig
├── media:包括 alsa、audio、camera 相关的头文件
├── memory
├── netd:Android 中专门负责网络管理和控制的后台守护进程,如管理 DNS,
设置防火墙,带宽控制
├── nfc
├── nvram
├── security
├── sepolicy:selinux 权限策略配置目录
├── server_configurable_flags
├── teeui
├── testing
├── timezone
├── tools:aidl,hidl 可执行程序的源码路径
├── update_engine:负责 A/B 升级的核心逻辑代码。
└── vold:Volume 守护进程,用来管理 Android 中存储类的热拔插事件,如设
备增加,删除,修改等事件处理。

frameworks 目录

├── av:audio/video, 如音视频解码器,录屏工具, 摄像头框架相关代码, 多
媒体框架供上层程序调用的 java API,连接 java 和 C/C++的 jni 部分, 在
framework/base/media 下
│ ├── apex
│ ├── camera:libcamera_client 共享库,是 camera 框架部分的 client 代码
│ ├── CleanSpec.mk
│ ├── cmds:包括录屏工具,stagefright 进程。
│ ├── drm
│ ├── include
│ ├── MainlineFiles.cfg
│ ├── media:提供音视频编解码的各种库和工具,后台进程如 audioserver,
mediaserver(通过 binder 的进程间通信方式来完成其他进程(如音乐播放器)的
请求)
│ ├── MODULE_LICENSE_APACHE2
│ ├── NOTICE
│ ├── OWNERS
│ ├── PREUPLOAD.cfg
│ ├── services:多媒体相关的后台服务, 如 cameraservice,audioflinger
│ └── tools
├── base:基础核心代码
├── compile:包含 libbcc,mclinker(llvm 编译器的插件) slang(Renderscript 语言
的编译器)
├── ex:Android 内部使用的公共类,如联系人、小部件、io, 以及全新的相机框
架 Camera2 的部分代码。
├── hardware:描述传感器,虚拟现实 VR,camera 等硬件的 HIDL 接口的文
件.hal
├── layoutlib:布局相关
├── libs
├── minikin:Android 原生字体,连体字效果
├── ml:机器视觉
├── multidex:多 dex 加载器,大多数 App,解压其 apk 后,一般只有一个
classes.dex 文 件,采 用 MultiDex 的 App 解压 后可以看到 有 classes.dex ,
classes2.dex,… classes(N).dex
├── native:c/c++本地语言编写的相关工具源码和特定硬件控制的头文件,如
bugreport, dumpstate, 各种 硬件的访问权限声明.
├── opt:一些 UI 插件和 java 后台服务,如 timezonepicker,datetimepicker,
colorpicker, 网络服务,如 EthernetService, WifiService, 电话服务 telephony
├── rs:渲染脚本 rendor script
├── support.md -> ../prebuilts/sdk/current/androidx-README.md
└── wilhelm:基于 Khronos 的 OpenSL ES/OpenMAX AL 的 audio/multimedia实现

了解目录有什么意义

了解这些目录,对于后面问题的解决有很大的帮助,起码让你知道出现问题,应该去哪里解决

更新时间:
2023.8.1

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: roc-rk3568-pc是一款基于RK3568芯片的台式电脑板,它能够提供高性能、低功耗、多媒体处理以及AI加速等特性。roc-rk3568-pc实现了PC级性能和功能,可以运行Linux和Android操作系统,同时支持多种显示接口和存储接口。 例如,roc-rk3568-pc支持双频WiFi和蓝牙,可以通过HDMI、DP、VGA等接口连接显示器,还可以使用USB3.0、SATA、NVMe等接口连接存储设备。此外,roc-rk3568-pc还配备了四个USB 2.0接口、两个USB 3.0接口、一个千兆网口、一个SPI Flash等。 对于开发者和爱好者来说,roc-rk3568-pc提供了完整的软件开发包(SDK),包括操作系统、编译器、驱动程序、应用程序等。同时,roc-rk3568-pc还有丰富的软件生态系统和社区支持,大大降低了开发门槛和开发成本。 总之,roc-rk3568-pc是一款高性能、全功能、易开发的台式电脑板,适用于各种应用场景,例如家庭娱乐、远程办公、物联网等。 ### 回答2: ROC-RK3568-PC例程是一个基于ROC-RK3568平台设计的针对PC设备的系统应用程序。该例程主要提供了一个使用ROC-RK3568平台的PC设备的示例,用户可通过该例程学习ROC-RK3568平台的基本应用,相应的硬件配置和软件编程技术。 针对ROC-RK3568-PC例程,用户需要掌握一定的嵌入式系统开发技术。首先,用户需要了解ROC-RK3568平台的基本知识,并安装相应的开发环境和编译器。在编写程序的过程中,用户需要熟悉C/C++语言和Linux操作系统,同时掌握设备驱动和应用程序的编写方法,用于实现安装、媒体播放、网络通信、GUI开发等功能。 ROC-RK3568-PC例程的主要任务是提供一个基本的嵌入式系统应用程序示例,让开发者通过学习和修改代码,快速掌握ROC-RK3568平台的开发和应用。该例程的编写需要开发者对ROC-RK3568平台熟悉到一定程度,需要有一定的软件编码能力和嵌入式系统设计经验。同时,用户还需要具备较好的沟通能力和团队协作能力,与其他成员共同完成开发任务。 总的来说,ROC-RK3568-PC例程是一个有实际应用价值的例程,对于想要深入了解嵌入式系统开发开发者,学习和掌握该例程的编写技术是非常有益的。 ### 回答3: ROC-RK3568-PC例程是指基于ROC-RK3568芯片的PC开发板的样例程序。ROC-RK3568是一款高性能的处理器芯片,可以广泛应用于智能家居、工业控制、远程监控等领域。ROC-RK3568-PC是采用该芯片设计的一款开发板,可以为开发者提供丰富的硬件接口,并支持多种操作系统,如Ubuntu、Android等。 ROC-RK3568-PC例程提供了各种各样的代码示例和应用程序,可以帮助开发者更好地理解和使用ROC-RK3568芯片,实现自己的应用程序。例如,样例程序包括了基于Qt的UI界面设计、GPIO控制、I2C读写、串口通信、网络通信、摄像头采集等功能。此外,还提供了蓝牙配对、TCP/IP通信、远程控制等应用程序,可以帮助开发者快速搭建自己的应用系统。 对于需要使用ROC-RK3568芯片进行开发开发者来说,ROC-RK3568-PC例程是一个非常有用的参考,可以加快开发进度,提高开发效率。自定义应用程序时,只需要根据自己的需求进行修改或者扩展即可。ROC-RK3568-PC例程提供了良好的参考和基础,为开发者快速实现自己所需的功能提供了便利。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不知道起个啥名“”

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值