微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 基于Android系统的车载娱乐系统构架

基于Android系统的车载娱乐系统构架

时间:02-18 来源:互联网 点击:

共享管理、资源管理、通知管理、电话管理。

  2.2 安全性

  Android内部进程通信以及安全性主要指在安装第三方应用的情况下,尽可能保证系统的稳定性。底层的许可机制是由Linux内核以及文件系统提供的,基本上可以满足基于Linux内核的其他系统。由于Android设备针对的是单用户,因此多用户服务的设备靠分配唯一的标识才能应用。

  此外,Android是静态的安全许可系统,它在程序安装时被强制使用。

  2.3 进程间的通信

  Android有两种进程间通信的模型:intent和code绑定。intent类框架提供上层的进程间通信,这是最好的方式,可以动态地利用SDK包进行开发,并与上层应用程式绑定。intent类包含了几个用来描述调用者真正意图的域,调用者发送intent给Android的intent解析器,And-roid系统将通过intent过滤器从所有的应用程序中选择最适合处理该intent的acTIvity类。intent域包含了期望的处理方式、类以及数据字符、数据的MIME类型。

  intent能够被用来触发acTIviTIes,发送数据给广播并启动相应的服务。安全性方面的限制主要通过Android系统提供的权限框架类来实现。

  每个程序运行在自身的进程里,但开发者能够写一个服务运行在不同的进程中,一些对象在进程间传递也是允许的。在Android平台上,一个进程通常不能进入其他进程内存。因此,两个进程间如果相互通信,需要把他们的对象分解成操作系统可以识别的基础类型,并且通过进程的边界来控制对象。附带SDK的AIDL工具自动生成控制代码段,AIDL是用来生成在两个进程之间通信代码的一种接口描述语言。AIDL IPC机制就是使用代理类在客户端和实现端传递参数。

  3 Android应用在车载电子的一种架构

  Android扩展了汽车的总体结构,基本架构如图1所示,自定义的Android平台应用在汽车功能模块和支持组件的一边。这种扩展的目的是提供一种允许可信任的应用程序访问汽车功能模块(车辆制动、转向或电力传动分配)的安全机制,而不可信任的程序被隔离并且不可以访问。应用程序之间的这种强制性的安全策略是源于可靠性要求的IVI系统。通过汽车管理类可信任应用程序有机会访问一些特性(CAN总线),但处理不当也可能危及车辆安全(例如通过连续发送无效的数据帧使得CAN总线带宽饱和)。这种方案的主要特点是使上层逻辑去耦合,那样就可以方便上层应用获取并处理来自底层数据。

  

  3.1 汽车管理模块

  从上图可知,汽车管理模块可以看成是负责车载应用程序与Android底层交互的一个中间类库,只有通过它,车载应用程序才可以获取相应底层数据。

  它有两个接口:一个是对应于应用程序而另一个是对应平台的组件,它是在Android SDK上面开发的并且拥有平台认证的一款应用程序。因为这个管理类不属于平台本身,所以用户在没有专业人员帮助时不能自行更新。

  3.2 与应用程序之间的交互

  Android是基于不透明的IPC之间的通信模型。应用程序将其功能交给操作系统,在运行时,其他的应用程序可以获得他们的功能。基本上,平台提供了后期管理和维护代码的能力,这种模型也可以用于在第三方应用程序和汽车管理类之间的交互。

  汽车管理类处理汽车功能模块通过属性android.permission.car.speed.read和android.permission.car.speed.write。对于每一个属性(例如汽车总线发送实时速度),Android提供两种权限,创建并且指派给管理类。

  利用预先定义的安全级别,它可以指定不同安全级别拥有以下的权限:

  ①所有的。任何人可以访问应用程序

  ②通常情况。访问是有权限决定的,但是一些应用程序的权限没有具体指出权限人;在程序安装后,权限会被手动设置。

  ③危险。访问时有权限限制的,用户在安装时必须有详尽的安全许可。

  ④签名。访问是有权限限制的,只要应用程序获得平台的认证,那么权限就会自动同意。

  平台认证就是车载设计商在开发设计过程中使用的签署平台。它也用于签署汽车管理类。如果一个第三方申请了此证书,它就具有完整的控制汽车扩展(事实上汽车管理类只是一个签署应用平台证书的应用程序)。通过以下属性定义的汽车功能,能够通过高级别的AIDL接口去访问:

  

  这种读/写的方式允许通过输入/输出来访问属性的值。通过增加或者删除监听器的方法来允许注册或者取消相关的回调函数,该通知的属性值是可以改变的。汽车管理类继承了此接口。个人的电话是要被Android权限相关的属性核实的,如果来电者是被允许执行的,那么汽车管理类进程会自动处理,否则就会抛出一个异常。

在开发应用

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top