1# 轻量级电源管理组件<a name="ZH-CN_TOPIC_0000001126247025"></a> 2 3- [简介](#section11660541593) 4- [目录](#section19472752217) 5- [说明](#section146636391856) 6 - [接口说明](#section481251394) 7 - [使用说明](#section12620311012) 8 9- [相关仓](#section63151229062) 10 11## 简介<a name="section11660541593"></a> 12 13轻量级电源组件提供如下功能: 14 151. 休眠唤醒锁管理。 162. 亮灭屏控制锁。 17 18**图 1** 轻量级电源管理组件架构图<a name="fig106301571239"></a> 19 20 21![](figures/en-us_image_0000001079710638.png) 22 23## 目录<a name="section19472752217"></a> 24 25``` 26base/powermgr/powermgr_lite 27├── figures # 架构图 28├── frameworks # Framework层 29│ ├── include # Framework层头文件 30│ └── src # Framework层源文件 31├── interfaces # 接口层 32│ ├── innerkits # 内部接口层 33│ └── kits # 外部接口层 34├── services # 服务层 35│ ├── include # 服务层头文件 36│ └── src # 服务层源文件 37└── utils # 工具和通用层 38 ├── include # 工具和通用层头文件 39 └── src # 工具和通用层源文件 40``` 41 42## 说明<a name="section146636391856"></a> 43 44### 接口说明<a name="section481251394"></a> 45 46轻量电源管理服务对外提供的接口,如下表: 47 48<a name="table45171237103112"></a> 49<table><thead align="left"><tr id="row12572123793117"><th class="cellrowborder" valign="top" width="38.71%" id="mcps1.1.3.1.1"><p id="p19572937163116"><a name="p19572937163116"></a><a name="p19572937163116"></a><strong id="b18552135014316"><a name="b18552135014316"></a><a name="b18552135014316"></a>接口名</strong></p> 50</th> 51<th class="cellrowborder" valign="top" width="61.29%" id="mcps1.1.3.1.2"><p id="p157213711313"><a name="p157213711313"></a><a name="p157213711313"></a><strong id="b193891558123118"><a name="b193891558123118"></a><a name="b193891558123118"></a>描述</strong></p> 52</th> 53</tr> 54</thead> 55<tbody><tr id="row14574143723119"><td class="cellrowborder" valign="top" width="38.71%" headers="mcps1.1.3.1.1 "><p id="p67351028124111"><a name="p67351028124111"></a><a name="p67351028124111"></a>RunningLock *CreateRunningLock(const char *name, RunningLockType type, RunningLockFlag flag)</p> 56</td> 57<td class="cellrowborder" valign="top" width="61.29%" headers="mcps1.1.3.1.2 "><p id="p105741337153115"><a name="p105741337153115"></a><a name="p105741337153115"></a>创建Runninglock对象。</p> 58</td> 59</tr> 60<tr id="row19195203919318"><td class="cellrowborder" valign="top" width="38.71%" headers="mcps1.1.3.1.1 "><p id="p219643914313"><a name="p219643914313"></a><a name="p219643914313"></a>void DestroyRunningLock(const RunningLock *lock)</p> 61</td> 62<td class="cellrowborder" valign="top" width="61.29%" headers="mcps1.1.3.1.2 "><p id="p1619618397312"><a name="p1619618397312"></a><a name="p1619618397312"></a>销毁Runninglock对象。</p> 63</td> 64</tr> 65<tr id="row9397121153216"><td class="cellrowborder" valign="top" width="38.71%" headers="mcps1.1.3.1.1 "><p id="p1339731103216"><a name="p1339731103216"></a><a name="p1339731103216"></a>BOOL AcquireRunningLock(const RunningLock *lock)</p> 66</td> 67<td class="cellrowborder" valign="top" width="61.29%" headers="mcps1.1.3.1.2 "><p id="p113972183214"><a name="p113972183214"></a><a name="p113972183214"></a>获取Runninglock锁。</p> 68</td> 69</tr> 70<tr id="row1721311920324"><td class="cellrowborder" valign="top" width="38.71%" headers="mcps1.1.3.1.1 "><p id="p321412915320"><a name="p321412915320"></a><a name="p321412915320"></a>BOOL ReleaseRunningLock(const RunningLock *lock)</p> 71</td> 72<td class="cellrowborder" valign="top" width="61.29%" headers="mcps1.1.3.1.2 "><p id="p32141298323"><a name="p32141298323"></a><a name="p32141298323"></a>释放Runninglock锁。</p> 73</td> 74</tr> 75<tr id="row879512416482"><td class="cellrowborder" valign="top" width="38.71%" headers="mcps1.1.3.1.1 "><p id="p20796124184815"><a name="p20796124184815"></a><a name="p20796124184815"></a>BOOL IsRunningLockAcquired(const RunningLock *lock);</p> 76</td> 77<td class="cellrowborder" valign="top" width="61.29%" headers="mcps1.1.3.1.2 "><p id="p18796104115482"><a name="p18796104115482"></a><a name="p18796104115482"></a>判断当前锁是否已经释放</p> 78</td> 79</tr> 80</tbody> 81</table> 82 83### 使用说明<a name="section12620311012"></a> 84 85**Runninglock管理** 86 87电源管理组件提供了创建Runninglock对象、获取锁、释放锁等接口。 88 89代码示例如下: 90 91``` 92const RunningLock *lock = CreateRunningLock("runinglock_example", RUNNINGLOCK_BACKGROUND, RUNNINGLOCK_FLAG_NONE); 93if (lock == NULL) { 94 return; 95} 96BOOL ret = AcquireRunningLock(lock); 97if (ret == FLASE) { 98 DestroyRunningLock(lock); 99 return; 100} 101ReleaseRunningLock(lock); 102DestroyRunningLock(lock); // Must release runninglock before destroyed 103``` 104 105## 相关仓<a name="section63151229062"></a> 106 107[电源管理子系统](https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/%E7%94%B5%E6%BA%90%E7%AE%A1%E7%90%86%E5%AD%90%E7%B3%BB%E7%BB%9F.md) 108 109[powermgr_power_manager](https://gitee.com/openharmony/powermgr_power_manager) 110 111[powermgr_display_manager](https://gitee.com/openharmony/powermgr_display_manager) 112 113[powermgr_battery_manager](https://gitee.com/openharmony/powermgr_battery_manager) 114 115[powermgr_thermal_manager](https://gitee.com/openharmony/powermgr_thermal_manager) 116 117[powermgr_battery_statistics](https://gitee.com/openharmony/powermgr_battery_statistics) 118 119[powermgr_battery_lite](https://gitee.com/openharmony/powermgr_battery_lite) 120 121**powermgr_powermgr_lite** 122 123