
念念了解更多实质,请看望:
51CTO和华为官方联结共建的鸿蒙时候社区
www.kingofvegaszonezonezone.comhttps://harmonyos.51cto.com
今天得知一条信息,女星Melody(殷悦,本命刘恭显)离婚了。
闭营仪式上,来自德国、西班牙、葡萄牙和加拿大的40余名华裔青少年,以及16名来自长沙本地学校的文化传播小使者表演了快板、朗诵、京剧等节目,展现学习成果,用实际行动传承和弘扬中华文化、湖湘文化。
1 简介在圭臬系统上,账号子系统主要提供漫步式帐号登录现象措置才调,搭救在端侧对接厂商云帐号诈欺,提供云帐号登录现象查询和更新的措置才调
1.1 OpenHarmony架构图
1.2 账号子系统架构图
1.3 账号子系统目次结构
/base/account/os_account ├── frameworks │ ├── appaccount # 诈欺账号kit代码 │ ├── ohosaccount # 云账号kit代码 │ ├── common # 共通基础代码 │ │ ├── account_error # 乌有码 │ │ ├── database # 数据库基础代码 │ │ ├── log # 打印日记代码 │ │ └── perf_stat # 性能统计 ├── interfaces │ ├── innerkits │ │ ├── appaccount # 诈欺账号里面接口 │ │ ├── ohosaccount # 云账号里面接口 │ └── kits │ └── napi │ ├── appaccount # 诈欺账号对外接口 │ └── distributedaccount # 漫步式账号对外接口 ├── sa_profile # 帐号SA设置文献界说目次 └── services └── accountmgr # 帐号措置管事2 账号措置管事的启动 2.1 rc启动管事
#base\account\os_account\services\accountmgr\accountmgr.rc on post-fs-data start accountmgr service accountmgr /system/bin/sa_main /system/profile/accountmgr.xml class z_core user system group system shell seclabel u:r:accountmgr:s0 writepid /dev/cpuset/foreground/tasks /dev/stune/foreground/tasks /dev/blkio/foreground/tasks
2.1.1 rc文献结构领路
网站拥有最多样化的博彩游戏和赛事直播,以及最全面、最优质的博彩攻略和技巧分享,为广大博彩爱好者提供最专业的博彩服务。我们的平台安全稳定,操作简便,充值提款便捷,为您带来最佳的博彩体验和最高的博彩收益。网络赌博的案例rc文献所以模块为单元的,模块分为3种类型:on、service、import
手机博彩赚钱 import: 导入其它的rc文献 on: 现实chown、mkdir、write、export、symlink等通俗的shell教导,如:on post-fs-data start accountmgr
post-fs-data将一个section里的所有号令加入到一个现实队伍,在翌日的某个时分会步骤现实队伍里的号令
service: 现实可现实要领,如:service accountmgr /system/bin/sa_main /system/profile/accountmgr.xml class z_core user system group system shell seclabel u:r:accountmgr:s0 writepid /dev/cpuset/foreground/tasks /dev/stune/foreground/tasks /dev/blkio/foreground/tasks
accountmgr为可现实要领名
浪漫皇冠客服飞机:@seo3687
皇冠手机体育网/system/bin/sa_main /system/profile/accountmgr.xml为可现实文献的旅途
2026世界杯美国城市
class、user、group、seclabel、writepid这些要道字所对应的行是用来态状service一些特色,不同的service有着不同的特色
service什么时分被现实?
皇冠假日酒店app在某个on模块的教导里会存在“class_start”,举例:
class_start core class_start main on nonencrypted class_start late_start
当现实到这里是service模块就会被调用
2.2 AccountMgrService的启动历程
2.2.1 AccountMgrService通过OnStart调用Init
AccountMgrService吸收自SystemAbility,当诈欺启动时领先诈欺要领框架会调用AccountMgrService的人命周期函数OnStart(); OnStart()领先判断管事运功绩态是否仍是开启,皇冠账号要是莫得开启,则调用Init()进行开动化操作 开动化操作完成并复返true给OnStart()后,管事运功绩态则更新为开启现象//base\account\os_account\services\accountmgr\src\account_mgr_service.cpp void AccountMgrService::OnStart() { //判断管事运功绩态是否仍是开启 if (state_ == ServiceRunningState::STATE_RUNNING) { ACCOUNT_LOGI("AccountMgrService has already started."); return; } PerfStat::GetInstance().SetInstanceStartTime(GetTickCount()); ACCOUNT_LOGI("start is triggered"); //要是管事运功绩态莫得开启,则调用Init()进行开动化操作 if (!Init()) { ACCOUNT_LOGE("failed to init AccountMgrService"); return; } //开动化操作完成并复返true给OnStart()后,管事运功绩态则更新为开启现象 state_ = ServiceRunningState::STATE_RUNNING; ACCOUNT_LOGI("AccountMgrService::OnStart start service success."); }
2.2.2 AccountMgrService的Init()竣事
皇冠足球 Init()被调用后,依然要先判断管事运功绩态是否仍是开启 随后,查验DEVICE_OWNER_DIR是否存在,要是不存在就强制创建 要是管事还莫得被注册,则调用Publish()来注册管事,Publish()现实到手后,标志管事仍是被注册 创建OhosAccountManager对象,并调用它的OnInitialize设施//base\account\os_account\services\accountmgr\src\account_mgr_service.cpp bool AccountMgrService::Init() { //判断管事运功绩态是否仍是开启 if (state_ == ServiceRunningState::STATE_RUNNING) { ACCOUNT_LOGW("Service is already running!"); return false; } //查验DEVICE_OWNER_DIR是否存在,要是不存在就强制创建 if (!OHOS::FileExists(DEVICE_OWNER_DIR)) { ACCOUNT_LOGI("Device owner dir not exist, create!"); if (!OHOS::ForceCreateDirectory(DEVICE_OWNER_DIR)) { ACCOUNT_LOGW("Create device owner dir failure!"); } } bool ret = false; //要是管事还莫得被注册,则调用Publish()来注册管事,Publish()现实到手后,标志管事仍是被注册 if (!registerToService_) { ret = Publish(&DelayedRefSingleton<AccountMgrService>::GetInstance()); if (!ret) { HiviewDFX::HiSysEvent::Write(HiviewDFX::HiSysEvent::Domain::ACCOUNT, "AccountServiceStartFailed", HiviewDFX::HiSysEvent::EventType::FAULT, "ERROR_TYPE", ERR_ACCOUNT_MGR_ADD_TO_SA_ERROR); ACCOUNT_LOGE("AccountMgrService::Init Publish failed!"); return false; } registerToService_ = true; } PerfStat::GetInstance().SetInstanceInitTime(GetTickCount()); //创建OhosAccountManager对象 ohosAccountMgr_ = std::make_shared<OhosAccountManager>(); //调用OhosAccountManager的OnInitialize设施 ret = ohosAccountMgr_->OnInitialize(); if (!ret) { ACCOUNT_LOGE("Ohos account manager initialize failed"); HiviewDFX::HiSysEvent::Write(HiviewDFX::HiSysEvent::Domain::ACCOUNT, "AccountServiceStartFailed", HiviewDFX::HiSysEvent::EventType::FAULT, "ERROR_TYPE", ret); return ret; } dumpHelper_ = std::make_unique<AccountDumpHelper>(ohosAccountMgr_); IAccountContext::SetInstance(this); ACCOUNT_LOGI("init end success"); return true; }
2.2.3 OhosAccountManager的开动化皇冠体育官网
OhosAccountManager::OnInitialize领先调用BuildEventsMapper()进行事件映射,检察BuildEventsMapper()竣事可发现,写死的事件有账号登入、登出、刊出和Token失效,并与对应的设施绑定 组织账号设置文献旅途,当作参数创建OhosAccountDataDeal对象,并调用它的Init设施,检察Init()竣事可发现,Init()读取账号设置文献并保存到jsonData_中 调用AccountInfoFromJson()得回账号信息并保存到currentAccount_中//base\account\os_account\services\accountmgr\src\ohos_account_manager.cpp bool OhosAccountManager::OnInitialize() { accountState_ = std::make_unique<AccountStateMachine>(); //事件映射 BuildEventsMapper(); //组织账号设置文献旅途 std::int32_t userId = GetUserId(); std::string filePath; filePath.append(ACCOUNT_CFG_DIR_ROOT_PATH).append(std::to_string(userId)).append(ACCOUNT_CFG_FILE_NAME); //创建OhosAccountDataDeal对象 dataDealer_ = std::make_unique<OhosAccountDataDeal>(filePath); std::int32_t tryTimes = 0; while (tryTimes < MAX_RETRY_TIMES) { tryTimes++; //调用ohos_account_data_deal的Init设施 ErrCode errCode = dataDealer_->Init(); if (errCode == ERR_OK) { break; } // when json file corrupted, have it another try if ((tryTimes == MAX_RETRY_TIMES)