精华内容
下载资源
问答
  • 这显然只支持 android 并且只对安装了支持 t2u 功能的自定义内核手机有用。 警告:不要为 t2u 自己制作应用程序 这是开放的原因是为了改进,想要一些东西,你当然可以提交。 目标是保留一个且只有一个 t2u 控制...
  • Note:绝大多数API在IOS版下不支持,使用前请自行测试。...U3内核定制<meta>标签说明 1. 屏幕方向(screen-orientation) 参数: landscape:强制横屏 portrait:强制竖屏 用法: 1 ...

    Note:绝大多数API在IOS版下不支持,使用前请自行测试。

    UC官方的开发者中心:http://www.uc.cn/business/developer.shtml

     

     

    U3内核定制<meta>标签说明

    1. 屏幕方向(screen-orientation)

    参数:

    • landscape:强制横屏
    • portrait:强制竖屏

    用法:

    1 <!--  强制横屏  -->
    2 <meta name="screen-orientation" content="landscape">

    版本支持:8.6+

     

    2. 全屏控制(full-screen) 

    参数:

    • yes:强制全屏

    用法:

    1 <!--  强制全屏  -->
    2 <meta name="full-screen" content="yes">

    提示:用此方法触发的全屏模式,和用户手动在设置项选择的全屏模式是不同的。

    版本支持:8.6+

     

    3. 浏览模式(browsermode) 

    描述:应用模式是为方便web应用及游戏开发者设置的综合开关,通过meta标签进行指示打开,当进入应用模式时,浏览器将自动调整以下参数:

    • (参数: 状态)
    • 全屏: 生效,可通过meta或js api调用退出全屏
    • 长按菜单: 失效,可通过js api调用重新生效
    • 浏览器默认手势: 失效,可通过js api调用重新生效
    • 排版模式: 标准模式,可通过meta或js api调用设置其他排版模式
    • 强制图片显示: 生效
    • 夜间模式: 失效,可通过meta或js api调用启用夜间模式

    参数:

    • application:应用模式

    用法:

    1 <!--  应用模式  -->
    2 <meta name="browsermode" content="application"/>

    版本支持:8.6+

     

    4. UC适应屏幕的排版方式(viewport) 

    描述:开启后,当进行缩放操作时,仅放大图片和文字等页面元素,但不放大屏幕宽度,从而避免了左右滚动条的产生。

    参数:

    • uc-fitscreen=no:不开启【默认】
    • uc-fitscreen=yes:开启

    用法:

    1 <!--  开启UC适应屏幕的排版方式  -->
    2 <meta name="viewport" content="uc-fitscreen=yes"/>

    版本支持:8.5 patch +

     

    5. UC适应屏幕的排版方式(layoutmode) 

    参数:

    • fitscreen:适应屏幕
    • standard:标准模式

    用法:

    1 <!--  适应屏幕  -->
    2 <meta name="layoutmode" content="fitscreen" />

    等同于

    1 <meta name="viewport" content="uc-fitscreen=yes, initial-scale=1.0" />

    提示:更推荐用layoutmode,避免和原生支持的viewport发生未知冲突。

    版本支持:8.5 patch +

     

     6. 禁用夜间模式(nightmode) 

    参数:

    • disable:禁止页面使用uc浏览器自定义的夜间模式,进入夜间模式时的表现同日间模式
    • enable:允许页面使用uc浏览器自定义的夜间模式,用于取消disable时的效果

    用法:

    1 <!--  禁用夜间模式  -->
    2 <meta name="nightmode" content="disable"/>

    版本支持:8.5 patch +

     

    7. 强制图片显示(imagemode) 

    描述:当用户使用无图模式时,可以通过此方法来强制显示图片。

    参数:

    • force:强制图片显示

    用法:

    1 <!--  Meta标签(所有图片)  -->
    2 <meta name="imagemode" content="force"/>
    3 
    4 <!--  Img标签(单张图片)  -->
    5 <img src="..." show="force">

    版本支持:8.5 patch +

     

    8. 发送到桌面

    描述:在用户触发“发至桌面”的菜单操作后,即触发联网获取size最大的图片。在未获取到图片前,可以先显示默认图片;获取完成后再将获取到的图片更新到桌面。如果获取不到或者没有此特殊标签,仍然使用默认的桌面书签图标。

    用法:

    1 <link rel="apple-touch-icon-precomposed" sizes="57x57" href="images/icon.png" />
    2 <link rel="apple-touch-icon" sizes="72x72" href="images/icon.png" />

     

     

    U3内核JavaScript专用API

    (经测试,官方文档给出的API很多也不能使用,下面只列出测试能用的)

    1. 关闭默认手势

    用法:

    1 navigator.control.gesture(false);

    个人推荐写法:

    1 try {
    2     navigator.control.gesture(false);
    3 } catch (e) {
    4     // ...
    5 }

     

    2. 关闭长按弹出菜单

    用法:

    1 navigator.control.longpressMenu(false);

    个人推荐写法:

    1 try {
    2     navigator.control.longpressMenu(false);
    3 } catch (e) {
    4     // ...
    5 }

     

     

    服务器端相关API

    1. XUCBrowserUserAgent

    描述:HTTP Header 中 X-UCBrowser-UA 的对象模型,用于封装相关的数据段,并提供简单易用的方法读取字段内容。 

    通过这个API,可以获取到更加详细的设备信息,如:网络情况、系统环境、UC浏览器版本等...

    各项参数的含义,请查看该pdf:http://www.uc.cn/download/UCBrowser_User_Agent.pdf

    php的用法:

    1 <?php
    2 echo $_SERVER['HTTP_X_UCBROWSER_UA'];

     

     

     

    本文地址:http://www.cnblogs.com/maplejan/p/3538206.html 

     

    转载于:https://www.cnblogs.com/maplejan/p/3538206.html

    展开全文
  • Linux内核的动态电压和电流控制接口  前面已经提到半导体器件的功耗是两个部分组成,一是静态功耗,一是动态功耗。静态功耗主要来自待机状态的泄漏电流,相比而言动态功耗更大,例如,音视频播放中频率和电压的...
    Linux内核的动态电压和电流控制接口 
    

      前面已经提到半导体器件的功耗是两个部分组成,一是静态功耗,一是动态功耗。静态功耗主要来自待机状态的泄漏电流,相比而言动态功耗更大,例如,音视频播放中频率和电压的增加会让电量将成线形增长,动态功耗也是电源管理要解决的主要问题,解决动态功耗的方法有几种,如IBM和Montavista合作开发DPM项目(现用在Montavista Mobilinux 5.0 产品中)和TI OMAP3430的Linux电源管理,自Wolfson微电子的Liam Girdwood最近介绍了一种称为校准器(regulator)的动态电压和电流控制的方法,很有参考意义和实际使用价值。

            1 校准器的基本概念

      所谓校准器实际是在软件控制下把输入的电源调节精心输出。例如电压的控制,输入时5V 输出是1.8V;电流的限制,最大20mA;简单的切换和电源的开关等,如图1所示。

    校准器

    图1 校准器

      电源域是一组校准器,设备组成、输入可能是校准器,开关也许是电源域,电源域可以级联,电源约束可以和电源域配合以保护硬件。例如一个Internet Tablet/PMP,它由CPU、NOR Flash、音频编解码器、触摸屏、LCD控制器、USB、WiFi 等其他外设组成,如图2所示。

    Internet Tablet/PMP系统结构

    图2 Internet Tablet/PMP系统结构

      为了实现上面的构想,需要在内核里建立一个校准器构架,目的就是设计一个可以控制电压和电流的标准内核接口以节省电能,从而尽可能的延长电池的供应。这个内核的架构分为四个部分:针对设备驱动的消费接口(consumer)、校准器驱动的接口、系统配置的接口和面向应用sysfs的userspace接口。

      2 Consumer的API

      regulator = regulator_get(dev, “Vcc”);

      其中,dev 是设备“Vcc”一个字符串代表,校准器(regulator)然后返回一个指针,也是regulator_put(regulator)使用的。

      打开和关闭校准器(regulator)API如下。

      int regulator_enable(regulator);

      int regulator_disable(regulator);

      3 电压的API

      消费者可以申请提供给它们的电压,如下所示。

      int regulator_set_voltage(regulator, int min_uV, int max_uV);

      在改变电压前要检查约束,如下所示。

      regulator_set_voltage(regulator,100000,150000)

      电压值下面的设置改变如下所示。

      int regulator_get_voltage)struct regulator *regulator);

      4 电流的API

      电流的API也是类似,需要指出的是,校准器的方法并不一定是最高的效率,效率和加载(如加载10mA电流)、操作模式都有关系,通过下面的API可以改变模式设置。

      regulator_set_optimum_mode(requlator,10000);//10mA

      5 校准器的驱动和系统配置

      在实际使用校准器之前,需要按照下面的结构写校准器的驱动程序,然后注册后通知给消费者使用。

    程序

      完成了校准器驱动程序之后,下一步就是系统设置(machine specific),即匹配如电压、LDO1和NAND等关系。

      regulator_set_supply(“LDO1”,dev, “Vcc”)

      对于userspace,校准器的使用是通过sysfs,但是目前所有的包括电压、电流、操作模式、限制等信息多只是只读信息,应该是非常适合象powerTop这样工具的使用。

      6 应用

      校准器的典型的应用包括如下:CPUfreq——CPU频率的调节;CPU idle——CPU空闲模式控制;LCD背光调节——通过电流控制LED灯的亮度达到控制LCD背光的目的;音频单元——如FM收音机在MP3使用的时候应该是关闭的,麦克风使用的时候,扬声器的放大器应该是关闭的;NAND/NOR存储器是耗电大户,根据不同操作方式(读/写、擦除等)优化操作模式(控制电流)达到节省电量的要求。同其他电源管理的方法比较,校准器方法具有一定的硬件独立和抽象性,简单实用,原理上可以适合任何有电源管理芯片支持嵌入式系统电源管理,目前已经移植到Freescale MC13783、Wolfson WM8350/8400等几个集成度很高的电源管理器件上了.

      基于构件的面向CPU的电源管理技术

      无论是PM_QoS、控制电压和电流的校准器方法,还是许许多多半导体公司支持自己CPU和电源管理芯片的Linux BSP电源管理部分,都还没有一个构建在更高层面的构件级嵌入式系统电源解决方案和商业产品。虽然包括CELF(消费和嵌入式Linux 论坛)和Intel主导的Mobile &Internet Linux项目都设立了专门的电源管理计划(power manager project),但是显然距离人们的要求和实际的应用还太远了。

      Montavista在过去和IBM合作开发DPM(动态电源管理)技术的基础上,最近在专门针对手机、互联网移动终端、PMP/PDN等便携消费电子设备的mobilinux5.0上提出嵌入式电源管理技术的构件方法。Montavista的构件方式主要是针对以先进的多媒体应用处理器为核心的新一代嵌入式系统,比如Freescale的MX31、TI OMAP2430/3430为核心的系统级电源管理,它包含下面几个主要的部分。

            1 动态的电压和频率调节

      正如前面提到的,电压和频率的提升将会让功耗线性增加,按照设计需要和应用的指令将电压和频率调节到合适的操作点可以大大降低功耗的有效方法。要想实现动态的电压和频率调节(DVFS),在内核里CPUrefs子系统是关键的部件,如图3所示。

    CPUrefs结构

    图3 CPUrefs结构

      那么管理者(Governor)是按照什么情况改变操作点呢?性能要求、省电的要求、用户的应用以及CPU的使用效率等条件都可以让管理者改变操作模式。Mobilinux5.0提供了userspace机制充当管理者的工作,即应用可以改变操作点。

      在TI OMAP3中有一个称为SmartReflex的技术,动态调整VDD1和VDD2操作点电压以适应芯片特性、温度和电压。SmartReflex技术有四个级别:0级——在工厂生产时优化校准后设置的操作点;1级——引导时优化后校准确定的操作点;2级——通过软件循环实时优化电压点然后由CPU的中断程序设置;3级——完全的硬件循环优化电压点,无须CPU干预,是一种硬件控制“傻瓜”操作点改变方式。无论是mobilinux5.0还是TI 3430 Linux distribution都已经支持DVFS和SmartReflex驱动。

      2 挂起和恢复

      在内核里,mobilinux5.0已经提供支持挂起和恢复的驱动程序的功能,新的驱动必须要增加回调函数以响应系统休眠中关机和再次唤醒的动作。

      3 支持电源管理的驱动程序

      每一个驱动程序必须经过重新的书写支持DVFS,即当操作点改变的时候,驱动程序通过CPUrefs的告知作出响应。驱动程序还必须正确处理系统的挂起和恢复事件。

      4 CPU空闲调节

      由一个定义的处理器特定的空闲状态点的CPUidle驱动管理、内核的一个CPUidle 框架和管理者组成,如OMAP3430定义7个空闲状态点。

      5 应用设计策略

      包括手机在内的便携式消费电子产品主要的能耗分布如图4所示。

    便携电子产品能耗分布

    图4 便携电子产品能耗分布

      除了CPU外,其他主要的能耗大户是LCD背光、NOR/NAND Flash/RAM存储器、DC/DC转换和音视频放大器等,例如,MPEG4的播放就是一个能耗集中的应用。

      如何使用mobilinux5.0等已经具备电源管理功能的商业嵌入式操作系统以使便携电子产品能耗降低到最少?下面的方法是设计人员应该考虑的。

    • 实际测量的结果证明使用DVFS的方法是降低CPU运行时的能耗的关键。当然,如何让管理者设置操作点和状态转移是要设计人员全盘考虑的。

    • 不要忽视CPU空闲状态的能耗管理。mobilinux5.0的CPUrefs 和所有的驱动都已经支持空闲的调节(idle scaling),加上内核使用了动态滴嗒时钟(dynamic tick),改变了过去CPU无论是否运行都按照固定的时间唤醒的方法,大大节省能源。

    • 可延迟的定时器(deferrable timer)——它可以告诉内核某个定时器不需要在时限到的时候唤醒,这将可以降低能耗。

    • PowerTop工具——前面已经提到的这个工具已经集成到mobilinux5.0 中,而且证明对于分析系统空闲状态是一个非常有用的工具。

     

    展开全文
  • Linux内核的动态电压和电流控制接口  前面已经提到半导体器件的功耗是两个部分组成,一是静态功耗,一是动态功耗。静态功耗主要来自待机状态的泄漏电流,相比而言动态功耗更大,例如,音视频播放中频率和电压的...
    Linux内核的动态电压和电流控制接口

      前面已经提到半导体器件的功耗是两个部分组成,一是静态功耗,一是动态功耗。静态功耗主要来自待机状态的泄漏电流,相比而言动态功耗更大,例如,音视频播放中频率和电压的增加会让电量将成线形增长,动态功耗也是电源管理要解决的主要问题,解决动态功耗的方法有几种,如IBM和Montavista合作开发DPM项目(现用在Montavista Mobilinux 5.0 产品中)和TI OMAP3430的Linux电源管理,自Wolfson微电子的Liam Girdwood最近介绍了一种称为校准器(regulator)的动态电压和电流控制的方法,很有参考意义和实际使用价值。

            1 校准器的基本概念

      所谓校准器实际是在软件控制下把输入的电源调节精心输出。例如电压的控制,输入时5V 输出是1.8V;电流的限制,最大20mA;简单的切换和电源的开关等,如图1所示。

    校准器

    图1 校准器

      电源域是一组校准器,设备组成、输入可能是校准器,开关也许是电源域,电源域可以级联,电源约束可以和电源域配合以保护硬件。例如一个Internet Tablet/PMP,它由CPU、NOR Flash、音频编解码器、触摸屏、LCD控制器、USB、WiFi 等其他外设组成,如图2所示。

    Internet Tablet/PMP系统结构

    图2 Internet Tablet/PMP系统结构

      为了实现上面的构想,需要在内核里建立一个校准器构架,目的就是设计一个可以控制电压和电流的标准内核接口以节省电能,从而尽可能的延长电池的供应。这个内核的架构分为四个部分:针对设备驱动的消费接口(consumer)、校准器驱动的接口、系统配置的接口和面向应用sysfs的userspace接口。

      2 Consumer的API

      regulator = regulator_get(dev, “Vcc”);

      其中,dev 是设备“Vcc”一个字符串代表,校准器(regulator)然后返回一个指针,也是regulator_put(regulator)使用的。

      打开和关闭校准器(regulator)API如下。

      int regulator_enable(regulator);

      int regulator_disable(regulator);

      3 电压的API

      消费者可以申请提供给它们的电压,如下所示。

      int regulator_set_voltage(regulator, int min_uV, int max_uV);

      在改变电压前要检查约束,如下所示。

      regulator_set_voltage(regulator,100000,150000)

      电压值下面的设置改变如下所示。

      int regulator_get_voltage)struct regulator *regulator);

      4 电流的API

      电流的API也是类似,需要指出的是,校准器的方法并不一定是最高的效率,效率和加载(如加载10mA电流)、操作模式都有关系,通过下面的API可以改变模式设置。

      regulator_set_optimum_mode(requlator,10000);//10mA

      5 校准器的驱动和系统配置

      在实际使用校准器之前,需要按照下面的结构写校准器的驱动程序,然后注册后通知给消费者使用。

    程序

      完成了校准器驱动程序之后,下一步就是系统设置(machine specific),即匹配如电压、LDO1和NAND等关系。

      regulator_set_supply(“LDO1”,dev, “Vcc”)

      对于userspace,校准器的使用是通过sysfs,但是目前所有的包括电压、电流、操作模式、限制等信息多只是只读信息,应该是非常适合象powerTop这样工具的使用。

      6 应用

      校准器的典型的应用包括如下:CPUfreq——CPU频率的调节;CPU idle——CPU空闲模式控制;LCD背光调节——通过电流控制LED灯的亮度达到控制LCD背光的目的;音频单元——如FM收音机在MP3使用的时候应该是关闭的,麦克风使用的时候,扬声器的放大器应该是关闭的;NAND/NOR存储器是耗电大户,根据不同操作方式(读/写、擦除等)优化操作模式(控制电流)达到节省电量的要求。同其他电源管理的方法比较,校准器方法具有一定的硬件独立和抽象性,简单实用,原理上可以适合任何有电源管理芯片支持嵌入式系统电源管理,目前已经移植到Freescale MC13783、Wolfson WM8350/8400等几个集成度很高的电源管理器件上了.

      基于构件的面向CPU的电源管理技术

      无论是PM_QoS、控制电压和电流的校准器方法,还是许许多多半导体公司支持自己CPU和电源管理芯片的Linux BSP电源管理部分,都还没有一个构建在更高层面的构件级嵌入式系统电源解决方案和商业产品。虽然包括CELF(消费和嵌入式Linux 论坛)和Intel主导的Mobile &Internet Linux项目都设立了专门的电源管理计划(power manager project),但是显然距离人们的要求和实际的应用还太远了。

      Montavista在过去和IBM合作开发DPM(动态电源管理)技术的基础上,最近在专门针对手机、互联网移动终端、PMP/PDN等便携消费电子设备的mobilinux5.0上提出嵌入式电源管理技术的构件方法。Montavista的构件方式主要是针对以先进的多媒体应用处理器为核心的新一代嵌入式系统,比如Freescale的MX31、TI OMAP2430/3430为核心的系统级电源管理,它包含下面几个主要的部分。

            1 动态的电压和频率调节

      正如前面提到的,电压和频率的提升将会让功耗线性增加,按照设计需要和应用的指令将电压和频率调节到合适的操作点可以大大降低功耗的有效方法。要想实现动态的电压和频率调节(DVFS),在内核里CPUrefs子系统是关键的部件,如图3所示。

    CPUrefs结构

    图3 CPUrefs结构

      那么管理者(Governor)是按照什么情况改变操作点呢?性能要求、省电的要求、用户的应用以及CPU的使用效率等条件都可以让管理者改变操作模式。Mobilinux5.0提供了userspace机制充当管理者的工作,即应用可以改变操作点。

      在TI OMAP3中有一个称为SmartReflex的技术,动态调整VDD1和VDD2操作点电压以适应芯片特性、温度和电压。SmartReflex技术有四个级别:0级——在工厂生产时优化校准后设置的操作点;1级——引导时优化后校准确定的操作点;2级——通过软件循环实时优化电压点然后由CPU的中断程序设置;3级——完全的硬件循环优化电压点,无须CPU干预,是一种硬件控制“傻瓜”操作点改变方式。无论是mobilinux5.0还是TI 3430 Linux distribution都已经支持DVFS和SmartReflex驱动。

      2 挂起和恢复

      在内核里,mobilinux5.0已经提供支持挂起和恢复的驱动程序的功能,新的驱动必须要增加回调函数以响应系统休眠中关机和再次唤醒的动作。

      3 支持电源管理的驱动程序

      每一个驱动程序必须经过重新的书写支持DVFS,即当操作点改变的时候,驱动程序通过CPUrefs的告知作出响应。驱动程序还必须正确处理系统的挂起和恢复事件。

      4 CPU空闲调节

      由一个定义的处理器特定的空闲状态点的CPUidle驱动管理、内核的一个CPUidle 框架和管理者组成,如OMAP3430定义7个空闲状态点。

      5 应用设计策略

      包括手机在内的便携式消费电子产品主要的能耗分布如图4所示。

    便携电子产品能耗分布

    图4 便携电子产品能耗分布

      除了CPU外,其他主要的能耗大户是LCD背光、NOR/NAND Flash/RAM存储器、DC/DC转换和音视频放大器等,例如,MPEG4的播放就是一个能耗集中的应用。

      如何使用mobilinux5.0等已经具备电源管理功能的商业嵌入式操作系统以使便携电子产品能耗降低到最少?下面的方法是设计人员应该考虑的。

    • 实际测量的结果证明使用DVFS的方法是降低CPU运行时的能耗的关键。当然,如何让管理者设置操作点和状态转移是要设计人员全盘考虑的。

    • 不要忽视CPU空闲状态的能耗管理。mobilinux5.0的CPUrefs 和所有的驱动都已经支持空闲的调节(idle scaling),加上内核使用了动态滴嗒时钟(dynamic tick),改变了过去CPU无论是否运行都按照固定的时间唤醒的方法,大大节省能源。

    • 可延迟的定时器(deferrable timer)——它可以告诉内核某个定时器不需要在时限到的时候唤醒,这将可以降低能耗。

    • PowerTop工具——前面已经提到的这个工具已经集成到mobilinux5.0 中,而且证明对于分析系统空闲状态是一个非常有用的工具。

     

    展开全文
  • Andriod内核分析

    千次阅读 2010-10-31 20:54:00
    摘要:介绍Android移动平台系统架构.通过对An droid源代码的分析. 将其与标准Linux内核(2.6.27)源代码相比较...智能手机的运行速度和所集成的功能获得了极大提升 借着这股东风.Google主导的开放手机联盟OHA (0Den

    摘要:
    介绍Android移动平台系统架构.通过对An droid源代码的分析. 将其与标准Linux内核(2.6.27)源代码相比较,详细解析An droid内核的功能更新,分析讨论An droid内核与标准Linux内核之间的不同以及An droid在移动平台上的优势.并对An droid在各种内核之间做出一个定位,介绍Ubuntu环境下An droid内核的获得与编译

     

    引言
    随着嵌入式技术的发展.智能手机的运行速度和所集成的功能获得了极大提升 借着这股东风.Google主导的开放手机联盟OHA (0Den Handset Alliance)顺势在2008年推出了Android移动终端平台 Android是一个开放、自由的移动终端平台.它的发布.打破了诺基亚Symbian操作系统和微软WindOWs Mobile操作系统在智能手机平台上的垄断地位.同时.其平台化的优势也大大丰富各种手持式设备软件的功能。


    1 Android系统架构

    Android是Googk开发的基于Linux平台的开源手机操作系统.它是一个移动终端平台.包括了移动电话丁作所需的全部软件,由操作系统、中间件、UI(UserInterface)及应用程序组成。开发人员使用Java语言,开发运行于Dalvik虚拟机上的应用程序.其运行效率比一般嵌入式“nux操作系统上的J2ME程序高Android系统架构自底向上由以下4个层次组
    成:基于Linux的内核模块、运行时库与其他库、应用程序框架、应用程序
    (1)基于Linux的内核模块
    Android内核基于Linux 2.6.提供安全、内存管理、进程管理、网络组、驱动模型等核心服务。同所有Linux内核一样.Android内核是介于硬件层和软件组之间的一个抽象层次

    (2)运行时库与各种程序库
    运行时库实质是一款Java重新设计的虚拟机Dalvik.它包含J2SE所提供的绝大部分功能 每个Android应用都运行在自己的进程上.Dalvik虚拟机为它分配自有的实例 Dalvik使一台设备能运行多个虚拟机程序但消耗较少的资源 在android中.编译器将Java源文件转为class文件,内置的dx工具又将class文件转化为Dex文件.Dex文件是在Dalvik虚拟机上运行程序的标准格式.
    各种程序库 :包含一套C/C++库.Android的各式组件都可使用 这些功能通过组件间接提供给开发者。这些库包括图形框架、媒体功能库、Webkit、及SQLite数据库,等等
    (3)应用程序框架
    提供应用程序开发所需要的各种API 在开发过程中.开发人员通过充分使用应用框架提供的API,对各种组件、服务进行重用.从而开发出精简、高效的应用程序。主要包括以下几种核心组件:
    UI组件:包括List、Layout、Textbox、Utton、Check.box等.用以构建应用程序与用户的交互界面.
    内容提供器(Content Provider):实现标准的方法接口。让其他应用保存或读取其提供的数据.例如外部程序通过Content Provider访问联系人数据.
    资源管理器(Resource Manager):管理对非代码的访问,例如本地图像、布局文件、本地化字符串等.
    消息管理器(Notification Manager):让程序将警示信息显示在状态栏上.例如平台接收到短信息、电子邮件、未接电话时在状态栏上的提示.
    Activity管理器fActiv Manager):用来管理应用程序生命周期并提供常用的导航回退功能闭。
    (4)应用程序
    Android预装了一系列由Java语言编写成的核心应用程序,包括短信服务、电话、Email客户端、浏览器、Google地图等。


    2 Android内核分析

    2.1 内核在操作系统中的地位
    Android基于Linux操作系统,由硬件、系统内核、系统服务和应用程序等四大部分嗍组成。其中,内核(Kerne1)是最核心的部分.其主要作用在于与计算机硬件进行交互.实现对硬件的编程控制和接口操作.调度访问硬件资源.同时向应用程序提供一个高级的执行环境和对硬件的虚拟接口 。主要功能包括:中断服务程序、进程调度程序、进程地址空间的内存管理、进程间通信。内核与普通应用程序不同.其拥有所有硬件设备的访问权限以及启动时即划分的受保护的内存空间.

    2.2 Android内核
    和标准的Linux内核一样.Android内核主要实现内存管理、进程调度、进程间通信等功能。
    Android内核是在标准Linux内核的基础上修改而成 为了适应嵌入式硬件环境和移动应用程序的开发.Android对标准Linux内核进行了一定的修改。为了对比分析Android内核.在Ubuntu操作系统上搭建了Android内核的编译开发平台,通过repo,下载最新的Android内核代码版本cupcake(其中Linux内核版本为2.6.27) 从获得的内核源码树的根目录结构
    看.Android内核源码与标准LinUX内核并无不同。

    经过与标准Linux内核源代码进行详细对比.可以发现,Android内核与标准Linux内核在文件系统、进程间通信机制、内存管理等方面存在不同。
    ① 文件系统
    不同于桌面系统与服务器。移动设备大多采用的不是硬盘而是采用Flash作为存储介质.因此.Android内核中增加了标准Linux(内核中没有采纳的YAFFS2文件系统 YAFFS2(Yet Another Flash File Sy-steIn.2nd edition)是专用于Flash的文件系统.对NAND.Flash芯片有着良好的支持 YAFFS2是日志结构的文件系统.提供了损耗平衡和掉电保护.可以有效地避免意外断电对文件系统一致性和完整性的影响 YAFFS2按层次结构设计,分为文件管理接口、内部实现层和NAND.简化了其本身与系统的接EI设计.能更方便地集成到系统当中。经过测试证明.YAFFS2性能比支持NOR型闪存的JFFS2文件系统优秀171。
    ② 进程间通信机制
    Android增加了一种进程问的通信机制IPC Bin—der,在内核源代码中.驱动程序文件为COredroid/inelude/linux/binder.h和coredroid/drivers/android/binder.
    c。Binder通过守护进程Service Manager管理系统中的服务.负责进程问的数据交换。各进程通过Binder访问同一块共享内存.以达到数据通信的机制 从应用层的角度看.进程通过访问数据守护进程获取用于数据交换的程序框架接口.调用并通过接口共享数据.而其他进程要访问数据.也只需与程序框架接口进行交互.方便了程序员开发需要交互数据的应用程序
    ③ 内存管理
    在内存管理模块.Android内核采用了一种不用于标准Linux内核的低内存管理策略 在标准Linux内核当中,使用一种叫做OOM(Out of Memory)的低内存管理策略;当内存不足时,系统检查所有的进程。并对进程进行限制评分.获得最高分的进程将被关闭(内核进程除外)。Android系统采用的则是一种叫作LMK(Low Memory Killer)的机制.这种机制将进程按照重要性进行分级、分组 内存不足时.将处于最低级别组的进程关闭。例如.在移动设备当中。UI界面处于最高级别,所以该进程永远不会被中止,这样,在终
    端用户看来.系统是稳定运行的 在Andorid内核源码中.LMK 的位置是coredroid/drivers/mise/lowme—morykiller.c。
    与此同时.Android新增加了一种内存共享的处理方式Ashmem(Anonymous Shared Memory.匿名共享内存)。通过Ashmem,进程间可以匿名自由共享具名的内存块,这种共享方式在标准Linux当中不被支持。
    ④ 电源管理
    由于Android主要用于移动设备.电源管理就显得尤为重要.因此.在Android内核当中。增加了一种新的电源管理策略 目前.Android采用的是一种较为简单的电源管理策略,通过开关屏幕、开关屏幕背光、开关键盘背光、开关按钮背光和调整屏幕亮度来实现电源管理.并没有实现休眠和待机功能。有三种途径判断调整电源管理策略:RPC调用、电池状态改变和电源设置 它通过广播Intent或直接调用API的方式来与其他模块进行联系 电源管理策略同时还有自动关机机制.当电力低于最低可接受程度时.系统将自动关机 Android的电源管理模块还会根据用户行为,自动调整屏幕亮度.
    ⑤ 驱动及其他
    相对于标准内核.Android内核还添加了字符输出设备、图像显示设备、键盘输入设备、RTC设备、USBDevice设备等相关设备驱动.增加了日志(Logger)系统,使应用程序可以访问日志消息


    3 结语

    经过分析.Android内核由标准Linux内核修改而来.因此继承了Linux内核的各种优点.保留了标准Linux内核的主体架构。同时.Android按照移动设备的需求,在文件系统、内存管理、进程间通信机制、电源管理等方面进行了修改.添加相关的驱动程序和一些必要的新功能.但是与大多数精简的嵌入式Linux操作系统(例如uCLinux)相比.Android很大程度上保留了标准Linux的基本架构.因此.Android系统应用范围更加广泛.拓展性更强。

    展开全文
  • LINUX内核目录文件说明

    万次阅读 多人点赞 2018-08-03 09:40:31
    内核空间和用户空间  在下载内核前,我们应该讨论一些重要的术语和事实。首先了解一下内核空间和用户空间  内核空间中存放的是内核代码和数据,而进程的用户空间中存放的是用户程序的代码和数据。不管是内核...
  • LINUX内核目录文件说明以及配置并编译内核的方法

    万次阅读 多人点赞 2017-06-09 10:28:26
    内核拥有这些内存空间,直到系统关闭。与内核空间相对应的还是用户空间。用户空间是内存上用户程序拥有的空间。比如浏览器、电子游戏、文字处理器、媒体播放器、壁纸、主题等都是放在内存里的用
  • Linux内核转发技术

    2016-04-04 23:24:34
    在linux内核中,通常集成了带有封包过滤和防火墙功能的内核模块, 不同内核版本的模块名称不同, 在2.4.x版本及其以后的内核中, 其名称为iptables, 已取代了早期的ipchains和远古时期的ipfwadm. 在命令行中可以通过...
  • 一文了解Linux内核

    2019-10-22 10:38:07
    最近一直都在研究LightNVM中的pblk,躲不了内核这部分。 于是乎整理了以下关于内核的知识点。 什么是操作系统OS 操作系统(简称为OS)是一种软件平台,可创建一个环境,用户可以在该环境中在计算设备上运行不同的应用...
  • Arm内核解析

    2020-04-14 22:13:09
    从20世纪80年代开始,它起初是作为家用电脑处理器,然后在20世纪90年代成为手机芯片的基础。如今,在几乎所有技术细分市场,Arm都是一个强有力的竞争者。许多人认为,Arm 架构已成为 32 位或 64 位处理器的首选。...
  • 1、通过手机APP可以控制8路LED灯的亮灭。 2、通过手机APP可以控制8路LED灯的亮度。每个灯的亮度有3档。 3、可以发送指令控制8个灯全灭和全亮。 //蓝牙发送数据内容: ON // 打开所有灯 大写字母’O’ SN // 关闭所有...
  • 内核调试

    千次阅读 2014-09-12 16:26:08
    linux内核调试指南   http://blog.csdn.net/adcxf/archive/2008/09/13/2924735.aspx 本文档由大家一起自由编写,修改和扩充,sniper负责维护。引用外来的文章要注明作者和来处。本文档所有命令都是在...
  • 写给Linux内核新手-关于Linux内核学习的误区 写给Linux内核新手-关于Linux内核学习的误区 先说句正经的:其实我没资格写这篇文章,因为自己也就一两个月以来才开始有所领悟的。因此,这里与其说是关于Linux内核...
  • Linux内核配置选项

    千次阅读 2018-04-25 16:08:37
    http://blog.csdn.net/wdsfup/article/details/52302142http://www.manew.com/blog-166674-12962.htmlGentoo LinuxGentoo内核(gentoo-sources)特有的选项Gentoo Linux supportCONFIG_GENTOO_LINUX选"...
  • 我们知道Android是一个开源系统,但是并不彻底,而且Android从多个方面对Linux内核进行了改动与增强,尽管一度和Linux基金会在内核方面闹得不愉快,但是最终也达成了和解。下面将对此进行详细介绍和分析。  1 、...
  • Linux内核配置选项简介

    万次阅读 2016-06-02 16:09:41
    Linux内核配置选项简介   Gentoo Linux Gentoo内核(gentoo-sources)特有的选项 Gentoo Linux support CONFIG_GENTOO_LINUX 选"Y"后,将会自动选中那些在Gentoo环境中必须开启的内核选项,以避免用户...
  •   在学习Linux以及Linux内核的过程中,总是会忘记Linux系统以及内核里的一些目录的含义,因此特地收集了关于Linux系统目录的含义解析以及Linux内核目录的解析。 Linux系统目录解析   关于Linux的系统目录,可以...
  • 手机APP物联网远程控制开关

    万次阅读 2020-09-10 21:17:29
    随着物联网技术应用到了楼宇自动化建设和工业现场控制之中,远程控制开关有着十分广阔的应用前景,因此物联网开关成为了智慧楼宇的核心组成部分。在工业4.0的推动下,这就要求普通的开关不仅只用于控制开关,还要对...
  • linux 内核安全机制

    千次阅读 2019-04-10 21:57:09
    Linux是一个支持多用户的系统,系统中的文件的访问权限是通过用户ID(UID)和用户组ID(GID)来控制的。换句话说,就是Linux的安全机制是基于UID和GID来实现的。Android在Linux内核提供的基于UID和GID的安全机制的...
  • Linux 内核调试方法总结

    千次阅读 2015-09-14 17:42:46
    内核中的bug 三 内核调试配置选项 1 内核配置 2 调试原子操作 四 引发bug并打印信息 1 BUG()和BUG_ON() 2 dump_stack() 五 printk() 1 printk函数的健壮性 2 printk函数脆弱之处 3 LOG等级 4 记录缓冲...
  • EX 内核管理器(EXKM)通过高级功能和精美优化的材料设计用户界面使您可以完全控制硬件。 EXKM是用于性能调节,最大限度地延长电池寿命,配置手势或调节颜色和声音的终极工具。 普遍!适用于所有内核和设备。在...
  • 于是想起之前看到的一个博客说是腾讯的游览器内核SDK是免费提供的,到网上一查,它提供的功能确实满足!尤其是在加载视频的时候,会加载它自己的解码器,播放器的界面也蛮好看的!接下来,大家就懂了!先做一个demo...
  • linux 内核配置简介

    千次阅读 2016-07-08 11:54:52
    Gentoo Linux Gentoo内核(gentoo-sources...选"Y"后,将会自动选中那些在Gentoo环境中必须开启的内核选项,以避免用户遗漏某些必要的选项,减轻一些用户配置内核的难度.建议选"Y". Linux dynamic and persistent dev

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,427
精华内容 6,170
关键字:

关闭手机内核控制