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. POJ 2188线段树求逆序对

    题目给的输入是大坑,算法倒是很简单-- 输入的是绳子的编号wire ID,而不是上(或下)挂钩对应下(或上)挂钩的编号. 所以要转换编号,转换成挂钩的顺序,然后再求逆序数. 知道了这个以后直接乱搞就可 ...

  2. myBatis中Invalid bound statement (not found)错误

    环境:Idea.ssm.maven 由于使用maven的原因,maven不会扫描到mapper的xml文件所以会出现此类问题. 每次走到mapper方法时就抛异常:Invalid bound stat ...

  3. 自定义pulltoRefresh的刷新和加载动画

    一:定义刷新动画的layout 共同的设置方法是 1:getDefaultDrawableResId() 2:refreshingImpl() 正在刷新时的回调方法,可以设置开始动画 3:resetI ...

  4. 命令行神器 cmder

    下载地址:http://cmder.net/ 修改命令提示符λ为$ 进入解压后的 cmder 的目录,进入 vendor,打开 clink.lua 文件. 修改 local cmder_prompt ...

  5. 50个极好的bootstrap框架

    转自:http://sudasuta.com/bootstrap-admin-templates.html  https://www.cnblogs.com/sanhao/p/9184323.html ...

  6. Vrtualbox虚拟机中共享文件夹配置

    虚拟机装的是ubuntu 16.0.4版本的linux,本机是macOs 10.12.1版本 Vrtualbox进行如下配置 在Vrtualbox-->设置-->共享文件夹-->添加 ...

  7. Base64编码字符串时数据量明显变大

    那就是当把byte[]通过Convert.ToBase64String转换成Base64编码字符串时数据量明显变大 Base64编码的思想是是采用64个基本的ASCII码字符对数据进行重新编码.它将需 ...

  8. HDU-1043 Eight八数码 搜索问题(bfs+hash 打表 IDA* 等)

    题目链接 https://vjudge.net/problem/HDU-1043 经典的八数码问题,学过算法的老哥都会拿它练搜索 题意: 给出每行一组的数据,每组数据代表3*3的八数码表,要求程序复原 ...

  9. CF666E Forensic Examination(后缀自动机+线段树合并)

    给你一个串S以及一个字符串数组T[1..m],q次询问,每次问S的子串S[pl..pr]在T[l..r]中的哪个串里的出现次数最多,并输出出现次数. 如有多解输出最靠前的那一个. 我们首先对m个字符串 ...

  10. [原创]Linux 下 redis 链接一次

    刚接触 Linux ,在 Linux 下安装 redis 链接redis 出现了以下问题  Could not connect to Redis at 127.0.0.1:6379: Connecti ...