嵌入式终端桌面脚本插件化方案实现(一)
来源:互联网 发布:淘宝洛奇英雄传单机版 编辑:程序博客网 时间:2024/05/17 10:24
前言
桌面插件化一直是手机终端软件上的一个难题,如何提供一个弹性化、可扩展性强的桌面插件化框架一直是终端软件开发人员所追求的。
在山寨机上更是如此,山寨机的桌面可谓空白,更谈不上为应用开发者提供的desktop框架,插件化也是妄谈的。
本文就是介绍了一种在山寨机甚至其他平台上的终端桌面插件化的方案。
桌面框架
框架概要图如下:
思想也很简单,就是设计一个桌面插件容器管理插件的排版布局、插件间的调度、焦点的切换等等,然后事件当前焦点插件能够处理则处理,处理不了则给手机系统处理。
关键是插件,如何设计一个插件,这个插件到底是是个dll呢,还是个脚本?
dll有很多种需要依赖于各种中间件山寨机上中间件林立能够支持多应用N应用的也没有几个(通用性不好),并且桌面的插件个人定位在轻量级的应用上,选择脚本或更合适。
脚本选择什么合适呢?是python 还是lua,当然是lua了,基于脚本的效率还是山寨机的资源lua最为合适,当然我个人也只对lua比较熟悉。
这个数据结构有这么几个需要注意的地方:
脚本插件句柄lua_State*L,其实lua脚本插件app是生存在一个堆栈空间里,一个脚本插件就对应一个堆栈空间,这样多个脚本插件之间的空间肯定各不相同不相互影响,这样解决了同时多个脚本插件运行的问题。
(2)虚表,其实是脚本插件对象的成员函数,用于被插件容器调用来处理插件的各种事件及状态。
插件脚本
上面解决了脚本插件的问题,实际上插件在山寨机上放的位置,插件的数目等等,都是不可控的。因为山寨机屏幕分辨率众多,而且各个DH会做自己的特殊处理,这样写死插件的显示范围显然是不合适的。另外各个机器的资源也不一,这个机器适合显示两个插件,那个机器的内存满足显示三个插件,众口难调如何解决?
既然用到了脚本,那我们从lua下手吧。且看配置Config.lua文件。
Config.lua确定了桌面插件容器的显示范围,以及一行、一列显示的插件的个数,以及插件脚本的名字。
下面则是各个插件的代码,仅仅为一简单的框架,能够处理各种事件并绘制。
weather.lua
stock.lua
插件显示效果
weather 插件active时效果
效果1效果1 trace信息可见weather、stock两个脚本插件都运行起来了,并且weather插件是处于active的,stock是处于deactive的。Stock插件active时效果效果2效果2 trace信息
注意下trace信息就知道实际上是发送了一个key down事件,焦点从weather插件切换到了stock插件上。总结至此整个桌面脚本插件化方案已经讲叙的很清楚了,接下来详细内幕只能够听下回分解了。
- 嵌入式终端桌面脚本插件化方案实现(一)
- 嵌入式XPE终端方案
- python实现youdao终端脚本
- 嵌入式linux移植过程中“串口终端”问题解决方案
- WebQQ桌面化替代方案
- 【Android】开发桌面小插件(一)
- Android桌面小插件开发一
- Linux脚本中实现终端输入
- 一种嵌入式Web Sever的实现方案
- AppWidget实现机制分析--什么是桌面插件
- 终端桌面安全管理定义
- centos 桌面没有终端
- 桌面插件
- 基于8051嵌入式系统的GPRS终端实现
- 基于SIP的嵌入式无线可视电话终端设计与实现
- 基于8051嵌入式系统的GPRS终端实现
- php调用R的脚本实现方案
- VC下实现虚拟桌面的两种方案
- asp.net生成高清晰缩略图(缩小图片到指定大小)
- サーバ接続先を使用し、Webサービスに接続する
- jsp.net连接数据库的随机查询
- VB无所不能之五:建立“标准”DLL动态链接库文件(2)
- 删除字符串最后一个字符的几种方法
- 嵌入式终端桌面脚本插件化方案实现(一)
- 第一篇文章
- 断开SVN连接
- 使用servlet和Java Bean访问MySQL
- 利用钩子函数捕获Windows键盘动作
- jsp分页
- TO_LOB函数
- 蓝牙基础及应用 && 蓝牙耳机用到的协议 && TI2540学习笔记
- 常用正则表达式