`
daojin
  • 浏览: 690053 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Android之linux之基础建设之窗口系统

 
阅读更多

活动窗口(Active),焦点窗口(Focus)和前景窗口(Foreground)之间的关系
2008-12-25 18:24

UI的,我想势必会遇见这些问题,之前由于对这3种状况的窗口多少会有误解和混淆,正好现在抽空找了一下文章,整理了一下,做个笔记吧。

参考文章“Linux焦点模型分析”

URLhttp://www.ibm.com/developerworks/cn/linux/l-cn-focus/index.html

(记住这篇文章是描述Linux焦点模型的,原本和Windows没啥关系,其实算是仇家,只是其中有一段是描述Windows焦点模型的,所以偷过来用一下,哈哈,窃书不算偷啥,所以请看文章的“Linux Windows 焦点系统”这段就行了,其他可以略过

下面是整理的内容和笔记:

任何一个时候,我们的Windows桌面上总有一个最前台的窗口,其实说简单的,就是标题栏变成深蓝色的那个窗口,仅此一个,这个窗口就是前景窗口(Foreground Window),其他窗口就是后台窗口(Background Window)。那创建前景窗口的线程就是前景线程(Foreground Thread),这个线程并不一定就是应用程序的主线程。

线程内部会维护当前自己的活动窗口(Active Window)和焦点窗口(Focus Window), 焦点窗口其实只是窗口的一个属性,其实就是“焦点状态”是窗口的一个属性,而焦点窗口的顶层窗口就是活动窗口,举个例子:一个对话框中有一个按钮,当按钮 获得焦点的时候,那此按钮就是焦点窗口,则包含此按钮的对话框就是活动窗口,若出现窗口嵌套的情况,则最根的那个窗口才是活动窗口。

上面2段已经分别描述了前景窗口,活动窗口和焦点窗口的一些情况,可是前景窗口和活动窗口又是什么区别呢?

焦 点窗口只是一个局部的概念,并不是所有的焦点窗口都可以获得键盘事件。只有前景线程的焦点窗口才能从系统队列中得到键盘事件,而前景线程中的活动窗口是前 景窗口。在任何时刻系统中都只可能有一个被激活的窗口,这就是前景窗口。这也就回答了上一节中的问题:与系统队列相连接的线程就是前景线程,而那个可以得 到键盘事件的窗口就是前景线程的焦点窗口。(以上文字引自开头的文章)

相信仔细理解一下这些描述,应该能对你有所帮助了。

分享到:
评论

相关推荐

    android同linux底层通信机制实现

    【Android与Linux底层通信机制实现】是Android系统开发中的核心环节,它涉及到Java层与JNI层的交互以及如何调用Linux底层驱动。Android应用程序主要由Java编写,运行在Dalvik虚拟机上,但为了实现与硬件设备的直接...

    linux系统下搭建android开发平台

    菜鸟系列之一:在UBUNTU LINUX 下搭建ANDROID开发平台。 本文档系统的整理了在ubuntu系统下如何搭建android开发平台,对android感兴趣的同学可以借鉴学习下。

    Android and Linux Kernel

    2. Android操作系统基础(Android 1/2):包括Android框架整合概述、应用与框架编程、内核与用户空间设备驱动程序的差异、本地共享库、Android NDK、Java本地接口、Android与Linux的设备控制流程、框架与硬件服务等...

    linux-2.6.25-android-1.0_r1.tar.gz

    Android操作系统是基于Linux内核构建的,这意味着Android系统的核心是Linux,但在此基础上添加了自己的用户空间组件和库。Android使用内核来提供硬件抽象层,使得应用程序可以运行在不同的硬件平台上,而无需关心...

    Android系统架构概述PPT

    Android系统 = Linux内核 + Android运行时。 Android系统使用的Linux内核包含了一些专用驱动,例如Logger、Binder、Ashmem、Wakelock、Low-Memory Killer和Alarm等,这些Android专用驱动构成了Android运行时的基石。...

    Linux_Kernel_for_Android_4.0_初稿

    1. **未使用X窗口系统**:Android系统并未采用标准Linux中的X窗口系统。 2. **使用Bionic Libc替代glibc**:Android使用了专为其设计的Bionic Libc库,而不是标准Linux中的glibc。 3. **包含Android专用驱动程序**:...

    基于Android设备的Kali Linux渗透测试基础

    基于Android设备的Kali Linux渗透测试教程基于Android设备的Kali Linux渗透测试教程基于Android设备的Kali Linux渗透测试教程

    Goodix GT9XX 1.8 drivers Android or Linux

    本主题主要围绕Goodix GT9XX 1.8版本的驱动程序,探讨其在Android和Linux操作系统中的应用。 【描述】"Goodix GT9XX 1.8针对Android或Linux操作系统的驱动" Goodix GT9XX 1.8驱动程序专为运行Android和Linux操作...

    aarch64-linux-android-4.9

    标题中的"aarch64-linux-android-4.9"是一个针对Android平台的交叉编译工具链的标识符,它主要用于在非Android系统(如x86架构的Linux或Windows)上构建适用于Android设备的ARM64架构(aarch64)的应用程序和库。...

    android 刷系统 必备工具 fastboot linux 版

    总结,"android 刷系统 必备工具 fastboot linux 版"是Android爱好者和开发者进行设备固件更新的重要工具。理解fastboot的工作原理和正确使用方法,可以有效地进行系统升级和故障修复。但务必谨慎操作,遵循安全指南...

    Android系统源代码情景分析 / 罗升阳著

    在内容上,《Android系统源代码情景分析(含CD光盘1张)》结合使用情景,全面、深入、细致地分析了Android系统的源代码,涉及到Linux内核层、硬件抽象层(HAL)、运行时库层(Runtime)、应用程序框架层...

    android系统原理及开发要点详解

     第3章“Android的Linux内核与驱动程序”,介绍Android内核的特点、Android中使用的专用驱动程序、Android系统可能使用的标准设备驱动。  第4章“Android的底层库和程序”,介绍Android系统的基础程序,以本地程序...

    linux 64位 android-sdk_r13-linux_x86

    "Linux 64位 Android-SDK_r13-linux_x86" 这个标题指的是一款专为64位Linux系统设计的Android软件开发工具包(Android Software Development Kit,简称Android SDK)。这里的"r13"表示这是Android SDK的第13个版本,...

    Android的系统架构说明.pdf

    Android系统架构是其高效运行的核心基础,由四层组成,分别是Linux内核、核心类库(含Android运行时环境)、应用程序框架和应用程序。这一架构设计旨在提供稳定的性能和强大的功能,同时也方便开发者进行应用开发。 ...

    Android开发入门资料之基础宝典

    教程名称: Android开发入门资料之基础宝典【】Android中文帮助文档【】Android新手入门 FAQ【】Android系统原理与开发要点详解【技术文档】【】android系统简介【】Linux开发Android系统基础知识大汇总【】...

    Android系统源代码情景分析 PDF 完整版 ZIP.002(二个压缩包)

    ndroid系统源代码情景分析的评论 ...在国内知名IT技术社区CSDN上发表了数十篇高质量的Android系统原创性文章,并且开设博客专栏--《老罗的Android之旅》,积极与网友互动,深受大家喜爱,访问量一直居于前茅。

    [14本经典Android开发教程]-5-linux Android基础知识总结

    [14本经典Android开发教程]-5-linux Android基础知识总结 ------------------------------------------------------- linux ,Android基础知识总结 1. Android编译系统分析 2. 文件系统分析 3. 制作交叉工具链 4. ...

    android 浮动窗口 小窗口

    在Android平台上,浮动窗口(通常称为悬浮窗或小窗口)是一种可以独立于应用程序主界面,在屏幕上方自由移动和缩放的UI元素。这种技术在许多应用中被广泛使用,例如浮动便签、屏幕录制工具或者多任务管理器。在本篇...

    Android点餐系统项目

    《Android点餐系统项目》是一门深度探讨如何在Android平台上构建无线点餐系统的视频教程,旨在教授学员如何利用Android技术实现一个完整的点餐系统,包括客户端和服务端的开发。这门课程涵盖了移动应用开发的多个...

Global site tag (gtag.js) - Google Analytics