Android开发ProgramAndroidAndroid技术知识

ActivityManagerService浅析

2018-06-06  本文已影响40人  程序员Android1

本篇文章主要介绍 Android 开发中的 AMS部分知识点,通过阅读本篇文章,您将收获以下内容:

  1. AMS简单关系
  2. AMS 构造函数
  3. AMS 父类
  4. AMS 常用
  5. AMS部分方法实现

欢迎关注微信公众号:程序员Android
公众号ID:ProgramAndroid
获取更多信息

微信公众号:ProgramAndroid

我们不是牛逼的程序员,我们只是程序开发中的垫脚石。
我们不发送红包,我们只是红包的搬运工。

1. AMS简单关系

AMS 继承实现关系图

AMS 继承实现关系图

AMS代码路径
\frameworks\base\services\core\java\com\android\server\ActivityManagerService.java

2.AMS 构造函数

AMS 构造函数思维导图

AMS 构造函数思维导图 一 AMS 构造函数思维导图 二

AMS 继承实现方法如下

AMS 测试构造函数

AMS 构造方法是在主线程上调用,但可能需要附加各种处理程序到其他线程,因此要注意区分Looper

AMS 构造函数 一
AMS 构造函数 二 AMS构造函数 三

3. AMS 父类 IActivityManager.Stub

ActivityMangerService 父类是由frameworks\base\core\java\android\app\IActivityManager.aidl文件生成,可以实现跨进程通讯。此类同提供多种接口方法,共不同的进程调用。

4. AMS 常用变量

/** Control over CPU and battery monitoring */
    // write battery stats every 30 minutes.
    static final long BATTERY_STATS_TIME = 30 * 60 * 1000;
    // don't sample cpu less than every 5 seconds.
    static final long MONITOR_CPU_MIN_TIME = 5 * 1000;
// How long we allow a receiver to run before giving up on it.
    static final int BROADCAST_FG_TIMEOUT = 10*1000;
    static final int BROADCAST_BG_TIMEOUT = 60*1000;
 // How long we wait until we timeout on key dispatching.
    static final int KEY_DISPATCHING_TIMEOUT = 5*1000;
  /**
     * Default value for {@link Settings.Global#NETWORK_ACCESS_TIMEOUT_MS}.
     */
    private static final long NETWORK_ACCESS_TIMEOUT_DEFAULT_MS = 200; // 0.2 sec

5. AMS 部分方法实现

KillHandler 内部类实现 UiHandler 内部实现Crash ANR 等问题 ensureBootCompleted finishBooting 方法 enableScreenAfterBoot enableScreenAfterBoot hideBootMessagesLocked 实现父类接口中的一些方案 isAppForeground 多窗口 以及画中画模式 PROCESS INFO 接口服务类 PermissionController IntentFirewallInterface checkCallingPermission findUriPermissionLocked getMemoryInfo TASK MANAGEMENT 相关方法实现 createRecentTaskInfoFromTaskRecord getTaskSnapshot removeTasksByPackageNameLocked 实现部分 kill 进程的方法 实现 restart 方法 systemReady 方法

将Crash WTF ANR 信息导入到Drop box

addErrorToDropBox getProcessesInErrorState getRunningAppProcesses dump dumpActivity cleanUpApplicationRecordLocked Service 相关方法 Service 相关方法
Service 相关方法 BACKUP AND RESTORE BROADCASTS BROADCASTS BROADCASTS LocalService waitForNetworkStateUpdate AppTaskImpl 接口类

至此,本篇已结束,如有不对的地方,欢迎您的建议与指正。期待您的关注,
感谢您的阅读,谢谢!

如有侵权,请联系小编,小编对此深感抱歉,同时小编会立即停止侵权行为。

​欢迎关注微信公众号:程序员Android
公众号ID:ProgramAndroid
获取更多信息

微信公众号:ProgramAndroid

我们不是牛逼的程序员,我们只是程序开发中的垫脚石。
我们不发送红包,我们只是红包的搬运工。

点击阅读原文,获取更多福利


上一篇 下一篇

猜你喜欢

热点阅读