![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
进阶
爬坑仰望天空
这个作者很懒,什么都没留下…
展开
-
Android进阶(一)Android系统启动
一、整体流程init进程 –> Zygote进程 –> SystemServer进程 –>Launcher启动init进程:linux的根进程,android系统是基于linux系统的,因此可以算作是整个android操作系统的第一个进程;Zygote进程:android系统的根进程,主要作用:可以作用Zygote进程fork出SystemServer进程和各种应用进程;...原创 2019-01-17 14:31:53 · 231 阅读 · 0 评论 -
Android进阶(二)应用进程启动
一、应用程序进程创建1、 应用进程请求Zygote进程会创建一个Socket,用来等待AMS请求创建应用进程。ActivityManagerService会通过调用startProcessLocked来发送请求。接收到请求后,Zygote进程会fork自身创建应用进程。2、接收创建请求通过ZygoteServer的runSelectLoop方法处理创建进程的请求–>Zygo...原创 2019-01-23 19:56:20 · 135 阅读 · 0 评论 -
Android进阶(三)Activity启动
一、Activity起始1、开始startActivity#Activity@Overridepublic void startActivity(Intent intent, @Nullable Bundle options) { if (options != null) { startActivityForResult(intent, -1, options);...原创 2019-01-23 19:59:29 · 263 阅读 · 0 评论 -
Android进阶(五)View绘制流程
一、Activity的setContentView1、setContentView#Activitypublic void setContentView(@LayoutRes int layoutResID) { getWindow().setContentView(layoutResID); initWindowDecorActionBar();}public voi...原创 2019-02-03 15:34:03 · 184 阅读 · 0 评论 -
Android进阶(四)Window和WindowManager
一、Window、WindowManager、WMS1、三者的定义和关系Window可以理解为窗体,是一种抽象概念,其中具体表现形式就是View。WindowManager是用来添加、删除、更新Window(具体是View)的。WindowManagerService是在SystemServer进程中的,WindowManger中的所有操作都是由WMS来最终完成的。三者关系:2、...原创 2019-01-29 10:25:05 · 394 阅读 · 0 评论 -
Android进阶(六)Binder机制
一、进程通信1、进程隔离:进程隔离是为保护操作系统中进程互不干扰而设计的一组不同硬件和软件的技术。进程数据不共享,进程A的虚拟地址和进程B的虚拟地址不同,这样就防止进程A将数据信息写入进程B,保证了数据的安全性。进程空间分为内核空间和用户空间,内核空间(Kernel)是系统内核运行的空间。用户空间(User Space)是用户程序运行的空间,他们之间是隔离的。内核有访问的所有权限,用户...原创 2019-02-11 13:46:22 · 338 阅读 · 0 评论 -
Android进阶(七)Android中的ClassLoader
一、Java中的ClassLoader1、继承关系ClassLoader是一个抽象类,其中定义了ClassLoader的主要功能。SecureClassLoader继承了抽象类ClassLoader,但SecureClassLoader并不是ClassLoader的实现类,而是拓展了ClassLoader类加入了权限方面的功能,加强了ClassLoader的安全性。URLClassLo...原创 2019-02-11 19:47:53 · 1394 阅读 · 0 评论 -
Android进阶(八)热修复基本原理
一、代码修复1、类加载方案(1)Dex分包原理单个Dex文件里面方法数不能超过65536个方法。(1)原因:因为android会把每一个类的方法id检索起来,存在一个链表结构里面。但是这个链表的长度是用一个short类型来保存的, short占两个字节(保存-2的15次方到2的15次方-1,即-32768~32767),最大保存的数量就是65536。(2)解决方案:精简方法数量,删...原创 2019-02-19 19:40:28 · 558 阅读 · 0 评论