Android平台软件架构设计
谷歌(Google)的Android是针对便携设备所提出的软件平台(Platform),更具体说是一个软 件迭层(Software Stack),若软硬件商均支持与遵循此平台规范,则可以达到软硬件高度分离、 改变,蓝色软件部分均不需要修改,即可在不同的硬件上执行。相对的,红色、绿色、黄色层则具有 硬件相依性,不同的硬件需要不同的编译、调修,甚至可运用硬件电路方式使此三者加速执行。
虽然蓝色层具硬件平台移携性、硬件中立性,然在Android平台上仍将蓝色层区分为二,经常使用 且需要统整一致性者,即归属至应用程序框架层,另一则是应用层,应用层的各应用程序即是应用创 意的发挥场所,各应用程序可有极大的差异,而非追取一致。
另外,应用程序可呼用应用程序框架中的软件组件为其服务,同时也可呼用Android运行时间内的 核心函式库为其服务。
而框架层内,活动管理员(Active Manager)即类似今日Windows操作系统内的事件管理器,负 责应用程序上的操作事件(如一个按钮被按、一个手写输入被辨识完成等);窗口管理员(Window Manager)则负责各应用程序的窗口画面等。
《图五 Android的Dex (.dex)文件内部结构》
图片来源:Google
进阶探析DVM
了解整体迭层后,重新对整体进行检视,可发现整个Android平台的重点 即在DVM,因为绿色函 式库中的组件,多已是业界标准(如SSL)或约定成俗的标准(如WebKit、SQLite),而红色核 心也早用于诸多的Linux嵌入式应用上,蓝色应用层则由广大软件商、程序员去发挥,蓝色的框架 及核心函式库则会持续透过组织程序的制订而增长、强化。
事实上Google是在2005年7月购并Palo Alto的新创公司,取得DVM后,才能构筑、提出Android。
DVM的运作方式与JVM相同,DVM的程序语言类似于Java语法,原已有撰写Java程序经验者 可较快适应,不过Java程序写完后,于执行会转译成Byte Code的中介码。同样的,Android的
类Java语法也会译成其独有的中介码,此中介与Java Byte Code全然不同。
除语法相近、译出的中介码截然不同外,Android也不能使用Java的 类别档, 档,所以若有程序员想直接把以前撰写过的Java程序,直接重新编译成Android可执行的程序,是 不可能的,依然只能保有程序的逻辑、算法,然后重新以Android、DVM作法重新撰写才行。不过 Android仍提供一个名为dx的工具程序,。
既然DVM与JVM如此相像,除开放性、版权问题外,是否仍以Java较合适?
其实不然,DVM作法的执行比Java更快速、更安全,DVM是以缓存器为基础执行,即程序执行时 的相关变量是放在缓存器中,相对的,JVM是堆栈为基础的执行,变量存取需要透过Push、Pop等 手续,速度不如DVM。
而安全性上,DVM让每个应用程序均以一个行程来执行,如此某一应用程序因撰写不良或外在因素 而当机,则其当机问题不扩散、殃及DVM,DVM依然可正常执行其他应用程序。相对的,Java程 序若发生问题,并导致JVM停摆,则其
Android平台软件架构设计 来自淘豆网m.daumloan.com转载请标明出处.