AP+OS+APP主导产品开发,AP(Application Processor)应用处理器是产品主板(PCBA)的灵魂,主要的功能是用来执行操作系统。OS(Operating System)的重要性在于它提供应用软件的执行环境,并负责驱动主板上的所有硬件。APP(Applications)则是基本操作系统所撰写的应用程序。
操作系统有近二十年来,不断蓬勃发展,并采取社群模式开发的Linux kernel。应用程序部份,有Google提供的AOSP(Android Open Source Project)以及Android API标准。应用程序开发者基于标准API撰写各式有创意的应用程序,产品开发商或硬件制造商,可基于AOSP的架构以及API标准发展产品。对产品开发商的优点是,基于AOSP架构与API标准所发展的产品,可搭载「现有的 Android 应用程序」。意思是,Android Market或第三方来源的各种Android应用软件,「很早就为我们的产品准备好了」。
因此,AP+OS+APP的产品公式,可等价于AP+Android Application Framework+Developers。这让产品开发的思惟很不同,但也可以很传统,取决定产品本身的定义。以下是几点「很不同」的想法,提供大家参考指教。
第一、Android Application Framework的开发强调「兼容性」。这个兼容性并不是传统上的「硬件兼容」或是「旧版本软件兼容」,而是「API兼容」。如同上述所提,当一个Android框架无法开发到API兼容时,「很可能多数的现成软件都无法正常执行」。开发Android产品不是只为了硬件,而是要支持网络上「现成的各种软件」。消费者可能无法接受一个API不兼容的Android产品。大部份的应用开发者都基于标准Android SDK做开发,此时,API不兼容的产品,会让这些应用软件无法执行。因应这个问题,Google提出了CTS套件,希望厂商开发的 Android 框架与产品都可以通过CTS(Compatible Test Suite)测试。
第二、开发软件是「设计导向思惟」。写程序(Coding)并不等于做软件(Software),写code可以很straight forward,意思是,大家可以通往直前,不受任何限制地自由发挥,程序代码怎么写,很自由心证。但是做软件就很不同了。以Android框架的开发为例,写code要考虑架构,要先做设计(OOD),要验证设计的正确性,同时也要达到重用(Design Reuse)框架设计的要求;所以开发Android框架,是在一套系统化且制式的规模下进行,写code受到规范。过去硬件商写code是为了驱动硬件,或验证硬件,现在要担纲软件开发的工作,coding的思惟就要改变。
第三、这是开放平台。开放平台(Open Platform)与开源软件(Free and Open Source Software)是二个概念。开放平台代表开放API给开发者使用,或是开放Platform Builder供制造商使用,制造商很可能无法取得内部的实作源码(Implementation source),取而代之的是一个configurable的环境。意思是说,AOSP版本的程序代码很可能永远都是reference code,厂商自已的implementation也不会公开源码。Android里的Launcher是reference Launcher,Android里的rild也只是reference code;大部份implementation是reference implementation,不是workable或useable code。所以,不能只顾着等候AOSP的释出,也不能渴望着取得所有的源码。强化开发能力,动手发展AOSP成为好用的自有版本,才是务实之道。
2011年是Android挥军平板计算机的重要一年, 要知道制造商在Android的研发储备能量,这将是重要的观察指针。