现在的位置: 首页 > 综合 > 正文

一些资料,binder,content provider 探索Android中的Parcel机制(下)http://blog.csdn.net/Luoshengyang/Android进程间通信(IPC)机制Binder简要介绍和学习计划Android应用程序组件Content Provider的共享数据更新通知机制分析Android应用程序组件Content Provider在应用程序之间共享数据的原理分析Android应用程序组件Content Provider的启动过程源代码分析Android应用程序组件Content Provider应用实例Android应用程序组件Content Provider简要介绍和学习计划Android系统匿名共享内存(Anonymous Shared Memory)C++调用接口分析Android应用程序线程消息循环模型分析Android应用程序键盘(Keyboard)消息处理机制分析Android应用程序消息处理机制(Looper、Handler)分析Android系统的智能指针(轻量级指针、强指针和弱指针)的实现原理分析Android系统进程Zygote启动过程的源代码分析Android系统默认Home应用程序(Launcher)的启动过程源代码分析Android应用程序安装过程源代码分析Android应用程序进程启动过程的源代码分析Android应用程序绑定服务(bindService)的过程源代码分析Android应用程序发送广播(sendBroadcast)的过程分析Android应用程序注册广播接收器(registerReceiver)的过程分析Android系统中的广播(Broadcast)机制简要介绍和学习计划Android应用程序在新的进程中启动新的Activity的方法和过程分析解开Android应用程序组件Activity的”singleTask”之谜

2013年02月02日 ⁄ 综合 ⁄ 共 5449字 ⁄ 字号 评论关闭

 

content(一)

Android开发者指南

http://www.cnblogs.com/over140/archive/2011/03/08/1976890.html

 

(二)(cp from 老罗的Android之旅

探索Android中的Parcel机制(下)

http://blog.csdn.net/Luoshengyang/

Android进程间通信(IPC)机制Binder简要介绍和学习计划

 

Android应用程序组件Content Provider的共享数据更新通知机制分析

在Android系统中,应用程序组件Content Provider为不同的应用程序实现数据共享提供了基础设施,它主要通过Binder进程间通信机制和匿名共享内存机制来实现的。关于数据共享的另一个话题便是数据更新通知机制了,即如果一个应用程序对共享数据做了修改,它应该如何通知其它正在使用这些共享数据的应用程序呢?本文将分析Content Provider的共享数据更新通知机制,为读者解答这个问题。...

阅读(1713)
评论(17)

Android应用程序组件Content Provider在应用程序之间共享数据的原理分析

在Android系统中,不同的应用程序是不能直接读写对方的数据文件的,如果它们想共享数据的话,只能通过Content Provider组件来实现。那么,Content Provider组件又是如何突破应用程序边界权限控制来实现在不同的应用程序之间共享数据的呢?在前面的文章中,我们已经简要介绍过它是通过Binder进程间通信机制以及匿名共享内存机制来实现的,在本文中,我们将详细分析它的数据共享原理。...

阅读(2129)
评论(11)

Android应用程序组件Content Provider的启动过程源代码分析

通过前面的学习,我们知道在Android系统中,Content Provider可以为不同的应用程序访问相同的数据提供统一的入口。Content Provider一般是运行在独立的进程中的,每一个Content Provider在系统中只有一个实例存在,其它应用程序首先要找到这个实例,然后才能访问它的数据。那么,系统中的Content Provider实例是由谁来负责启动的呢?本文将回答这个问题。...

阅读(2584)
评论(24)

Android应用程序组件Content Provider应用实例

上文简要介绍了Android应用程序组件Content Provider在应用程序间共享数据的原理,但是没有进一步研究它的实现。本文将实现两个应用程序,其中一个以Content Provider的形式来提供数据访问入口,另一个通过这个Content Provider来访问这些数据。本文的例子不仅可以为下文分析Content Provider的实现原理准备好使用情景,还可以学习到它的一个未公开接口。...

阅读(2363)
评论(24)

Android应用程序组件Content Provider简要介绍和学习计划

在Android系统中,Content Provider作为应用程序四大组件之一,它起到在应用程序之间共享数据的作用,同时,它还是标准的数据访问接口。前面的一系列文章已经分析过Android应用程序的其它三大组件(Activity、Service和Broadcast Receiver)了,本文将简要介绍Content Provider组件在Android应用程序设计中的地位,为进一步学习打好基础。...

阅读(2996)
评论(26)

Android系统匿名共享内存(Anonymous Shared Memory)C++调用接口分析

在Android系统中,针对移动设备内存空间有限的特点,提供了一种在进程间共享数据的机制:匿名共享内存,它能够辅助内存管理系统来有效地管理内存,它的实现原理我们在前面已经分析过了。为了方便使用匿名共享内存机制,系统还提供了Java调用接口(MemoryFile)和C++调用接口(MemoryHeapBase、MemoryBase),Java接口在前面也已经分析过了,本文中将继续分析它的C++接口。...

阅读(3806)
评论(6)

Android应用程序线程消息循环模型分析

我们知道,Android应用程序是通过消息来驱动的,即在应用程序的主线程(UI线程)中有一个消息循环,负责处理消息队列中的消息。我们也知道,Android应用程序是支持多线程的,即可以创建子线程来执行一些计算型的任务,那么,这些子线程能不能像应用程序的主线程一样具有消息循环呢?这些子线程又能不能往应用程序的主线程中发送消息呢?本文将分析Android应用程序线程消息处理模型,为读者解答这两个问题...

阅读(3097)
评论(19)

Android应用程序键盘(Keyboard)消息处理机制分析

在Android系统中,键盘按键事件是由WindowManagerService服务来管理的,然后再以消息的形式来分发给应用程序处理,不过和普通消息不一样,它是由硬件中断触发的;在上一篇文章《Android应用程序消息处理机制(Looper、Handler)分析》中,我们分析了Android应用程序的消息处理机制,本文将结合这种消息处理机制来详细分析Android应用程序是如何获得键盘按键消息的。...

阅读(6565)
评论(78)

Android应用程序消息处理机制(Looper、Handler)分析

Android应用程序是通过消息来驱动的,系统为每一个应用程序维护一个消息队例,应用程序的主线程不断地从这个消息队例中获取消息(Looper),然后对这些消息进行处理(Handler),这样就实现了通过消息来驱动应用程序的执行,本文将详细分析Android应用程序的消息处理机制。        前面我们学习Android应用程序中的Activity启动(Android应用程序启动过程源代码分析和A...

阅读(6383)
评论(24)

Android系统的智能指针(轻量级指针、强指针和弱指针)的实现原理分析

Android系统的运行时库层代码是用C++来编写的,用C++来写代码最容易出错的地方就是指针了,一旦使用不当,轻则造成内存泄漏,重则造成系统崩溃。不过系统为我们提供了智能指针,避免出现上述问题,本文将系统地分析Android系统智能指针(轻量级指针、强指针和弱指针)的实现原理。        在使用C++来编写代码的过程中,指针使用不当造成内存泄漏一般就是因为new了一个对象并且使用完之后,忘记...

阅读(5555)
评论(22)

Android系统进程Zygote启动过程的源代码分析

在Android系统中,所有的应用程序进程以及系统服务进程SystemServer都是由Zygote进程孕育(fork)出来的,这也许就是为什么要把它称为Zygote(受精卵)的原因吧。由于Zygote进程在Android系统中有着如此重要的地位,本文将详细分析它的启动过程。        在前面一篇文章Android应用程序进程启动过程的源代码分析中,我们看到了,当ActivityManager...

阅读(3635)
评论(5)

Android系统默认Home应用程序(Launcher)的启动过程源代码分析

在前面一篇文章中,我们分析了Android系统在启动时安装应用程序的过程,这些应用程序安装好之后,还需要有一个Home应用程序来负责把它们在桌面上展示出来,在Android系统中,这个默认的Home应用程序就是Launcher了,本文将详细分析Launcher应用程序的启动过程。        Android系统的Home应用程序Launcher是由ActivityManagerService启动...

阅读(5958)
评论(18)

Android应用程序安装过程源代码分析

Android系统在启动的过程中,会启动一个应用程序管理服务PackageManagerService,这个服务负责扫描系统中特定的目录,找到里面的应用程序文件,即以Apk为后缀的文件,然后对这些文件进解析,得到应用程序的相关信息,完成应用程序的安装过程,本文将详细分析这个过程。        应用程序管理服务PackageManagerService安装应用程序的过程,其实就是解析析应用程序配置...

阅读(6621)
评论(37)

Android应用程序进程启动过程的源代码分析

Android应用程序框架层创建的应用程序进程具有两个特点,一是进程的入口函数是ActivityThread.main,二是进程天然支持Binder进程间通信机制;这两个特点都是在进程的初始化过程中实现的,本文将详细分析Android应用程序进程创建过程中是如何实现这两个特点的。        Android应用程序框架层创建的应用程序进程的入口函数是ActivityThread.main比较好理...

阅读(6073)
评论(14)

Android应用程序绑定服务(bindService)的过程源代码分析

Android应用程序组件Service与Activity一样,既可以在新的进程中启动,也可以在应用程序进程内部启动;前面我们已经分析了在新的进程中启动Service的过程,本文将要介绍在应用程序内部绑定Service的过程,这是一种在应用程序进程内部启动Service的方法。        在前面一篇文章Android进程间通信(IPC)机制Binder简要介绍和学习计划中,我们就曾经提到,在A...

阅读(4592)
评论(17)

Android应用程序发送广播(sendBroadcast)的过程分析

前面我们分析了Android应用程序注册广播接收器的过程,这个过程只完成了万里长征的第一步,接下来它还要等待ActivityManagerService将广播分发过来。ActivityManagerService是如何得到广播并把它分发出去的呢?这就是本文要介绍的广播发送过程了。        广播的发送过程比广播接收器的注册过程要复杂得多了,不过这个过程仍然是以ActivityManagerSe...

阅读(5364)
评论(7)

Android应用程序注册广播接收器(registerReceiver)的过程分析

前面我们介绍了Android系统的广播机制,从本质来说,它是一种消息订阅/发布机制,因此,使用这种消息驱动模型的第一步便是订阅消息;而对Android应用程序来说,订阅消息其实就是注册广播接收器,本文将探讨Android应用程序是如何注册广播接收器以及把广播接收器注册到哪里去的。        在Android的广播机制中,ActivityManagerService扮演着广播中心的角色,负责系统...

阅读(4325)
评论(14)

Android系统中的广播(Broadcast)机制简要介绍和学习计划

在Android系统中,广播(Broadcast)是在组件之间传播数据(Intent)的一种机制;这些组件甚至是可以位于不同的进程中,这样它就像Binder机制一样,起到进程间通信的作用;本文通过一个简单的例子来学习Android系统的广播机制,为后续分析广播机制的源代码作准备。        在Android系统中,为什么需要广播机制呢?广播机制,本质上它就是一种组件间的通信方式,如果是两个组件...

阅读(3557)
评论(17)

Android应用程序在新的进程中启动新的Activity的方法和过程分析

前面我们在分析Activity启动过程的时候,看到同一个应用程序的Activity一般都是在同一个进程中启动,事实上,Activity也可以像Service一样在新的进程中启动,这样,一个应用程序就可以跨越好几个进程了,本文就分析一下在新的进程中启动Activity的方法和过程。        在前面Android进程间通信(IPC)机制Binder简要介绍和学习计划一文中,我们提到,在Andro...

阅读(3604)
评论(5)

解开Android应用程序组件Activity的"singleTask"之谜

在Android应用程序中,可以配置Activity以四种方式来启动,其中最令人迷惑的就是"singleTask"这种方式了,官方文档称以这种方式启动的Activity总是属于一个任务的根Activity。果真如此吗?本文将为你解开Activity的"singleTask"之谜。        在解开这个谜之前,我们先来简单了解一下在Android应用程序中,任务(Task)是个什么样的概念。我们...

抱歉!评论已关闭.