核心提示:Android技术生态系统和安全可以从五个方面来分析:一、Android的操作系统层;二、Android的硬件抽象层、Android的中间件和GUI系统、Android应用程层接口、Android的安全性。

  中国软件技术大会已于2011年12月16日、17日在北京国家会议中心成功举办。本次大会是由中国科学院软件研究所、中科软科技、计算机世界联合发起并主办的中国软件行业技术交流平台。在为期两天的大会上,来自软件行业内资深专家为大家带来精彩的演讲。

  随着Android技术的快速发展,越来越多的人开始关注Android技术,如今的Android系统在智能手机市场发挥出色的表现。据相关媒体报道,2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。2011年11月份数据显示,Android占据劝酒智能手机操作系统市场52.5%的份额,在中国市场占有率为58%。

  在本次大会上,来自国内资深一线工程师架构师韩超为我们带来了《Android技术的生态系统及其安全机制》的演讲,为广大Android技术爱好者提供很好的知识需求。

  韩超为我们讲述了依据Linux内核、硬件抽象层、中间件、应用层接口等几个层次Android系统中使用的各种技术。以及这些技术的来龙去脉和在Android系统中的发展。深入剖析Android对传统技术的继承和密切关系,并预估其下一步发展方向。

  听众可从中理解Android系统的技术架构,并了解Android如何快速构建成一个开源的移动系统,并迅速向其他各个领域发展的原因。进一步介绍Android系统第三方应用和设备层之间的安全机制,指出Android开发过程中隐含的安全漏洞。了解到Android开发过程的安全策略和应注意的问题。

  韩超提到,Android技术生态系统和安全可以从五个方面来分析:一、Android的操作系统层;二、Android的硬件抽象层、Android的中间件和GUI系统、Android应用程层接口、Android的安全性。

  Android的总体技术特点是,Android系统的诞生给了嵌入式系统两大方面的突破:第一,Android是一个完备的系统;二,Android是一个提供了标准化接口的系统。

  Android的操作系统层

  Android的内核遵从标准Linux的结构,其实Android系统就是Linux系统,只是Android系统从分利用已有的机制,尽量使用标准化的内容,比如驱动程序,并且做出必要的扩展。 Android灵活充分使用内核到用户空间的接口主要表现在字符设备节点、Sys文件系统、Proc文件系统和不增加系统调用。详解Android技术的生态系统及其安全机制_第1张图片

其中Android的内核组件有:binder驱动程序(用户IPC机制)、logger驱动程序(用户系统日志)、timed_output驱动框架、timed_gpio驱动程序、lowmemorykill组件、ram_console组件、Ashmem驱动程序、Alarm驱动程序、pmem驱动程序、ADB Garget驱动程序、Android Paranoid网络。

  Android的硬件抽象层

  Android系统需要运行于再不通的硬件平台上,因此需要具有很好的可移植性。Android的硬件抽象层负责Android系统和硬件设备之间的联系。

  自下而上经典的模型为Linux驱动、Android硬件抽象层、Android本地框架、Android的JAVA框架、Android的JAVA应用程序。

详解Android技术的生态系统及其安全机制_第2张图片

对于标准化比较高的子系统,Android系统使用完全标准Linux驱动,如输入设备(Input-Event)、电池信息(Power Supply)、无线局域网(Wifi协议和驱动)、蓝牙(bluetooth协议和驱动)。

  对于有Linux标准驱动,但是各系统定义情况不同的子系统,可以选择标准驱动或自定义驱动,如显示(framebuffer)、背光和指示灯(led驱动)、警报器和时钟(RTC驱动)、音频(OSS、ALSA或类似驱动)、视频输出和照相机(v412)、GPS和Modem(TTY)。

  Android的中间件和GUI系统

  Android的中间件的特点是标准而小巧的C语言库,适用的基本系统(C工具库、init、uevent),纵贯全局的通信机制(属性、套结字、Binder),重新实现的Dalvik徐弩机,大量适用Linux和JAVA标准库,同时减少模块间的底层耦合性。

  而Android的GUI系统中,JAVA层能够实现结构化,本地层结合具体的硬件,有Suface处理图层、Skia-图形接口处理2D和OpenGL标准处理3D。

  Android应用程层接口

  由于Android设备和Android应用程序可以独立开发,因此Android应用层接口至关重要。Android应用层接口的特点有:根据API级别的标准化接口(兼容性),JAVA层的隐藏接口和非API接口可调用,可以使用JNI调用本地程序,SDK提供标准化的本地库(兼容性),预置应用和第三方应用的权限不同。

  JAVA框架层和应用层的技术特点:机制和策略的互通,框架层统一管理资源,框架层提供上层“虚拟解耦合”的API,应用层按照包得形式独立存在,强制应用层具有“组件”结构,灵活的应用层插件系统。

  Android的安全性

  Android安全性的限制表现在,无论JAVA调用还是通过JNI调用本地库,都会受到Linux本身用户权限的限制,当使用JAVA调用框架层的方法的时候,将受到框架层许可的限制,调用其他包中组件的时候,将受到组件许可的限制,最终的限制由签名机制完成。

  许可机制对安全的控制主要表现在如下方面:某些系统的接口中将检查调用者的许可,如果所调用的应用程序包没有这个许可,调用将失败,并抛出异常;对于普通许可,应用程序包可以直接得到,对于危险许可,应用程序包在得到的时候具有提示;签名许可需要申请者和声明者具有相同的签名。

  安全策略还有一个方面,就是一个额外的逻辑为“由于许可增加到额外的用户组”。也就是说由于应用程序包获得了某些许可,这个应用程序包可以从Linux进程的角度被增加到特定的组。并且这是一个各个不同的Android设备可以进行自定义的策略,也就是各个平台可以自定义哪些许可将获得增加到哪些用户组中去。


更多相关文章

  1. Android 透明式系统栏设计
  2. 13、Android重写系统返回键
  3. Android 系统永不休眠
  4. Android中回调接口的使用
  5. 国内外Android知名技术博客汇总
  6. Android 4.0系统源码目录结构详解
  7. Android应用程序调用系统解锁页面
  8. android 调用系统应用
  9. android实现调用系统音乐播放器

随机推荐

  1. android ndk编译getevent
  2. Android(安卓)MediaCodec踩坑笔记
  3. Android开发利器之Data Binding Compiler
  4. Android应用程序组件Content Provider在
  5. android SQLite操作
  6. Porting WiFi drivers to Android
  7. RecyclerView正确打开分隔符
  8. Android Manifest之元素中文注释
  9. Android(安卓)UI组件学习
  10. Android(安卓)开发:(八)数据适配器 Adapter