美文网首页
activity启动流程和资源加载流程

activity启动流程和资源加载流程

作者: 浩仔_Boy | 来源:发表于2021-01-29 20:57 被阅读0次

自己学习笔记,仅供自己参考,如有不对欢迎指正

activit的启动流程

Activity的启动过程,我们可以Context的startActivity说起,其实现是ContextIml的startActivity,然后内部是通过Instrumenttation来尝试启动activity,他会调用AMS的startActivity方法,这是一个跨进城的过程。

当AMS校验完Activity的合法性后,会通过ApplicationThread回调到我们的进程,这也是一个跨进程的过程。

而ApplicationThread就是一个binder,回调的逻辑是实在Binder线程池中完成的,所以需要Handler将其切换到UI线程,第一个消息就是LAUNCH_ACTIVITY,他对应的,他对应的是handleLaunchActivity,在这个方法里完成了Activity的启动

资源加载流程

一般是加载assets和res文件夹,实际上都是通过getAssets()方法获取的资源,Resources类也是通过AssetsManager类来访问哪些被编译的应用程序资源文件的,不过访问前,他会先根据资源ID查找对应的资源文件名。而AssetManager对象既可以通过文件名访问哪些被编译过的,也可以访问没有被编译过的应用程序资源文件。

raw文件夹和assets文件夹有什么区别

raw:Android会自动的为这个目录中所有的资源文件生成一个ID,在XML文件中也是可以访问的,访问速度也快

assets:不会生产ID,只能通过AssetsManager访问,xml不能访问,访问速度慢,但是操作方便

相关文章

网友评论

      本文标题:activity启动流程和资源加载流程

      本文链接:https://www.haomeiwen.com/subject/exyctltx.html