鸿蒙开发接口应用程序包管理:【@ohos.bundleState (设备使用信息统计)】

 设备使用信息统计

本模块提供设备使用信息统计能力。

设备使用信息统计,系统应用可调用接口实现如下功能:

  • 查询设备上各应用在不同时间段的使用时长、各应用的事件(前台、后台、长时任务开始、长时任务结束)信息及各应用的通知次数信息。
  • 查询系统事件(休眠、唤醒、解锁、锁屏)统计信息。
  • 查询应用分组信息(其他应用和自身应用)。
  • 查询应用空闲状态(其他应用和自身应用)。
  • 设置应用分组信息(其他应用)。
  • 注册和解除注册应用分组变化监听。

三方应用可调用接口实现如下功能:

  • 查询应用空闲状态(仅限自身应用)。
  • 查询应用分组信息(仅限自身应用)。
  • 查询应用事件(仅限自身应用)。

icon-note.gif

  说明:  本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 开发前请熟悉鸿蒙开发指导文档gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。

导入模块

import bundleState from '@ohos.bundleState'

bundleState.isIdleState

isIdleState(bundleName: string, callback: AsyncCallback<boolean>): void

判断指定bundleName的应用当前是否是空闲状态,使用Callback形式返回。

系统能力:SystemCapability.ResourceSchedule.UsageStatistics.AppGroup

参数

参数名类型必填说明
bundleNamestring应用的bundleName。
callbackAsyncCallback<boolean>指定的callback回调方法。如果指定的bundleName有效,则返回指定bundleName的应用当前是否是空闲状态;否则返回null。

示例

  bundleState.isIdleState("com.ohos.camera", (err, res) => {
      if (err) {
          console.log('BUNDLE_ACTIVE isIdleState callback failed, because: ' + err.code);
      } else {
          console.log('BUNDLE_ACTIVE isIdleState callback succeeded, result: ' + JSON.stringify(res));
      }
  });

bundleState.isIdleState

isIdleState(bundleName: string): Promise<boolean>

判断指定bundleName的应用当前是否是空闲状态,使用Promise形式返回。

系统能力:SystemCapability.ResourceSchedule.UsageStatistics.AppGroup

参数

参数名类型必填说明
bundleNamestring应用的bundleName。

返回值

类型说明
Promise<boolean>指定的Promise回调方法。如果指定的bundleName有效,则返回指定bundleName的应用当前是否是空闲状态;否则返回null。

示例

  bundleState.isIdleState("com.ohos.camera").then( res => {
      console.log('BUNDLE_ACTIVE isIdleState promise succeeded, result: ' + JSON.stringify(res));
  }).catch( err => {
      console.log('BUNDLE_ACTIVE isIdleState promise failed, because: ' + err.code);
  });

bundleState.queryAppUsagePriorityGroup

queryAppUsagePriorityGroup(callback: AsyncCallback<number>): void

查询(返回)当前调用者应用的使用优先级群组,使用Callback形式返回。

系统能力:SystemCapability.ResourceSchedule.UsageStatistics.AppGroup

参数

参数名类型必填说明
callbackAsyncCallback<number>指定的callback回调方法。返回当前调用者应用的使用优先级群组。

示例

  bundleState.queryAppUsagePriorityGroup((err, res) => {
      if (err) {
          console.log('BUNDLE_ACTIVE queryAppUsagePriorityGroup callback failed. because: ' + err.code);
      } else {
          console.log('BUNDLE_ACTIVE queryAppUsagePriorityGroup callback succeeded. result: ' + JSON.stringify(res));
      }
  });

bundleState.queryAppUsagePriorityGroup

queryAppUsagePriorityGroup(): Promise<number>

查询(返回)当前调用者应用的使用优先级群组,使用Promise形式返回。

系统能力:SystemCapability.ResourceSchedule.UsageStatistics.AppGroup

返回值

类型说明
Promise<number>指定的Promise回调方法。查询(返回)当前调用者应用的使用优先级群组。

示例

  bundleState.queryAppUsagePriorityGroup().then( res => {
      console.log('BUNDLE_ACTIVE queryAppUsagePriorityGroup promise succeeded. result: ' + JSON.stringify(res));
  }).catch( err => {
      console.log('BUNDLE_ACTIVE queryAppUsagePriorityGroup promise failed. because: ' + err.code);
  });

bundleState.queryBundleStateInfos

queryBundleStateInfos(begin: number, end: number, callback: AsyncCallback<BundleActiveInfoResponse>): void

通过指定起始和结束时间查询应用使用时长统计信息,使用Callback形式返回。

需要权限:ohos.permission.BUNDLE_ACTIVE_INFO

系统能力:SystemCapability.ResourceSchedule.UsageStatistics.App

系统API:此接口为系统接口,三方应用不支持调用。

参数

参数名类型必填说明
beginnumber起始时间。
endnumber结束时间。
callbackAsyncCallback<[BundleActiveInfoResponse]>指定的callback回调方法。返回指定起始和结束时间内应用使用时长统计信息。

示例

  bundleState.queryBundleStateInfos(0, 20000000000000, (err, res) => {
      if (err) {
          console.log('BUNDLE_ACTIVE queryBundleStateInfos callback failed, because: ' + err.code);
      } else {
          console.log('BUNDLE_ACTIVE queryBundleStateInfos callback success.');
          let i = 1;
          for(let key in res){
              console.log('BUNDLE_ACTIVE queryBundleStateInfos callback number : ' + i);
              console.log('BUNDLE_ACTIVE queryBundleStateInfos callback result ' + JSON.stringify(res[key]));
              i++;
          }
      }
  });

bundleState.queryBundleStateInfos

queryBundleStateInfos(begin: number, end: number): Promise<BundleActiveInfoResponse>

通过指定起始和结束时间查询应用使用时长统计信息,使用Promise形式返回。

需要权限:ohos.permission.BUNDLE_ACTIVE_INFO

系统能力:SystemCapability.ResourceSchedule.UsageStatistics.App

系统API:此接口为系统接口,三方应用不支持调用。

参数

参数名类型必填说明
beginnumber起始时间。
endnumber结束时间。

返回值

类型说明
Promise<[BundleActiveInfoResponse]>指定的Promise回调方法。返回指定起始和结束时间内应用使用时长统计信息。

示例

  bundleState.queryBundleStateInfos(0, 20000000000000).then( res => {
      console.log('BUNDLE_ACTIVE queryBundleStateInfos promise success.');
      let i = 1;
      for(let key in res){
          console.log('BUNDLE_ACTIVE queryBundleStateInfos promise number : ' + i);
          console.log('BUNDLE_ACTIVE queryBundleStateInfos promise result ' + JSON.stringify(res[key]));
          i++;
      }
  }).catch( err => {
      console.log('BUNDLE_ACTIVE queryBundleStateInfos promise failed, because: ' + err.code);
  });

bundleState.queryBundleStateInfoByInterval

queryBundleStateInfoByInterval(byInterval: IntervalType, begin: number, end: number, callback: AsyncCallback<Array<BundleStateInfo>>): void

通过指定时间段间隔(天、周、月、年)查询应用使用时长统计信息,使用Callback形式返回。

需要权限:ohos.permission.BUNDLE_ACTIVE_INFO

系统能力:SystemCapability.ResourceSchedule.UsageStatistics.App

系统API:此接口为系统接口,三方应用不支持调用。

参数

参数名类型必填说明
byInterval[IntervalType]查询类型。
beginnumber起始时间。
endnumber结束时间。
callbackAsyncCallback<Array<[BundleStateInfo]>>指定的callback回调方法。返回指定时间段间隔(天、周、月、年)查询应用使用时长统计信息。

示例

  bundleState.queryBundleStateInfoByInterval(0, 0, 20000000000000, (err, res) => {
      if (err) {
          console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval callback failed, because: ' + err.code);
      } else {
          console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval callback success.');
          for (let i = 0; i < res.length; i++) {
              console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval callback number : ' + (i + 1));
              console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval callback result ' + JSON.stringify(res[i]));
          }
      }
  });

bundleState.queryBundleStateInfoByInterval

queryBundleStateInfoByInterval(byInterval: IntervalType, begin: number, end: number): Promise<Array<BundleStateInfo>>

通过指定时间段间隔(天、周、月、年)查询应用使用时长统计信息,使用Promise形式返回。

需要权限:ohos.permission.BUNDLE_ACTIVE_INFO

系统能力:SystemCapability.ResourceSchedule.UsageStatistics.App

系统API:此接口为系统接口,三方应用不支持调用。

参数

参数名类型必填说明
byInterval[IntervalType]查询类型。
beginnumber起始时间。
endnumber结束时间。

返回值

类型说明
Promise<Array<[BundleStateInfo]>>指定的Promise回调方法。返回指定时间段间隔(天、周、月、年)查询应用使用时长统计信息。

示例

  bundleState.queryBundleStateInfoByInterval(0, 0, 20000000000000).then( res => {
      console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval promise success.');
      for (let i = 0; i < res.length; i++) {
          console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval promise number : ' + (i + 1));
          console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval promise result ' + JSON.stringify(res[i]));
      }
  }).catch( err => {
      console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval promise failed, because: ' + err.code);
  });

bundleState.queryBundleActiveStates

queryBundleActiveStates(begin: number, end: number, callback: AsyncCallback<Array<BundleActiveState>>): void

通过指定起始和结束时间查询所有应用的事件集合,使用Callback形式返回。

需要权限:ohos.permission.BUNDLE_ACTIVE_INFO

系统能力:SystemCapability.ResourceSchedule.UsageStatistics.App

系统API:此接口为系统接口,三方应用不支持调用。

参数

参数名类型必填说明
beginnumber起始时间。
endnumber结束时间。
callbackAsyncCallback<Array<[BundleActiveState]>>指定的callback回调方法。返回指定起始和结束时间查询所有应用的事件集合。

示例

  bundleState.queryBundleActiveStates(0, 20000000000000, (err, res) => {
      if (err) {
          console.log('BUNDLE_ACTIVE queryBundleActiveStates callback failed, because: ' + err.code);
      } else {
          console.log('BUNDLE_ACTIVE queryBundleActiveStates callback success.');
          for (let i = 0; i < res.length; i++) {
              console.log('BUNDLE_ACTIVE queryBundleActiveStates callback number : ' + (i + 1));
              console.log('BUNDLE_ACTIVE queryBundleActiveStates callback result ' + JSON.stringify(res[i]));
          }
      }
  });

bundleState.queryBundleActiveStates

queryBundleActiveStates(begin: number, end: number): Promise<Array<BundleActiveState>>

通过指定起始和结束时间查询所有应用的事件集合,使用Promise形式返回。

需要权限:ohos.permission.BUNDLE_ACTIVE_INFO

系统能力:SystemCapability.ResourceSchedule.UsageStatistics.App

系统API:此接口为系统接口,三方应用不支持调用。

参数

参数名类型必填说明
beginnumber起始时间。
endnumber结束时间。

返回值

类型说明
Promise<Array<[BundleActiveState]>>指定的Promise回调方法。返回指定起始和结束时间查询所有应用的事件集合。

示例

  bundleState.queryBundleActiveStates(0, 20000000000000).then( res => {
      console.log('BUNDLE_ACTIVE queryBundleActiveStates promise success.');
      for (let i = 0; i < res.length; i++) {
          console.log('BUNDLE_ACTIVE queryBundleActiveStates promise number : ' + (i + 1));
          console.log('BUNDLE_ACTIVE queryBundleActiveStates promise result ' + JSON.stringify(res[i]));
      }
  }).catch( err => {
      console.log('BUNDLE_ACTIVE queryBundleActiveStates promise failed, because: ' + err.code);
  });

bundleState.queryCurrentBundleActiveStates

queryCurrentBundleActiveStates(begin: number, end: number, callback: AsyncCallback<Array<BundleActiveState>>): void

通过指定起始和结束时间查询当前应用的事件集合,使用Callback形式返回。

系统能力:SystemCapability.ResourceSchedule.UsageStatistics.App

参数

参数名类型必填说明
beginnumber起始时间。
endnumber结束时间。
callbackAsyncCallback<Array<[BundleActiveState]>>指定的callback回调方法。返回指定起始和结束时间查询当前应用的事件集合。

示例

  bundleState.queryCurrentBundleActiveStates(0, 20000000000000, (err, res) => {
      if (err) {
          console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates callback failed, because: ' + err.code);
      } else {
          console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates callback success.');
          for (let i = 0; i < res.length; i++) {
              console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates callback number : ' + (i + 1));
              console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates callback result ' + JSON.stringify(res[i]));
          }
      }
  });

bundleState.queryCurrentBundleActiveStates

queryCurrentBundleActiveStates(begin: number, end: number): Promise<Array<BundleActiveState>>

通过指定起始和结束时间查询当前应用的事件集合,使用Promise形式返回。

系统能力:SystemCapability.ResourceSchedule.UsageStatistics.App

参数

参数名类型必填说明
beginnumber起始时间。
endnumber结束时间。

返回值

类型说明
Promise<Array<[BundleActiveState]>>指定的Promise回调方法。返回指定起始和结束时间查询当前应用的事件集合。

示例

  bundleState.queryCurrentBundleActiveStates(0, 20000000000000).then( res => {
      console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates promise success.');
      for (let i = 0; i < res.length; i++) {
          console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates promise number : ' + (i + 1));
          console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates promise result ' + JSON.stringify(res[i]));
      }
  }).catch( err => {
      console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates promise failed, because: ' + err.code);
  });

bundleState.getRecentlyUsedModules9+

getRecentlyUsedModules(maxNum?: number): Promise<Array<BundleActiveModuleInfo>>

据maxNum,查询FA使用记录,使用Promise形式返回不超过maxNum条FA使用记录,FA使用记录由近及远排序,maxNum最大为1000。

需要权限:ohos.permission.BUNDLE_ACTIVE_INFO

系统能力:SystemCapability.ResourceSchedule.UsageStatistics.App

系统API:此接口为系统接口,三方应用不支持调用。

参数

参数名类型必填说明
maxNumnumber返回条目的最大数量,最多支持1000条。若不填写,则默认为1000。

返回值

类型说明
Promise<Array<[BundleActiveModuleInfo]>>指定的Promise回调方法。返回不超过maxNum条FA使用记录。

示例

  bundleState.getRecentlyUsedModules(1000).then( res => {
      console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise succeeded');
      for (let i = 0; i < res.length; i++) {
          console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise number : ' + (i + 1));
          console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise result ' + JSON.stringify(res[i]));
      }
  }).catch( err=> {
      console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise failed, because: ' + err.code);
  });

  // 无maxNum参数调用方式
  bundleState.getRecentlyUsedModules().then( res => {
      console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise succeeded');
      for (let i = 0; i < res.length; i++) {
          console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise number : ' + (i + 1));
          console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise result ' + JSON.stringify(res[i]));
      }
  }).catch( err=> {
      console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise failed, because: ' + err.code);
  });

bundleState.getRecentlyUsedModules9+

getRecentlyUsedModules(maxNum?: number, callback: AsyncCallback<Array<BundleActiveModuleInfo>>): void

查询FA使用记录。使用CallBack形式返回数量最大不超过maxNum设置的值,FA使用记录由近及远排序,maxNum最大为1000。

需要权限:ohos.permission.BUNDLE_ACTIVE_INFO

系统能力:SystemCapability.ResourceSchedule.UsageStatistics.App

系统API:此接口为系统接口,三方应用不支持调用。

参数

参数名类型必填说明
maxNumnumber返回条目的最大数量,最多支持1000条。若不填写,则默认为1000。
callbackAsyncCallback<Array<[BundleActiveModuleInfo]>>指定的CallBack回调方法。返回不超过maxNum条FA使用记录。

示例

  bundleState.getRecentlyUsedModules(1000,(err, res) => {
      if(err) {
          console.log('BUNDLE_ACTIVE getRecentlyUsedModules callback failed, because: ' + err.code);
      } else {
          console.log('BUNDLE_ACTIVE getRecentlyUsedModules callback succeeded.');
              for (let i = 0; i < res.length; i++) {
                  console.log('BUNDLE_ACTIVE getRecentlyUsedModules callback number : ' + (i + 1));
                  console.log('BUNDLE_ACTIVE getRecentlyUsedModules callback result ' + JSON.stringify(res[i]));
              }
      }
  });

  // 无maNum参数调用方式
  bundleState.getRecentlyUsedModules((err, res) => {
      if(err) {
          console.log('BUNDLE_ACTIVE getRecentlyUsedModules callback failed, because: ' + err.code);
      } else {
          console.log('BUNDLE_ACTIVE getRecentlyUsedModules callback succeeded.');
              for (let i = 0; i < res.length; i++) {
                  console.log('BUNDLE_ACTIVE getRecentlyUsedModules callback number : ' + (i + 1));
                  console.log('BUNDLE_ACTIVE getRecentlyUsedModules callback result ' + JSON.stringify(res[i]));
              }
          }
  });

BundleActiveModuleInfo9+

FA的使用信息的属性集合。

系统能力:以下各项对应的系统能力均为SystemCapability.ResourceSchedule.UsageStatistics.App

参数名类型必填说明
deviceIdstringFA所属deviceId。
bundleNamestringFA所属应用包名。
moduleNamestringFA所属module名。
abilityNamestringFA的MainAbility名。
appLabelIdnumberFA的应用labelId。
labelIdnumberFA所属module的labelId。
descriptionIdnumberFA所属的应用descriptionId。
abilityLableIdnumberFA的MainAbility labelId。
abilityDescriptionIdnumberFA的MainAbility descriptionId。
abilityIconIdnumberFA的MainAbility iconId。
launchedCountnumberFA的启动次数。
lastModuleUsedTimenumberFA的上一次使用时间。
formRecordsArray<[BundleActiveFormInfo]>FA中卡片的使用记录。

BundleActiveFormInfo9+

FA卡片的使用信息的属性集合。

系统能力:以下各项对应的系统能力均为SystemCapability.ResourceSchedule.UsageStatistics.App

参数名类型必填说明
formNamestring卡片名称。
formDimensionnumber卡片尺寸。
formIdnumber卡片Id。
formLastUsedTimenumber卡片的上一次点击时间。
countnumber卡片的点击次数。

BundleStateInfo

提供应用使用时长的具体信息。

属性

系统能力:以下各项对应的系统能力均为SystemCapability.ResourceSchedule.UsageStatistics.App

参数名类型必填说明
bundleNamestring应用包名。
abilityPrevAccessTimenumber应用最后一次使用的时间。
abilityInFgTotalTimenumber应用在前台使用的总时间。
idnumber用户id。 本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。
abilityPrevSeenTimenumber应用最后一次在前台可见的时间。 本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。
abilitySeenTotalTimenumber应用在前台可见的总时间。 本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。
fgAbilityAccessTotalTimenumber应用访问前台的总时间。 本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。
fgAbilityPrevAccessTimenumber应用最后一次访问前台的时间。 本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。
infosBeginTimenumberBundleActiveInfo对象中第一条应用使用统计的记录时间。 本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。
infosEndTimenumberBundleActiveInfo对象中最后一条应用使用统计的记录时间。 本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。

merge

merge(toMerge: BundleStateInfo): void

合并相同包名的应用使用信息。

系统能力:SystemCapability.ResourceSchedule.UsageStatistics.App

参数

参数名类型必填说明
toMerge[BundleStateInfo]相同包名的应用使用统计信息。

BundleActiveState

提供应用事件的具体信息。

系统能力:以下各项对应的系统能力均为SystemCapability.ResourceSchedule.UsageStatistics.App

参数名类型必填说明
bundleNamestring应用包名。
stateTypenumber应用事件类型。
stateOccurredTimenumber应用事件发生的时间戳。
appUsagePriorityGroupnumber应用程序的使用优先级组。 本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。
indexOfLinkstring快捷方式id。 本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。
nameOfClassstring类名。 本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。

BundleActiveInfoResponse

提供应用使用时长的具体信息。

系统能力:SystemCapability.ResourceSchedule.UsageStatistics.App

参数名类型必填说明
[key: string]: BundleStateInfo[key: string]: [BundleStateInfo]不同应用的使用时长统计信息。HarmonyOS与OpenHarmony鸿蒙文档籽料:mau123789是v直接拿

搜狗高速浏览器截图20240326151547.png

IntervalType

提供应用使用时长的查询类型。

系统能力:以下各项对应的系统能力均为SystemCapability.ResourceSchedule.UsageStatistics.App

名称默认值说明
BY_OPTIMIZED0表示系统自行判断最合适的查询类型(天、周、月、年)去查询指定时间段间隔的应用使用时长信息。
BY_DAILY1表示系统按照天去查询指定时间段间隔的应用使用时长信息。
BY_WEEKLY2表示系统按照周去查询指定时间段间隔的应用使用时长信息。
BY_MONTHLY3表示系统按照月去查询指定时间段间隔的应用使用时长信息。
BY_ANNUALLY4表示系统按照年去查询指定时间段间隔的应用使用时长信息。

鸿蒙Next核心技术分享

1、鸿蒙基础知识←《鸿蒙NEXT星河版开发学习文档》

2、鸿蒙ArkUI←《鸿蒙NEXT星河版开发学习文档》

3、鸿蒙进阶技术←《鸿蒙NEXT星河版开发学习文档》

 4、鸿蒙就业高级技能←《鸿蒙NEXT星河版开发学习文档》 

 5、鸿蒙多媒体技术←《鸿蒙NEXT星河版开发学习文档》 

6、鸿蒙南向驱动开发←《鸿蒙NEXT星河版开发学习文档》  

7、鸿蒙南向内核设备开发←《鸿蒙NEXT星河版开发学习文档》  

 8、鸿蒙系统裁剪与移植←《鸿蒙NEXT星河版开发学习文档》  

  • 30
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值