- 博客(23)
- 收藏
- 关注
原创 android Application Component研究之BroadcastReceiver
本文为原创文章,欢迎转载!转载时请注明出处:http://blog.youkuaiyun.com/windskier 这篇文章开始从framework的角度来研究一下android四大控件最后一个控件BroadcastReceiver 的机制与原理,BroadcastReceiver 字面意思就是广播接收器,它能接收来自于系统的以及其他appliaction的广播消息,是android中非常重要的一
2012-04-05 22:34:43
20311
1
原创 android Application Component研究之ContentProvider
本文为原创文章,欢迎转载!转载时请注明出处:http://blog.youkuaiyun.com/windskier android在实现进程间数据访问时,对不同的进程不同Application的数据访问提供了一套解决方案,这套解决方案便是ContentProvider。在开发应用程序时,想要访问其他进程的数据,ContentProvider便是不二的选择。 Content Pro
2012-02-11 22:19:36
15442
原创 android Application Component研究之Service
本文为原创文章,欢迎转载!转载时请注明出处:http://blog.youkuaiyun.com/windskier 前面2篇文章介绍了acitivity的管理,其中保存task的管理,activity生命周期中各个阶段的操作等问题,这篇文章我们来详细的研究一下android系统中application Service的管理过程。 Service是android中一个非常重要的组件,作为一个
2012-02-03 09:49:59
10804
1
原创 android Application Component研究之Activity(二)
本文为原创文章,欢迎转载!转载时请注明出处:http://blog.youkuaiyun.com/windskier 上篇文章分析完了task的创建或者复用,接下来接着分析activity在启动过程中还有哪些工作需要去完成?首先给出整个activity的过程图。 1. Starting Window 当该activity运行在新的task中或者进程中时,需要在activity
2012-02-01 22:01:04
15663
原创 android Application Component研究之Activity(一)
终于下定决心写写ActivityManagerService的源码分析的文章了,ActivityManagerService 业务的整个逻辑关系被各种复杂的数据结构包裹着,因此对ActivityManagerService 的分析主要就是对各种数据结构的分析,明白了这些数据结构,理解ActivityManagerService的业务内容就水到渠成了。 AMS提供了一个ArrayList
2011-12-31 22:29:58
37985
2
原创 android surfaceflinger研究----SurfaceFlinger loop
上一篇文章介绍了整个Surface机制(我是这么称呼的,主要是Surface的建立,Surface的显示存储的管理),同时我们也介绍过了整个显示系统,那么这篇文章就介绍一下SurfaceFlinger 这个核心服务层的机制。 从代码中我们可以看出SurfaceFlinger 是一个thread,运行在system_server进程中,并且其threadLoop()方法的返回值为true,
2011-12-18 01:43:28
15834
7
原创 android surfaceflinger研究----Surface机制
前一篇文章介绍了android的显示系统,这篇文章中,我们把视角往上层移动一下,研究一下framework是如何与surfaceflinger进行业务交互的。如何创建surface,如何显示窗口等等,所有的这一切都是通过系统服务WindowManagerService与surfaceflinger来进行的。 android中的Surface机制这一块代码写的比较难理解,光叫Surface
2011-12-10 20:20:34
32264
6
原创 android surfaceflinger研究----显示系统
这周抽空研究了一下SurfaceFlinger,发现真正复杂的并不是SurfaceFlinger本身,而是android的display显示系统,网上关于这部分的介绍有不少,本不打算写的,但是发现还是记录一下研究代码的过程比较好,一是能够帮助自己理清思路,另一个原因就是以后当这块内容忘记的时候,能快速的通过这个记录捡起来。 一. android显示系统的建立 我们看Surfa
2011-12-04 18:46:52
36509
9
原创 Native looper 分析
Looper是android中很重要的概念,它是android application端线程间最主要的通信方式,同时它也是线程内部序列化处理的主要方式,Looper的核心其实是一个消息队列,通过不停的处理Looper消息队列中的消息来完成线程间的通信和线程内部序列化操作。任何线程想要使用消息机制特定的操作,那么必须在线程中创建一个Looper,java端的Looper如何使用不介绍了,所有有过an
2011-11-21 16:58:25
13620
原创 android的窗口机制分析------事件处理
由于Android是linux内核的,所以它的事件处理也在linux的基础上完成的,因此本文我们从linux 内核往应用这个方向慢慢理清它的处理过程。 linux内核提供了一个Input子系统来实现的,Input子系统会在/dev/input/路径下创建我们硬件输入设备的节点,一般情况下在我们的手机中这些节点是以eventXX来命名的,如event0,event1等等,但是如果是虚拟机的
2011-11-20 15:23:29
25191
5
原创 android的窗口机制分析------ViewRoot类
ViewRoot是GUI管理系统与GUI呈现系统之间的桥梁,根据ViewRoot的定义,我们发现它并不是一个View类型,而是一个Handler。它的主要作用如下:A. 向DecorView分发收到的用户发起的event事件,如按键,触屏,轨迹球等事件;B. 与WindowManagerService交互,完成整个Activity的GUI的绘制。 事件处理和GUI绘制
2011-11-10 21:59:50
32428
1
原创 android的窗口机制分析------UI管理系统
Activity可以看做是整个android系统的人机接口,它提供了一个窗口来绘制UI,每个Activity在启动时,我们都需要给它设置一个Content view,作为Activity所呈现的UI内容,这个过程是通过setContentView()方法来实现的。 众所周知,android系统中强化了view的概念,主要是体现在对view的管理上,Android中的view以2种形态存在
2011-11-10 21:39:01
28100
3
原创 android IPC通信中的UID和PID识别
IPCThreadState对象维护了2个变量 pid_t mCallingPid; uid_t mCallingUid; 从变量名称来看,这2个变量保存了进程的PID和UID,并且由于这两个变量由IPCThreadState对象维护,可见它们是与IPC相关的。具体它们保存的是IP
2011-10-31 15:42:17
18406
2
原创 IBinder对象在进程间传递的形式(二)
这篇文章是对IBinder对象在进程间传递的形式(一)这篇文章的补充,首先还是把service启动过程的流程图贴上来 Android中主要通过2种方法来获得service IBinder:1. 通过ServiceManager.getService(String Descriptor)来获得Service Manager管理的service的IBinder。2.
2011-10-29 18:34:50
13033
10
原创 运行在单独进程中的ContentProvider
ContentProvider既可以与调用方处在同一进程,也可以运行在单独进程中,完全取决于ContentProvider所处的aplication的进程信息。因此假如ContentProvider运行在单独的进程中,那么调用ContentProvider将会涉及到IPC通信。
2011-08-12 17:16:36
6694
1
原创 android的窗口机制分析---------类图关系
在研究android的窗口机制之前,我们需要对其主要的类图关系以及层级之间的依赖与调用关系做一个简单的介绍。1. window在当前的android系统的中的呈现形式是PhoneWindow类(frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindow.java);2. WindowManager的
2011-08-12 10:26:18
9714
原创 IBinder对象在进程间传递的形式(一)
命题 当service经常被远程调用时,我们常常用到aidl来定一个接口供service和client来使用,这个其实就是使用Binder机制的IPC通信。当client bind service成功之后,系统AM会调用回调函数onServiceConnected将service的IBinder传递给client, client再通过调用aidl生成的asInterfac
2011-07-22 14:59:43
23311
2
原创 android persistent属性研究
为什么写这篇文章呢?前段时间在研究telephony时,一直没有在framework下发现对telephony的初始化(PhoneFactory.java中的makeDefaultPhones函数)的调用。结果全局搜索之后发现在application PhoneApp(packages/apps/Phone)中调用了。但是application PhoneApp既没有被Broadcast唤
2011-06-22 14:17:00
45129
3
原创 System Server 分析
SystemServer 是 Android JAVA 层的系统服务模块,这个模块主要功能就是管理供 Android 应用开发的 system service.
2011-05-13 16:21:00
20270
7
原创 How to start a new process for Android?
We need start a new process when we tap application launcher or start a new service which is in a different process. This artical will describe how a new process is created but no matter whoever the caller is.
2011-05-13 12:56:00
12972
4
原创 android的init过程分析
前言Android系统是运作在linux kernal上的,因此它的启动过程也遵循linux的启动过程,当linux内核启动之后,运行的第一个进程是init,这个进程是一个守护进程,它的生命周期贯穿整个linux 内核运行的始终, linux中所有其他的进程的共同始祖均为init进程。当然为了启动并运行整个android系统,google实现了自己的init进程,下面主要分析init进程都做了些什么?
2011-05-13 09:55:00
22614
4
原创 Android Binder IPC分析
Binder IPC 机制是android非常重要的一种进程间通信机制,掌握了Binder IPC的原理,那么你基本上对Android有了50%的了解了。本文着重介绍了Binder的原理。
2011-04-12 13:46:00
18301
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人