Android系统Surface机制的SurfaceFlinger服务渲染应用程序UI的过程分析
摘要:出自:http://blog.csdn.net/luoshengyang/article/details/8079456在前面的一系列文章中,我们学习了Android应用程序与SurfaceFlinger服务的关系,以及SurfaceFlinger服务的启动过程、初始化硬件帧缓冲区的过程、线程模型。SurfaceFlinger服务所做的一切都是为了给Android应用程序提服务的,即为Android应用程序渲染它们的UI。在本文中,我们就详细分析SurfaceFlinger服务渲染Android应用程序UI的过程。 从前面Android系统Surface制的SurfaceFlinger服务..
阅读全文
posted @
2013-05-22 07:11
知识天地
阅读(1446)
推荐(0) 编辑
Android应用程序窗口(Activity)的绘图表面(Surface)的创建过程分析
摘要:出自:http://blog.csdn.net/luoshengyang/article/details/8303098在前文中,我们分析了应用程序窗口连接到WindowManagerService服务的过程。在这个过程中,WindowManagerService服务会为应用程序窗口创建过一个到SurfaceFlinger服务的连接。有了这个连接之后,WindowManagerService服务就可以为应用程序窗口创建绘图表面了,以便可以用来渲染窗口的UI。在本文中,我们就详细分析应用程序窗口的绘图表面的创建过程。 从前面Android应用程序与SurfaceFlinger服务的关系概述和..
阅读全文
posted @
2013-05-22 07:08
知识天地
阅读(3321)
推荐(1) 编辑
Android应用程序窗口(Activity)与WindowManagerService服务的连接过程分析
摘要:出自:http://blog.csdn.net/luoshengyang/article/details/8275938在前两文中,我们分析了Activity组件的窗口对象和视图对象的创建过程。Activity组件在其窗口对象和视图对象创建完成之后,就会请求与WindowManagerService建立一个连接,即请求WindowManagerService为其增加一个WindowState对象,用来描述它的窗口状态。在本文中,我们就详细分析Activity组件与WindowManagerService的连接过程。 我们从两方面来看Activity组件与WindowManagerServi..
阅读全文
posted @
2013-05-22 07:06
知识天地
阅读(1065)
推荐(0) 编辑
Android应用程序窗口(Activity)的视图对象(View)的创建过程分析
摘要:出自:http://blog.csdn.net/luoshengyang/article/details/8245546从前文可知道,每一个Activity组件都有一个关联的Window对象,用来描述一个应用程序窗口。每一个应用程序窗口内部又包含有一个View对象,用来描述应用程序窗口的视图。应用程序窗口视图是真正用来实现UI内容和布局的,也就是说,每一个Activity组件的UI内容和布局都是通过与其所关联的一个Window对象的内部的一个View对象来实现的。在本文中,我们就详细分析应用程序窗口视图的创建过程。 在前面Android应用程序窗口(Activity)实现框架简要介绍和学习..
阅读全文
posted @
2013-05-22 07:05
知识天地
阅读(334)
推荐(0) 编辑
running Android Studio on Windows 7 fails, no Android SDK found
摘要:ok, here's how it worked:I downloaded the Adt bundle and Copied the file "SDK Manager.exe" to the Android studio root directory and just executed it (this set the SDK environment variable to C:\Program Files\Android\android-studio\sdk).then In Android studio clicked Configure ==> Pr
阅读全文
posted @
2013-05-21 17:10
知识天地
阅读(1662)
推荐(0) 编辑
Android Studio中新建项目时Your android sdk is out of date or is missing templates的解决办法
摘要:在Android Studio中新建项目时出现了以下问题:Yourandroid sdkis out of date or is missing templates. Please ensure you are using SDK version 22 or later.其实这是因为旧的SDK已经在你以前的Eclipse ADT Plugin中安装好了,我们只需要更新Android SDK Tool到版本22或更高即可,并将其引用在Android Studio中就行了,至于更新Android版本的问题的话,相信大家都会吧,呵呵,直接点击SDK Manager.exe就行啦。。
阅读全文
posted @
2013-05-21 16:53
知识天地
阅读(35157)
推荐(0) 编辑
Android应用程序资源的编译和打包过程分析
摘要:出自:http://blog.csdn.net/luoshengyang/article/details/8744683我们知道,在一个APK文件中,除了有代码文件之外,还有很多资源文件。这些资源文件是通过Android资源打包工具aapt(Android Asset Package Tool)打包到APK文件里面的。在打包之前,大部分文本格式的XML资源文件还会被编译成二进制格式的XML资源文件。在本文中,我们就详细分析XML资源文件的编译和打包过程,为后面深入了解Android系统的资源管理框架打下坚实的基础。 在前面Android资源管理框架(Asset Manager)简要介绍和...
阅读全文
posted @
2013-05-21 15:28
知识天地
阅读(8769)
推荐(0) 编辑
Android应用程序资源管理器(Asset Manager)的创建过程分析
摘要:出自:http://blog.csdn.net/luoshengyang/article/details/8791064在前面一篇文章中,我们分析了Android应用程序资源的编译和打包过程,最终得到的应用程序资源就与应用程序代码一起打包在一个APK文件中。Android应用程序在运行的过程中,是通过一个称为AssetManager的资源管理器来读取打包在APK文件里面的资源文件的。在本文中,我们就将详细分析Android应用程序资源管理器的创建以及初始化过程,为接下来的一篇文章分析应用程序资源的读取过程打下基础。 从前面Android应用程序窗口(Activity)的运行上下文环境(C...
阅读全文
posted @
2013-05-21 15:27
知识天地
阅读(1996)
推荐(0) 编辑
Android应用程序资源的查找过程分析
摘要:出自:http://blog.csdn.net/luoshengyang/article/details/8806798 我们知道,在Android系统中,每一个应用程序一般都会配置很多资源,用来适配不同密度、大小和方向的屏幕,以及适配不同的国家、地区和语言等等。这些资源是在应用程序运行时自动根据设备的当前配置信息进行适配的。这也就是说,给定一个相同的资源ID,在不同的设备配置之下,查找到的可能是不同的资源。这个资源查找过程对应用程序来说,是完全透明的。在本文中,我们就详细分析资源管理框架是如何根据ID来查找资源的。 从前面Android应用程序资源管理器(Asset Manager)...
阅读全文
posted @
2013-05-21 15:16
知识天地
阅读(1649)
推荐(0) 编辑
Dalvik虚拟机简要介绍和学习计划
摘要:出自:http://blog.csdn.net/luoshengyang/article/details/8852432我们知道,Android应用程序是运行在Dalvik虚拟机里面的,并且每一个应用程序对应有一个单独的Dalvik虚拟机实例。除了指令集和类文件格式不同,Dalvik虚拟机与Java虚拟机共享有差不多的特性,例如,它们都是解释执行,并且支持即时编译(JIT)、垃圾收集(GC)、Java本地方法调用(JNI)和Java远程调试协议(JDWP)等。本文对Dalvik虚拟机进行简要介绍,以及制定学习计划。老罗的新浪微博:http://weibo.com/shengyangluo,欢迎
阅读全文
posted @
2013-05-21 15:15
知识天地
阅读(371)
推荐(0) 编辑
Dalvik虚拟机的运行过程分析
摘要:出自:http://blog.csdn.net/luoshengyang/article/details/8914953在前面一篇文章中,我们分析了Dalvik虚拟机在Zygote进程中的启动过程。Dalvik虚拟机启动完成之后,也就是在各个子模块初始化完成以及加载了相应的Java核心类库之后,就是可以执行Java代码了。当然,Dalvik虚拟机除了可以执行Java代码之外,还可以执行Native代码,也就是C和C++代码。在本文中,我们就将继续以Zygote进程的启动过程为例,来分析Dalvik虚拟机的运行过程。老罗的新浪微博:http://weibo.com/shengyangluo,欢迎
阅读全文
posted @
2013-05-21 15:13
知识天地
阅读(727)
推荐(0) 编辑
Android窗口管理服务WindowManagerService切换Activity窗口(App Transition)的过程分析
摘要:出自:http://blog.csdn.net/luoshengyang/article/details/8596449在Android系统中,同一时刻只有一个Activity组件是处于激活状态的,因此,当ActivityManagerService服务激活了一个新的Activity组件时,它就需要通知WindowManagerService服务将该Activity组件的窗口显示出来,这会涉及到将焦点和屏幕等资源从前一个激活的Activity组件切换到后一个激活的Activity组件的过程,本文就详细分析这个过程。 Activity窗口的切换操作是在新激活的Activity组件的启动过程...
阅读全文
posted @
2013-05-21 15:05
知识天地
阅读(2910)
推荐(2) 编辑
Android窗口管理服务WindowManagerService显示窗口动画的原理分析
摘要:出自:http://blog.csdn.net/luoshengyang/article/details/8611754在前一文中,我们分析了Activity组件的切换过程。从这个过程可以知道,所有参与切换操作的窗口都会被设置切换动画。事实上,一个窗口在打开(关闭)的过程中,除了可能会设置切换动画之外,它本身也可能会设置有进入(退出)动画。再进一步地,如果一个窗口是附加在另外一个窗口之上的,那么被附加窗口所设置的动画也会同时传递给该窗口。本文就详细分析WindowManagerService服务显示窗口动画的原理。 在Android系统中,窗口动画的本质就是对原始窗口施加一个变换(Tra...
阅读全文
posted @
2013-05-21 15:03
知识天地
阅读(1478)
推荐(0) 编辑
Android控件TextView的实现原理分析
摘要:出自:http://blog.csdn.net/luoshengyang/article/details/8636153 在前面一个系列的文章中,我们以窗口为单位,分析了WindowManagerService服务的实现。同时,在再前面一个系列的文章中,我们又分析了窗口的组成。简单来说,窗口就是由一系列的视图按照一定的布局组织起来的。实际上,每一个视图都是一个控件,这些控制可以将自己的UI绘制在窗口的绘图表面上,同时还可以与用户进行交互,即获得用户的键盘或者触摸屏输入。在本文中,我们就详细分析窗口控件的上述实现原理。 由于Android系统提供的控件比较多,因此我们只能挑一个比较有代表...
阅读全文
posted @
2013-05-21 14:55
知识天地
阅读(411)
推荐(0) 编辑
Android视图SurfaceView的实现原理分析
摘要:出自:http://blog.csdn.net/luoshengyang/article/details/8661317 在Android系统中,有一种特殊的视图,称为SurfaceView,它拥有独立的绘图表面,即它不与其宿主窗口共享同一个绘图表面。由于拥有独立的绘图表面,因此SurfaceView的UI就可以在一个独立的线程中进行行绘制。又由于不占用主线程资源,SurfaceView一方面可以实现复杂而高效的UI,另一方面又不会导致用户输入得不到及时响应。在本文中,我们就详细分析SurfaceView的实现原理。 在前面Android控件TextView的实现原理分析一文中提到,普...
阅读全文
posted @
2013-05-21 14:53
知识天地
阅读(468)
推荐(0) 编辑
Android资源管理框架(Asset Manager)简要介绍和学习计划
摘要:出自:http://blog.csdn.net/luoshengyang/article/details/8738877Android应用程序主要由两部分内容组成:代码和资源。资源主要就是指那些与UI相关的东西,例如UI布局、字符串和图片等。代码和资源分开可以使得应用程序在运行时根据实际需要来组织UI。这样就可使得应用程序只需要编译一次,就可以支持不同的UI布局。这种特性使得应用程序在运行时可以适应不同的屏幕大小和密度,以及不同的国家和语言等。在本文中,我们就简要介绍Android的资源管理框架,以及制定学习计划。 在软件开发中,说到代码与资源分离,最容易想到的可能就是Web开发了。在W...
阅读全文
posted @
2013-05-21 14:44
知识天地
阅读(496)
推荐(0) 编辑
Android窗口管理服务WindowManagerService对输入法窗口(Input Method Window)的管理分析
摘要:出自:http://blog.csdn.net/luoshengyang/article/details/8526644在Android系统中,输入法窗口是一种特殊类型的窗口,它总是位于需要使用输入法的窗口的上面。也就是说,一旦WindowManagerService服务检测到焦点窗口需要使用输入法,那么它就会调整输入法窗口在窗口堆栈中的位置,使得输入法窗口位于在焦点窗口的上面,这样用户可以通过输入法窗口来录入字母或者文字。本文就将详细分析WindowManagerService服务是如何管理系统中的输入法窗口的。 在Android系统中,除了输入法窗口之外,还有一种窗口称为输入法对话框...
阅读全文
posted @
2013-05-21 14:23
知识天地
阅读(746)
推荐(0) 编辑
Android窗口管理服务WindowManagerService对壁纸窗口(Wallpaper Window)的管理分析
摘要:出自:http://blog.csdn.net/luoshengyang/article/details/8550820在Android系统中,壁纸窗口和输入法窗口一样,都是一种特殊类型的窗口,而且它们都是喜欢和一个普通的Activity窗口缠绵在一起。大家可以充分地想象这样的一个3W场景:输入法窗口在上面,壁纸窗口在下面,Activity窗口夹在它们的中间。在前面一篇文章中,我们已经分析过输入法窗口是如何压在Activity窗口上面的了。在这篇文章中,我们就将继续分析壁纸窗口是如何贴在Activity窗口下面的。 一个Activity窗口如果需要显示壁纸,那么它必须满足以下两个条件: ...
阅读全文
posted @
2013-05-21 14:18
知识天地
阅读(662)
推荐(0) 编辑
Android窗口管理服务WindowManagerService显示Activity组件的启动窗口(Starting Window)的过程分析
摘要:出自:http://blog.csdn.net/luoshengyang/article/details/8577789在Android系统中,Activity组件在启动之后,并且在它的窗口显示出来之前,可以显示一个启动窗口。这个启动窗口可以看作是Activity组件的预览窗口,是由WindowManagerService服务统一管理的,即由WindowManagerService服务负责启动和结束。在本文中,我们就详细分析WindowManagerService服务启动和结束Activity组件的启动窗口的过程。 Activity组件的启动窗口是由ActivityManagerServ...
阅读全文
posted @
2013-05-21 14:07
知识天地
阅读(3338)
推荐(0) 编辑
2012年的Android之旅:梦想、学习、坚持、自信、淡定
摘要:出自:http://blog.csdn.net/luoshengyang/article/details/8452527前段时间参加了2012年度IT博客大赛,进了前十强,写了一篇获奖感言,不过还没正式在CSDN发表出来。眼看2012年就要结束了,刚好借这个机会将2012年度IT博客大十强获奖感言发表出来,也算是对2012年博客的一个总结,关键字是“梦想”、“学习”、“坚持”、“自信”、“淡定”。希望大家一如既往地支持老罗的CSDN专栏《老罗的Android之旅》以及老罗的新书《Android系统源代码情景分析》。 自2011年6月21日开博至今天2012年12月31日,在这560天里面,..
阅读全文
posted @
2013-05-21 14:02
知识天地
阅读(311)
推荐(0) 编辑