当前位置: 首页 > news >正文

网站建设 三牛2k屏幕的网站怎么做

网站建设 三牛,2k屏幕的网站怎么做,WordPress的博客添加按钮,网站域名列表怎么填写简介 samgr组件是OpenHarmony的核心组件#xff0c;提供OpenHarmony系统服务启动、注册、查询等功能。 系统架构 图 1 系统服务管理系统架构图 目录 /foundation/systemabilitymgr ├── samgr │ ├── bundle.json # 部件描述及编译文件 │ ├── frameworks …简介 samgr组件是OpenHarmony的核心组件提供OpenHarmony系统服务启动、注册、查询等功能。 系统架构 图 1 系统服务管理系统架构图 目录 /foundation/systemabilitymgr ├── samgr │ ├── bundle.json # 部件描述及编译文件 │ ├── frameworks # 框架实现存在目录 │ ├── interfaces # 接口目录 │ ├── services # 组件服务端目录 │ ├── test # 测试代码存放目录 │ ├── utils # 工具类目录说明 samgr服务接收到sa框架层发送的注册消息会在本地缓存中存入系统服务相关信息。 int32_t SystemAbilityManager::AddSystemAbility(int32_t systemAbilityId, const sptrIRemoteObject ability,const SAExtraProp extraProp) {if (!CheckInputSysAbilityId(systemAbilityId) || ability nullptr) {HILOGE(AddSystemAbilityExtra input params is invalid.);return ERR_INVALID_VALUE;}{unique_lockshared_mutex writeLock(abilityMapLock_);auto saSize abilityMap_.size();if (saSize MAX_SERVICES) {HILOGE(map size error, (Has been greater than %zu), saSize);return ERR_INVALID_VALUE;}SAInfo saInfo;saInfo.remoteObj ability;saInfo.isDistributed extraProp.isDistributed;saInfo.capability extraProp.capability;saInfo.permission Str16ToStr8(extraProp.permission);abilityMap_[systemAbilityId] std::move(saInfo);HILOGI(insert %{public}d. size : %{public}zu, systemAbilityId, abilityMap_.size());}RemoveCheckLoadedMsg(systemAbilityId);if (abilityDeath_ ! nullptr) {ability-AddDeathRecipient(abilityDeath_);}u16string strName Str8ToStr16(to_string(systemAbilityId));if (extraProp.isDistributed dBinderService_ ! nullptr) {dBinderService_-RegisterRemoteProxy(strName, systemAbilityId);HILOGD(AddSystemAbility RegisterRemoteProxy, serviceId is %{public}d, systemAbilityId);}if (systemAbilityId SOFTBUS_SERVER_SA_ID !isDbinderStart_) {if (dBinderService_ ! nullptr rpcCallbackImp_ ! nullptr) {bool ret dBinderService_-StartDBinderService(rpcCallbackImp_);HILOGI(start result is %{public}s, ret ? succeed : fail);isDbinderStart_ true;}}SendSystemAbilityAddedMsg(systemAbilityId, ability);return ERR_OK; }对于本地服务而言samgr服务接收到sa框架层发送的获取消息会通过服务id查找到对应服务的代理对象然后返回给sa框架。 sptrIRemoteObject SystemAbilityManager::CheckSystemAbility(int32_t systemAbilityId) {if (!CheckInputSysAbilityId(systemAbilityId)) {HILOGW(CheckSystemAbility CheckSystemAbility invalid!);return nullptr;}shared_lockshared_mutex readLock(abilityMapLock_);auto iter abilityMap_.find(systemAbilityId);if (iter ! abilityMap_.end()) {HILOGI(found service : %{public}d., systemAbilityId);return iter-second.remoteObj;}HILOGI(NOT found service : %{public}d, systemAbilityId);return nullptr; }动态加载系统服务进程及SystemAbility, 系统进程无需开机启动而是在SystemAbility被访问的时候按需拉起并加载指定SystemAbility。 3.1 继承SystemAbilityLoadCallbackStub类并覆写OnLoadSystemAbilitySuccess(int32_t systemAbilityId, const sptr remoteObject)、OnLoadSystemAbilityFail(int32_t systemAbilityId)方法。 class OnDemandLoadCallback : public SystemAbilityLoadCallbackStub { public:void OnLoadSystemAbilitySuccess(int32_t systemAbilityId, const sptrIRemoteObject remoteObject) override;void OnLoadSystemAbilityFail(int32_t systemAbilityId) override; };void OnDemandLoadCallback::OnLoadSystemAbilitySuccess(int32_t systemAbilityId,const sptrIRemoteObject remoteObject) // systemAbilityId为指定加载的SAIDremoteObject为指定systemAbility的代理对象 {cout OnLoadSystemAbilitySuccess systemAbilityId: systemAbilityId IRemoteObject result: ((remoteObject ! nullptr) ? succeed : failed) endl; }void OnDemandLoadCallback::OnLoadSystemAbilityFail(int32_t systemAbilityId) // systemAbilityId为指定加载的SAID {cout OnLoadSystemAbilityFail systemAbilityId: systemAbilityId endl; }3.2 调用samgr提供的动态加载接口LoadSystemAbility(int32_t systemAbilityId, const sptr callback)。 // 构造步骤1的SystemAbilityLoadCallbackStub子类的实例 sptrOnDemandLoadCallback loadCallback_ new OnDemandLoadCallback(); // 调用LoadSystemAbility方法 sptrISystemAbilityManager sm SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); if (sm nullptr) {cout GetSystemAbilityManager samgr object null! endl;return; } int32_t result sm-LoadSystemAbility(systemAbilityId, loadCallback_); if (result ! ERR_OK) {cout systemAbilityId: systemAbilityId load failed, result code: result endl;return; }说明 1.LoadSystemAbility方法调用成功后指定SystemAbility加载成功后会触发回调OnLoadSystemAbilitySuccess加载失败触发回调OnLoadSystemAbilityFail。 2.动态加载的进程cfg文件不能配置为开机启动需指定ondemand : true, 示例如下: {services : [{name : listen_test,path : [/system/bin/sa_main, /system/profile/listen_test.json],ondemand : true,uid : system,gid : [system, shell]} ]}3.LoadSystemAbility方法适用于动态加载场景其他获取SystemAbility场景建议使用CheckSystemAbility方法。 4.cfg里进程名称需要与SA的配置json文件里进程名保持一致 更多鸿蒙知识已经更新qr23.cn/AKFP8k可以前往了解
http://www.zqtcl.cn/news/460855/

相关文章:

  • js做网站福田网站设计公司
  • 郑州做网站好长春市建设工程信息网站
  • 题库网站怎么做做网站文件夹都起什么名字
  • 河南网站怎么备案东台市住房和建设局网站
  • 有什么手机做网站的asp.net网站安全
  • 怎么做查询网站后台做爰的视频网站
  • 迪虎科技网站建设国际市场那个app可以看
  • 怎么做跳转不影响原网站排名wordpress添加邮箱设置
  • 网站内容规范外贸电商怎么做
  • 郑州做网站齿轮wordpress 文章h标签美化
  • 建设银行网站怎么修改手机号码吗网站建设怎样容易
  • 网站建设风险管理计划书户外媒体网站建设免费
  • 学到什么程度可以做网站网站维护的要求包括
  • 泉州网站设计平台南阳响应式网站
  • 阿里云 企业网站选哪种推广普通话的文字内容
  • 广州市南沙建设局网站中山建网站咨询电话
  • 怎么创建网站快捷方式网络服务器搭建配置与管理 下载
  • 现在什么类型网站没有人做wordpress get_categories()
  • 石家庄网站推广优化闲鱼网络营销方式
  • 精诚时代 网站谁做的北京网站设计必看刻
  • 长沙网站排名报价企业管理培训课程网课
  • 怎样做婚庆网站外贸网站怎么注册
  • 网站设计制作公司推荐自己做商务网站有什么利弊
  • 传媒网站杨浦网站建设哪家好
  • 500m主机空间能做视频网站吗做中文网站的公司
  • 网站建设规划模板公司网站建设论文
  • p2p网站开发的内容广东世纪达建设集团有限公司官方网站
  • 网站基本建设是什么o元做网站
  • 南昌做购物网站的公司mc做弊端网站
  • 汕头制作网站推荐文化建设五大工程