其实在android中真正展示给用户的是window和view,activity在android中所其的作用主要是处理一些逻辑问题,比如生命周期的管理.建立窗口等.在android中,窗口的管理还是比较重要的一块,因为他直接负责把内容展示给用户,并和用户进行交互.响应用户的输入等. 在讲窗口管理时,有必要先说下ViewManager这个接口,这个接口主要有以下的实现子接口和实现类,分别是:WindowManager和ViewGroup里面还有三个重要的方法: * addView(); * upd…
Surface的管理 Surface是窗口能真正显示到物理屏幕上的基础,由surfaceflinger管理,可以通过WindowStateAnimator.java中的变量mDrawState来查看每个窗口相关的surface的状态. surface有5中状态: WindowStateAnimator.java //Surface还没有创建. staticfinal int NO_SURFACE = 0; //Surface已经创建,但是窗口还没绘制,这时surface是隐藏的. staticf…
Android 的窗口管理系统 (View, Canvas, WindowManager) 在图解Android - Zygote 和 System Server 启动分析一 文里,我们已经知道Android 应用程序是怎么创建出来的,大概的流程是 ActivityManagerService -> Zygote -> Fork App, 然后应用程序在ActivityThread 中的进入loop循环等待处理来自AcitivyManagerService的消息.如果一个Android的应用有…
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8577789 在Android系统中,Activity组件在启动之后,并且在它的窗口显示出来之前,可以显示一个启动窗口.这个启动窗口可以看作是 Activity组件的预览窗口,是由WindowManagerService服务统一管理的,即由WindowManagerService服务负责 启动和结束.在本文中,我们就详细分析WindowManag…
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8550820 Android系统中,壁纸窗口和输入法窗口一样,都是一种特殊类型的窗口,而且它们都是喜欢和一个普通的Activity窗口缠绵在一起.大家可 以充分地想象这样的一个3W场景:输入法窗口在上面,壁纸窗口在下面,Activity窗口夹在它们的中间.在前面一篇文章中,我们已经分析过输入法窗口 是如何压在Activity窗口上面的了.在这篇文…
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8526644 在Android系统中,输入法窗口是一种特殊类型的窗口,它总是位于需要使用输入法的窗口的上面.也就是说,一旦 WindowManagerService服务检测到焦点窗口需要使用输入法,那么它就会调整输入法窗口在窗口堆栈中的位置,使得输入法窗口位于在焦点窗 口的上面,这样用户可以通过输入法窗口来录入字母或者文字.本文就将详细分析Win…
Android GWES之Android窗口管理1基本构架原理 Android的窗口管理是C/S模式的.Android中的Window是表示Top Level等顶级窗口的概念.DecorView是Window的Top-Level View,这个View我称之为主View,DecorView会缺省的attach到Activity的主窗口中.主View被加入到WindowManager中,WM使用WindowState与这个主View对应. 123.jpg (16.12 KB, 下载次数: 0) 下…
Android GWES之窗口管理之基本构架原理 Android的窗口管理是C/S模式的.Android中的Window是表示Top Level等顶级窗口的概念.DecorView是Window的Top-Level View,这个View我称之为主View,DecorView会缺省的attach到Activity的主窗口中.主View被加入到WindowManager中,WM使用WindowState与这个主View对应.                      321.jpg (9.59 K…
一.概述 在Android系统中,从设计的角度来看,窗口管理系统是基于C/S模式的.整个窗口系统分为服务端和客户端两大部分,客户端负责请求创建窗口和使用窗口,服务端完成窗口的维护,窗口显示等. 在Client端,并不是直接和WindowManagerService交互,而是直接和本地对象WindowManager交互,然后由WindowManager完成和WindowManagerService的交互.对于Android应用来说这个交互是透明的,应用不能感知到WindowManagerServi…
来自http://blog.csdn.net/luoshengyang/article/details/8479101 在Android系统中,Activity窗口的大小是由WindowManagerService服务来计算的.WindowManagerService服务会根据屏幕及其装饰区的大小来决定Activity窗口的大小.一个Activity窗口只有知道自己的大小之后,才能对它里面的UI元素进行测量.布局以及绘制.本文将详细分析WindowManagerService服务计算Activi…
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8611754 在前一文中,我们分析了Activity组件的切换过程.从这个过程可以知道,所有参与切换操作的窗口都会被设置切换动画.事实上,一个窗口在打开 (关闭)的过程中,除了可能会设置切换动画之外,它本身也可能会设置有进入(退出)动画.再进一步地,如果一个窗口是附加在另外一个窗口之上的,那么被附 加窗口所设置的动画也会同时传递给该窗口.本文就详…
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8596449 在Android系统中,同一时刻只有一个Activity组件是处于激活状态的,因此,当ActivityManagerService服务激活了一个 新的Activity组件时,它就需要通知WindowManagerService服务将该Activity组件的窗口显示出来,这会涉及到将焦点和屏 幕等资源从前一个激活的Activity组件…
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8570428 通过前面几篇文章的学习,我们知道了在 Android系统中,无论是普通的Activity窗口,还是特殊的输入法窗口和壁纸窗口,它们都是被WindowManagerService服务组 织在一个窗口堆栈中的,其中,Z轴位置较大的窗口排列在Z轴位置较小的窗口的上面.有了这个窗口堆栈之后,WindowManagerService服务 就可…
在前一个系列文章中,我们从个体的角度来分析了Android应用程序窗口的实现框架.事实上,如果我们从整体的角度来看,Android应用程序窗口的 实现要更复杂,因为它们的类型和作用不同,且会相互影响.在Android系统中,对系统中的所有窗口进行管理是窗口管理服务 WindowManagerService的职责.在本文中,我们就将简要介绍WindowManagerService的职能以及制定学习计划. 我们知道,在Android系统中,同一时刻,只有一个Activity窗口是激活的,但是,对于W…
 一.功能 窗口管理是ANDROID框架一个重要部分,主要包括如下功能: )Z-ordered的维护 )窗口的创建.销毁 )窗口的绘制.布局 )Token管理,AppToken )活动窗口管理(FocusWindow) )活动应用管理(FocusAPP) )输入法管理 )系统消息收集与分发 这些功能主要由一个窗口管理服务和相应的客户端来实现的,客户端通过BINDER机制与服务实现交互.       窗口管理服务端负责主要的窗口管理功能,由一个WindowManagerService服务及相关…
GLUT事件处理(Event Processing)窗口管理(Window Management)函数 void glutMainLoop(void) 让glut程序进入事件循环.在一个glut程序中最多只能调用一次.一旦调用,会直到程序结束才返回. int glutCreateWindow(char* name); 产生一个顶层的窗口.name 作为窗口的名字,也就是窗口标题栏显示的内容. 返回值是生成窗口的标记符,可用函数glutGetWindow()加以引用. int glutCreate…
Android的Window类 2011-03-25 10:02 by Keis, 110 visits, 网摘, 收藏, 编辑 Android的Window类(一)  Android的GUI层并不复杂.它的复杂度类似于WGUI这类基于布局和对话框的GUI,与MFC.QT等大型框架没有可比性,甚至飞漫魏永明的MiniGUI都比它复杂许多.您也许会问,这样简单的GUI如何实现浏览器呢?原因很简单,浏览器有自己一套GUI.Android浏览器(WebKit)的GUI和Android的GUI实用同一套…
ActivityThread类:performLaunchActivity函数: activity.attach(appContext, this, getInstrumentation(), r.token,                         r.ident, app, r.intent, r.activityInfo, title, r.parent,                         r.embeddedID, r.lastNonConfigurationIns…
<一> Window window是android中的窗口,表示顶级窗口的意思,也就是主窗口,它有两个实现类, PhoneWindow和MidWindow,我们一般的activity对应的主要是PhoneWindow. 它概括了android窗口的基本属性和功能. Window属性列举如下: FEATURE_OPTIONS_PANEL = 0; 功能不明,参见后面的说明(默认使能) FEATURE_NO_TITLE = 1; 无标题栏 FEATURE_PROGRESS = 2; 在标题栏上显示…
参考:窗口管理 http://dev.dcloud.net.cn/mui/window/ 页面初始化:在app开发中,若要使用HTML5+扩展api,必须等plusready事件发生后才能正常使用,mui将该事件封装成了mui.plusReady()方法,涉及到HTML5+的api,建议都写在mui.plusReady方法中. mui.plusReady(function(){ console.log("当前页面URL:"+plus.webview.currentWebview().g…
ylbtech-DCloud-MUI:窗口管理 通过预加载解决切页白屏问题,通过封装原生动画解决SPA模式的动画卡顿 1.返回顶部 1.页面初始化 在app开发中,若要使用HTML5+扩展api,必须等plusready事件发生后才能正常使用,mui将该事件封装成了mui.plusReady()方法,涉及到HTML5+的api,建议都写在mui.plusReady方法中.如下为打印当前页面URL的示例: mui.plusReady(function(){ console.log("当前页面URL…
前言 很高兴遇见你~ 欢迎阅读我的文章 这篇文章讲解关于window token的问题,同时也是Context机制和Window机制这两篇文章的一个补充.如果你对Android的Window机制和Context机制目前位了解过,强烈建议你先阅读前面两篇文章,可以帮助理解整个源码的解析过程以及对token的理解.同时文章涉及到Activty启动流程源码,读者可先阅读Activity启动流程这篇文章.文章涉及到这些方面的内容默认读者已经阅读且了解,不会对这方面的内容过多阐述,如果遇到一些内容不理解,…
// */ // ]]> Emacs 之窗口管理 Table of Contents 1. Emacs 窗口相关 1.1. Emacs 里调整 window 大小 1.2. Emacs winner-mode 使用 1.3. Emacs 快速在窗口间跳转 1 Emacs 窗口相关   1.1 Emacs 里调整 window 大小 Command Key Desc enlarge-window C-x ^ 增高当前窗口,可以配合 C-u num 来使用 shrink-window 未绑定按键 减…
1 工具窗口管理 所有的窗口都是在view -> tools windows 下面的,这些窗口可以放在IDEA的上下左右各个位置:右键某个窗口后选择move to 即可进行位置调整 2 跳转 2.1 项目跳转 IDEA每个窗口只能打开一个项目,多个项目必须用多个不同的IDEA窗口才能打开:windows -> next project window 可以实现多个IDEA窗口的跳转 2.3 文件之间的跳转 同时查看多个文件时,可以通过 ctrl + tab 在浏览过的文件进行切换 技巧01:选择…
在前面的内容中我们依次介绍了TCP的连接建立和终止过程和TCP的各种重传方式.接着我们在这部分首先关注交互式应用TCP连接相关内容如延迟ACK.Nagle算法.Cork算法等,接着我们引入流控机制(flow control)和关联的窗口管理(window management)过程.在开篇之前我们先介绍几个相关的概念. 交互式TCP连接(interactive TCP connection):交互式TCP连接是指用户输入需要在client和server间传递的这种.用户的输入可能是一次键盘按键或…
窗口管理 所有的窗口均继承自wxTopLevelWindows: WXDLLIMPEXP_DATA_CORE(wxWindowList) wxTopLevelWindows; wxTopLevelWindows Frame窗口创建过程 在使用Frame窗口的时候,我们一般从wxFrame继承,创建时通过调用Create方法进行创建: debugWXFrame::debugWXFrame(wxWindow* parent,wxWindowID id) { ... Create(parent, id…
1.鼠标进入容器方向的判定 判断鼠标从哪个方向进入元素容器是一个经常碰到的问题,如何来判断呢?首先想到的是:获取鼠标的位置,然后经过一大堆的if..else逻辑来确定.这样的做法比较繁琐,下面介绍两种比较方便的方法: 第一种方法,利用圆和反正切三角函数 如下图所示: 以div容器的中心点作为圆心,以高和宽的最小值作为直径画圆,将圆以[π/4,3π/4),[3π/4,5π/4),[5π/4,7π/4),[-π/4,π/4)划分为四个象限. 代码如下: $(".box").on("…
nw.js FrameLess Window下的窗口拖拽与窗口大小控制 很多时候,我们觉得系统的Frame框很难看,于是想自定义. 自定义Frame的第一步是在package.config文件中将frame选项设置为false. { "name": "1", "main": "index.html", "nodejs": true, "single-instance": false, &…
win7下,鼠标拖动窗口向左.右,两个窗口就在一个桌面上平分秋色了 mac下只能使用三只爪向上的手势查看当前桌面运行的程序,或者三只爪左右滑动查看全屏显示的其他程序,有时候一边看书一边敲代码很不方便 最近留意到一款据说强大到爆的窗口管理软件,玩玩儿试试~让生活变得更美好! 预览效果: Moom使用教程:一款强大的Mac窗口管理神器(英文) 使用出现问题:一直提示我要我修改Accessibility的device,而给的传送门位置不对了,Mavericks把这个选项放到了安全里.但是我改了貌似没效…
Visio 2007/2010 左侧"形状"窗口管理 Visio 打开后,通常窗口左侧会有一个“形状”面板,我们可以方便地从中选择需要的形状.有时为了获得更大的版面空间或者不小心关闭了形状面板,怎么把它重新调出来? 我们可以从“视图”中把它找出来. 打开 Visio 后在“文件”菜单右侧会有一系列选项卡:开始.插入.设计等等.单击打开“视图”选项卡. 在“显示”栏单击“任务窗格”,从下拉菜单中点击“形状”. 窗口左侧就会列出形状面板啦. 类似的,在 Visio 2007 中可以通过同样…