Android CHRE (Context Hub Runtime Environment)简介

当前的ARM处理的多个核心,Android系统运行在速度最快的大核上,通常叫AP(Application Processor)。AP主要为性能、体验优化,相对来说能耗高。处理器中还有若干个小核,对于一些计算量小、频繁且短时间完成的操作,使用小核处理可以省电。在针对小核的应用开发上,提供给应用开发的支持有限,会依赖硬件接口,导致代码通用性、跨平台有问题。主要应用传感器、蓝牙、Wifi、音频等。

  • CHRE(Context Hub Runtime Environment)目标是为低功耗处理器上开发提供通用的平台,提供标准化的API。
  • CHRE是一个运行环境,基于它开发和运行的程序叫nanoapp,nanoapp可以灵活的加载和释放。
  • 这个功能主要提供给OEM等底层开发使用。
  • 仅支持native C/C++开发,只能被系统信任的应用访问。

下图是参考架构图,其中PAL=Platform Abstract Layer

CHRE架构图

CHRE 是围绕事件驱动架构设计的,其中主要的计算单元是传递给 nanoapp 事件处理入口点的事件。虽然 CHRE 框架可以是多线程的,但给定的 nanoapp 永远不会从多个线程并行执行。 CHRE 框架通过三个 nanoapp 入口点之一( nanoappStart() 、 nanoappHandleEvent()和nanoappEnd() )或通过在先前的 CHRE API 调用中提供的回调与给定的 nanoapp 交互,并且 nanoapps 与 CHRE 框架交互并通过 CHRE API 的底层系统。 CHRE API 提供了一组基本功能以及用于访问上下文信号的工具,包括传感器、GNSS、Wi-Fi、WWAN 和音频,并且可以通过其他特定于供应商的功能进行扩展,以供特定于供应商的 nanoapps 使用.

CHRE API 是按照 C99 语言标准编写的,参考实现使用了适用于资源受限应用程序的 C++11 受限子集。

参考实现:aosp/system/chre

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

抓饼先生

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

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

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

打赏作者

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

抵扣说明:

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

余额充值