随笔分类 -  android开发

上一页 1 2 3 4 下一页
Android应用程序组件Content Provider简要介绍和学习计划
摘要:出自:http://blog.csdn.net/luoshengyang/article/details/6946067在Android系统中,Content Provider作为应用程序四大组件之一,它起到在应用程序之间共享数据的作用,同时,它还是标准的数据访问接口。前面的一系列文章已经分析过Android应用程序的其它三大组件(Activity、Service和Broadcast Receiver)了,本文将简要介绍Content Provider组件在Android应用程序设计中的地位,为进一步学习打好基础。 我们知道,在Android系统上,每一个应用程序都有一个独立的用户ID。为.. 阅读全文
posted @ 2013-05-24 21:52 知识天地 阅读(209) 评论(0) 推荐(0) 编辑
Android系统匿名共享内存(Anonymous Shared Memory)C++调用接口分析
摘要:出自:http://blog.csdn.net/luoshengyang/article/details/6939890在Android系统中,针对移动设备内存空间有限的特点,提供了一种在进程间共享数据的机制:匿名共享内存,它能够辅助内存管理系统来有效地管理内存,它的实现原理我们在前面已经分析过了。为了方便使用匿名共享内存机制,系统还提供了Java调用接口(MemoryFile)和C++调用接口(MemoryHeapBase、MemoryBase),Java接口在前面也已经分析过了,本文中将继续分析它的C++接口。 在前面一篇文章Android系统匿名共享内存Ashmem(Anonymou.. 阅读全文
posted @ 2013-05-24 21:51 知识天地 阅读(598) 评论(0) 推荐(0) 编辑
Android应用程序线程消息循环模型分析
摘要:出自:http://blog.csdn.net/luoshengyang/article/details/6905587我们知道,Android应用程序是通过消息来驱动的,即在应用程序的主线程(UI线程)中有一个消息循环,负责处理消息队列中的消息。我们也知道,Android应用程序是支持多线程的,即可以创建子线程来执行一些计算型的任务,那么,这些子线程能不能像应用程序的主线程一样具有消息循环呢?这些子线程又能不能往应用程序的主线程中发送消息呢?本文将分析Android应用程序线程消息处理模型,为读者解答这两个问题 在开发Android应用程序中,有时候我们需要在应用程序中创建一些常驻的子线.. 阅读全文
posted @ 2013-05-24 21:50 知识天地 阅读(209) 评论(0) 推荐(0) 编辑
Android应用程序键盘(Keyboard)消息处理机制分析
摘要:出自:http://blog.csdn.net/luoshengyang/article/details/6882903在Android系统中,键盘按键事件是由WindowManagerService服务来管理的,然后再以消息的形式来分发给应用程序处理,不过和普通消息不一样,它是由硬件中断触发的;在上一篇文章《Android应用程序消息处理机制(Looper、Handler)分析》中,我们分析了Android应用程序的消息处理机制,本文将结合这种消息处理机制来详细分析Android应用程序是如何获得键盘按键消息的。 在系统启动的时候,SystemServer会启动窗口管理服务WindowM.. 阅读全文
posted @ 2013-05-24 21:49 知识天地 阅读(3082) 评论(0) 推荐(0) 编辑
Android应用程序消息处理机制(Looper、Handler)分析
摘要:出自:http://blog.csdn.net/luoshengyang/article/details/6817933Android应用程序是通过消息来驱动的,系统为每一个应用程序维护一个消息队例,应用程序的主线程不断地从这个消息队例中获取消息(Looper),然后对这些消息进行处理(Handler),这样就实现了通过消息来驱动应用程序的执行,本文将详细分析Android应用程序的消息处理机制。 前面我们学习Android应用程序中的Activity启动(Android应用程序启动过程源代码分析和Android应用程序内部启动Activity过程(startActivity)的源代码分析.. 阅读全文
posted @ 2013-05-24 21:46 知识天地 阅读(132) 评论(0) 推荐(0) 编辑
Android系统的智能指针(轻量级指针、强指针和弱指针)的实现原理分析
摘要:出自:http://blog.csdn.net/luoshengyang/article/details/6786239 Android系统的运行时库层代码是用C++来编写的,用C++来写代码最容易出错的地方就是指针了,一旦使用不当,轻则造成内存泄漏,重则造成系统崩溃。不过系统为我们提供了智能指针,避免出现上述问题,本文将系统地分析Android系统智能指针(轻量级指针、强指针和弱指针)的实现原理。 在使用C++来编写代码的过程中,指针使用不当造成内存泄漏一般就是因为new了一个对象并且使用完之后,忘记了delete这个对象,而造成系统崩溃一般就是因为一个地方delete了这个对象之后,其.. 阅读全文
posted @ 2013-05-24 21:45 知识天地 阅读(506) 评论(0) 推荐(0) 编辑
Android应用程序请求SurfaceFlinger服务创建Surface的过程分析
摘要:出自:http://blog.csdn.net/luoshengyang/article/details/7884628前面我们已经学习过Android应用程序与SurfaceFlinger服务的连接过程了。连接上SurfaceFlinger服务之后,Android应用程序就可以请求SurfaceFlinger服务创建Surface。而当有了Surface后,Android应用程序就可以用来渲染自己的UI了。在本文中,我们将详细分析Android应用程序请求SurfaceFlinger服务创建Surface的过程。 在讲述Android应用程序请求SurfaceFlinger服务创建Sur.. 阅读全文
posted @ 2013-05-22 22:56 知识天地 阅读(1240) 评论(0) 推荐(0) 编辑
Android应用程序与SurfaceFlinger服务之间的共享UI元数据(SharedClient)的创建过程分析
摘要:出自:http://blog.csdn.net/luoshengyang/article/details/7867340在前面一篇文章中,我们分析了Android应用程序与SurfaceFlinger服务的连接过程。Android应用程序成功连接上SurfaceFlinger服务之后,还需要一块匿名共享内存来和SurfaceFlinger服务共享它的UI元数据,以便使得SurfaceFlinger服务可以正确地为它创建以及渲染Surface。在本文中,我们将详细地分析这块用来保存UI元数据的匿名共享内存的创建过程。 在Android应用程序与SurfaceFlinger服务的关系概述和学习.. 阅读全文
posted @ 2013-05-22 22:55 知识天地 阅读(410) 评论(0) 推荐(0) 编辑
Android应用程序与SurfaceFlinger服务的连接过程分析
摘要:出自:http://blog.csdn.net/luoshengyang/article/details/7857163 前文在描述Android应用程序和SurfaceFlinger服务的关系时提到,每一个有UI的Android应用程序都需要与SurfaceFlinger服务建立一个连接,以便可以通过这个连接来请求SurfaceFlinger服务为它创建和渲染Surface。在本文中,我们将以Android系统的开机动画应用程序为例,详细描述Android应用程序是如何与SurfaceFlinger服务建立连接的。 Android系统的开机动画是由应用程序bootanimation来实现.. 阅读全文
posted @ 2013-05-22 22:54 知识天地 阅读(320) 评论(0) 推荐(0) 编辑
Android帧缓冲区(Frame Buffer)硬件抽象层(HAL)模块Gralloc的实现原理分析
摘要:出自:http://blog.csdn.net/luoshengyang/article/details/7747932 前面在介绍Android系统的开机画面时提到,Android设备的显示屏被抽象为一个帧缓冲区,而Android系统中的SurfaceFlinger服务就是通过向这个帧缓冲区写入内容来绘制应用程序的用户界面的。Android系统在硬件抽象层中提供了一个Gralloc模块,封装了对帧缓冲区的所有访问操作。本文将详细分析Gralloc模块的实现,为后续分析SurfaceFlinger服务的实现打下基础。 在前面Android系统的开机画面显示过程分析一文中提到,Linux内核.. 阅读全文
posted @ 2013-05-22 22:53 知识天地 阅读(4721) 评论(0) 推荐(0) 编辑
Android系统的开机画面显示过程分析
摘要:出自:http://blog.csdn.net/luoshengyang/article/details/7691321好几个月都没有更新过博客了,从今天开始,老罗将尝试对Android系统的UI实现作一个系统的分析,也算是落实之前所作出的承诺。提到Android系统的UI,我们最先接触到的便是系统在启动过程中所出现的画面了。Android系统在启动的过程中,最多可以出现三个画面,每一个画面都用来描述一个不同的启动阶段。本文将详细分析这三个开机画面的显示过程,以便可以开启我们对Android系统UI实现的分析之路。 第一个开机画面是在内核启动的过程中出现的,它是一个静态的画面。第二个开机画.. 阅读全文
posted @ 2013-05-22 22:51 知识天地 阅读(3653) 评论(1) 推荐(0) 编辑
Android系统Surface机制的SurfaceFlinger服务的线程模型分析
摘要:出自:http://blog.csdn.net/luoshengyang/article/details/8062945在前面两篇文章中,我们分析了SurfaceFlinger服务的启动过程以及SurfaceFlinger服务初始化硬件帧缓冲区的过程。从这两个过程可以知道,SurfaceFlinger服务在启动的过程中,一共涉及到了三种类型的线程,它们分别是Binder线程、UI渲染线程和控制台事件监控线程。在本文中,我们就将详细分SurfaceFlinger服务的线程模型,即上述三种类型的线程是如何运行和交互的。 从Android系统Surface制的SurfaceFlinger服务的启.. 阅读全文
posted @ 2013-05-22 08:00 知识天地 阅读(542) 评论(0) 推荐(0) 编辑
Android系统Surface机制的SurfaceFlinger服务对帧缓冲区(Frame Buffer)的管理分析
摘要:在前文中,我们分析了SurfaceFlinger服务的启动过程。SurfaceFlinger服务在启动的过程中,会对系统的硬件帧缓冲区进行初始化。由于系统的硬件帧缓冲区一般只有一个,并且不是谁都可以随便访问的,因此,它就需要由一个服务来统一管理。在Android系统中,这个服务便是SurfaceFlinger。在本文中,我们就详细分析SurfaceFlinger服务是如何管理系统的硬件帧缓冲区的。 从前面Android系统Surface机制的SurfaceFlinger服务简要介绍和学习计划一文可以知道,SurfaceFlinger服务通过一个GraphicPlane对象来描述系统的显示... 阅读全文
posted @ 2013-05-22 07:54 知识天地 阅读(3477) 评论(0) 推荐(0) 编辑
Android系统Surface机制的SurfaceFlinger服务的启动过程分析
摘要:出自:http://blog.csdn.net/luoshengyang/article/details/8022957在前面一篇文章中,我们简要介绍了Android系统Surface机制中的SurfaceFlinger服务。SurfaceFlinger服务是在System进程中启动的,并且负责统一管理设备的帧缓冲区。SurfaceFlinger服务在启动的过程中,会创建两个线程,其中一个线程用来监控控制台事件,而另外一个线程用来渲染系统的UI。在本文中,我们就将详细分析SurfaceFlinger服务的启动过程。 从前面Android系统进程Zygote启动过程的源代码分析一文可以知道,.. 阅读全文
posted @ 2013-05-22 07:53 知识天地 阅读(603) 评论(0) 推荐(0) 编辑
Android系统Surface机制的SurfaceFlinger服务简要介绍和学习计划
摘要:出自:http://blog.csdn.net/luoshengyang/article/details/8010977前面我们从Android应用程序与SurfaceFlinger服务的关系出发,从侧面简单学习了SurfaceFlinger服务。有了这些预备知识之后,我们就可以从正面来分析SurfaceFlinger服务的实现原理了。SurfaceFlinger服务负责管理系统的帧缓冲区设备,并且负责渲染系统的UI,即各个应用程序的UI。在本文中,我们就简要介绍SurfaceFlinger服务,并且制定学习计划。 在前面Android应用程序与SurfaceFlinger服务的关系概述和.. 阅读全文
posted @ 2013-05-22 07:26 知识天地 阅读(231) 评论(0) 推荐(0) 编辑
Android应用程序请求SurfaceFlinger服务渲染Surface的过程分析
摘要:出自:http://blog.csdn.net/luoshengyang/article/details/7932268在前面一篇文章中,我们分析了Android应用程序请求SurfaceFlinger服务创建Surface的过程。有了Surface之后,Android应用程序就可以在上面绘制自己的UI了,接着再请求SurfaceFlinger服务将这个已经绘制好了UI的Surface渲染到设备显示屏上去。在本文中,我们就将详细分析Android应用程序请求SurfaceFlinger服务渲染Surface的过程。 Android应用程序在请求SurfaceFlinger服务渲染一个Sur.. 阅读全文
posted @ 2013-05-22 07:25 知识天地 阅读(972) 评论(0) 推荐(0) 编辑
Android应用程序窗口(Activity)的窗口对象(Window)的创建过程分析
摘要:出自:http://blog.csdn.net/luoshengyang/article/details/8223770在前文中,我们分析了Android应用程序窗口的运行上下文环境的创建过程。由此可知,每一个Activity组件都有一个关联的ContextImpl对象,同时,它还关联有一个Window对象,用来描述一个具体的应用程序窗口。由此又可知,Activity只不过是一个高度抽象的UI组件,它的具体UI实现其实是由其它的一系列对象来实现的。在本文中,我们就将详细分析Android应用程序窗口对象的创建过程。 从前面Android应用程序窗口(Activity)实现框架简要介绍和学习.. 阅读全文
posted @ 2013-05-22 07:18 知识天地 阅读(300) 评论(0) 推荐(0) 编辑
Android应用程序窗口(Activity)的运行上下文环境(Context)的创建过程分析
摘要:出自:http://blog.csdn.net/luoshengyang/article/details/8201936在前文中,我们简要介绍了Android应用程序窗口的框架。Android应用程序窗口在运行的过程中,需要访问一些特定的资源或者类。这些特定的资源或者类构成了Android应用程序的运行上下文环境,Android应用程序窗口可以通过一个Context接口来访问它,这个Context接口也是我们在开发应用程序时经常碰到的。在本文中,我们就将详细分析Android应用程序窗口的运行上下文环境的创建过程。 在前面Android应用程序窗口(Activity)实现框架简要介绍和学习.. 阅读全文
posted @ 2013-05-22 07:16 知识天地 阅读(573) 评论(0) 推荐(0) 编辑
Android应用程序窗口(Activity)实现框架简要介绍和学习计划
摘要:前面我们学习了SurfaceFlinger服务的实现原理。有了这个基础之后,从本文开始,我们就可以分析Android系统在Java层的UI实现了。我们知道,在Android应用程序的四大组件中,只有Activity组件与UI相关,它描述的是应用程序窗口,因此,我们就通过它的UI实现来分析Android系统在Java层的UI实现。本文主要是对Activity组件的UI实现作简要介绍以及制定学习计划。 Activity组件的UI实现需要与WindowManagerService服务和SurfaceFlinger服务进行交互。从前面Android应用程序键盘(Keyboard)消息处理机制分析一.. 阅读全文
posted @ 2013-05-22 07:15 知识天地 阅读(344) 评论(0) 推荐(0) 编辑
《Android系统源代码情景分析》一书勘误
摘要:出自:http://blog.csdn.net/luoshengyang/article/details/8116866在大家的支持和鼓励下,《Android系统源代码情景分析》一书得以出版了,老罗在此首先谢过大家了。本书的内容来源于博客的文章,经过大半年的整理之后,形成了初稿。在正式出版之前,又经过了三次排版以及修订,最终得到终稿。然而,老罗深知,书中的内容并不尽完美,除了错误之外总还会有许多不尽人意的地方,因此,欢迎广大读者以及国内外的专家给老罗指出,以便改进。为了达到此目的,老罗特别在此列出该书有错误的地方。 现在暂时将书中出现的错误划分为三类,第一类是笔误,第二类是表达问题,第三类.. 阅读全文
posted @ 2013-05-22 07:13 知识天地 阅读(437) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 下一页