第六篇 ANDROID窗口系统机制之显示机制 ANDROID的显示系统是整个框架中最复杂的系统之一,涉及包括窗口管理服务.VIEW视图系统.SurfaceFlinger本地服务.硬件加速等.窗口管理服务与SurfaceFlinger本地服务都属于系统服务,客户端采用远程代理模式访问服务,而这部分机制在上一篇博文<窗口管理服务实现机制>已经分析过,本篇主要解析视图如何绘制相关的部分. 窗口中显示的页面和控件以树的形式组织成一颗以主视图为根的视图树,系统要显示输出时统一调用主视图的draw 函数,…
Android窗口系统第一篇—Window的类型与Z-Order确定 Android窗口系统第二篇—Window的添加过程 上面文章梳理了一个窗口的添加过程,系统中有很多应用,每个应用有多个Activity,一个Activity上有一个Window,WindowManagerService是怎么管理的?先adb shell dumpsys activity查看一下Activity. Display #0 (activities from top to bottom): Display对应窗口系统…
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8611754 在前一文中,我们分析了Activity组件的切换过程.从这个过程可以知道,所有参与切换操作的窗口都会被设置切换动画.事实上,一个窗口在打开 (关闭)的过程中,除了可能会设置切换动画之外,它本身也可能会设置有进入(退出)动画.再进一步地,如果一个窗口是附加在另外一个窗口之上的,那么被附 加窗口所设置的动画也会同时传递给该窗口.本文就详…
Android的窗口系统是UI架构很重要的一部分,数据结构比较多,细节比较多.本篇文章主要介绍窗口相关数据结构和抽象概念理解,关于[窗口部分的博客]计划如下. 1.窗口Z-Order的管理 2.应用程序和WMS的联系 3.窗口的添加,WindowState的创建 4.Token管理,AppToken 5.窗口大小的计算 6.启动窗口 7.窗口的切换和动画 8.多窗口,分屏.画中画,自由模式的实现思路 9.View的测量和布局 10.桌面启动流程 11.墙纸流程 本篇文章主要讨论窗口类型.坐标系统…
以前写过客户端Window的创建过程,大概是这样子的.我们一开始从Thread中的handleLaunchActivity方法开始分析,首先加载Activity的字节码文件,利用反射的方式创建一个Activity对象,调用Activity对象的attach方法,在attach方法中,创建系统需要的Window并为设置回调,这个回调定义在Window之中,由Activity实现,当Window的状态发生变化的时候,就会回调Activity实现的这些回调方法.调用attach方法之后,Window被…
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8577789 在Android系统中,Activity组件在启动之后,并且在它的窗口显示出来之前,可以显示一个启动窗口.这个启动窗口可以看作是 Activity组件的预览窗口,是由WindowManagerService服务统一管理的,即由WindowManagerService服务负责 启动和结束.在本文中,我们就详细分析WindowManag…
关于WIFI就不多介绍啦,直接来个段子吧. 问:“WiFi对人体有伤害么?” 答:“不清楚,反正没有WiFi我就浑身不舒服. 比较重要的一点就是WifiManager  wm=(WifiManager)Android_Wifi.this.getSystemService(Context.WIFI_SERVICE); 关闭打开搜索都可以通过调用wm的相关方法实现.可能要开发wifi万能钥匙那一类的程序才用到这个吧,普通应用程序主要就识别是wifi网络还是移动网络.不多讲 代码参考博客:http:/…
前言 在 UNIX Like 系统中,存有各类系统/应用程序的环境变量,可通过修改之改变系统/应用程序的执行效果:除此之外,用户还可以定义自己的环境变量,供自己写的程序使用. 本文将说明如何在程序中设置以及读取这些环境变量. 获取环境变量函数:getenv 原型:char * getenv (const char *name) 包含于:stdlib.h 作用:获取名为 name 的环境变量的值并返回指向它的值的指针. 设置环境变量函数:setenv 原型:int setenv (const ch…
类图关系 在看Android的窗口机制之前,先看看其主要的类图关系以及层级之间的依赖与调用关系 1.window在当前的android系统的中的呈现形式是PhoneWindow (frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindow.java): 2.WindowManager的实现实体是WindowManagerImpl.java (frameworks/base/core/java/android/vi…
Android 的窗口管理系统 (View, Canvas, WindowManager) 在图解Android - Zygote 和 System Server 启动分析一 文里,我们已经知道Android 应用程序是怎么创建出来的,大概的流程是 ActivityManagerService -> Zygote -> Fork App, 然后应用程序在ActivityThread 中的进入loop循环等待处理来自AcitivyManagerService的消息.如果一个Android的应用有…