1 /* 2 * Copyright (c) 2021 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef OHOS_AAFWK_ABILITY_MANAGER_SERVICE_H 17 #define OHOS_AAFWK_ABILITY_MANAGER_SERVICE_H 18 19 #include <memory> 20 #include <singleton.h> 21 #include <thread_ex.h> 22 #include <unordered_map> 23 24 #include "ability_connect_manager.h" 25 #include "ability_event_handler.h" 26 #include "ability_manager_stub.h" 27 #include "ability_stack_manager.h" 28 #include "app_scheduler.h" 29 #include "bundlemgr/bundle_mgr_interface.h" 30 #include "data_ability_manager.h" 31 #include "hilog_wrapper.h" 32 #include "iremote_object.h" 33 #include "kernal_system_app_manager.h" 34 #include "system_ability.h" 35 #include "uri.h" 36 #include "ability_config.h" 37 #include "pending_want_manager.h" 38 #include "ams_configuration_parameter.h" 39 40 namespace OHOS { 41 namespace AAFwk { 42 enum class ServiceRunningState { STATE_NOT_START, STATE_RUNNING }; 43 44 class PendingWantManager; 45 /** 46 * @class AbilityManagerService 47 * AbilityManagerService provides a facility for managing ability life cycle. 48 */ 49 class AbilityManagerService : public SystemAbility, 50 public AbilityManagerStub, 51 public AppStateCallback, 52 public std::enable_shared_from_this<AbilityManagerService> { 53 DECLARE_DELAYED_SINGLETON(AbilityManagerService) 54 DECLEAR_SYSTEM_ABILITY(AbilityManagerService) 55 public: 56 void OnStart() override; 57 void OnStop() override; 58 ServiceRunningState QueryServiceState() const; 59 60 /** 61 * StartAbility with want, send want to ability manager service. 62 * 63 * @param want, the want of the ability to start. 64 * @param requestCode, Ability request code. 65 * @return Returns ERR_OK on success, others on failure. 66 */ 67 virtual int StartAbility(const Want &want, int requestCode = DEFAULT_INVAL_VALUE) override; 68 69 /** 70 * StartAbility with want, send want to ability manager service. 71 * 72 * @param want, the want of the ability to start. 73 * @param callerToken, caller ability token. 74 * @param requestCode the resultCode of the ability to start. 75 * @return Returns ERR_OK on success, others on failure. 76 */ 77 virtual int StartAbility( 78 const Want &want, const sptr<IRemoteObject> &callerToken, int requestCode = DEFAULT_INVAL_VALUE) override; 79 80 /** 81 * Starts a new ability with specific start settings. 82 * 83 * @param want Indicates the ability to start. 84 * @param abilityStartSetting Indicates the setting ability used to start. 85 * @param callerToken, caller ability token. 86 * @param requestCode the resultCode of the ability to start. 87 * @return Returns ERR_OK on success, others on failure. 88 */ 89 virtual int StartAbility(const Want &want, const AbilityStartSetting &abilityStartSetting, 90 const sptr<IRemoteObject> &callerToken, int requestCode = DEFAULT_INVAL_VALUE) override; 91 92 /** 93 * TerminateAbility, terminate the special ability. 94 * 95 * @param token, the token of the ability to terminate. 96 * @param resultCode, the resultCode of the ability to terminate. 97 * @param resultWant, the Want of the ability to return. 98 * @return Returns ERR_OK on success, others on failure. 99 */ 100 virtual int TerminateAbility(const sptr<IRemoteObject> &token, int resultCode = DEFAULT_INVAL_VALUE, 101 const Want *resultWant = nullptr) override; 102 103 /** 104 * TerminateAbility, terminate the special ability. 105 * 106 * @param callerToken, caller ability token. 107 * @param requestCode, Ability request code. 108 * @return Returns ERR_OK on success, others on failure. 109 */ 110 virtual int TerminateAbilityByCaller(const sptr<IRemoteObject> &callerToken, int requestCode) override; 111 112 /** 113 * ConnectAbility, connect session with service ability. 114 * 115 * @param want, Special want for service type's ability. 116 * @param connect, Callback used to notify caller the result of connecting or disconnecting. 117 * @param callerToken, caller ability token. 118 * @return Returns ERR_OK on success, others on failure. 119 */ 120 virtual int ConnectAbility( 121 const Want &want, const sptr<IAbilityConnection> &connect, const sptr<IRemoteObject> &callerToken) override; 122 123 virtual int DisconnectAbility(const sptr<IAbilityConnection> &connect) override; 124 125 /** 126 * AcquireDataAbility, acquire a data ability by its authority, if it not existed, 127 * AMS loads it synchronously. 128 * 129 * @param uri, data ability uri. 130 * @param tryBind, true: when a data ability is died, ams will kill this client, or do nothing. 131 * @param callerToken, specifies the caller ability token. 132 * @return returns the data ability ipc object, or nullptr for failed. 133 */ 134 virtual sptr<IAbilityScheduler> AcquireDataAbility( 135 const Uri &uri, bool tryBind, const sptr<IRemoteObject> &callerToken) override; 136 137 /** 138 * ReleaseDataAbility, release the data ability that referenced by 'dataAbilityToken'. 139 * 140 * @param dataAbilityToken, specifies the data ability that will be released. 141 * @param callerToken, specifies the caller ability token. 142 * @return returns ERR_OK if succeeded, or error codes for failed. 143 */ 144 virtual int ReleaseDataAbility( 145 sptr<IAbilityScheduler> dataAbilityScheduler, const sptr<IRemoteObject> &callerToken) override; 146 147 /** 148 * AddWindowInfo, add windowToken to AbilityRecord. 149 * 150 * @param token, the token of the ability. 151 * @param windowToken, window id of the ability. 152 */ 153 virtual void AddWindowInfo(const sptr<IRemoteObject> &token, int32_t windowToken) override; 154 155 /** 156 * AttachAbilityThread, ability call this interface after loaded. 157 * 158 * @param scheduler,.the interface handler of kit ability. 159 * @param token,.ability's token. 160 * @return Returns ERR_OK on success, others on failure. 161 */ 162 virtual int AttachAbilityThread( 163 const sptr<IAbilityScheduler> &scheduler, const sptr<IRemoteObject> &token) override; 164 165 /** 166 * AbilityTransitionDone, ability call this interface after lift cycle was changed. 167 * 168 * @param token,.ability's token. 169 * @param state,.the state of ability lift cycle. 170 * @return Returns ERR_OK on success, others on failure. 171 */ 172 virtual int AbilityTransitionDone(const sptr<IRemoteObject> &token, int state) override; 173 174 /** 175 * ScheduleConnectAbilityDone, service ability call this interface while session was connected. 176 * 177 * @param token,.service ability's token. 178 * @param remoteObject,.the session proxy of service ability. 179 * @return Returns ERR_OK on success, others on failure. 180 */ 181 virtual int ScheduleConnectAbilityDone( 182 const sptr<IRemoteObject> &token, const sptr<IRemoteObject> &remoteObject) override; 183 184 /** 185 * ScheduleDisconnectAbilityDone, service ability call this interface while session was disconnected. 186 * 187 * @param token,.service ability's token. 188 * @return Returns ERR_OK on success, others on failure. 189 */ 190 virtual int ScheduleDisconnectAbilityDone(const sptr<IRemoteObject> &token) override; 191 192 /** 193 * ScheduleCommandAbilityDone, service ability call this interface while session was commanded. 194 * 195 * @param token,.service ability's token. 196 * @return Returns ERR_OK on success, others on failure. 197 */ 198 virtual int ScheduleCommandAbilityDone(const sptr<IRemoteObject> &token) override; 199 200 /** 201 * GetEventHandler, get the ability manager service's handler. 202 * 203 * @return Returns AbilityEventHandler ptr. 204 */ 205 std::shared_ptr<AbilityEventHandler> GetEventHandler(); 206 207 /** 208 * SetStackManager, set the user id of stack manager. 209 * 210 * @param userId, user id. 211 */ 212 void SetStackManager(int userId); 213 214 /** 215 * GetStackManager, get the current stack manager. 216 * 217 * @return Returns AbilityStackManager ptr. 218 */ 219 std::shared_ptr<AbilityStackManager> GetStackManager(); 220 221 /** 222 * DumpWaittingAbilityQueue. 223 * 224 * @param result, result. 225 */ 226 void DumpWaittingAbilityQueue(std::string &result); 227 228 /** 229 * dump ability stack info, about userID, mission stack info, 230 * mission record info and ability info. 231 * 232 * @param state Ability stack info. 233 * @return Returns ERR_OK on success, others on failure. 234 */ 235 virtual void DumpState(const std::string &args, std::vector<std::string> &info) override; 236 237 /** 238 * Obtains information about ability stack that are running on the device. 239 * 240 * @param stackInfo Ability stack info. 241 * @return Returns ERR_OK on success, others on failure. 242 */ 243 virtual int GetAllStackInfo(StackInfo &stackInfo) override; 244 245 /** 246 * Destroys this Service ability if the number of times it 247 * has been started equals the number represented by 248 * the given startId. 249 * 250 * @param token ability's token. 251 * @param startId is incremented by 1 every time this ability is started. 252 * @return Returns true if the startId matches the number of startup times 253 * and this Service ability will be destroyed; returns false otherwise. 254 */ 255 virtual int TerminateAbilityResult(const sptr<IRemoteObject> &token, int startId) override; 256 257 /** 258 * Destroys this Service ability by Want. 259 * 260 * @param want, Special want for service type's ability. 261 * @return Returns true if this Service ability will be destroyed; returns false otherwise. 262 */ 263 virtual int StopServiceAbility(const Want &want) override; 264 265 /** 266 * Get the list of the missions that the user has recently launched, 267 * with the most recent being first and older ones after in order. 268 * 269 * @param recentList recent mission info 270 * @param numMax The maximum number of entries to return in the list. The 271 * actual number returned may be smaller, depending on how many tasks the 272 * user has started and the maximum number the system can remember. 273 * @param falgs Information about what to return. May be any combination 274 * of {@link #RECENT_WITH_EXCLUDED} and {@link #RECENT_IGNORE_UNAVAILABLE}. 275 * @return Returns ERR_OK on success, others on failure. 276 */ 277 virtual int GetRecentMissions( 278 const int32_t numMax, const int32_t flags, std::vector<AbilityMissionInfo> &recentList) override; 279 280 /** 281 * Get mission snapshot by mission id 282 * 283 * @param missionId the id of the mission to retrieve the sAutoapshots 284 * @return Returns ERR_OK on success, others on failure. 285 */ 286 virtual int GetMissionSnapshot(const int32_t missionId, MissionSnapshotInfo &snapshot) override; 287 288 /** 289 * Ask that the mission associated with a given mission ID be moved to the 290 * front of the stack, so it is now visible to the user. 291 * 292 * @param missionId. 293 * @return Returns ERR_OK on success, others on failure. 294 */ 295 virtual int MoveMissionToTop(int32_t missionId) override; 296 297 /** 298 * Requires that tasks associated with a given capability token be moved to the background 299 * 300 * @param token ability token 301 * @param nonFirst If nonfirst is false and not the lowest ability of the mission, you cannot move mission to end 302 * @return Returns ERR_OK on success, others on failure. 303 */ 304 virtual int MoveMissionToEnd(const sptr<IRemoteObject> &token, const bool nonFirst) override; 305 306 /** 307 * Remove the specified mission from the stack by mission id 308 * 309 * @param missionId. 310 * @return Returns ERR_OK on success, others on failure. 311 */ 312 virtual int RemoveMission(int id) override; 313 314 /** 315 * Remove the specified mission stack by stack id 316 * 317 * @param id. 318 * @return Returns ERR_OK on success, others on failure. 319 */ 320 virtual int RemoveStack(int id) override; 321 322 /** 323 * Kill the process immediately. 324 * 325 * @param bundleName. 326 * @return Returns ERR_OK on success, others on failure. 327 */ 328 virtual int KillProcess(const std::string &bundleName) override; 329 330 /** 331 * Uninstall app 332 * 333 * @param bundleName. 334 * @return Returns ERR_OK on success, others on failure. 335 */ 336 virtual int UninstallApp(const std::string &bundleName) override; 337 338 /** 339 * Moving mission to the specified stack by mission option(Enter floating window mode). 340 * @param missionOption, target mission option 341 * @return Returns ERR_OK on success, others on failure. 342 */ 343 virtual int MoveMissionToFloatingStack(const MissionOption &missionOption) override; 344 345 /** 346 * Moving mission to the specified stack by mission option(Enter floating window mode). 347 * @param missionOption, target mission option 348 * @return Returns ERR_OK on success, others on failure. 349 */ 350 virtual int MoveMissionToSplitScreenStack(const MissionOption &missionOption) override; 351 352 /** 353 * Change the focus of ability in the mission stack. 354 * @param lostToken, the token of lost focus ability 355 * @param getToken, the token of get focus ability 356 * @return Returns ERR_OK on success, others on failure. 357 */ 358 virtual int ChangeFocusAbility( 359 const sptr<IRemoteObject> &lostFocusToken, const sptr<IRemoteObject> &getFocusToken) override; 360 361 /** 362 * minimize multiwindow by mission id. 363 * @param missionId, the id of target mission 364 * @return Returns ERR_OK on success, others on failure. 365 */ 366 virtual int MinimizeMultiWindow(int missionId) override; 367 368 /** 369 * maximize multiwindow by mission id. 370 * @param missionId, the id of target mission 371 * @return Returns ERR_OK on success, others on failure. 372 */ 373 virtual int MaximizeMultiWindow(int missionId) override; 374 375 /** 376 * get missions info of floating mission stack. 377 * @param list, mission info. 378 * @return Returns ERR_OK on success, others on failure. 379 */ 380 virtual int GetFloatingMissions(std::vector<AbilityMissionInfo> &list) override; 381 382 /** 383 * close multiwindow by mission id. 384 * @param missionId, the id of target mission. 385 * @return Returns ERR_OK on success, others on failure. 386 */ 387 virtual int CloseMultiWindow(int missionId) override; 388 389 /** 390 * set special mission stack default settings. 391 * @param stackSetting, mission stack default settings. 392 * @return Returns ERR_OK on success, others on failure. 393 */ 394 virtual int SetMissionStackSetting(const StackSetting &stackSetting) override; 395 396 /** 397 * @brief Checks whether this ability is the first ability in a mission. 398 * 399 * @return Returns true is first in Mission. 400 */ 401 virtual bool IsFirstInMission(const sptr<IRemoteObject> &token) override; 402 403 /** 404 * Checks whether a specified permission has been granted to the process identified by pid and uid 405 * 406 * @param permission Indicates the permission to check. 407 * @param pid Indicates the ID of the process to check. 408 * @param uid Indicates the UID of the process to check. 409 * @param message Describe success or failure 410 * 411 * @return Returns ERR_OK on success, others on failure. 412 */ 413 virtual int CompelVerifyPermission(const std::string &permission, int pid, int uid, std::string &message) override; 414 415 /** 416 * Save the top ability States and move them to the background 417 * @return Returns ERR_OK on success, others on failure. 418 */ 419 virtual int PowerOff() override; 420 421 /** 422 * Restore the state before top ability poweroff 423 * @return Returns ERR_OK on success, others on failure. 424 */ 425 virtual int PowerOn() override; 426 427 /** 428 * Sets the application to start its ability in lock mission mode. 429 * @param missionId luck mission id 430 * @return Returns ERR_OK on success, others on failure. 431 */ 432 virtual int LockMission(int missionId) override; 433 434 /** 435 * Unlocks this ability by exiting the lock mission mode. 436 * @param missionId unluck mission id 437 * @return Returns ERR_OK on success, others on failure. 438 */ 439 virtual int UnlockMission(int missionId) override; 440 441 /** 442 * Sets description information about the mission containing this ability. 443 * 444 * @param description Indicates the object containing information about the 445 * mission. This parameter cannot be null. 446 * @return Returns ERR_OK on success, others on failure. 447 */ 448 virtual int SetMissionDescriptionInfo( 449 const sptr<IRemoteObject> &token, const MissionDescriptionInfo &description) override; 450 451 /** 452 * get current system mission lock mode state. 453 * 454 * @return Returns 0: LOCK_MISSION_STATE_NONE, 1: LOCK_MISSION_STATE_LOCKED 455 */ 456 virtual int GetMissionLockModeState() override; 457 458 /** 459 * Updates the configuration by modifying the configuration. 460 * 461 * @param config Indicates the new configuration 462 * @return Returns ERR_OK on success, others on failure. 463 */ 464 virtual int UpdateConfiguration(const DummyConfiguration &config) override; 465 466 /** 467 * remove all service record. 468 * 469 */ 470 void RemoveAllServiceRecord(); 471 472 virtual sptr<IWantSender> GetWantSender( 473 const WantSenderInfo &wantSenderInfo, const sptr<IRemoteObject> &callerToken) override; 474 475 virtual int SendWantSender(const sptr<IWantSender> &target, const SenderInfo &senderInfo) override; 476 477 virtual void CancelWantSender(const sptr<IWantSender> &sender) override; 478 479 virtual int GetPendingWantUid(const sptr<IWantSender> &target) override; 480 481 virtual int GetPendingWantUserId(const sptr<IWantSender> &target) override; 482 483 virtual std::string GetPendingWantBundleName(const sptr<IWantSender> &target) override; 484 485 virtual int GetPendingWantCode(const sptr<IWantSender> &target) override; 486 487 virtual int GetPendingWantType(const sptr<IWantSender> &target) override; 488 489 virtual void RegisterCancelListener(const sptr<IWantSender> &sender, const sptr<IWantReceiver> &receiver) override; 490 491 virtual void UnregisterCancelListener( 492 const sptr<IWantSender> &sender, const sptr<IWantReceiver> &receiver) override; 493 494 virtual int GetPendingRequestWant(const sptr<IWantSender> &target, std::shared_ptr<Want> &want) override; 495 496 /** 497 * get service record by element name. 498 * 499 */ 500 std::shared_ptr<AbilityRecord> GetServiceRecordByElementName(const std::string &element); 501 std::list<std::shared_ptr<ConnectionRecord>> GetConnectRecordListByCallback(sptr<IAbilityConnection> callback); 502 503 void OnAbilityDied(std::shared_ptr<AbilityRecord> abilityRecord); 504 505 /** 506 * wait for starting system ui. 507 * 508 */ 509 void StartSystemUi(const std::string name); 510 511 void HandleLoadTimeOut(int64_t eventId); 512 void HandleActiveTimeOut(int64_t eventId); 513 void HandleInactiveTimeOut(int64_t eventId); 514 515 void RestartAbility(const sptr<IRemoteObject> &token); 516 void NotifyBmsAbilityLifeStatus( 517 const std::string &bundleName, const std::string &abilityName, const int64_t launchTime); 518 519 int StartAbility(const Want &want, const sptr<IRemoteObject> &callerToken, int requestCode, int callerUid = -1); 520 521 int CheckPermission(const std::string &bundleName, const std::string &permission); 522 523 // MSG 0 - 20 represents timeout message 524 static constexpr uint32_t LOAD_TIMEOUT_MSG = 0; 525 static constexpr uint32_t ACTIVE_TIMEOUT_MSG = 1; 526 static constexpr uint32_t INACTIVE_TIMEOUT_MSG = 2; 527 static constexpr uint32_t BACKGROUND_TIMEOUT_MSG = 3; 528 static constexpr uint32_t TERMINATE_TIMEOUT_MSG = 4; 529 530 static constexpr uint32_t LOAD_TIMEOUT = 3000; // ms 531 static constexpr uint32_t ACTIVE_TIMEOUT = 5000; // ms 532 static constexpr uint32_t INACTIVE_TIMEOUT = 500; // ms 533 static constexpr uint32_t BACKGROUND_TIMEOUT = 10000; // ms 534 static constexpr uint32_t TERMINATE_TIMEOUT = 10000; // ms 535 static constexpr uint32_t CONNECT_TIMEOUT = 500; // ms 536 static constexpr uint32_t DISCONNECT_TIMEOUT = 500; // ms 537 static constexpr uint32_t COMMAND_TIMEOUT = 5000; // ms 538 static constexpr uint32_t SYSTEM_UI_TIMEOUT = 5000; // ms 539 static constexpr uint32_t RESTART_TIMEOUT = 5000; // ms 540 static constexpr uint32_t RESTART_ABILITY_TIMEOUT = 500; // ms 541 542 static constexpr uint32_t MIN_DUMP_ARGUMENT_NUM = 2; 543 static constexpr uint32_t MAX_WAIT_SYSTEM_UI_NUM = 600; 544 545 enum DumpKey { 546 KEY_DUMP_ALL = 0, 547 KEY_DUMP_STACK_LIST, 548 KEY_DUMP_STACK, 549 KEY_DUMP_MISSION, 550 KEY_DUMP_TOP_ABILITY, 551 KEY_DUMP_WAIT_QUEUE, 552 KEY_DUMP_SERVICE, 553 KEY_DUMP_DATA, 554 KEY_DUMP_SYSTEM_UI, 555 KEY_DUMP_FOCUS_ABILITY, 556 }; 557 558 friend class AbilityStackManager; 559 560 protected: 561 void OnAbilityRequestDone(const sptr<IRemoteObject> &token, const int32_t state) override; 562 int GetUidByBundleName(std::string bundleName); 563 564 void OnAppStateChanged(const AppInfo &info) override; 565 566 private: 567 /** 568 * initialization of ability manager service. 569 * 570 */ 571 bool Init(); 572 /** 573 * starting lanucher ability. 574 * 575 */ 576 void StartingLauncherAbility(); 577 578 /** 579 * starting system ui abilites. 580 * 581 */ 582 void StartingSystemUiAbility(const SatrtUiMode &mode); 583 584 /** 585 * connet bms. 586 * 587 */ 588 void ConnectBmsService(); 589 /** 590 * get the user id. 591 * 592 */ 593 int GetUserId(); 594 bool IsSystemUiApp(const AppExecFwk::AbilityInfo &info) const; 595 596 /** 597 * generate ability request. 598 * 599 */ 600 int GenerateAbilityRequest( 601 const Want &want, int requestCode, AbilityRequest &request, const sptr<IRemoteObject> &callerToken); 602 /** 603 * Select to start the application according to the configuration file of AMS 604 * 605 */ 606 void StartSystemApplication(); 607 608 sptr<AppExecFwk::IBundleMgr> GetBundleManager(); 609 int PreLoadAppDataAbilities(const std::string &bundleName); 610 611 bool VerificationToken(const sptr<IRemoteObject> &token); 612 void RequestPermission(const Want *resultWant); 613 614 void DumpInner(const std::string &args, std::vector<std::string> &info); 615 void DumpStackListInner(const std::string &args, std::vector<std::string> &info); 616 void DumpStackInner(const std::string &args, std::vector<std::string> &info); 617 void DumpMissionInner(const std::string &args, std::vector<std::string> &info); 618 void DumpTopAbilityInner(const std::string &args, std::vector<std::string> &info); 619 void DumpWaittingAbilityQueueInner(const std::string &args, std::vector<std::string> &info); 620 void DumpStateInner(const std::string &args, std::vector<std::string> &info); 621 void DataDumpStateInner(const std::string &args, std::vector<std::string> &info); 622 void SystemDumpStateInner(const std::string &args, std::vector<std::string> &info); 623 void DumpFocusMapInner(const std::string &args, std::vector<std::string> &info); 624 void DumpFuncInit(); 625 bool CheckCallerIsSystemAppByIpc(); 626 using DumpFuncType = void (AbilityManagerService::*)(const std::string &args, std::vector<std::string> &info); 627 std::map<uint32_t, DumpFuncType> dumpFuncMap_; 628 629 constexpr static int REPOLL_TIME_MICRO_SECONDS = 1000000; 630 constexpr static int WAITING_BOOT_ANIMATION_TIMER = 5; 631 632 std::shared_ptr<AppExecFwk::EventRunner> eventLoop_; 633 std::shared_ptr<AbilityEventHandler> handler_; 634 ServiceRunningState state_; 635 std::unordered_map<int, std::shared_ptr<AbilityStackManager>> stackManagers_; 636 std::shared_ptr<AbilityStackManager> currentStackManager_; 637 std::shared_ptr<AbilityConnectManager> connectManager_; 638 sptr<AppExecFwk::IBundleMgr> iBundleManager_; 639 std::shared_ptr<AppScheduler> appScheduler_; 640 std::shared_ptr<DataAbilityManager> dataAbilityManager_; 641 std::shared_ptr<PendingWantManager> pendingWantManager_; 642 std::shared_ptr<KernalSystemAppManager> systemAppManager_; 643 std::shared_ptr<AmsConfigurationParameter> amsConfigResolver_; 644 const static std::map<std::string, AbilityManagerService::DumpKey> dumpMap; 645 }; 646 647 } // namespace AAFwk 648 } // namespace OHOS 649 #endif // OHOS_AAFWK_ABILITY_MANAGER_SERVICE_H 650