1.前言
在13.0的系统产品开发中,对于限制某些app的启动的功能中,在项目中的需求是在点击app启动的时候,根据包名设置密码锁,当输入正确的密码的时候来启动这个app,否则
就不能启动这个app,达到限制使用app的目的,这就需要在app启动的时候,检测app的包名,然后在app启动的时候弹出输入密码的窗口,让用户输入密码,当输入正确的密码
后,才可以使用app,这就需要先熟悉app的启动流程,然后来实现这个功能
实现效果图如下:
2.启动app时设置密码锁的实现功能核心类
frameworks/base/services/core/java/com/android/server/wm/ActivityStarter.java
3.启动app时设置密码锁的实现功能核心功能分析和实现
在AMS启动activity的时候,会调用 ATMS 中的 startActivity() 方法发起启动 Activity 请求,获得启动结果 result,在调用 checkStartActivityResult 方法,传入 result,来判断能否启动 Activity,不能启动就会抛出异常
最终调用到了 startActivityAsUser 方法,在内部将所有点的参数都交给了 ActivityStarter ,该类包含了启动的所有逻辑,
在通过对源码的阅读和注释相关的资料发现,在ActivityStarter的作用是收集