仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1858|回复: 19
打印 上一主题 下一主题

[学习教程] IOS编程:挪动嵌进式遭受能耗瓶颈,WinCE电源办理应对有技能仓酷云

[复制链接]
只想知道 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:50:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
所以你可以用很多方法存储数据比如最长用的sqlite当然如果另类也可以用plist文件或者其他NSManagedObjectContextNSManagedObjectContext陪伴着挪动嵌进式产物的提高,电源办理已成为主要手艺目标和产物的无机构成。典范挪动嵌进式设备对能耗愈来愈敏感,电源办理手艺正成为产物计划的关头地点。为了应对电源办理面对的应战,怎样计划出高效的嵌进式体系的电源办理已成为研讨热门。
典范挪动嵌进式体系能耗次要部件包含嵌进式微处置器CPU、内存、LCD及背光、电源转换部件、DSP、外设把持器等。在这些元件中,有些元件能耗流动,有些元件可在分歧工夫段事情并有多种可控的耗能形态,后者的无效利用成为嵌进式体系节能的关头地点。
1.甚么是WinCE电源办理
(1)电源办理观点与办法
在电池供电的挪动嵌进式体系中,一样平常接纳高效力的电源芯片用于供电办理,或接纳年夜容量的电池以办理能耗需求,但这两种手艺的开展还没法满意挪动嵌进式设备的静态功耗和静态功耗。有一种办法能够和谐高功能与低功耗之间的冲突,就是依据体系负载举行功能调治,经由过程中断某些模块的时钟和电源供给将能耗降至最低。
嵌进式体系按功率损耗由小到年夜分为就寝(sleep)、余暇(idle)、运转(Run)等形式。年夜多工夫内,在运转态(Run)时设备全体一般事情,而在就寝与余暇形式时处置器则能够依照特定的形式举行响应的节能。因而,电源办理的目标是节能,基础节能办法是使体系合时的收支休眠形态。在节能形态下处置器挂起,主存储器运转在节能的自革新形式,只要功耗办理电路、叫醒电路持续事情。好比用户按下On/Off按钮,大概监督用户举动的准时器超时,大概使用程序API都可使得嵌进式体系休眠,当用户再次按下On/Off大概有其他叫醒中止产生时,体系就会加入休眠。因而,电源办理模块和用户举动情形密不成分,电源办理是用户举动所驱动的。
WinCE处置用户与体系交互的部分是GWES,以是初期电源办理事情也是由GWES来完成。但GWES供应的电源办理模块功效过于粗拙古板,一切子设备只能有On和Suspend形态,使用程序没法失掉任何形态转换关照。厥后,WinCE引进了电源办理PM(PowerManager)模块,用以替换GWES中的电源办理功效,新的电源办理模块供应更完全和天真的功效,如子设备电源形态能够独自设定,使用能够取得电源关照等。因而,电源办理器卖力办理设备电源,而且与不撑持电源办理功效的设备和使用兼容,在内核OAL层、设备驱动程序和使用程序之间充任两头人脚色。
(2)电源办理器布局
在利用电池供电的WinCE体系中,准确计划电源办理非常关头。在功效上大抵能够分为体系级电源办理、静态电源办理、设备电源办理等三类。一般,使用程序在年夜多半工夫都不必要存眷WinCE设备的电源消耗,可是在某些时分要注重这些消耗。WinCE电源办理器经由过程一个名为Pm.dll的静态链接库与设备办理器Device.exe链接。Pm.dll静态链接库撑持三类接口:一是驱动程序接口:为必要举行电源办理的设备的驱动程序利用;二是使用程序接口:为必要使用电源办理的使用程序利用;三是提示接口(Notification):为必要承受电源事务提示的使用程序利用。
比方,WinCE体系先反省义务负载情形,假如没有必要运转的义务,则一样平常进进余暇节能形态守候叫醒,在余暇一段工夫落后进深度就寝,挂起到RAM中大概硬盘上。在运转义务时代,WinCE还能够使用硬件供应的电源办理功效静态调治芯片运转电压和频次,对体系举行加倍仔细的电源办理。
2.WinCE电源办理的分类
(1)体系电源形态
WinCE体系电源形态更多的是代表体系电源的一种设置计划,它是各个子设备电源设置的汇合。它设定一种大概呈现的情形,事前制定了此情形下电力分派战略(哪些子设备翻开,哪些子设备封闭)。WinCE撑持以下几种电源形态:①ON形态,用户在自动利用设备。②UserIdle形态,用户与设备中断交互,但仍有大概利用设备。③SystemIdle形态,在经由一段工夫的UserIdle落后进此形态,可是驱动和体系仍旧举动。④Suspend形态,当驱动程序和体系历程不再与体系交互时进进此形态。⑤ColdReboot和Reboot形态,冷启动后体系电源形态。
因而,在这个基本上手艺职员能够依据本人的平台特性,增添新的战略来满意分歧挪动嵌进式产物的必要。罕见的做法是计划一个电源按键的流驱动,当检测到按键时分呼唤API将体系电源转换到Suspend,如On/Off按键。另有就是到场背灯把持,好比在On形态下哀求显现驱动翻开背灯,在UserIdle和SystemIdle形态下哀求显现驱动封闭背灯。
(2)设备电源办理
WinCE到场了初级的电源办理组件功效,它同意每一个外设具有本人的电源形态,这有别于一样平常的体系电源形态(SystemPowerState),故被称作设备电源形态(DevicePowerState)。如今的使用程序一样平常都有才能设置一般外设的电源形态,好比一个文件传输程序,在坚持串口大概蓝牙端口一般通信时,能够封闭显现屏幕和背光,这就为完成更初级其余静态电源办理供应了大概。
电源办理器和撑持电源办理的设备之间的交互包含两种机制:一是电源办理器到驱动程序,电源办理器利用DeviceIoControl()函数向设备驱动程序发送I/O把持(IOCTLs),因而设备必需能呼应电源办理器的查询、形态设置等IOCTLs。二是驱动程序到电源办理器,驱动程序利用DevicePowerNotify()函数与电源办理器交互,比方哀求电源办理器把它的设备置于某种形态,假如电源办理器承受该哀求则经由过程发送IOCTL_POWER_SET等IOCTLS来举行设置。
(3)使用程序与电源办理器交互
WinCE使用程序与电源办理器有两种交互机制:一是使用程序接口,用以猎取以后体系和设备的电源形态。使用程序经由过程SetSystemPowerState()来设置体系电源形态,经由过程SetDevicePower来设置子设备电源形态,经由过程SetPowerRequirement关照电源办理器将子设备设置在特别电源形态下,不随体系电源改动。二是电源事务提示接口。为了完成提示接口,使用程序还可经由过程CreateMsgqueue()函数创建动静行列,将其句柄传给电源办理器,电源办理器再把提示发送到动静行列中,挪用者可选择可用提示的一个子集举行呼应。
(4)OAL层电源办理的完成
OEMAdaptationLayer(OAL)是一层与硬件平台相干的代码,它在电源形态转换中饰演侧重要的脚色。在WinCE中,OAL层电源办理经由过程OEMIdle()和OEMPowerOff()函数完成。个中OEMInit是初度上电时(或在冷启后)被挪用,如初始化体系内存,创建调试情况,设置体系中止等;当体系中没有任何可调剂的线程时,内核就挪用OEMIdle()以完成下降处置器的频次来到达省电目标,这个函数在BSP中能够由OEM修正定制。
当有内部中止时,CPU可从个中恢复,如当用户按下OFF按钮大概使用挪用API进进suspend形态时分,内核会挪用OEMPowerOff()函数,在体系叫醒后持续从OEMPowerOff()被挂起处实行。OEMPowerOff函数是基于硬件平台来完成的,它能举行CPU存放器保留、设置及叫醒恢复等功效。体系Idle形态和后面说的UserIdle形态是分歧观点,前者是CPU负荷情形驱动,代表体系余暇;后者是用户举动驱动,代表用户余暇。
2.从使用程序交互剖析电源办理形态
当WinCE体系被挂起,为了省电用户必要封闭处置器及年夜部分设备供电,然后在必要叫醒时再经由过程准时器或无线模块叫醒。一样平常来讲,被叫醒后体系会前往到与体系挂起前一样的形态,因而使用程序基本不晓得体系曾被挂起,除非它明白地哀求当体系挂起时关照它。因而从使用程序的角度看,电源办理有三种体例:查询电源形态、改动电源形态和避免电源形态改动。
(1)查询电源形态
对嵌进式体系来讲,OEM厂约定义了体系的电源形态。比方,电源形态多是翻开(On),余暇(Idle)和挂起(Suspend),另有ScreenOff、InCradle和OnBattery等。从使用程序的概念看,电源办理程序供应了关照电源形态改动的才能和经由过程一系列的函数一致改动电源形态的才能。
因而,查询体系以后的电源形态是WinCE的一个主要功效,能够挪用DWORDGetSystemPowerStatusEx2(PSYSTEM_POWER_STATUS_EX2,DWORDdwLen,BOOLfUpdate)来查询。函数用三个参数来告知WinCE体系查询电池驱动最初的信息大概间接前往电池缓存中的信息,体系约莫每5秒查询一次电池形态。又由于WinCE不考证电池驱动前往的数据,因而分歧的体系有分歧的变更,这个函数前往来的数据是次要依附于电池驱动。比方,很多体系在利用AC电源时不呈报准确的电源级数,另外一些体系则相反。
(2)改动电源形态
使用程序能经由过程一系列的体例改动体系的电源形态,在WinCE中首选的体例是利用电源办理程序。电源办理程序供应函数来同意使用程序来把持电源形态,如使用程序经由过程挪用函数SetSystemPowerState来哀求特定的电源形态。一样平常有两个体例来把持电源,第一个体例是使用程序给定一个电源设定;第二个体例是使用程序哀求电源形态不要低于给定的级别。
罕见的比方:①封闭电源,使用程序经由过程挪用GwesPowerOffSystem函数挂起体系,如函数voidGwesPowerOffSystem(void)的挪用就会挂起体系。②封闭屏幕,假如体系是有色背鲜明示,那末次要的电源损耗不是CPU而是背光。在某一些情况下,一个使用程序运转时其实不必要显现在屏幕上。比方音乐播放器使用程序,当用户听音乐的时分不存眷屏幕,在这些情况下封闭背光将意味着进步电池寿命。固然,当用户想看屏幕时,任何干闭背光使用程序就必要一个复杂的体例来从头翻开屏幕。显现把持是经由过程Ext-Escape函数完成,这个函数同意使用程序翻开或封闭显现。别的,WinCE没有一个一致的体例来把持背光的亮度,每一个体系都有它本人的OEM特无方式来把持背亮光度。③翻开体系电源,意义是说当被挂起的使用程序要再次运转时,必需要有一个体例来叫醒一个挂起的体系电源。办法能够是使用程序经由过程利用动静API(NotificationAPI)把体系叫醒。在一样平常情形下,OEM厂商会分派一些中止前提以便电源翻开或叫醒。
(3)避免体系封闭电源
另外一方面,避免体系挂起也是一个主要的成绩。WinCE体系一般被设置为当一段工夫没有效户输出就主动挂起。因而,假如准时器抵达事后的没有效户输出的距离,体系会主动挂起。当要避免主动挂起时,使用程序能够周期性地挪用这个函数:voidWINAPISystemIdleTimerReset(void),这个函数能重设WinCE用来监督用户输出的准时器。以是当一个使用程序必要变动超时价时,就能够经由过程挪用SystemIdleTimerReset把挂起超时价改动。一样平常来讲,WinCE体系保护三个超时价,避免电源被主动挂起可使用SystemParametersInfo来查询这三个值,并在最短工夫内前往挪用SystemIdleTimerReset。假如超时价被设置为0,暗示超时价被克制。
(4)电源关照
最初,电源办理程序另有一个非常受接待的特性,就是能够在体系电源形态改动时关照使用程序,这可让使用程序从手动检测电源形态中摆脱出来。使用程序经由过程挪用RequestPowerNotifications哀求电源办理程序当电源形态改动的时分,发送一个关照给使用程序,电源办理程序再经由过程一个由使用程序创建的动静行列发送此关照。
总之,嵌进式电源办理在WinCE体系是一个疾速开展的研讨课题。它对挪动嵌进式产物的计划具有关头性影响,一个高效的电源办理计划能够匡助挪动嵌进式产物在市场合作中锋芒毕露,旗开得胜。

父类是NSObjectUIKit里最底层的库可以响应一些触摸事件设置焦点等功能UIView父类是UIResponder所有View的父类方法太多了大部分很有用这个不赘述了
愤怒的大鸟 该用户已被删除
沙发
发表于 2015-1-21 16:14:01 | 只看该作者
看完这个你就可以有多种选择来踏入做应用的阶段
兰色精灵 该用户已被删除
板凳
发表于 2015-1-30 20:51:19 | 只看该作者
因为我们老师也是自学的,给我们讲课说的最多的就是百度,谷歌,查文档。
透明 该用户已被删除
地板
发表于 2015-2-3 12:20:57 | 只看该作者
培训时可以选择安卓,iOS,Java,因为实习的时候我选了安卓,当时实习时间只有三周,学的晕头转向,而java我也没学过,iOS的基础是C语言,这个大学里还是学过的,于是选择了iOS。
第二个灵魂 该用户已被删除
5#
发表于 2015-2-5 11:07:47 | 只看该作者
看《iPhone 4与iPad开发基础教程》,跟着一步步来
灵魂腐蚀 该用户已被删除
6#
发表于 2015-2-6 02:02:37 | 只看该作者
边吃零食边看Stanford的视频教程
不帅 该用户已被删除
7#
发表于 2015-2-8 05:44:14 | 只看该作者
特别是在校的学生,都存在一个小小的尴尬——虽然学习iOS开发的热情高涨,但由于没有多余的银子购买昂贵的Mac电脑而踟蹰不前。其实,针对初学者,如果想进入iOS开发的天地
若相依 该用户已被删除
8#
发表于 2015-2-12 20:04:30 | 只看该作者
看《iPhone 4与iPad开发基础教程》,跟着一步步来
小妖女 该用户已被删除
9#
发表于 2015-3-3 05:46:35 | 只看该作者
iPhone文件系统:创建、重命名以及删除文件,NSFileManager中包含了用来查询单词库目录、创建、重命名、删除目录以及获取/设置文件属性的方法(可读性,可编写性等等)。
活着的死人 该用户已被删除
10#
发表于 2015-3-11 09:23:10 | 只看该作者
最后在做项目的时候一定要认真对待,毕竟这个直接和你的就业挂钩,这也是锻炼你实际操作的能力。
飘灵儿 该用户已被删除
11#
发表于 2015-3-18 02:29:27 | 只看该作者
重要的是,放眼全球也的确找不到第二个如苹果iOS平台这样健壮、完整、先进而且为开发者带来真实收益的开发平台来。
分手快乐 该用户已被删除
12#
发表于 2015-3-25 09:41:07 | 只看该作者
然而,在vmware软件环境下,安装Mac OS X操作系统也是一件非常复杂的事情,而且还有可能花费了大量时间,最后却跑不起来。笔者也是经过了大量的实践,
简单生活 该用户已被删除
13#
发表于 2015-3-25 14:16:47 | 只看该作者
重要的是,放眼全球也的确找不到第二个如苹果iOS平台这样健壮、完整、先进而且为开发者带来真实收益的开发平台来。
山那边是海 该用户已被删除
14#
发表于 2015-3-26 08:42:32 | 只看该作者
看完这个你就可以有多种选择来踏入做应用的阶段
只想知道 该用户已被删除
15#
 楼主| 发表于 2015-3-28 10:20:44 | 只看该作者
众多研发人员积极参与到iOS平台的开发中来也就不足为奇了。
海妖 该用户已被删除
16#
发表于 2015-4-1 12:12:35 | 只看该作者
开始的时候甚至想放弃,不过想想自己的未来,只能咬牙坚持,课下就不停的缠着老师。放学就补基础,这些基础的东西没有速成的,只有刻苦努力。我是后来发现的,转变自己的心态,不要读书看资料当成一种痛苦
17#
发表于 2015-4-3 14:00:55 | 只看该作者
还有开发工具是用Xcode,是在Mac系统的,你多摸索一下就可以开发简单的应用了,建议你买一本iphone开发秘籍第二版看看,希望可以帮到你,谢谢。
金色的骷髅 该用户已被删除
18#
发表于 2015-4-4 03:29:09 | 只看该作者
自从苹果公司开放iOS SDK以来,大量的国内外的软件开发者将关注的目光聚集在苹果的iOS平台上。由于iPhone和iPad自一出现就给人带来了颠覆性的感觉
飘飘悠悠 该用户已被删除
19#
发表于 2015-4-8 05:43:04 | 只看该作者
其次学习方法和学习心态很重要,在学习当中应该保持一颗良好的心态。应该借鉴别人好的学习方法,大家互相帮助,取长补短。
再见西城 该用户已被删除
20#
发表于 2015-4-11 20:17:16 | 只看该作者
自从苹果公司开放iOS SDK以来,大量的国内外的软件开发者将关注的目光聚集在苹果的iOS平台上。由于iPhone和iPad自一出现就给人带来了颠覆性的感觉
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-7 09:58

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表