0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

切换到嵌入式 Android 时要知道什么

ytrwv 来源:ytrwv 作者:ytrwv 2022-07-20 14:39 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

想象一下:您所在的公司刚刚为一系列触摸屏设备投入了大量资金用于定制 Linux 操作系统,因为该设备不存在硬件驱动程序支持。除了产品开发成本外,该公司还因必须自行管理操作系统并提供定期安全更新而产生了未来成本。

不幸的是,该项目最终以财务失败告终。原因如下:

为自定义 Linux 操作系统提供更新是一项艰巨且成本高昂的任务。它需要深入的 Linux 知识才能将外部补丁与自定义更改合并,而不会破坏整个系统。然后,在构建操作系统之后,需要一个复杂的基础架构来以安全可靠的方式分发这些更新。最后,设备端需要一个软件组件来下载和安装这些更新,这样设备就不会变砖。所有这些都会在原始投资之上引入大量的经常性成本。

制造商可能很想完全跳过无线 (OTA) 更新功能,因为它实施起来太复杂了。但一项新的德国/欧盟法律现在要求对消费设备进行定期操作系统更新,否则公司可能会面临违反保修的风险。Android 设备因不及时接收更新而臭名昭著,有时甚至根本不接收更新。

不幸的是,面对这些新法律,跳过 OTA 将不再是一种选择。

然后是质量问题:在一个由 Android 和 iOS 主导的世界中,用户期望设备具有一定程度的响应能力、对图形的流畅感以及用于导航、打开应用程序和更改设置的标准化方法。正如全世界在开发第一台 Mac 时从史蒂夫·乔布斯那里了解到的那样,如果不大幅提高处理能力,就很难实现软件的美感。而且,在嵌入式世界中,处理能力是有限的。

令人惊叹的软件还需要在可用性案例研究、开发工具、UI 标准、常见 UI 元素等方面进行大量投资。

对于三星这样仅在 2020 年就售出 2.66 亿台智能手机设备,并且拥有庞大开发团队的公司来说,上述成本是可以承受的。但对于一家只有 100,000 台设备的小公司来说,这种类型的财务负担可能会使整个产品无法生存。

但是,有一个选项可以使小型车队的项目更可行:嵌入式 Android。

是什么让嵌入式 Android 变得更好(或更糟)?

Android 基于经过修改的 Linux 内核,其中添加了许多功能,例如 WakeLocks 和 Early Suspend 等电源管理功能。

添加的一项改变游戏规则的功能称为“Binder IPC”或“Binder 进程间通信”,有时被称为 Android 的核心。与 Linux 发行版中使用的资源密集型方法(管道、套接字、内存队列、共享内存等)相比,Binder IPC 是一种轻量级的进程间通信方法。

从开发人员的角度来看,Binder IPC 允许所有应用程序和系统组件拥有一个简单的通信渠道。有时,开发人员甚至不必知道哪个应用程序将执行特定操作(例如打开相机或发送电子邮件)——Android 将负责将用户请求从一个应用程序传递到另一个能够满足它的应用程序.

Android 还具有应用程序沙盒和SELinux以提高安全性,更不用说一组丰富的包含组件,可以更轻松地处理图形、资源、通知、网络、位置、电话等。

对于具有触摸屏和 GUI 功能的设备,Android 显然是 Linux 的赢家。

但是,使用 Android 作为嵌入式操作系统也有其自身的挑战。

在专业嵌入式应用程序中使用标准 Android 的挑战

想要将 Android 移植到嵌入式系统时会遇到一些挑战。

Android 的 C 库(仿生)并非 100% 符合 POSIX。这有时会使引入外部代码变得困难。而且 Android 的文件布局也不符合 Linux 的文件系统层次标准。

Android 不能在开箱即用的自定义嵌入式系统上运行。大型手机制造商可以负担得起大型软件开发团队,他们从 Android 开源项目 (AOSP) 分支出来并根据自己的需要对其进行定制。

AOSP 很大。它有800多个项目。下载代码需要250GB 的硬件空间。构建一个操作系统版本需要另外 150GB。构建过程可以运行数小时。

即使对于经验丰富的 Android 开发人员来说,这个过程也是缓慢而复杂的。对于 Android 技能为零的团队来说,这几乎是不可能的。

因此,对于希望从 Linux 转向嵌入式 Android 的公司来说,这是一条捷径。很多这些公司可能坐拥数十年的内部开发的定制嵌入式 Linux 库。

但对此有新的认识是,如果公司计划将 OTA 更新功能出售给欧盟消费者,则必须将其包含在未来的物联网设备中。这已经成为整个欧盟新车的强制性要求。构建有效的 OTA 和 FOTA(Firmware Over The Air)基础设施需要巨大的初始工作负载,以促进自动构建、代码签名、上传和未来的更新管理。对于能够通过 OTA 更新的设备,需要构建设备配置系统以及安全的固件安装引擎。当发现漏洞时,必须尽快提供安全补丁。

公司还需要为硬件故障、更新回滚和软件错误做好准备。

遗憾的是,谷歌官方将 Android 移植到嵌入式的 Android Things 已被关闭。这进一步加剧了嵌入式 Android 缺乏硬件支持的情况。

在某些情况下,Linux 硬件支持可以说被认为更好。但是Android是建立在Linux之上的,也就是说,如果Linux支持的东西,原则上Android也可以支持。但是,由于应用程序接口的抽象级别很高,可能很难将硬件支持应用到实际应用程序中。

此外,Android 最初是为具有固定设置(小屏幕、预定义的连接模块、硬件按钮、WiFi 等)的设备设计的。将此配置更改为不同的配置是可能的,但如果产品的硬件发生变化,则可能需要恢复以前的更改并从头开始开发。

从本质上讲,如果嵌入式 Android 是由经验丰富的 Android 开发人员团队构建的,那么它比 Linux 具有许多优势。当然,从理论上讲,开始使用 Android 就像选择一个好的原型设计套件来学习一样简单——比如 RockPi、Raspberry Pi 或 i.MX8 SBC 之一。但是,需要一支经验丰富的 Android 开发人员团队来大规模构建任何设备规模的东西,其中还包括更新新推出的操作系统所需的 OTA 基础设施。

为任何机队规模构建可扩展的嵌入式 Android 操作系统

嵌入式 Android 挑战的更有效解决方案通过提供可根据底层硬件要求轻松修改的可定制 Android 发行版来应对这些挑战。例如,emteria.OS是完整形式的 Android。开发人员会收到 AOSP 的扩展版本,但带有额外的接口、组件和应用程序,可提供许多开箱即用的企业级元素,例如:

OTA更新申请

发布版本控制

操作系统和应用程序的签名,包括自定义密钥

私人应用商店

远程访问

信息亭模式

移动设备管理 (MDM)

根访问权限

下图中可以看到其中的一些功能。

poYBAGLO6sCAbsjIAAEfrTeAmE0755.png


emteria.OS 堆栈的简化示意图。(来源:emteria GmbH)

虽然是emteria。操作系统根据任何给定的BSP或OEM的要求进行修改,处理MDM、OTA和FOTA的底层基础设施不需要修改。因此,该操作系统与数百万现有应用程序和库保持兼容,而更新在emteria的服务器上处理,并由fleet manager按自己的时间表推送到设备上,通过web浏览器控制。

尽管安卓作为嵌入式系统越来越受欢迎,但由于缺乏面向小型车队的专用操作系统供应商,该行业仍然支离破碎,并为有缺陷的软件打开了大门,这些软件可能会在新的欧盟制度下引发保修条款。

从更大的角度来看,缺乏适合中型嵌入式设备的高度可定制、开发人员友好和用户友好的操作系统,已成为物联网领域不断增长的需求中创新的主要障碍。嵌入式安卓的更新版本,如emteria。操作系统是向嵌入式安卓领域标准化迈进的一步,将安卓的功能以很低的成本提供给原始设备制造商。通过减少现有的创新障碍,更有效的嵌入式安卓版本使解决方案构建者能够专注于增加客户价值,而不是解决操作系统挑战。

审核编辑 黄昊宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5186

    文章

    20161

    浏览量

    329029
  • Android
    +关注

    关注

    12

    文章

    3986

    浏览量

    133091
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    嵌入式与FPGA的区别

    \"嵌入式开发门槛低、就业广,适合转行;FPGA技术深、薪资高,但要求学历和数学功底。选哪个?看你的基础和职业目标。\" ⭕我们先来明白下两者区别在哪? ✅1、嵌入式:分两部分
    发表于 11-20 07:12

    嵌入式工程师为什么要学QT?

    Qt对嵌入式工程师来说,真的很重要吗? Qt是一个跨平台的C++应用程序开发框架,非常适合嵌入式系统的开发,Qt在嵌入式开发中具有很重要的作用。 在项目实践中可以看出,Qt在工业自动化、医疗设备
    发表于 08-14 15:15

    盘点嵌入式就业所需要的技能有哪些?

    在数字化和智能化的大潮中,嵌入式系统无疑是支撑现代科技发展的核心力量。从智能手机到智能汽车,再到智能家居,嵌入式技术无处不在,无时不刻不在影响着我们的生活和工作方式。因此,对于那些对科技充满热情的人
    发表于 08-11 15:43

    Linux嵌入式和单片机嵌入式的区别?

    Linux嵌入式与单片机嵌入式在多个方面存在显著的区别,以下是详细的比较和归纳: 一、基本概念 1. Linux嵌入式: 定义:将Linux操作系统运行在嵌入式设备上的一种配置。
    发表于 06-20 09:46

    在通话中从VoWiFi切换到VoLTE时掉话的故障分析

    某运营商VoWiFi业务,用户在通话中先从VoLTE切换到VoWiFi,再从VoWiFi切换到VoLTE时掉话。
    的头像 发表于 05-23 10:09 761次阅读
    在通话中从VoWiFi<b class='flag-5'>切换到</b>VoLTE时掉话的故障分析

    嵌入式开发,如何选择适合的系统?

    嵌入式ARM开发中,面对多种操作系统的选择,如何做出最适合项目的决策?本文将为您梳理常见系统的特性,帮助您快速了解它们的优缺点,以便更好地选择适合的系统。引言在嵌入式ARM开发中,选择合适
    的头像 发表于 05-20 11:32 915次阅读
    <b class='flag-5'>嵌入式</b>开发,如何选择适合的系统?

    嵌入式开发入门指南:从零开始学习嵌入式

    随着物联网、智能硬件的发展,嵌入式开发成为热门技能之一。以下将为初学者提供一份详细的嵌入式开发入门指南,涵盖学习路径、必备工具、推荐资源等内容。 1. 嵌入式系统的定义与应用嵌入式系统
    发表于 05-15 09:29

    飞凌嵌入式2025嵌入式及边缘AI技术论坛圆满结束

    飞凌嵌入式「2025嵌入式及边缘AI技术论坛」在深圳深铁皇冠假日酒店盛大举行,此次活动邀请到了200余位嵌入式技术领域的技术专家、企业代表和工程师用户,共享嵌入式及边缘AI技术的盛宴!
    的头像 发表于 04-28 13:57 3845次阅读
    飞凌<b class='flag-5'>嵌入式</b>2025<b class='flag-5'>嵌入式</b>及边缘AI技术论坛圆满结束

    嵌入式适合自学吗?

    嵌入式适合自学吗?其实并不建议大家自学嵌入式,主要有以下原因。 一)学习难度大 1)知识体系复杂:嵌入式系统是一个复杂的领域,涉及到计算机、电子、通信等多学科知识,需要学习者具备扎实的软硬件
    发表于 04-27 09:54

    飞凌嵌入式「2025嵌入式及边缘AI技术论坛」议程公布

    4月22日,飞凌嵌入式“2025嵌入式及边缘AI技术论坛”将在深圳举行,论坛以“新生态,智未来”为主题,旨在汇聚行业智慧,探讨嵌入式技术与边缘AI的深度融合与创新应用。
    的头像 发表于 04-02 15:12 1075次阅读
    飞凌<b class='flag-5'>嵌入式</b>「2025<b class='flag-5'>嵌入式</b>及边缘AI技术论坛」议程公布

    嵌入式主板选型与应用指南

    嵌入式主板是专为嵌入式系统设计的核心硬件平台,广泛应用于工业控制、物联网、医疗设备等领域。以下是关于嵌入式主板的详细介绍:1.嵌入式主板的核心特点紧凑尺寸:通常采用小型化设计(如Min
    的头像 发表于 02-27 14:53 938次阅读
    <b class='flag-5'>嵌入式</b>主板选型与应用指南

    嵌入式主板的概述与发展

    随着科技的迅猛发展,嵌入式系统在现代电子产品中扮演着越来越重要的角色。嵌入式主板作为嵌入式系统的核心组件之一,承担着控制、处理和通讯等多种功能。本文将对嵌入式主板的基本概念、构成部分、
    的头像 发表于 01-13 16:30 1189次阅读
    <b class='flag-5'>嵌入式</b>主板的概述与发展

    ARM架构嵌入式主板特点

    嵌入式主板可以理解为嵌入在设备中用于控制和数据处理的CPU板,也就是设备的“大脑”。当主板嵌入到设备中,当然对主板的体积和功耗会有更严格的要求(嵌入式主板的散热问题)。如今
    的头像 发表于 12-31 16:03 1851次阅读
    ARM架构<b class='flag-5'>嵌入式</b>主板特点

    新手怎么学嵌入式?

    新手怎么学嵌入式? 在科技飞速发展的今天,嵌入式技术已经渗透到我们生活的各个角落,从智能手机到智能家居,从汽车电子到医疗设备。对于新手而言,嵌入式技术就像是一座充满神秘和机遇的宝藏,等待着大家去挖掘
    发表于 12-12 10:51

    什么是嵌入式人工智能

    嵌入式人工智能是指将人工智能技术应用于嵌入式系统中的一种技术。嵌入式系统是嵌入到其他设备或系统中的计算机系统,通常用于控制、监测或执行特定任务,如智能手机、智能家居设备、智能汽车等中的
    的头像 发表于 12-11 09:23 1525次阅读
    什么是<b class='flag-5'>嵌入式</b>人工智能