Client API

The Aura Client API is an API Aura uses to communicate with the client application using the Aura system. Since Aura is very simple, providing just basic window and event types, there are many details it cannot know about directly. It delegates some functionality to its client (such as window stacking) and also provides the client API as a conduit for users of Aura to communicate with the embedding environment.

 
For example, Aura does not implement tooltips directly, these are a feature implemented by an client application. The Client API has knowledge of tooltips however so that a system like Views (which depends on Aura) can specify tooltip parameters. The client application can interpret this data and show the relevant UI.
 
The Aura Window class supports opaque properties, and a list of well known keys is provided as part of the Client API.
 
In the ChromeOS Desktop Window Manager, the Aura Client is a component known as the "Aura Shell" or "Ash":
 
A breakdown of responsibility between Aura and the Aura Shell (as implemented for ChromeOS):

Aura

  1. Basic window type and hierarchy
  2. Event dispatch
  3. Compositor integration
  4. Client API

Aura Shell

  1. "Window Manager" features like:
    1. Window dragging and resizing
    2. Transient and modal windows
    3. Maximize/Restore/Full Screen
    4. Tooltips
    5. Drag and drop
    6. Window embellishments like shadows
    7. Window stacking
    8. Advanced layout heuristics
  2. Shell features like:
    1. Application launcher(s)
    2. Customizable desktop background
    3. Global keyboard shortcuts
    4. Login/lock screens, screen savers, etc.

The Aura Shell implements the Aura Client API, and uses Aura and Views to achieve all of this.

 
In the diagram above, I show a second Aura Client API implementation. This is what we will end up with when we transition Desktop Chrome on Windows to use the Aura system, sometime in 2012. This will allow us to hardware accelerate our UI.
 
With this in mind, it is important to keep the Aura layer of the framework clean and simple, since much of the ChromeOS DWM functionality and feature set is not relevant to desktop Chrome, just the basic windowing primitives

UI Framework-1: Aura Client API的更多相关文章

  1. Jersey(1.19.1) - Client API, Testing services

    The Jersey client API was originally developed to aid the testing of the Jersey server-side, primari ...

  2. Net Framework 4.0 和.Net Framework 4.0 Client Profile

    Net Framework 4.0 和.Net Framework 4.0 Client Profile区别: .Net Framework 4.0毫无疑问就像是.Net Framework 2.0一 ...

  3. Dynamics 365中的Client API form context (formContext)

    适用于Dynamics 365 for Customer Engagement apps 9.x版本. 本文是一篇翻译,原文来源是微软官方文档. 本文链接:https://www.cnblogs.co ...

  4. 创建dynamics CRM client-side (二) - Client API

    如果我们想用script来直接在form上做一些修改, 我们需要用到client api 来做交互. 我们可以用以下来理解: Form <---> Client API <---&g ...

  5. ecshop /api/client/api.php、/api/client/includes/lib_api.php SQL Injection Vul

    catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 ECShop存在一个盲注漏洞,问题存在于/api/client/api. ...

  6. Memcached Java Client API详解

    针对Memcached官方网站提供的java_memcached-release_2.0.1版本进行阅读分析,Memcached Java客户端lib库主要提供的调用类是SockIOPool和MemC ...

  7. HBASE的读写以及client API

    一:读写思想 1.系统表 hbase:namespace 存储hbase中所有的namespace的信息 hbase:meta rowkey:hbase中所有表的region的名称 column:re ...

  8. Jersey(1.19.1) - Client API, Uniform Interface Constraint

    The Jersey client API is a high-level Java based API for interoperating with RESTful Web services. I ...

  9. Jersey(1.19.1) - Client API, Ease of use and reusing JAX-RS artifacts

    Since a resource is represented as a Java type it makes it easy to configure, pass around and inject ...

随机推荐

  1. Python入门机器学习

    如何通过Python入门机器学习 我们都知道机器学习是一门综合性极强的研究课题,对数学知识要求很高.因此,对于非学术研究专业的程序员,如果希望能入门机器学习,最好的方向还是从实践触发. 我了解到Pyt ...

  2. Mysqldump逻辑备份与恢复

    文档结构: mysqldump备份影响性能,可能会把内存里面的热数据给冲刷掉,5.7后,新增一个参数,innodb_buffer_pool_dump_pct,控制每个innodb_buffer中转存活 ...

  3. WPF XAML

    xmlns 在xml中专门用于声明名字控件, xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 是 ...

  4. FPGA之阻塞赋值与非阻塞赋值

    Verilog语言中讲的阻塞赋值与非阻塞赋值,但从字面意思来看,阻塞就是执行的时候在某个地方卡住了,等这个操作执行完在继续执行下面的语句,而非阻塞就是不管执行完没有,我不管执行的结果是什么,反正我继续 ...

  5. 51nod 1098 最小方差 排序+前缀和+期望方差公式

    题目: 题目要我们,在m个数中,选取n个数,求出这n个数的方差,求方差的最小值. 1.我们知道,方差是描述稳定程度的,所以肯定是着n个数越密集,方差越小. 所以我们给这m个数排个序,从连续的n个数中找 ...

  6. jQuery学习(一)——jQuery入门

    1.jQuery基础 Jquery它是一个库(框架),要想使用它,必须先引入! jquery-1.8.3.js:一般用于学习阶段. jquery-1.8.3.min.js:用于项目使用阶段 官网下载后 ...

  7. ZBrush雕刻生物小技巧

    本教程主要学习如何使用ZBrush®3D图形绘制软件的工具和笔刷雕刻酷酷的生物造型,我们今天来看看在游戏.媒体和电视领域有着十几年丰富经验的3D角色艺术家Francis-Xavier Martins是 ...

  8. Vim常用命令及配置方案

    Vim常用命令及配置方案   几句话 很久之前就接触到vim,初学那阵觉得vim很酷炫,但确实对新手不是很友好.我也就简单看了下基本操作就上手了,但又不是长期在vim下工作,这就导致了每一次重新使用v ...

  9. 深入了解JWT以及JWT的执行机制

    1.JWT以什么样的形式存在? eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9 ...

  10. 字符串的格式化(转自武sir)

    百分号s方式: (name)      可选,用于选择指定的key flags          可选,可供选择的值有: +       右对齐:正数前加正好,负数前加负号: -        左对齐 ...