• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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