山寨手机操作系统_山寨手机用的什么系统 - CSDN
  • MTK是现在市场上所有国内手机设计、制造商使用的最多的一个完整的手机产品解决方案,大部分做手机的技术人员都对此有接触和了解。不过,MTK的整套软件系统十分庞大且复杂,很多刚接触这套系统的软件工程师一时不知...

    MTK是现在市场上所有国内手机设计、制造商使用的最多的一个完整的手机产品解决方案,大部分做手机的技术人员都对此有接触和了解。不过,MTK的整套软件系统十分庞大且复杂,很多刚接触这套系统的软件工程师一时不知如何进行配置和客户化定制。本文在此对整个MTK软件系统的工程结构和配置进行了简单介绍,希望通过此文和大家相互交流MTK软件系统的维护和修改、定制方面的心得。

         MTK使用了nucleus实时操作系统,在其上做了个内核抽象层的封装,以适应多种实时操作系统,如oscar、ThreadX、nucleus。整个软件系统包括nucleus操作系统、平台设备驱动、协议栈、文件系统、WGUI、MMI、J2ME等。在这里MMI部分几乎包括了操作系统内核、协议栈、文件系统之上的所有部分,其中WGUI也在其中。

         MTK的PC模拟版使用VC的编译器和链接器生成,ARM版使用ADS1.2的编译器和链接器生成。因为MTK的整个软件系统是一个很庞大而且复杂的工程,并且要支持多个MTK的产品系列和多家客户的客户化支持,使用集成开发环境(IDE)已经无法胜任,而且很难做到整个工程的自动构建和资源、代码的生成。所以MTK的软件系统使用了windows下的GNU开发工具链(MinGW)来进行工程的管理、配置和构建,MTK将MinGW放到了第三方工具中。另外还使用了perl脚本来解析用户输入的命令行参数,因此第三方工具中还包含了ActivePerl(windows下的perl解释器)。不过,整个软件系统并没有使用MinGW的全部工具,好象只使用了make这个工具,由几个Makefile控制了构建的过程,在编译和链接时根据最终生成PC模拟版还是ARM版而分别调用VC的编译器和链接器或ADS1.2的编译器和链接器。

         接下来我们从具体的工程实践来看MTK的手机软件系统。

    一. MTK手机软件系统的目录结构简介

         MTK手机软件系统的主要目录如下所示,因整个工程的目录树非常庞大,为简单起见和减小篇幅,去除了在工程结构中相对不重要的目录。

    .
    |-- Fast_DL
    |-- ROM
    |-- adaptation
    |-- applib
    |-- bootloader
    |-- config
    |-- custom
    |     |-- app
    |     |     `-- TOP_6227_BB
    |     |-- common
    |     |-- drv
    |     |     |-- LCD
    |     |     |     `-- TOP_6227_LCM
    |     |     `-- image_sensor
    |     |         `-- MT9D011
    |-- drv
    |-- fs
    |-- inc
    |-- init
    |-- interface
    |-- j2me
    |-- kal
    |-- make
    |     |-- applib
    |     |     |-- applib.def
    |     |     |-- applib.inc
    |     |     |-- applib.lis
    |     |     `-- applib.pth
    |     |-- bootloader
    |     |-- config
    |     |-- custom
    |-- media
    |-- mmi
    |-- modis
    |-- mtk_lib
    |     `-- MT6227
    |         `-- S01
    |             `-- gprs
    |                 |-- abm.lib
    |                 |-- adaptation.lib
    |                 |-- applib_inet.lib
    |-- nucleus
    |-- nvram
    |-- plutommi
    |-- tools

         Fast_DL是开发时下载二进制映像和资源等的相关文件的目录。ROM是固化在ROM(可能是Flash的只读区)中的相关代码和头文件的目录,在给客户的发布版中大都只有一些导出函数的头文件,其中似乎还有一个跳转表的东西ROMSA_FuncTable。

         kal是上面所说的内核抽象层的相关文件的目录。nvram是存取NV中的内容的相关代码的目录。nucleus是nucleus实时操作系统的目录,在给客户的发布版中只有头文件。drv是驱动相关的代码的目录。fs是文件系统相关的目录,好像只支持fat格式的。tools是工程相关工具的目录,包括MinGW。interface是系统各层的接口的目录,还包含重要模块的接口,如bluetooth、WIFI。config是一些系统和任务(task)相关头文件的目录,感觉不像是配置相关的目录。inc是中断控制和寄存器地址相关头文件的目录。

         modis是PC模拟版的相关目录,包括了虚拟的GSM网络、SIM卡等,以及模拟器需要的字符串、图片等资源,还有PC模拟版的库、VC的相关工程文件。

         mmi是一个缺省的空的MMI应用的目录,其中只是创建了一个什么也不干的MMI任务(线程),处理下层发送上来的消息。plutommi是pluto组织(也可能是原本的mmi应用的代号)所写的整套MMI应用所在的目录,而实际上也就是我们需要定制和修改的MMI应用。其中的mmi目录中是pluto原本写好的mmi应用,mtkapp中是mtk后来所写的mmi应用,而Customer中是图片、字符串等资源的定制目录,大部分只是修改了字符串和图片、声音等的项目只要修改这个目录下的资源即可。

         mtk_lib中是已经编译链接好的ARM版的库。因整个工程过于庞大,若完整的全新构建一次需要很长的时间。为了减少构建的时间,将一些已经完全调试稳定且基本不再改动的库和MTK不开放源代码的库放到这个目录,这样每次构建时只需要将这些库和其他编译好的库链接起来就可以了。这些库一般是ARM版的,若有thumb版的,则再增加一个和ARM版相对的thumb版的库,一般叫第二个库,如media_sec.lib就是thumb版的多媒体库。

         custom是所有客户化项目的驱动程序及系统和MMI应用定制相关的文件的目录。如你的手机主板的RAM、FLASH等存储器的尺寸和地址空间有改动,MMI应用的特性有不同,蓝牙、WAP的配置有变化,或是有项目相关的新应用,其相关文件都是放在这个目录中和特定项目对应的目录下,如项目CUST1_6227,则放在CUST1_6227_BB下。要注意的是custom也作为一个模块存在,这使得其可以通过make目录中的custom模块的四个文件进行客户化的一些定制。

         applib、bootloader、init、media、j2me等是这个系统各个层次的相对独立的模块各自的目录,其实drv和fs等目录也可以看成是相对独立的模块,只不过其更重要些而在前面介绍。这些目录包含了这些模块的C文件和头文件。每个目录(模块)都在下面的make目录中有相对应的目录保存构建时的编译链接配置文件。

         make是工程构建过程中最重要的一个目录了,工程构建用的Makefile和一些中间配置文件将放在这里,Makefile在讲解构建过程时再具体介绍。在每个模块对应的目录下,都有四个文件控制了编译链接时的过程和配置。分别是:

           <module_name>.def文件中是该模块构建过程中用的条件定义。

           <module_name>.inc文件中是该模块所有用到的头文件所在目录的路径,是相对整个工程根目录的路径。

           <module_name>.lis文件中列出了该模块的所有C文件,其路径也是相对整个工程根目录的。

           <module_name>.pth文件中是该模块的所有C文件所在目录的路径,是相对整个工程根目录的路径。

         build目录中保存了构建过程中产生的目标文件和库文件,及其他一些中间文件。

    二. MTK手机软件系统的构建过程

         如前面一节所述,MTK手机软件系统的构建使用了GNU的make,使得整个工程的构建可以自动进行,且可以灵活控制。整个构建过程由Make.bat、make2.pl、MoDIS.dsw、Gsm2.mak、Option.mak、<customer>_<project>.mak等文件控制。构建PC模拟版是通过msdev和VC的工程文件MoDIS.dsw来完成的。Gsm2.mak是构建ARM版的核心Makefile文件,整个构建过程由其控制,其他是一些启动、选项配置、子过程的文件。其关系图如下所示。

       在MTK手机软件系统的根目录下有一个批处理文件Make.bat,这个批处理文件启动了整个工程的构建过程。在windows的命令行下,在该系统的根目录下输入命令make和相应的参数即可开始工程的构建,该批处理文件的使用方法如下所示。
    Usage:
       make ["customer"|"mt62xx"] "project" "action" ["modules"]

    Description:
       customer   = mtk               (Default customer)
                 = firefly17_demo   (FIREFLY17_DEMO project)
                 = [mt6217|mt6219|mt6226|mt6227|mt6228|mt6229] (EVB only)
                 = ...

       project     = l1s               (Layer 1 stand-alone)
                 = gsm               (GSM only)
                 = gprs             (GPRS only)
                 = basic             (Basic Framework)

       action     = new               (codegen, resgen, clean, update) (default)
                 = update or u       (scan, compile, link)
                 = remake or r       (compile, link)
                 = clean or c       (clean)
                 = resgen           (resgen)
                 = c,u               (clean then update)
                 = c,r               (clean then remake)
                 = codegen           (codegen)
                 = viewlog           (open edit to view build log)
                 = emigen           (emigen)
                 = emiclean         (emiclean)

       module(s)   = modules' name     (kal, l1, ...)
       => OPTIONAL when action is one of (clean c remake r update u c,r c,u)

    Example:
       make gsm new                           (MT6205B EVB new)
       make gprs codegen                     (MT6218B EVB codegen)
       make mt6219 gprs update               (MT6219 EVB update)
       make firefly17_demo gprs new
       make milan_demo gprs c,u init custom
       make mt6219 gprs r init custom drv

         其中较常用的action有new、update、remake、new_modis这几个。

         new是全新开始构建整个工程的ARM版,包括图片、声音、字符串等资源都要重做,依赖的其他动作最多,是最彻底也是耗时最长的一个动作,一般得到一个新的MTK发布版本后要做一次。

         update是重新更新整个工程的ARM版,该动作会扫描工程中文件和库的依赖关系,若依赖关系有变化会建立新的依赖关系,随后根据新的依赖关系重新编译链接有改动的部分,一般在增加或删除一些驱动或应用的情况下需要用update。

         remake是重新编译整个工程的ARM版,该动作只是简单的重新编译链接有改动的部分,不检查依赖关系,是耗时最短的一个动作,也是最常用的动作。

         new_modis是全新构建整个工程的PC模拟版,其调用VC的编译器和链接器得到一个可以在windows上运行的PC模拟版。MMI应用软件工程师可以在没有硬件板的情况下在PC上检查和调试自己写好的应用。

         Make.bat实际上只起引导作用,其只有一行批处理语句perl make2.pl %*,于是运行该批处理文件后控制权转给了perl脚本make2.pl。在这个perl脚本中解析了用户输入的命令行参数,设置变量,准备make时需要的临时配置文件,随后根据生成的可运行映像是PC模拟版还是ARM版而分别调用不同的构建过程。

      

    Pc模拟版的构建通过调用如下命令实现。

             system("$msdev MoDIS.dsw /MAKE /"$argu - Win32 $modisDir/"

                         /OUT ${MoDISLogDir}//${argu}.log")

         在这里$msdev就是VC的msdev,通过VC的工程文件MoDIS.dsw和后面的参数进行具体的构建过程。熟悉VC工程的朋友应该比较清楚,因此就不再具体解释了。之后将只以ARM版为主来讲解整个工程的构建过程。

         ARM版的构建通过调用如下命令实现。

             system("${makeCmd} -f${makeFolder}${myMF} -r -R

                         CUSTOMER=$custom PROJECT=$project $action")

         在这里${makeCmd}是tools/make.exe,即GNU的make,${makeFolder}${myMF}是make/Gsm2.mak,$action是new、update、remake等。变量CUSTOMER和PROJECT分别是客户名和项目名,在构建过程中将根据此两个变量的值选定项目相关的配置文件,从而实现客户化的定制。通过给make指定ARM版的核心Makefile文件Gsm2.mak,开始了ARM版的构建过程。

         Gsm2.mak文件中包含了Option.mak这个配置用的Makefile文件,另外还包含了一些以.tmp和.bld为后缀的由perl脚本 make2.pl生成的临时配置文件。这些临时配置文件主要是一些action如clean、remake等所需的变量设置,及客户化和版本号等的一些信息。Gsm2.mak控制了new、update、remake等动作的过程。具体分别如下所示。
    new : cleanall cmmgen mmi_feature_check asngen codegen asnregen /
               operator_check_lite update

    update : cleanlog cleanbin mcddll_update codegen resgen cksysdrv remake

    remake : cleanlog cleanbin genverno libs $(BIN_FILE) done


         上面的构建过程的几个步骤中,最重要的两个步骤是libs、$(BIN_FILE) 。libs调用ARM版的编译器和连接器将各个模块目录下的C文件编译链接为独立的库。$(BIN_FILE)这个步骤将各个模块编译链接得到的库和 mtk_lib目录下的库一起链接起来得到一个映像文件,然后使用ADS的工具fromelf将映像文件生成以变量BIN_FILE命名的二进制文件,该文件可以下载到硬件板上运行。
         libs这个步骤如下所示。
    libs: cleanlib startbuildlibs $(COMPLIBLIST)


         libs中真正进行编译链接的步骤是$(COMPLIBLIST),要生成的库由变量COMPLIBLIST列出,在ARM版中,变量 COMPLIBLIST从变量COMPLIST得到。变量COMPLIST是在Option.mak及其包含的Makefile文件中赋值的。因有很多库需要编译链接,变量COMPLIBLIST展开后包含多个步骤,而这些步骤都是重复不变的,因此在定义步骤$(COMPLIBLIST)的构建过程时使用%.lib代替。%.lib这个步骤先清除了之前的一些依赖关系文件,将一些变量的设置写入~compbld.tmp这个临时文件中,然后给make指定Makefile文件comp.mak,完成库的编译和链接,如下所示。

    %.lib:
         …
         @if /I %OS% EQU WINDOWS_NT /
             (if /I $(BM_NEW) EQU TRUE /
                 (tools/make.exe -fmake/comp.mak -k -r -R $(strip $(CMD_ARGU)) COMPONENT=$* > $(strip $(COMPLOGDIR))/$*.log 2>&1)
    /
             else /
                 (tools/make.exe -fmake/comp.mak -r -R $(strip $(CMD_ARGU)) COMPONENT=$* > $(strip $(COMPLOGDIR))/$*.log 2>&1) /
             ) /
         else /
             (if /I $(BM_NEW) EQU TRUE /
                 (tools/make.exe -fmake/comp.mak -k -r -R $(strip $(CMD_ARGU)) COMPONENT=$* > $(strip $(COMPLOGDIR))/$*.log) /
             else /
                 (tools/make.exe -fmake/comp.mak -r -R $(strip $(CMD_ARGU)) COMPONENT=$* > $(strip $(COMPLOGDIR))/$*.log) /
             )


         上面的命令语句中,参数-k是指有错误也要继续编译,-r和-R是指没有GNU make的默认规则和变量。COMPONENT=$*把当前要生成的库赋给变量COMPONENT。要注意%.lib匹配了所有要生成的库,但这个步骤一次只生成一个模块的库,这个步骤对所有匹配到的库都会执行一次。
         comp.mak这个Makefile文件控制了模块的编译链接过程。在这个文件中,首先将当前模块要生成的库(由变量COMPONENT传入)设置给了变量TARGLIB。之后从<module_name>.lis文件中得到SRC_LIST和CPPSRC_LIST两个源文件列表,设定要编译的C文件、C++文件、汇编文件等的列表,和要链接的中间目标文件的列表。将<module_name>.inc、<module_name>.def、<module_name>.pth 文件中的头文件路径、C文件路径、编译链接参数等赋值给相应的变量。将平台相关(如6223、6225)的编译参数加上,确定使用ARM编译器还是 thumb编译器,是否支持ARM指令和thumb指令的interwork模式。最后进入库的编译链接过程。
         库的编译链接由update_lib步骤完成,这个步骤直接依赖了$(TARGLIB)。目标$(TARGLIB)是由所有按照.c.obj、.s.obj、%.obj: %.cpp等规则编译得到的中间目标文件链接得到的。其主要过程如下所示。
    $(TARGLIB):
         ...
         @if exist $(FIXPATH)/$(CUS_MTK_LIB)/$(COMPONENT).lib                                         /
             (copy /z $(FIXPATH)/$(CUS_MTK_LIB)/$(COMPONENT).lib $(subst /,/,$(TARGLIB))) & /
             ($(LIB) -r $(TARGLIB) $(COMPOBJS_DIR)/*.obj)                                     /
         else                                                                                                 /
             ($(LIB) -create $(TARGLIB) $(COMPOBJS_DIR)/*.obj)
    ...


         Option.mak是整个工程构建过程中的总控配置文件,在这个文件中还包含了<customer>_<project>.mak和REL_CR_MMI_<project>.mak这两个项目相关的配置文件,用户自定义的配置文件USER_SPECIFIC.mak,另外还包含了一些临时生成的配置文件。这些配置文件在一起设置了工程构建过程中用到的编译器、链接器,库和二进制的工具,设置了编译链接时的参数,公共的头文件路径,设置了需要包含mtk_lib目录中的哪些既有的库,设置了需要生成的库等一系列相关的设置。这些设置都由一些重要的变量保存,具体在下一节中讲解。

    三. MTK手机软件系统的配置

         MTK手机软件系统的大部分配置都已经确定,基本上不需要再改变,一般是MTK发布新的版本时会作些改变,客户不大需要关心。最主要的配置文件是Option.mak,而客户化定制需要需要修改的主要是<costomer>_<project>.mak、REL_CR_MMI_<project>.mak这两个文件。

         Option.mak文件中设置了工程构建时用到的编译器、链接器、库管理、二进制文件生成等工具的路径和可执行程序名,设置了基本的编译链接参数,指定CPU类型(ARM7EJ-S),确定最终使用的库列表(COMPLIST)。

          

         一个项目是由工程中的多个基本库、第三方库和由源代码新编译链接的库组成的,最终这些库链接到一起得到一个完整的可执行映像文件。由哪些新编译链接的库来组成一个项目是由四个关键的变量决定,其中一个是前面提到的COMPLIST,另外三个分别是CUS_REL_SRC_COMP、 CUS_REL_PAR_SRC_COMP、CUS_REL_MTK_COMP。这个几个变量的关系如下所示。

    # *************************************************************************

    # Custom Release Component Configuration

    # *************************************************************************

    # Be sure the following:

    # 1. CUS_REL_SRC_COMP + CUS_REL_PAR_SRC_COMP =COMPLIST(CUSTOM_RELEASE = True)

    # 2. CUS_REL_SRC_COMP + CUS_REL_PAR_SRC_COMP + CUS_REL_MTK_COMP = COMPLIST(CUSTOM_RELEASE = False)

         COMPLIST确定了该项目最终是由哪些库(组件)组成的。MTK的内部版本构建时,则包括 CUS_REL_SRC_COMP、 CUS_REL_PAR_SRC_COMP、 CUS_REL_MTK_COMP这些库。客户版本构建时,则只包括 CUS_REL_SRC_COMP、 CUS_REL_PAR_SRC_COMP这些库。手机设计公司构建的版本都是客户版本,因此只要改变 CUS_REL_SRC_COMP、 CUS_REL_PAR_SRC_COMP这两个变量的值即可以定制自己的项目了。

         MTK_LIBS确定了该项目最终包含了哪些MTK提供的基本库。

         COMPOBJS确定了该项目最终包含了哪些第三方提供的不带源代码的库。变量CUS_RES_OBJ_LIST用于把这些第三方库随项目发布。

         Option.mak和REL_CR_MMI_<project>.mak这两个文件都有对这两个变量CUS_REL_SRC_COMP、 CUS_REL_PAR_SRC_COMP赋值。但Option.mak文件只是设定了整个工程需要的基本库,如手写、图形解码等,和特定项目没有关系。因此客户要定制自己的项目只需要修改REL_CR_MMI_<project>.mak这个文件对这两个变量的赋值即可。

         <costomer>_<project>.mak文件也有对COMPLIST的赋值,但这只是对MTK的内部版本有用,客户版本没有影响。值得注意的是,该项目的绝大部分功能特性(feature)是在这个文件中确定的,如使用的sensor、支持哪些音视频格式、电话本大小、LCD屏幕大小等。下面是该文件中的部分内容。

    J2ME_SUPPORT       = NONE     # J2ME support: NONE, MTK_J2ME, J2ME_LIB, /
                                   MTK_J2MEHI, J2MEHI_LIB, MTK_DUMMYVM

    DRM_SUPPORT = NONE #DRM VENDOR: NONE, MTK, BSCI

    DRM_VERSION = NONE # DRM VERSION: NONE, V01, V02, ALL

    AMRWB_DECODE         = TRUE       # TRUE/FALSE

    AMRWB_ENCODE         = FALSE     # TRUE/FALSE
                   # MT6219 DSP cannot support AMRWB_ENCODE when GPRS connection

    JPG_DECODE           = JPG_HW     # NONE, JPG_HW, JPG_SW

    JPG_ENCODE           = JPG_HW     # NONE, JPG_HW, JPG_SW

    GIF_DECODE           = TRUE       # TRUE/FALSE

    PNG_DECODE           = NONE       # NONE, PNG_HW, PNG_SW

    DAF_DECODE           = TRUE       # TRUE/FALSE

    MJPG_SUPPORT         = FALSE     # TRUE/FALSE

    MP4_CODEC           = TRUE       # TRUE/FALSE

    AAC_DECODE           = TRUE       # TRUE/FALSE

    ISP_SUPPORT         = TRUE       # TRUE/FALSE

    CMOS_SENSOR         = OV7660         # OV9640, PAS105, PAS302, NONE, MT9D011, /
                                           MT9M111, OV9650

    四. 增加模块的配置实例

         若我们需要加入zlib这么一个模块(zlib包含了很多程序都用到的压缩和解压函数),我们可以按如下步骤进行。

         1. 把zlib的源代码包拷贝到你的MTK软件系统根目录下,这样所有的zlib代码都在zlib目录或zlib-1.2.3目录下(用哪个目录名由你的喜好来确定),在此为简单起见就放在zlib目录。

         2. 在make目录下新增一个zlib的目录(最好和根目录下的目录名一样),增加四个文件,分别是zlib.def、zlib.inc、zlib.lis、zlib.pth。zlib.def文件只要加上APCS_INTWORK就可以了,其他三个文件中加上源文件及其目录、头文件目录即可。

         3. 在REL_CR_MMI_<project>.mak这个文件的合适位置加上如下语句。

    CUS_REL_SRC_COMP += zlib

         4. 把这个工程remake一下,若没有错误,zlib模块就成功加上去了。其他模块就可以调用zlib提供的压缩和解压缩函数了。


         若我们需要加入一个没有源代码的第三方库,譬如加入wifi,我们可以按如下步骤进行。

         1. 把wifi的所有第三方库文件拷贝到一个新建的wifi目录下。

         2. 在Option.mak这个文件的合适位置加上如下语句。

    ifeq ($(strip $(WIFI_SUPPORT)),WIFI_LIB)

         COMPOBJS += wifi/sslplus.lib

         CUS_REL_OBJ_LIST += wifi/sslplus.lib

         COMPOBJS += wifi/sb.lib

         CUS_REL_OBJ_LIST += wifi/sb.lib

    endif

    展开全文
  • 日前,谷歌(Google)全球副总裁、大中华区CEO李开复接受《第一财经日报》采访时表示,谷歌正在与中国移动合作,希望尽快推出基于Android开放操作系统手机。但当本报记者问到李开复,今年底前能否进入中国时,他摇头...

     看了这篇文章,我的决心值大增了........

    日前,谷歌(Google)全球副总裁、大中华区CEO李开复接受《第一财经日报》采访时表示,谷歌正在与中国移动合作,希望尽快推出基于Android开放操作系统的手机。但当本报记者问到李开复,今年底前能否进入中国时,他摇头表示否认。

    “年底前没戏。”李开复说,这需要谷歌、运营商和第三方手机合作伙伴共同做大量工作。另外消息人士向《第一财经日报》透露,目前中国移动的一个团队正与谷歌中国工程研究院的一个技术团队密切合作,进行紧张的研发工作。

    G1和iPhone的竞争

    尽管G1何时进入中国市场尚不明确,但G1的问世,却给中国移动多了一个更好的选择机会:是苹果iPhone率先进入中国市场,还是谷歌手机捷足先登?此前有消息显示,中国移动与苹果和谷歌都在进行谈判。

     

    有分析人士表示,如果考虑到中国移动是中国内地“开放手机联盟”的唯一成员,则或许G1具备先天优势,得以捷足先登。

    李开复认为,与Android相比,iPhone的缺点是价格贵,虽然拥有完美的用户界面,但不是开放的平台,与谷歌Android相比就像iMac和PC的区别。

    李开复同时认为,由于谷歌与苹果等的模式不同也决定了双方未来不同的发展方向。“谷歌Android手机平台的模式是,促使网民使用谷歌手机上网,使用谷歌的网上服务,增加搜索的点击量,从而赚取广告费。”

    李开复表示,谷歌Android手机平台是谷歌云计算战略的重要产品,其最大特征是拥有完整、真正的操作系统,完整的浏览器,界面易用、上网方便。

    其实,谷歌Android正是顺应了互联网及“云计算”大发展的趋势,使传统的非智能手机正在向智能手机过渡。

    山寨机也可用谷歌手机操作系统

    10月22日,谷歌与移动运营商T-Mobile和HTC(宏达电)合作,首次推出基于谷歌Android平台的G1手机,售价仅为179美元。

    “Android刚推出时,我们就和中国移动有个合作的宣布。”李开复说,现在已经有越来越多的厂商开始选用Android平台,在G1推出之后,第二步将有数十家厂商会推出基于Android平台的手机,这其中也包括中国移动。

    不久前,在第十七届北京国际通信展上,联想移动品牌沟通部总经理王彦对记者表示,联想移动将在2009年与中国移动合作,推出一款采用Android操作系统的智能手机,为将来移动互联网服务的普及提前布局。

    目前,中国移动是Android操作平台联盟——开放手机联盟(OHA)中唯一一个来自中国的成员,其成员还包括摩托罗拉、索尼爱立信、三星、 LG等30多家产业链上下游公司。王彦表示,Android作为一款彻底的开源软件,除了开放手机联盟(OHA)成员,其他厂商也可以使用。

    李开复也认可这种说法,他认为:山寨机也可以使用谷歌的Android操作系统,只不过还需要时间。

    展开全文
  • 手机操作系统发展史

    2011-03-19 21:20:00
      科技革新可谓一日千里,移动设备的智能化已经“迅雷不及下载”的速度影响着我们生活的方方面面。虽然说科技改变生活是商家叫卖的一个噱头,不过我们的确潜移默化的...虽然说由于技术门槛的缘故操作系统

     

    科技革新可谓一日千里,移动设备的智能化已经“迅雷不及下载”的速度影响着我们生活的方方面面。虽然说科技改变生活是商家叫卖的一个噱头,不过我们的确潜移默化的接受了高新科技的洗礼,不知不觉的浸淫在科技带给生活的便利和乐趣。

    要说现在炙手可热的领域,那少不了烽烟四起的智能系统市场。且不看Google苹果这样的大头准备拼个你死我活,单看国内山寨了手机外壳现在也企图山寨系统的老板们跃跃欲试的亢奋,你就已经知道但凡有点野心的商家对智能市场是多么的有爱。虽然说由于技术门槛的缘故操作系统不大可能像洗发水一样品种繁多,但是像微软统治PC市场那样的年代已经一去不返,并且小子乐观的认为,随着移动系统市场华丽瓜分,最终战火还会蔓延回到PC市场。你可以想象,随着Android通过低端市场深得人心,即使那些可爱的以为电脑=windows的用户,他们也会乐于尝试同一个公司出产的跟手机系统类似的PC系统。

         移动系统市场尚未成熟,至少在应用市场上还是相当缺乏。作为消费者,我们乐于见到的是丰富多彩的世界,因而操作系统的战争多记录我们也只是积极围观的态度。不过作为开发人员,有点不幸运的是,如果你想你的应用在多个系统上运行,那可能比浏览器的兼容更加烦人。当然乐观的看法是将来的应用可能都基于HTML标准,又或者是Flex这样的跨平台服务。

         将来的格局如何,相信除了自信的分析师大部分人都觉得言之过早,毕竟这一切都似乎刚刚开始。

     

     

    展开全文
  • 史上最全最详细多种主流操作...一、手机操作系统 1 Android 谷歌安卓 这里写图片描述(https://img-blog.csdn.net/20180817223850566?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNjYyNzU1/font/5a...

    史上最全最详细多种主流操作系统详解(经典,值得收藏)
    2017-06-09 18:07 操作系统
    一、手机操作系统

    1

    Android

    谷歌安卓
    这里写图片描述这里写图片描述这里写图片描述]![这里写图片描述(https://img-blog.csdn.net/20180817223850566?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNjYyNzU1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

    2007年11月5日,Google发布了基于Linux平台的开源移动手机平台 –Android。该平台由操作系统、中间件、用户界面和应用软件等组成,号称是首个为移动终端打造的真正的开放的移动开发平台。

    2008年9月22日,美国运营商T-Mobile USA在纽约正式发布第一款Google手机 – T-Mobile G1。该款手机为中国台湾宏达电代工制造,是世界上第一部使用Android操作系统的手机,支持WCDMA/HSPA网络,理论下载速率为7.2Mbit/s,并支持Wi-Fi无线局域网络。

    Google与开放手机联盟(Open Handset Alliance)合作开发了Android移动开发平台,这个联盟由摩托罗拉、高通、宏达电和T-Moblie、中国移动等在内的30多家移动通讯领域的领军企业组成。

    支持厂商:美国摩托罗拉、中国台湾HTC、韩国三星、韩国LG、英国索尼爱立信,联想,中兴等。

    优点:具备触摸屏、高级图形显示和上网功能,界面强大,可以说是一种融入全部Web应用的单一平台。

    缺点:由于跨平台的优势导致了安卓系统的不兼容性;开放性带来的不安全;非垄断导致定制机用户体验差等。

    Android系统五大特色:

    (1)开放性

    (2)挣脱运营商的束缚

    (3)丰富的硬件选择

    (4)不受任何限制的开发商

    (5)无缝结合的Google应用

    Android(安卓)系统版本发展史:

    2

    Symbian

    塞班(倒闭)

    这里写图片描述

    简介:由诺基亚、索尼爱立信、摩托罗拉、西门子等几家大型移动通讯设备商共同出资组建的一个合资公司,专门研发手机操作系统。

    支持厂商:芬兰诺基亚(英国索尼爱立信、韩国三星已宣布退出塞班阵营)

    优点:过去Symbian系统一直占据智能系统的市场霸主地位,系统能力和易用性等各方面很强。

    缺点:一般配置的机型反映较慢,对主流的媒体格式的支持性较差,不同版本的软件兼容性不好。

    Symbian(塞班)发展史:

    这里写图片描述

    3

    iOS

    苹果
    这里写图片描述

    支持厂商:苹果公司

    优点:全触摸设计,真的是一次手机革命,娱乐性能强,第三方软件多。

    缺点:系统封闭

    iOS系统版本发展史:
    这里写图片描述

    4

    Windows Mobile

    微软

    这里写图片描述这里写图片描述

    简介:Windows Mobile是Microsoft 用于Pocket PC 和Smartphone 的软件平台。Windows Mobile 将熟悉的Windows 桌面扩展到了个人设备中。

    支持厂商:中国台湾HTC、韩国三星电子、韩国LG、英国索尼爱立信、阿联酋i-mate,目前各大山寨厂商也同样生产着大量WM产品。

    优点:界面和操作都和电脑上的Windows十分接近,对于机友来说十分熟悉又上手,各种保存在电脑或手机里的信息、资料可以轻松实现共享有大量的应用软件可供用户选择。

    缺点:占用系统资源高、容易系统崩溃。

    5

    BlackBerry OS

    黑莓(关闭)
    这里写图片描述

    简介:BlackBerry OS是RIM(黑莓)专用的操作系统,第三方开发。

    支持厂商:黑莓

    6

    基于Android(安卓)

    二次开发系统

    (1)Sense

    HTC自主研发的Sense,是一款基于Android系统研发的智能手机系统。

    支持厂商:HTC

    (2)LG Optimus

    基于标准Android修改的LG Optimus系统。

    支持厂商:LG

    (3)CyanogenMod

    CyanogenMod是一个基于开源Android系统。

    (4)小米MIUI系统

    MIUI是小米公司旗下基于Android系统深度优化、定制、开发的第三方手机操作系统。

    支持厂商:MIUI

    (5)Emotion UI

    Emotion UI是华为基于Android进行开发的情感化用户界面。

    支持厂商:华为

    (6)Funtouch OS

    LFuntouch OS是针对vivo公司中高端手机推出的一款人性化手机操作系统,基于安卓4.4系统开发的。

    支持厂商:vivo

    (7)Blur

    Blur是摩托罗拉(Motorola)基于谷歌Android平台开发的应用界面。

    支持厂商:摩托罗拉

    (8)Flyme OS

    FLYME魅族手机操作系统。

    支持厂商:魅族

    (9)中国移动OMS

    Open Mobile System是中国移动通讯集团和Google合作联合开发的一款基于Linux内核Android平台构建的开放式手机操作系统简称OMS。搭载OMS系统的手机被称为Ophone,为中国移动的定制机。

    支持厂商:联想、摩托罗拉、华为等多家企业。

    7

    其他操作系统

    非主流

    (1)Linux

    Linux系统是一个源代码开放的操作系统,已经有很多版本流行。但尚未得到较广泛的支持。

    支持厂商:摩托罗拉和NTT DoCoMo等。

    (2)Windows CE

    微软推出的Windows CE操作系统是在PC Windows操作系统基础上研发而来的,不管是操作环境,还是操作方法都与PC Windows操作系统相似,我们完全可以把它看做是Windows 95的精简版。

    支持厂商:魅族M8、酷派

    (3)Brew

    CDMA之父高通公司开发的封闭式系统,安装软件极为艰难,常见在500元以下的CDMA手机有QQ。

    支持厂商:酷派

    (4)Palm OS

    Palm OS操作系统由Palm公司自行开发的,并授权给Handspring、索尼和高通等设备厂家,这种操作系统更倾向于PDA的操作系统。

    支持厂商:Handspring、索尼和高通等

    (5)HP WebOS

    HP webOS是一个嵌入式操作系统,以Linux内核为主体并加上部份Palm公司开发的专有软件。它主要是为Palm智能手机而开发。

    (6)阿里云OS

    阿里云OS是融云数据存储、云计算服务和云操作系统为一体的新一代操作系统。系统搭载了阿里云公司自主设计、架构、研发的系统核心虚拟机,增强了云端服务的能力,并提供与Dalvik虚拟机兼容的运行环境。

    支持厂商:天语,海尔

    (7)MeeGo

    MeeGo是诺基亚和英特尔宣布推出一个免费手机操作系统,中文昵称米狗,该操作系统可在智能手机、笔记本电脑和电视等多种电子设备上运行,并有助于这些设备实现无缝集成。这种基于Linux的平台被称为MeeGo,融合了诺基亚的Maemo和英特尔的Moblin平台.MeeGo的最终目标是支持更多入门级的桌面电脑、netttop、平板电脑、智能电视以及IPTV机顶盒。

    支持厂商:诺基亚、jolla mobile

    (8)Firefox OS

    Firefox OS是由谋智公司(Mozilla Corporation)主导研发的开放源代码移动操作系统,采用Linux核心,应用于智能手机。

    (9)BADA

    BADA是韩国三星电子自行开发的智能手机平台,底层为Linux核心。

    支持厂商:三星S8500

    (10)Tizen系统

    Tizen是英特尔MeeGo系统与三星LiMo系统的混合体。

    (11)Ubuntu

    开源操作系统开发商Canonical于2013年1月3日凌晨正式发布了Ubuntu手机操作系统,这标志着Ubuntu正式进入移动操作系统领域。

    二、PC操作系统

    从目前的PC系统来看,大致可以分为五类,Windows系统,NetWare系统,Unix系统,Linux系统和Mac系统。

    1

    Windows系统

    Windows操作系统是一款由美国微软公司开发的窗口化操作系统。采用了GUI图形化操作模式,比起从前的指令操作系统如DOS更为人性化。Windows操作系统是目前世界上使用最广泛的操作系统。最新的版本是Windows 10。

    2

    Mac系统

    Mac OS操作系统是美国苹果计算机公司为它的Macintosh计算机设计的操作系统的一代操作系统,该机型于1984年推出,在当时的PC还只是DOS枯燥的字符界面的时候,Mac率先采用了一些我们至今仍为人称道的技术。比如:GUI图形用户界面、多媒体应用、鼠标等,Macintosh计算机在出版、印刷、影视制作和教育等领域有着广泛的应用,Microsoft Windows至今在很多方面还有Mac的影子,后来苹果公司还发布了目前最先进的个人电脑操作系统Mac OS X。

    3

    Linux系统这里写图片描述这里写图片描述

    Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。

    Linux是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。

    主流的Linux发行版:Ubuntu, DebianGNU/Linux ,Fedora,Gentoo,MandrivaLinux ,PCLinuxOS,SlackwareLinux ,openSUSE,ArchLinux,Puppylinux,Mint,CentOS,Red Hat等。

    大陆发行版:中标麒麟Linux(原中标普华Linux), 红旗Linux(Red-flag Linux) ,起点操作系统StartOS(原Ylmf OS),Qomo Linux(原Everest),冲浪Linux(Xteam Linux) ,蓝点Linux ,新华Linux ,共创Linux ,百资Linux,veket,lucky8k-veket.Open Desktop ,Hiweed GNU/Linux ,Magic Linux ,Engineering Computing GNU/Linux ,kylin,中软Linux,新华华镭Linux(RaysLX) ,CD Linux ,MC Linux,即时Linux(Thizlinux) ,b2d linux ,IBOX ,MCLOS,FANX,酷博linux,新氧Linux,Hiweed,Deepin Linux(深度linux)。其中CD linux可方便集成一些无线安全审计工具,及较好的中文界面和体积小巧的特点。另外新氧、Hiweed基于ubuntu(都已停止更新),Deepin Linux是Hiweed与深度合并后的版本,已成为中国linux的后起之秀。

    4

    Unix系统

    Unix系统是1969年在贝尔实验室诞生,最初是在中小型计算机上运用。最早移植到80286微机上的Unix系统,称为Xenix。 Xenix系统的特点是短小精干,系统开销小,运行速度快。UNIX为用户提供了一个分时的系统以控制计算机的活动和资源,并且提供一个交互,灵活的操作界。UNIX被设计成为能够同时运行多进程,支持用户之间共享数据。同时,UNIX支持模块化结构,当你安装UNIX操作系统时,你只需要安装你工作需要的部分,例如:UNIX支持许多编程开发工具,但是如果你并不从事开发工作,你只需要安装最少的编译器。用户界面同样支持模块化原则,互不相关的命令能够通过管道相连接用于执行非常复杂的操作。UNIX 有很多种,许多公司都有自己的版本,如 AT&T、Sun、HP等。

    应用:几乎所有16位及以上的计算机上,包括微机、工作站、小型机、多处理机和大型机等等。

    特点:

    (1)多任务、多用户

    (2)并行处理能力

    (3)管道

    (4)安全保护机制

    (5)功能强大的shell

    (6)强大的网络支持,Internet上各种服务器的首选操作系统

    (7)稳定性好

    (8)系统源代码用C语言写成,移植性强

    (9)出售源代码,软件厂家自己增删

    5

    NetWare系统

    Netware是NOVELL公司推出的网络操作系统。Netware最重要的特征是基于基本模块设计思想的开放式系统结构。Netware是一个开放的网络服务器平台,可以方便地对其进行扩充。Netware系统对不同的工作平台(如D0S、0S/2、Macintosh等),不同的网络协议环境如TCP/IP以及各种工作站操作系统提供了一致的服务。该系统 内可以增加自选的扩充服务(如替补备份、数据库、电子邮件以及记账等),这些服务可以取自Netware本身,也可取自第三方开发者。

    三、PDA手持终端操作系统

    Palm OS

    1

    Palm OS是Palm公司开发的专用于PDA上的一种操作系统,这是PDA上的霸主,一度普占据了90%的PDA市场的份额。虽然其并不专门针对于手机设计,但是Palm OS的优秀性和对移动设备的支持同样使其能够成为一个优秀的手机操作系统。

    Palm OS是一种32 bit的嵌入式操作系统,广泛应用于移动终端设备。

    Pocket PC

    2

    Pocket PC(简称PPC)是基于微软的Windows Mobile操作系统的一种掌上电脑。Pocket PC是一种手持设备,可帮助您存储并检索电子邮件、联系人和约会信息,播放多媒体文件,玩赏电子游戏,借助MSN Messenger交换文本消息,浏览Web内容……您将能够与台式机实现信息交换和同步。

    相对于PDA,PPC是一种狭隘得多的概念,专指使用微软Windows Mobile系列操作系统的PDA。最早的Windows Mobile操作系统是Poceket PC 1.0,一款不怎么成功的操作系统,但PPC由此得名。随后的Poceket PC 2002、Windows Mobile 2003、Windows Mobile 2003 SE都是非常成功的操作系统。

    PPC所公认的优势在于:

    (1)友好的用户界面和更佳的易用性(与PC版Windows操作系统相似)

    (2)与PC平台极佳的兼容性

    (3)更广泛的软件及硬件扩展支持

    制造Pocket PC的著名厂家有惠普、戴尔、华硕电脑等。

    Microsoft Windows CE

    3

    WindowsCE操作系统是Windows家族中的成员,为专门设计给掌上电脑(HPCs)以及嵌入式设备所使用的系统环境。这样的操作系统可使完整的可移动技术与现有的Windows桌面技术整合工作。Windows CE被设计成针对小型设备(它是典型的拥有有限内存的无磁盘系统)的通用操作系统。

    Windows CE亦属于Microsoft Windows Mobile系列。

    EPOC

    4

    EPOC是Psion Software推出的操作系统,专门用于移动计算设备,包括掌上电脑。”EPOC”这个词起源于世界将会进入“a new epoch of personal convenience”。EPOC是一个开放的操作系统,它支持信息传送、网页浏览、办公室作业、公用事业以及个人信息管理(PIM)的应用,也有软件可以和个人计算机与服务器作同步的沟通。

    Linux

    5

    Linux以上有介绍。值得一提的是还有少量掌上电脑使用Linux操作系统。

    还有一些其他非主流系统这里就不一一介绍了,如有补充,请电话400-0933-666,邮箱ittbank@ittbank.com,谢谢!

    欢迎加入ittbank QQ群

    说明:一人限入一个群(每人只能加入其中一个群,如加多个群遭拒绝请谅解!)

    1.手机行业技术交流群3(134917677)

    2.平板技术交流群(378173769)

    3.机顶盒OTT盒子交流群(361764225)

    4.电容触摸技术交流群2(257209943)

    5.摄像头技术交流群(377648136)

    6.液晶屏技术交流群2(249572580)

    7.无线WIFI技术交流群2(416431905)

    8.安防技术交流群 (308535073)

    9.Memory存储交流群(204191613)

    10.手机,MID,电容触摸,液晶屏买卖群(374763457)—-专属销售买卖采购的群

    11.跨境电商交流(384299409)

    12.全球创客空间(188561451)

    13.行车记录仪(294132591)——最专业的行车记录仪评测群

    14.全球电子技术交流平台(370733047)—-(此群纯属技术交流群,专属技术工程师的交流平台,贸易商勿入!谢谢!加群请麻烦添加标准备注,地区+行业+昵称,比如深圳-蓝牙wifi方案-谢工!)

    15.欢迎加入AR/VR 技术交流群(527375006)

    16.欢迎加入QQ群(199699487)——Amlogic S802/S805/S812等方案平台网络播放器

    投稿邮箱:ittbank@ittbank.com

    ITTBANK客服热线:

    展开全文
  • 手机时间不算太长,从来到大学到如今,短短的三年,不过似乎是着了魔一般,对各种移动设备操作系统很感兴趣,写下此篇也算是回忆吧。 自己接手的第一部智能手机是诺基亚的5530xm,相信在三四年前,当诺基亚还是...
  • http://www.oschina.net/project/tag/218/mobile-os?lang=0&os=0&sort=view&p=1 开源手机操作系统 Android 开放手机联盟(一个由 30 多家科技公司和手机公司组成的团体)已开发
  • 提到手机,就不能不提到山寨手机。它不仅改变了国内传统手机格局,而且...翻译如下: “合法的生产商:洁静的办公环境,站立的保安,禁止工作人员吸烟,可靠性测试,合理的手机操作系统,GSM/CDMA频率验证测试。 工作
  • 小编这几天下载试用了几款国产操作系统,分别是:中兴新支点操作系统、红旗操作系统、优麒麟操作系统、普华操作系统!经过不断的测试发现:这几款操作系统流畅度都不错!不过要说适于普通人使用的国产操作系统,目前...
  • MTK山寨手机攻略

    2012-04-14 19:06:38
    一,如何判断自己的手机山寨机?如何判断山寨机的芯片型号和平台?如何进行系统后台调试?    这个问题似乎有些弱智,难道自己买来一个手机还不知道这手机山寨机?呵呵,首先解释一下,本文讨论的手机主要是...
  • 智能手机是指像个人电脑一样,具有独立开放的操作系统,可以由用户自行安装软件、游戏等第三方服务商提供的程序,通过此类程序来不断对手机的功能进行扩充,并可以通过移动通讯网络来实现无线网络接入的这样一类手机...
  • 智能手机是指像个人电脑一样,具有独立开放的操作系统,可以由用户自行安装软件、游戏等第三方服务商提供的程序,通过此类程序来不断对手机的功能进行扩充,并可以通过移动通讯网络来实现无线网络接入的这样一类手机...
  • 手机操作系统一览

    2012-03-17 18:22:00
    手机操作系统一览 分类: 操作系统 2011-02-08 17:01 23人阅读 评论(0) 收藏 举报 2010-09-26 手机操作系统一览 文章分类:移动开发 palm: Palm 1.0->2.0->3.0->3.5->4.0->5.0->5.2->5.4...
  • 移动手机操作系统

    2011-02-25 09:29:00
    这一结局直接把Windows Phone7 这一新兴手机移动操作系统送到与如日中天的Iphone 与 Android 在同一位置上,变成了三国之势。究竟两家公司的合作是 " No - Win " 还是 "Win - Kia " 这里不做讨论,只能引用我们瓷器...
  • 山寨机器的泛滥,导致了正规国产手机困局的原因之一,我们先看看山寨机的长处在何处:(下面的分析,是sina网上的分析)深度分析:山寨手机存活市场的理由在最近的大量关于山寨机的新闻爆炸性发布之后,越来越多的人...
  • 目前在沿海地区的手机市场中,智能手机的市场占有率正逐年升高,在深圳,遍街可以见到N73, S1... 不过到目前为止,也远未达到半数以上的程度,再加之内地城市以及广大的农村,智能手机还有着巨大的发展空间。未来的...
1 2 3 4 5 ... 20
收藏数 4,609
精华内容 1,843
关键字:

山寨手机操作系统