小米主题MORE & MAML 概述

一、定义

 

MAML引擎脚本语言:MIUI Application Markup Language for MORE (MIUI MORE引擎应用标记语言)

MORE渲染引擎:Markup Oriented Rendering Engine (基于标记语言的渲染引擎)

 

二、概述

最初用于百变锁屏,使用xml用特定的语法描述锁屏界面。后来不断增强功能,逐步演化成一套接近通用的界面描述语言和图形渲染引擎,在一定需求下可用于开发风格多变的用户界面。可方便地通过更换皮肤改变界面风格、动画甚至交互方式。

MAML语言和Android的界面描述xml 类似. 所不同的是Android描述的是静态界面,对界面元素的更改依赖java代码。MAML描述的是静态界面+动态属性,UI在时间线上按一定的帧率不断刷新,UI显示根据元素属性的变量表达式的计算结果实时更新。MAML语言和运行时引擎已经从锁屏中独立出来作为MIUI内置的通用框架,除了显示时间日期等,还支持查询标准Content Provider来获取各种信息如天气。显示图片文本等各种元素,各种动画,滑动点击等界面交互控件,适于实现展示信息或有简单交互操作的界面。比如时钟、天气小部件、闹钟响铃界面。

框架支持动态帧率,不必按照固定帧率不停渲染,在没有动画和更新的时侯停止渲染,此时仅占用极少资源,对于缓慢变化的动画使用低帧率渲染,高动态的动画开始后立即调整到高帧率全速渲染。全速渲染时全屏帧率基本可以达到60帧。合理使用可以既炫酷又不费电。

 

三、MORE引擎适用哪些类型的界面开发

  1. 展示性的信息,如图片,文字 (不适合列表信息和大段文本,不适合用户输入)
  2. 需要有丰富的界面动画及交互动画。
  3. 较简单的交互,拖拽、点击 (但不限于拖拽点击,通过xml代码可以实现部分类似java编程中onTouchEvent所能做到的交互)
  4. 使用标准控件无法实现的信息展示方式,或者无法实现的交互方式,需要自制控件的,大部分可以通过xml代码方便地描述实现。
  5. 需要灵活更换皮肤风格,并且界面动画和交互动画甚至部分交互方式都可以通过皮肤更换。无需更改应用程序。

 

比如一些简单的工具类应用程序、无输入的操作界面希望能更换操作模式(例如来电接听界面)和桌面小工具可以考虑使用,也可以作为一个动画框架实现类似电子贺卡的界面,可支持交互,做为应用程序中的彩蛋(比如短信中的生日彩蛋)

 

四、MIUI主题使用MORE的模块

百变锁屏 com.android.internal.policy.impl.AwesomeLockScreen
桌面时钟 com.miui.home.launcher.gadget.AwesomeClock
相框小工具 com.miui.home.launcher.gadget.PhotoFrame
闹钟响铃界面 com.android.deskclock.AlarmAlertFullScreen
自由桌面动态小部件 com.miui.home.launcher.gadget.AwesomeGadget
百变壁纸 com.miui.home.launcher.MiWallpaper (基于SurfaceView)
动态图标 与图标相关的包名当其文件夹名
天气小工具 com.miui.home.launcher.gadget.Weather_2x4_custom (v4)

47 条评论

评论功能已关闭.

©2015-2016 zhutidasai.com. 版权所有 京ICP备16041368号-3