

极力推荐Android 开发大总结文章:欢迎收藏程序员Android 力荐 ,Android 开发者需要的必备技能

本篇文章主要介绍 Android 开发中的 AMS部分知识点,通过阅读本篇文章,您将收获以下内容:
AMS简单关系
AMS 构造函数
AMS 父类
AMS 常用
AMS部分方法实现
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 常用变量
控制CPU 电池检测时间
/** 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 内部类实现

KillHandler 内部类实现
UiHandler 内部实现

UiHandler 内部实现Crash ANR 等问题

ensureBootCompleted

finishBooting 方法

enableScreenAfterBoot

enableScreenAfterBoot

hideBootMessagesLocked
实现父类的一些方法

实现父类接口中的一些方案
判断是否是前台app的方法

isAppForeground
多窗口 以及画中画模式

多窗口 以及画中画模式
PROCESS INFO 接口服务类

PROCESS INFO 接口服务类
PermissionController 接口类

PermissionController
IntentFirewallInterface Intent防火墙 接口

IntentFirewallInterface
checkCallingPermission 方法

checkCallingPermission
findUriPermissionLocked 相关方法

findUriPermissionLocked
getMemoryInfo 获取内存信息

getMemoryInfo
TASK MANAGEMENT 相关方法实现

TASK MANAGEMENT 相关方法实现
createRecentTaskInfoFromTaskRecord 方法

createRecentTaskInfoFromTaskRecord
getTaskSnapshot

getTaskSnapshot
removeTasksByPackageNameLocked 方法

removeTasksByPackageNameLocked
实现部分 kill 进程的方法 killProcessesBelowForeground killUid

实现部分 kill 进程的方法
实现 restart 方法

实现 restart 方法
systemReady 方法

systemReady 方法
handleApplicationCrash 相关方法实现

handleApplicationCrash 相关方法实现
addErrorToDropBox
将Crash WTF ANR 信息导入到Drop box

addErrorToDropBox
getProcessesInErrorState 状态信息

getProcessesInErrorState
获取正在运行的app 进程 getRunningAppProcesses

getRunningAppProcesses
dump方法实现

dump
dumpOomLocked

image.png

dumpActivity
cleanUpApplicationRecordLocked

cleanUpApplicationRecordLocked
实现 Service 相关方法

Service 相关方法

Service 相关方法

Service 相关方法
BACKUP AND RESTORE

BACKUP AND RESTORE
BROADCASTS 相关方法

BROADCASTS

BROADCASTS

BROADCASTS
INSTRUMENTATION 仪表仪器相关

INSTRUMENTATION
update Configuration更新相关

updateConfiguration
computeOomAdjLocked

computeOomAdjLocked
LocalService

LocalService
waitForNetworkStateUpdate

waitForNetworkStateUpdate
AppTaskImpl 接口类

AppTaskImpl 接口类
至此

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

如有侵权,请联系小编,小编对此深感抱歉,届时小编会删除文章,立即停止侵权行为,请您多多包涵。

既然都看到这里,领两个红包在走吧!以下两个红包每天都可以领取
1.支付宝搜索 522398497,或扫码支付宝红包海报。
支付宝扫一扫,每天领取大红包
2.微信红包,微信扫一扫即可领取红包
微信扫一扫,每天领取微信红包
小礼物走一走,来简书关注我
本文全面解析Android系统中Activity Manager Service(AMS)的核心知识点,涵盖AMS的构造函数、父类、常用变量及关键方法实现,如KillHandler、UiHandler、多窗口管理等,深入探讨Android应用的前台后台状态控制及资源管理。
1998

被折叠的 条评论
为什么被折叠?



