当前位置:首页 > 实用技巧 >

安卓手机软件怎么打开(安卓手机链接怎么直接打开软件)

来源:原点资讯(www.yd166.com)时间:2023-11-11 14:20:09作者:YD166手机阅读>>

在开始分析app启动流程之前,我们先回想下平时是怎么启动一款App的:打开Android系统桌面->点击应用图标->启动App。从用户角度来看,这个过程看起来很简单,但是app的背后又隐藏着哪些流程呢?做安卓开发这么多年,觉得还是有必要认真分析一下,下文就借助友盟 u-apm,针对安卓app启动流程进行简要分析!

Android中每一个App都在一个独立的空间,运行在一个单独的进程中,拥有一个vm,系统会分配一个唯一的user ID。init进程会启动一个"Zygote"进程。这个进程初始化了第一个VM,并且预加载了framework和众多app所需要的通用资源。然后它开启一个Socket接口来监听请求,根据请求孵化出新的VM来管理新的app进程。一旦收到新的请求,Zygote会基于自身预先加载的VM来孵化出一个新的VM创建一个新的进程。Zygote还会孵化出一个超级管理进程---System Server。SystemServer会启动所有系统核心服务: 引导服务(7个):ActivityManagerService、PowerManagerService、LightsService、DisplayManagerService、PackageManagerService、UserManagerService、SensorService; 核心服务(3个):BatteryService、UsageStatsService、WebViewUpdateService; 其他服务(70个 ):AlarmManagerService、VibratorService等。

启动App流程

启动一个App的方式

安卓手机软件怎么打开,安卓手机链接怎么直接打开软件(1)

启动一个应用时:都会调用startActivity(Intent)

 Activity.startActivity

安卓手机软件怎么打开,安卓手机链接怎么直接打开软件(2)

这里mMainThread也是Activity类的成员变量,它的类型是ActivityThread,mMainThread.getApplicationThread获得它里面的ApplicationThread成员变量,这个ApplicationThread实际上是一个Binder对象,是App所在的进程与AMS所在进程system_server通信的桥梁。1、AMS会对Activity生命周期的管理以及任务栈的管理,通过Binder通信,这时AMS是Server端,App进程持有AMS的client端IActivityManagerSingleton进行通信。2、AMS在完成任务栈和生命周期管理后,回调App方法,这时AMS是client持有App的ApplicationThread进行通信。

mToken是Activity中一个成员变量,AMS和Activity交互中并没有把Activity实例传入,而是使用mToken,可以唯一标示Activity。

Instrumentation.execStartActivity

安卓手机软件怎么打开,安卓手机链接怎么直接打开软件(3)

这里把App中Binder的Server端的ApplicationThread的句柄传给AMS,用于生命周期的回调等,如onPause。通过Binder驱动,就进入AMS的startActivity方法。

ActivityManagerService 通知当前进程进入pause状态

AMS在system_server进程中,由于AMS中代码太多了,我们这里就不全部展开讲了,大概的说一下。有兴趣的可以去看一下老罗的文章。在AMS会新创建一个栈Task,并通过ApplicationThread的句柄通知当前Activity进入paused状态。

回到ActivityThread中

安卓手机软件怎么打开,安卓手机链接怎么直接打开软件(4)

首页 123下一页

栏目热文

安卓手机切换窗口后重新打开

安卓手机切换窗口后重新打开

Fliqlo一款极简主义的时钟屏保软件,妥妥的性冷淡风,windows和mac都有。全屏显示、翻页式的时钟页面,能够瞬间...

2023-11-11 14:14:44查看全文 >>

安卓手机软件都要重新打开(安卓手机应用无法打开如何解决)

安卓手机软件都要重新打开(安卓手机应用无法打开如何解决)

1:手机更流畅2:手机通知(强迫症表示很有用)1:手机更流畅安卓手机现在基本上也不卡顿,解除手机厂商限制,只需要一点小小...

2023-11-11 14:27:46查看全文 >>

成年杜高犬好不好养(杜高犬适合普通人养吗)

成年杜高犬好不好养(杜高犬适合普通人养吗)

杜高犬又名阿根廷獒或阿根廷杜高犬,是在南美培育的优秀犬种之一。起初培育这一凶猛犬种的目的是为了狩猎,杜高犬因具有灵敏的嗅...

2023-11-11 14:48:55查看全文 >>

杜高犬适合普通人养吗(杜高犬适合在城市中养吗)

杜高犬适合普通人养吗(杜高犬适合在城市中养吗)

作为最出色的猎犬,杜高犬大家应该都很熟悉吧!不但狩猎能力好,看家能力也强,但是一般人都不敢养,怕被咬。看完下面的介绍,你...

2023-11-11 14:17:33查看全文 >>

杜高犬真实缺点(杜高犬有什么优点和缺点)

杜高犬真实缺点(杜高犬有什么优点和缺点)

狗狗品种这么多,为什么说养狗不建议你养杜高犬呢?不说不知道,一说吓一跳,它这几点缺点,你指定承受不来!杜高犬,又称“白色...

2023-11-11 14:39:26查看全文 >>

安卓如何进入我的手机界面(安卓手机怎么切换页面)

安卓如何进入我的手机界面(安卓手机怎么切换页面)

目前已经有不少厂商发布并为部分机型用户推送了基于Android 12的全新系统UI,没想到Android 13的爆料也陆...

2023-11-11 14:44:41查看全文 >>

安卓手机怎么进入界面(安卓手机怎么调操作界面)

安卓手机怎么进入界面(安卓手机怎么调操作界面)

你们一定见过这样的界面 或者是这样的 非APP内浏览网页时候,会出现该相关的打开该APP,或者下载该app。其实这很简单...

2023-11-11 14:58:50查看全文 >>

汽车启动显示暖机中要不要等一下(汽车启动仪表显示暖机中是正常吗)

汽车启动显示暖机中要不要等一下(汽车启动仪表显示暖机中是正常吗)

虽然汽车在中国已经非常流行,但真正懂车的人却少之又少,最明显的例子就是,汽车在冷启动后,是否需要热车?这样一个小问题,直...

2023-11-11 14:20:58查看全文 >>

轿车暖风机不工作是怎么回事(汽车一开暖风机就不工作)

轿车暖风机不工作是怎么回事(汽车一开暖风机就不工作)

【卡车之家 原创】今年的异常天气比较多,据中央气象台报道,今年属于双“拉尼娜”年,出现拉尼娜事件以后,我国冬季总体偏冷的...

2023-11-11 14:37:33查看全文 >>

车子在暖机中能开走么(新车启动显示暖机中可以直接走吗)

车子在暖机中能开走么(新车启动显示暖机中可以直接走吗)

冷机起动直接走,放心,如果只是日常上下班没事的。那用户手册上不是说要暖机30秒吗,到底是什么考虑?冷机起动后的有一段怠速...

2023-11-11 14:51:43查看全文 >>

文档排行