查看: 6784|回复: 3

U-NAS v2.0 可安装应用开发(四)

[复制链接]
发表于 2013-1-25 05:10:08 | 显示全部楼层 |阅读模式
本帖最后由 mjyu51 于 2013-1-25 05:11 编辑

第二章  U-NAS 2.0应用(App)数据结构2.1 U-NAS 2.0应用的目录结构2.1.1 U-NAS应用的根目录:
由于多语言的存在,所以存在多个应用的根目录:/opt/web/webman/LANGUAGE/admin/apps
·         /opt/web/webman/zh_cn/admin/apps
·         /opt/web/webman/en_us/admin/apps
·         
2.1.2 U-NAS 2.0 应用目录结构   [中文为例
                                 apps/
                                           |- App1 [应用目录
                                           |- App2 [应用目录
                                           |- App3 [应用目录
                                           |- 。。。
2.1.3 单个App目录结构:
每个U-NAS 2.0应用安装包必须至少包含以下文件:
1.       U-NAS_APP.xml [应用属性说明,xml格式
2.       Menu文件,文件名的相对路径需要在U-NAS_APP.xml APP_MENU说明
3.       js文件, 文件名的相对路径要在U-NAS_APP.xmlAPP_JS说明
4.       icon文件 css目录/文件),文件名的相对路径要在U-NAS_APP.xmlAPP_SHORTCUT说明
5.       其它应用相关的文件
            apps/
                         |- ---  App1_Path/
                                                         |-U-NAS_APP.xml                  [属性配置文件xml格式,必须
                                                         |- js                                               [js文件,必须,js文件用于显示窗口
                                                         |- css                                            [css目录及文件,用于显示
                                                         |-images                                     [images目录及文件,必须?
                                                         |-Menu文件                           [实际是css,用于显示菜单
                                                         |-其它目录                               [用户自己定义
                                                         |-。。。
                        |-----App2_Path/
                      |------。。。
注意:每个语言都要提供一个完整的目录及文件。
2.2 U-NAS 2.0应用安装包的数据结构 [U-NAS_APP.xml文件2.2.1 U-NAS应用 属性配置文件  U-NAS_APP.xml
由于deb 包的control文件还不能包含所有的Apps必须信息,另外control文件的约束比较大,所以U-NAS提供一个属性配置文件U-NAS_APP.xml。这个文件采用标准的XML文件格式。每个App都必须包含这个文件,并且放在安装目录的顶层(即apps/AppDir/U-NAS_APP.xml)。
No.

Item

Description

Notes


APP_NAME

应用名称

必须和 deb Package一样


APP_VERSION

版本号







APP_ACCESS

访问权限:Admin/User(系统管理员/普通用户)



APP_REMOVABLE

是否可卸载:Yes/No







APP_JS

JS File 用于显示窗口(包含在desktop-init.js

App窗口显示






APP_SHORTCUT

用于显示在桌面上的图标,需要提供一个文件

指定桌面App icon样式






APP_BACKUP

备份配置脚本,系统备份时会调用



APP_RESTORE

恢复配置脚本,系统恢复配置时会调用



APP_UPGRADE

升级脚本,系统在线升级时调用







APP_MENU_POSITION

菜单安装位置
0U-NAS
1:控制中心
2:窗口
3:工具
4:应用
5:帮助

指定 应用 属于那个 顶级菜单
一般应该用4


APP_MENU

菜单文件

指定次级菜单位置


APP_SUBMENU

子菜单? 考虑Debian标准菜单规则?







APP_DESKTOP_CATEGORY

APP属于哪个桌面框
0:桌面
1:控制中心
2:系统信息
3:应用服务
4U下载
5:其它(目前还没有)

决定 Icon 安装位置
0 —桌面独立图标
1-4   桌面分类框


APP_DESKTOP_SUB_CATEGORY


目前还没用到 ,保留扩展用





U-NAS_APP.xml例子:
  
<?xml version="1.0"?>
<UNASOS>
  <APP_NAME>douban</APP_NAME>
  <APP_VERSION>1.0.0</APP_VERSION>
  <APP_ACCESS>User</APP_ACCESS>
  <APP_REMOVABLE>Yes</APP_REMOVABLE>
  <APP_JS>douban.js</APP_JS>
  <APP_SHORTCUT>douban_css.css></APP_SHORTCUT>
  
  <APP_BACKUP></APP_BACKUP>
  <APP_RESTORE></APP_RESTORE>
  <APP_UPGRADE></APP_UPGRADE>
  <APP_MENU_POSITION>5</APP_MENU_POSITION>
  <APP_MENU>css/doubanMenu</APP_MENU>
  <APP_SUBMENU>1</APP_SUBMENU>
  <APP_DESKTOP_CATEGORY>3</APP_DESKTOP_CATEGORY>
  <APP_DESKTOP_SUB_CATEGORY></APP_DESKTOP_SUB_CATEGORY>  
</UNASOS>

解释说明参考上面的表格。必须填写的部分用红色标出。 其它为选项。 其中APP_NAME必须和deb包的Package名一致。
2.3 U-NAS 2.0应用的安装位置 (目录位置)
U-NASweb os系统目录放在:/opt下,U-NAS应用统一放在:/opt/web/webman/LANGUAGE/admin/apps/App_Dir;  
每个应用在/opt/web/webman/LANGUAGE/admin/apps下都有一个自己的单独目录。需要充分考虑其它应用存在的相同 目录的可能,因此,应用的 目录名应比较特殊,以防止重名。
2.4 U-NAS 2.0应用的多语言处理
U-NAS采用静态翻译的方法处理多语言问题,即每个页面都有对应的语言页面,分别放在不同的语言目录下。因此,U-NAS 2.0应用需要提供不同的语言页面。开发者需要完成多语言翻译,并置于不同语言目录下。
比如:
·         /opt/web/webman/zh_cn/admin/apps/App_Dir
·         /opt/web/webman/en_us/admin/apps/App_Dir
·         语言的目录用iso的国家和语言代码,但用_替代-
/opt/etc/languages文件中,列出了所以支持的语言(不包含简体中文和英文)。 如果有新的语言支持,只需要在数组中添加相应的项即可。
                           
<?php$Languages=array(                                                array('zh_tw','繁体中文'),                                                array('fr','français')                                );?>
2.5 U-NAS 2.0应用的菜单
菜单文件实际上也是一个 css文件,放到 应用的目录下,由 APP_MENU定义该文件的路径(相对路径)
菜单显示 位置由APP_MENU_POSITION APP_SUBMENUU-NAS_APP.xml中定义
APP_MENU_POSITION 对应顶层菜单的位置(即属于那个 顶层菜单,数字
·         0 —用于扩展顶层菜单
·         1 --- U-NAS
·         2 --- 控制中心
·         3 --- 窗口
·         4 --- 工具
·         5 --- 应用服务
·         6 --- 帮助
APP_SUBMENU对应的是属于哪个次级菜单
                每个定级目录可以有不同的次级目录。比如应用服务下有:
·         0--- 用于生成次级目录
·         1 --- Accessories
·         2 --- Games
·         3 --- Graphics
·         4 --- Internet
·         5 --- Office
·         6 --- Sound & Video
·         7 --- System Tools
·         8 --- Universal Access
·         9 --- Other
一个应用程序的菜单:
<li class="icon_pw"><img src="images/icons/48x48/doubanLarge.png" width="16px"><a id="doubanMenu">douban FM</a></li>
带阴影的部分需要根据你的实际情况修改。
2.6 U-NAS 应用图标
每个U-NAS应用一般提供至少两种图标:
·         48x48点阵的图标用于shortcut或者应用服务框内
·         16x16点阵的图标用于菜单
图标文件一般放在images/icons/48x48/; images/icons/16x16/
2.7 U-NAS应用css文件 ——ICON显示
每个U-NAS应用必须提供一个css文件,这个css文件需要放在应用的子目录css/下,这个css文件需要越小越好。这个 css文件决定了ICON的显示,由APP_SHORTCUT定义。桌面图标只能在桌面框和桌面上二选一显示。
注意这两种显示方式的css文件写法不同:[但都由APP_SHORTCUT定义
直接在桌面上:
<a class="abs icon menu-target" id="doubanLinkCheck" ><img src="images/icons/48x48/doubanLarge.png" />douban FM</a>
阴影部分根据你的应用修改
在桌面框里:
阴影部分根据你的应用修改
图标显示 位置由APP_DESKTOP_CATEGORYU-NAS_APP.xml中定义
APP_DESKTOP_CATEGORY 指明App属于哪个桌面框
·         0:桌面
·         1:控制中心
·         2:系统信息
·         3:应用服务
·         4U下载
·         5:其它(目前还没有)
2.8 U-NAS应用js文件 ——窗口显示
U-NAS应用可以提供一个独立的js文件,用于显示复杂窗口。由APP_JSU-NAS_APP.xml中定义
例子:
2.9 U-NAS 应用Web页面编码
U-NAS应用的Web页面编码必须采用UTF-8
2.10 U-NAS 安装过程中的pre-install / pre-rm
debpreinstprerm来实现。
2.10 U-NAS 安装过程中的post-install / post-rm
debpostinstpostrm来实现
2.11 U-NAS应用的备份/恢复脚本
如果U-NAS应用有比较特殊的配置文件/方法,U-NAS应用需要提供一个备份/恢复配置脚本。/etc中的配置文件会被自动备份/恢复。 系统执行备份时,会逐个应用调用其备份脚本。 应用的备份脚本将备份文件打包成unasbackup.tar.gz,系统将unasbackup.tar.gz移动到/tmp/backup/apps/APP_Dir/下,最后一起打包。
系统执行恢复时,会先解开数据包,将各个 应用的备份数据unasbackup.tar.gz送回到各个应用下,然后执行各个应用的恢复脚本。
备份和恢复脚本文件名称由U-NAS_APP.xml中的APP_BACKUP APP_RESTORE定义
[:目前尚未集成到系统中
2.12 U-NAS应用的升级脚本
U-NAS应用可以提供一个独立的升级脚本,这个脚本负责处理升级过程中的特殊方面。U-NAS系统执行升级时会逐个应用调用其升级脚本,由其自己完成升级。因此也是风险自负。
升级脚本由U-NAS_APP.xml中的APP_UPGRADE定义。
[:目前尚未集成到系统中
2.13 U-NAS 2.0应用的卸载
应用必须负责将应用进行卸载,卸载通过dpkg -r的命令来完成的,应用在deb中可能需要提供清理应用目录的脚本(postrm)或其它动作。
2.14 U-NAS 2.0 应用的安装文件
U-NAS 2.0应用的安装程序必须是一个单一文件的deb包,如果U-NAS 2.0的应用必须包含其它的包,则可以通过写一个wrapper包的办法将其它包包含在内从而形成一个单一的deb包。这个deb必须按照debian标准生成并维护。
回复

使用道具 举报

 楼主| 发表于 2013-1-26 03:55:44 | 显示全部楼层
不好排版,所以比较乱。 完整版在这:http://u-share.cn/forum.php?mod= ... &extra=page%3D1
可以先照着 Appendix A.1制作以下豆瓣FM;基本上流程就很清楚了。
回复 支持 反对

使用道具 举报

发表于 2013-1-25 14:27:41 | 显示全部楼层
可以开个贴单独说明怎样打包DEB包的吗?
回复 支持 反对

使用道具 举报

发表于 2013-1-25 16:25:13 | 显示全部楼层
看的头大啊,慢慢吸收了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|万由科技 ( 浙ICP备10004788号-13 )

GMT+8, 2024-5-15 17:11 , Processed in 0.094217 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表