ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Android 开发艺术探索笔记(18),相关资料参考

2022-01-30 14:02:05  阅读:232  来源: 互联网

标签:Service 启动 对象 18 笔记 Activity Android AMS


这里写图片描述

这里写图片描述

在try中有个ActivityManagerNativt.getDefault,就是通过它的startActivty方法完成,而它是继承自Binder并实现了IActivityManager,因此它的具体实现是ActivityManagerService,在AMN中,AMS这个binder对象采用单例模式对外提供,Singleton是一个单例的封装类,第一次调用它的get方法时,它会通过create方法来初始化AMS这个Binder对象,在后续的调用中直接返回之前创建的对象。里面还有一个checkStartActivitiyResult是检查启动Activity的结果。接着看AMS的startActivity。

这里写图片描述

这里写图片描述

这段代码就是一长串的调用,从AMS一直调用到ActivityStack,最后在ActivityStackSupervisor和ActivityStack之间传递。

这里写图片描述

performLaunchActivity方法最终完成了Activity对象的创建和启动过程,它主要完成了以下事情:

(1)从ActivityRecord中获取待启动Activity的组件信息。

(2)通过Instrumentaion的newActivity方法使用类加载器创建Activity对象。

(3)通过LoadedApk的makeAppliaction方法来尝试创建Application对象

(4)通过ContextImpl对象并通过Activity的attach方法来完成一些重要数据的初始化。

2. Service的工作过程

主要了解Service的启动过程和绑定过程。Service有两种状态,一种是启动状态,一种是绑定状态。这两种状态是可以共存的。通过Context的startService可以启动一个服务。

这里写图片描述

重要知识点

下面是有几位Android行业大佬对应上方技术点整理的一些进阶资料。

高级进阶篇——高级UI,自定义View(部分展示)

UI这块知识是现今使用者最多的。当年火爆一时的Android入门培训,学会这小块知识就能随便找到不错的工作了。不过很显然现在远远不够了,拒绝无休止的CV,亲自去项目实战,读源码,研究原理吧!

  • 面试题部分合集

    [外链图片转存中…(img-ODvDcJ88-1643521445894)]

本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录

标签:Service,启动,对象,18,笔记,Activity,Android,AMS
来源: https://blog.csdn.net/wa2231a/article/details/122752332

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有