Android源码
文章平均质量分 88
Android源码
小 黄 鸡
QQ:2500503624
展开
-
Android 应用启动流程
本文中的native层源码为1.6版本文章目录1 Zygote简介2 由app_process运行ZygoteInit class2.1 创建AppRuntime对象2.2 调用AppRuntime对象2.3 创建Dalvik虚拟机2.4 运行ZygoteInit类3 Zygote类的功能3.1 绑定/dev/socket/zygote套接字3.2 加载应用程序Framework中类与平台资源3.3 运行SystemServer3.4 运行新Android应用程序1 Zygote简介虚拟机启动耗时原创 2021-02-02 17:15:47 · 358 阅读 · 0 评论 -
Android 从进程角度看Service启动流程
本文基于Android api 26主要从进程角度记录启动Service的流程文章目录1 第一次跨进程调用:ContextImpl ---> AMS1.1 AMS中的startService()1.2 ActivityThread启动新进程2 第二次跨进程调用:ActivityThread ---> AMS2.1 AMS中的attachApplication()3 第三次跨进程调用: AMS ---> ApplicationThread3.1 ActiveServices中的realS原创 2021-03-11 20:06:22 · 447 阅读 · 0 评论 -
Android 使用AIDL实现进程间通讯
文章目录1 启动远端service进程1.1 首先创建ServiceConnection对象2.2 绑定Service3.3 在service中创建并返回Binder2 IBookManager结构2.1 整体结构2.2 完整IBookManager类2.3 IBookManager中的抽象函数2.4 IBookManager中的内部抽象类Stub2.4.1 Stub类结构2.4.2 Stub的标识2.4.3 asInterface()方法2.4.52.5 Stub中的静态内部类Proxy1 启动远端se原创 2020-07-12 23:08:24 · 342 阅读 · 0 评论 -
Android 事件分发
<font size = 5 color = red>onClick()和onTouch()方法的关系</font>首先来看一个示例:```<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" andro原创 2017-05-08 17:03:43 · 372 阅读 · 0 评论 -
Handler 源码理解
Handler源码解析原创 2017-01-06 17:59:01 · 495 阅读 · 1 评论 -
AsyncTask源码分析
概述 AsyncTask是底层用线程池和Handler来封装的抽象类。用来执行网络请求等耗时操作。可以创建此类的子类,并重写父类的方法。 AsyncTask的泛型参数AsyncTask<Params, Progress, Result>Params 其中第一个Params将做事doInBackground方法的参数类型。Result doInBackground(Params... param原创 2018-04-22 17:37:20 · 260 阅读 · 0 评论 -
Android UI绘制流程(一)
本文将介绍Android UI的绘制流程。简单来说就是Android的界面是经过怎样的步骤来显示出来的。我们一般都是创建Activity。然后在Activity的onCreate()方法中通过setContentView()来设置自己的布局。那么:设置的布局加载到哪里了呢?Activity和布局之间有什么样的关系呢?1 首先从Activity的setContentView()方法...原创 2017-05-03 18:21:13 · 859 阅读 · 0 评论 -
Android UI绘制流程(二)
上一篇博客介绍了我们自己写的布局是如何通过setContentView()来加载到屏幕中。这一篇将会继续讲解当布局文件加载出来后,布局里边的控件是经过怎样的步骤来显示出来的。在上一篇博客中最后分析出我们自己写的布局最终会加载到DecorView中id为content的FramLayout中,而Framlayout继承自ViewGroup。所以如果要分析整个控件的绘制流程首先要从ViewGrou...原创 2017-05-05 17:38:30 · 523 阅读 · 0 评论 -
Android Window的创建过程
Activity的Window创建过程 在ActivityThread的performLaunchActivity方法中创建了Activity,并调用了Activity的attach方法 Activity attach在attach方法中,创建了Window的对象,并设置了Window的回调。由此可以看出,Activity中持有的mWIndow对象即为PhoneWindow。创建PhoneWi原创 2018-05-01 22:00:55 · 524 阅读 · 0 评论 -
Android Window的内部机制
本文源码基于API 26 参考资料 Andriod开发艺术探索 类图 流程图 Window的添加过程Window的添加是通过WindowManager的addView()来实现,WindowManager是一个接口,他的真正实现是WindowManagerImpl类 WindowManagerImpl@Override public void addView(@NonNull Vi原创 2018-05-01 09:33:47 · 427 阅读 · 0 评论 -
BroadCastReceiver的工作过程
广播的注册过程 API版本 26 参考资料:Android开发艺术探索总体流程预览 在Activity中调用registerReceiver方法,最终调用的是ContextWrapper中的registerReceiver方法。 1 ContextWrapper registerReceiver@Override public Intent registerReceiver(原创 2018-04-07 14:10:11 · 397 阅读 · 0 评论 -
Service的工作过程
源码基于API 26参考资料:Android开发艺术探索 通过Activity对象调用startService()方法,最终调用的是ContextWrapper的startService()。 1 ContextWrapper ContextWrapper继承自Context。ContextWrapper extends Context startService@...原创 2018-04-06 12:56:19 · 580 阅读 · 0 评论 -
Activity的创建过程
源码基于Android 26(参考资料 Android开发艺术探索) 整体时序图 1 startActivityForResult 首先通过Activity的startActivityForResult()开始public void startActivityForResult(@RequiresPermission Intent intent, int requestCod...原创 2018-03-25 18:45:54 · 1132 阅读 · 0 评论