GUI系统】的更多相关文章

图解Android - Android GUI 系统 (1) - 概论 图解Android - Android GUI 系统 (2) - 窗口管理系统 图解Android - Android GUI 系统 (3) - Surface Flinger (TBD) 图解Android - Android GUI 系统 (4) - Activity的生命周期 图解Android - Android GUI 系统 (5) - Android的用户输入处理 Android 显示原理简介 深入Android…
通过 图解Android - Binder 和 Service 一文中,我们已经分析了Binder 和 Service的工作原理.接下来,我们来简要分析Android 系统里面都有哪些重要的Service, 它们分别完成什么样的功能. Android 大部分的系统Services 都运行在 System Server 这个进程里,用一个简单的方法来看看都有哪些重要的Service, “ps -t | grep <system_server pid>" system 1078 938…
Android的GUI系统是Android最重要也最复杂的系统之一.它包括以下部分: 窗口和图形系统 - Window and View Manager System. 显示合成系统 - Surface Flinger 用户输入系统 - InputManager System 应用框架系统 - Activity Manager System. 它们之间的关系如下图所示 只有对这些系统的功能和工作原理有基本的了解,我们才能够解答一些经常萦绕在脑海里的问题,比如说: Activity启动过程是怎样的…
Android 的窗口管理系统 (View, Canvas, WindowManager) 在图解Android - Zygote 和 System Server 启动分析一 文里,我们已经知道Android 应用程序是怎么创建出来的,大概的流程是 ActivityManagerService -> Zygote -> Fork App, 然后应用程序在ActivityThread 中的进入loop循环等待处理来自AcitivyManagerService的消息.如果一个Android的应用有…
Android的用户输入处理 Android的用户输入系统获取用户按键(或模拟按键)输入,分发给特定的模块(Framework或应用程序)进行处理,它涉及到以下一些模块: Input Reader: 负责从硬件获取输入,转换成事件(Event), 并分发给Input Dispatcher. Input Dispatcher: 将Input Reader传送过来的Events 分发给合适的窗口,并监控ANR. Input Manager Service: 负责Input Reader 和 Inpu…
作者:王选易,出处:http://www.cnblogs.com/neverdie/ 欢迎转载,也请保留这段声明.如果你喜欢这篇文章,请点推荐.谢谢! 理解UGUI的基础架构 UGUI是Unity在4.6中引入的新的GUI系统,与传统的中间件NGUI相比,这套新GUI系统有几个核心亮点: 放弃了Atlas的概念,使用Packing Tag的方式来进行图集的规划 放弃了depth来确定UI显示层级的概念,使用Hierarchy的SiblingIndex来确定先是层级 使用RectTransform…
Cocos2d-x v3.1 GUI系统--环境构建(七) 在使用Cocos2d-x的GUI系统时,由于生成的工程默认是没有将GUI系统所需的库导入到项目的,所以我们必须把库导入到工程中并对工程做一些配置才能够使用GUI系统.这篇文章我们先在配置Windows上的环境,并对GUI系统中的组织结构进行一个介绍,然后我们会写一个简单的Demo来测试我们配置的环境,最后我们配置Android环境,同样的也是通过此Demo进行测试. Windows平台环境配置 在工程目录下,我们先找到所依赖的库.GUI…
(搬运自我在SegmentFault的博客) 最近在学习Unity的过程中,自己做一款小游戏自娱自乐.自然需要用到GUI.但4.5中的GUI很难用,一个选择是传说中的NGUI插件.但对于4.6中的新GUI,我也有所耳闻.想了想还是选择官方的技术较好,于是就有了这篇. Canvas 在新GUI中,所有的UI组件都位于Canvas上.Canvas有三种渲染模式: Screen Space - Overlay:将UI放置在场景的上面,调节场景大小或调整分辨率,则Canvas也会随之调整. Screen…
理解Unity的新GUI系统(UGUI) Unity GUI 链接:UnityEngine.UI系统基础类架构图  Unity GUI 链接:UnityEngine Event & EventSystem系统架构图…
7.SurfaceFlinger SurfaceFlinger在前面的篇幅了,多有涉及. SurfaceFlinger是GUI刷新UI的核心,所以任何关于SurfaceFlinger的改进都会对android UI系统有重大影响. SurfaceFlinger主要分为4个部分 1)黄油计划---project butter 2)启动过程 3)SurfaceFlinger & BufferQueue的关系 4)Vsync信号的处理 7.1黄油计划 就是给android系统,图上一层“黄油”.我们来…
GUI 是任何系统都很重要的一块. android GUI大体分为4大块. 1)SurfaceFlinger 2)WMS 3)View机制 4)InputMethod 这块内容非常之多,但是理解后,可以触类旁通,其实现在主流的系统,包括andorid,ios在构架上,都是有很多相识之处. 我们先来讲SurfaceFlinger 1.OpenGL & OpenGL ES OPenGL ES 是android系统绘画的基础.关于OpenGL部分,可以百度了解下. 先来看一个OpenGL & S…
转自:https://www.cnblogs.com/deman/p/5584198.html 阅读目录 1.OpenGL & OpenGL ES 2.Android的硬件接口HAL 3.Android显示设备:Gralloc &  FrameBuffer 4.FrameBufferNativeWindow 5.Surface GUI 是任何系统都很重要的一块. android GUI大体分为4大块. 1)SurfaceFlinger 2)WMS 3)View机制 4)InputMetho…
通常情况下,一般使用QT来制作Linux系统的GUI,但是由于我们团队对于游戏有着狂热的热爱,以及有游戏的相关开发经验. 在做过ROS与Arduino通信,Unity3d与Arduino通信后,我感觉Unity3d和ROS之间存在一种通信的可能.在测试后,结果是令人激动的.Unity3d在Linux上的运行结果令人震撼. 使用socket网络通信使得ROS与Unity3d可以灵活的交换数据.…
Android系统很多,但是最常用的就两类,一类是有系统进场管理的,系统窗口.还有一类就是由应用程序产生的,应用窗口. 1.系统窗口的添加流程 1.1 addStatusBarWindow PhoneStatus.java中 private void addStatusBarWindow() { makeStatusBarView(); mStatusBarWindowManager = new StatusBarWindowManager(mContext); mStatusBarWindow…
SurfaceFlinger 前面说的,就是一个surface的合成.SurfaceFlinger就是一个默默的记录着,它不会对surface的内容有什么改动. WMS(WindowsManagerService)就是对surface的管理,或者说是一个大管家.它负责协调各方面资源. ViewRoot就是一个个演员,负责表演(产生surface). 从IO系统角度而言,WMS至少要干这几件事. 全局窗口管理 全局事件派发 键盘 触摸屏 1.WMS综述 1)WMS将以同AMS等一样的形式,系统se…
9.Vsync第二部分 在上一篇中我们讲到,视图的刷新需要很多步骤, void SurfaceFlinger::handleMessageRefresh() { ATRACE_CALL(); preComposition(); //合成前的准备 rebuildLayerStacks();//重新建立layer堆栈 setUpHWComposer();//HWComposer的设定 #ifdef QCOM_BSP setUpTiledDr(); #endif doDebugFlashRegions…
8.Vsync 8.1概论 VSYNC(Vertical Synchronization)是一个相当古老的概念,对于游戏玩家,它有一个更加大名鼎鼎的中文名字—-垂直同步. “垂直同步(vsync)”指的是显卡的输出帧数和屏幕的垂直刷新率相同,这完全是一个CRT显示器上的概念.其实无论是VSYNC还是垂直同步这个名字, 因为LCD根本就没有垂直扫描的这种东西,因此这个名字本身已经没有意义.但是基于历史的原因,这个名称在图形图像领域被沿袭下来.在当下,垂直同步的含义我们可以理解为,使得显卡生成帧的速…
一.如何使用GUI事件来检测鼠标是否按下的事件: 获取当前事件:var e:Event=Event.current: using UnityEngine; using System.Collections; public class BtnEvent : MonoBehaviour { // Use this for initialization void Start() { } // Update is called once per frame void Update() { } void…
Gralloc模块是从Android Eclair(android 2.1)開始增加的一个HAL模块,Gralloc的含义为是Graphics Alloc(图形分配).他对上为libui提供服务,为其分配显存,刷新显示等.对下对framebuffer进行管理. gralloc代码通常位于hardware/libhardware/modules/gralloc文件夹下.包括下面几个文件: Android.mk  framebuffer.cpp  gralloc.cpp  gralloc_priv.…
1.从SetContentView讲起 1.1Activty的setContentView里面的内容 public void setContentView(@LayoutRes int layoutResID) { getWindow().setContentView(layoutResID); initWindowDecorActionBar(); } 首先这个getWindow是什么? mWindow, 作用: mWindow = new PhoneWindow(this); 在attach…
6 BufferQueue 上一篇已经说到,BufferQueue是SurfaceFlinger管理和消费surface的中介,我们就开始分析bufferqueue. 每个应用 可以由几个BufferQueue? 应用绘制UI 所需的内存从何而来? 应用和SurfaceFlinger 如何互斥共享资源的访问? 6.1 Buffer的状态 const char* BufferSlot::bufferStateName(BufferState state) { switch (state) { ca…
Surface的管理 Surface是窗口能真正显示到物理屏幕上的基础,由surfaceflinger管理,可以通过WindowStateAnimator.java中的变量mDrawState来查看每个窗口相关的surface的状态. surface有5中状态: WindowStateAnimator.java //Surface还没有创建. staticfinal int NO_SURFACE = 0; //Surface已经创建,但是窗口还没绘制,这时surface是隐藏的. staticf…
学习Unity 4.6新GUI系统 http://segmentfault.com/a/1190000000642686…
随着 Unity 4.6 发布,新 UI 系统终于与大家见面了. RectTransform Unity UI 系统使用 RectTransform 实现基本的布局和层次控制.RectTransform 继承于 Transform,所以 Transform 的所有特征 RectTransform 同样拥有.在 Transform 基础上,RectTransform 增加了 轴心(pivot).锚点(实际上是用 anchorMin.anchorMax 两个点定义的矩形区域).和 尺寸变化量(siz…
GUI的主题与中心思想没有什么关系,纯粹是一种控制GUI外观的配置方案.几乎所有的视觉效果都由主题是控制的,一个设计良好的主题模块,可以通过配置文件模拟不同的系统.主题的设计可繁可简,能满足自己的需要就可以了.这里以我写得几个GUI,FTK,CANTK和WTK为例,介绍一下主题得设计. 主题的内容 一般来说每种控件都有一种或多种状态,常见的状态有正常状态.鼠标按下状态.鼠标OVER状态.只读状态,选中状态和禁用状态等.比如文本只用正常状态,按钮有正常状态.鼠标按下状态.鼠标OVER状态和禁用状态…
几年前写<嵌入式GUI FTK设计与实现>,没写几篇就停止更新了.当时自己研究过MicroWindows, X Window, DirectFB, GTK+和Android的GUI,又写过嵌入式GUI FTK,以为自己对GUI还算熟悉,但是真正写起来还是有些力不从心.另外硬件的飞速发展,我感觉FTK的实用价值不大了,自己的精力转向了CANTK的开发,所以没有再写下去. 这几年我又实现了两个GUI,一个是CANTK,它是基于HTML5的CANVAS元素实现的,针对移动设备的GUI,它已经开源了.…
OnGUI是Unity上一个时代的UI系统,而现在运行时的UI系统已经被UGUI取代,但是Editor的UI还是在用老的这一套GUI系统.比如unity编辑器里的所有窗口,布局,按钮,拖动条.滚动等等都是用GUI来写的.GUI提供了一套Event事件系统,虽然不能模拟它的事件(其实是可以发的 EditorWindow.SendEvent ),但是确可以进行拦截. 比如说: 1.限制Hierarchy视图的树状结构.(让某些对象不可随意移动层次结构) 2.限制Project里的资源不能任意拖动(限…
Android UI系统的知识结构如下图所示: 对于 一个GUI系统地使用,首先是由应用程序来控制屏幕上元素的外观和行为,这在各个GUI系统中是不相同的,但是也具有相通性.Android系统在这方面,包含了基本的控件控制,键盘事件响应,窗口间跳转.对话框.菜单.样式等内容,这是GUI系统所具有的通用内容.…
本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/16384009 作者:毛星云(浅墨)    邮箱: happylifemxy@163.com 众所周知,GUI是游戏中不可缺少的元素,这篇文章中,我们首先了解了游戏GUI界面的知识与相关概念,然后一起设计了一个封装好GUI图形界面的C++类.这个类有着非常强的扩展性,使用也是极其方便,很适合二次开发. 先看一张实现的效果图吧:…
因为Unity内建的GUI不管是不是从开发效率或效率强制,因此,许多派生GUI插入,什么插件的选择,是一个非常值它被认为是. 既然是评价,就会有非常多的主观意识,这不一定成为选择的根据. 再比方.我已经习惯用NGUI插件了,那么不管你把NGUI说的再难用也无法得到我的认同.所以这篇文章很多其它的是给新手或者没接触过Unity的人作为參考的. 1.Unity自带的GUI,或者对其进行封装自己开发一套GUI框架 这两个选择都是很不明智的.Unity自带的GUI效率很低,每次渲染都是一个DrawCal…