Alpha Apps Principle

更新时间:2024-12-24 11:38:53 阅读: 评论:0


2022年8月1日发
(作者:吉林市商业大厦火灾)

AlphaAppsDevelopmentPrinciple

ackageRequirement

目前市面常见的Windows安装包主要有*.exe和*.msi两种格式,其中*.exe格式的安装包有基

于msi的,也有的是基于自己的安装规范。

用不同打包工具生成的安装包,支持不同的静默安装命令行参数,示例如下:

打包工具

InnoSetup

InstallShieldWithMSI

VS自带Installer

sis

联想应用商店不对应用程序安装包格式做限制,具体要求如下:

商店目前仅支持*.exe和*.msi两种打包格式(其安装包后缀必须为exe或者msi),但是要

求开发者提供安装包的静默安装、静默卸载的命令行参数。具体步骤如下:

对于非*.msi格式的安装包,开发者在向AppStoreServer提交应用时,除了提交安装包

文件外,还要在AppStoreServer的Web页面中提交静默安装的命令行参数

对于非*.msi格式安装包,开发者在打包时,必须提供完善的脚本来使得安装包支持静默

安装和静默卸载

联想应用商店将对提交的Alpha应用予以审核,审核通过的应用才能进行发布

Alpha平台安装的应用程序要满足对所有用户可见的原则

用VS自带工具打包时,可以将MSI的InstallAllUsers属性设置为true

开发者在用其他安装包制作工具打包时,也要有类似的设置来遵循此规范

安装包格式

exe

exe

msi

exe

静默安装参数

/sp-/silent/norestart

/s/v”/qn”

/qn/x[ProductCode]

/S

ppsManagementRequirement

联想AppStore需要一个唯一标识AlphaApp应用的ID来管理应用程序:

由于某些非msi格式的安装包并不能提供Build-In的字段作为AppID,为了统一管理,

AppID由AppStoreServer来统一分配

应用开发者在联想AppStore第一次提交某个应用时,将会从AppStoreServer获得分

配给该应用的ID,并且把该ID作为此应用(包括后续版本)的唯一标识

开发者在后续提交同一应用的升级版本时,需要输入此ID进行验证。

同一应用(各个版本)ID保持一致,Version保持不同

AlphaAppVersion定义:

AppStore应用的版本号主要由四部分组成,规则如下:

on

版本号必须包含前三部分,revision部分可选

版本号各个段必须全部为数字组成,中间由点号分隔

开发者打包时,可将打包IDE环境中生成的version字段做为该AlphaApp的version

写入注册表中

开发者确保后续提交应用时,版本号维持递增

AlphaApp图标要求

Alpha应用开发者在提交应用时,需要在AppStore的应用提交页面中上传相应的图标文件,

在AlphaShell中,对图标文件的要求如下:

图标文件为Png格式,像素为128*128

Preload应用和Server端下载安装的Store应用共存于Alpha平台,Alpha平台对两类应用

不做区别。为了便于AppService对本地应用做统一管理,同时,也考虑到Preload应用以后

也需要通过AlphaAppStore做升级,对Preload应用的管理策略如下:

Preload安装包的AppID由AppStoreServer统一提前分配给厂商,ID分配策略和

StoreApp一致

Preload应用的后续升级也走AppStore流程。厂商后续的新版本应用安装包,需要上传

至联想的AlphaAppStore,用户将在Alpha平台上,通过AppStoreClient来下载和

安装新版本应用

在windows平台上,建议AppStoreServer端采用GUID作为AppID分配策略

在安装过程中,AppStoreApps和Preload应用都需要在AlphaApp规范指定的注册表键值

下,创建以AppID命名的子键,并将规范要求的metadata属性字段和配置文件路径写入该子

键下面

taConfigurationFile

Lenovo将对AppStore应用和Preload应用开发者提供metadata的Xml配置模板文件,开发者根

据AlphaApp规范,在Xml配置文件中如实填写应用的基本信息,最后将Xml配置文件打包进安装

包内,在安装过程中将配置文件拷贝到应用程序的安装目录下,并将主程序的安装路径和

MetadataXml配置文件的路径写进注册表对应的键下面。AlphaApp默认注册表路径如下:

HKEY_LOCAL_MACHIESOFTWARELenovoLenovoAlphaApps

安装包将使用自己的AppID(GUID)做为子键名称,在当前LenovoAlphaApps下创建该子键,示例

如下:

开发者需要在对应以AppID命名的子键下面创建必要的属性字段:

字段名称

AppInstallDir

AppMetadataPath

ExecutableAppFullPath

IconPath

SilentUninstallString

StartArgs

Version

示例如下:

数据类型

REG_SZ

REG_SZ

REG_SZ

REG_SZ

REG_SZ

REG_SZ

REG_SZ

说明

Alpha应用安装目录

应用的metadata配置文件所在路径

主程序的可执行全路径

AlphaShell图标文件所在路径

可执行的静默卸载字符串

主程序启动的命令行参数(可为空)

应用的版本号

AlphaApp的Metadata配置文件模板请参照文件。开发者打包时,请自行填写

metadata字段信息,也可以修改配置文件的名称,但要保证应用的配置文件结构和模板一致。

备注:

32位windows应用程序在64位系统上进行安装时,写入注册表的路径会被重定,例如,写入

HKEY_LOCAL_MACHIESOFTWARELenovoLenovoAlphaApps键下的值,会被重定向到

HKEY_LOCAL_MACHIESOFTWAREWow6432odeLenovoLenovoAlphaApps下面。

重定向由操作系统完成,应用开发者不需要关注,但是在打包过程中,凡是与路径相关的注册表属性

值,开发者在打包环境中需要用相对路径来指定。在安装过程中,系统会自动完成重定向,并将相对

路径转换成实际的安装路径(重定向后的)。

l/Uninstall/UpdateProcessRequirement

利用应用开发者提供的静默安装命令行参数,可以对安装包进行静默安装,中间不能出现任何

可以交互的界面,且安装完成后不得重启生效

整个安装过程要求一次完成,中间不得出现重启后继续安装的情况

Alpha平台不对应用的安装路径做限定,应用开发者在打包时,可以自己指定缺省安装路径

安装包在安装过程中,要在注册表中写入SilentUninstallString字段

非msi格式的安装包要在SilentUninstallString字符串中指定卸载程序的可执行全路径

和对应的静默卸载命令行参数,例如:

C:Windowssystem32

C:Windowssystem32s

对于msi格式的安装包,只要在SilentUninstallString中包含productcode和静默卸

载命令行参数即可,例如:

/qn/x{2A2F3AE8-246A-4252-BB26-1BEB45627074}

在做升级安装时,安装包要对本地已安装的同一应用进行版本比对,安装包版本号大于或等于

本地已安装应用的版本号时,则进行升级安装(或覆盖安装),否则退出安装。

每一次升级操作都必须要修改Version字段

升级后的应用程序名称(Appame)不可改变

在升级过程中,安装脚本不需要检测和清除旧版本应用上次创建的Alpha注册表键值:

HKEY_LOCAL_MACHIESOFTWARELenovoLenovoAlphaApps[AppID]

只需要执行新建注册表键值操作,注册表会自动覆盖旧版本的键值以及键值下的属性字段。

对于Alpha应用安装包,只需要安装时创建规定的注册表键值及其属性,卸载时清除干净

即可

升级后的版本同样需要符合AlphaApp规范

本地机器不允许安装同一Alpha应用的多个版本

Alpha应用支持覆盖安装(修复安装)。即,同一应用可以重复安装且重复安装过程中不

能出现任何提示或用户交互

对于那些除了提供命令行,还需要提供特殊依赖文件才能支持静默安装和静默卸载的安装包,

联想AlphaAppStore不提供支持,请应用开发者在制作安装包时自行进行调整

关于InstallShield打包工具,如果是基于BasicMsi制作的msi安装包,静默安装、卸

载参数与WindowsInstaller相同。如果是基于BasicMsi制作的exe安装包,静默安装

参数为/s/v"/qn",静默卸载参数也同WindowsInstaller,都不需要提供额外的依赖

文件。

AlphaShell平台是通过注册表来管理本地Alpha应用,以及监控应用的安装和卸载,所以,

Alpha应用在安装时,要保证创建正确的注册表键值,确保写进注册表的属性字段都是有效内

容。而当应用卸载时,必须清除LenovoAlphaApps下的AppID子键,以及该子键下的所有属

性,但不能删除LenovoAlphaApps及其以上的注册表键

在Alpha平台,应用的安装、升级和卸载都为静默方式,AlphaShell平台需要一个机制来确

认上述过程是否执行成功。AppService会创建一个新进程来执行安装、升级和卸载操作,同

时会等待上述操作执行完毕,直到退出,并通过获取其ExitCode返回值来判定执行的成功

或失败

请应用开发者确保,当应用的安装、升级和卸载成功执行后,ExitCode返回0

当上述的操作失败后,请返回非0的ExitCode错误码

大部分针对Windows应用的打包工具,在默认情况下都以0标识操作成功,非0值标识导

致操作失败的错误码

Alpha平台应用安装和卸载都为静默方式,为了获得良好的用户体验,应用的安装、升级和卸

载过程需要有时间上限,最长不能超过五分钟

ationalizationSupprort

当系统语言发生变化时,针对每个AlphaApp,Shell将从其对应的xml配置文件来读取对应语言

下的名称和应用描述。AppStore应用开发者和Perload应用开发厂商将通过填写固定的xml模板

来完成对Shell层多语言显示的支持。示例如下:

AngryBirds

Touchthescreentohitthebosses,neverhitabosswhois

innocence.

愤怒的小鸟

对应的中文描述.......

目前AlphaShell平台支持中文和英文,App开发者可以在后期提供更多的语言版本,对于Shell

的多语言支持,只需要应用在升级更换配置文件即可。AppService在启动应用时,

将根据当前系统的语言环境载入相应的描述。

ppRuntimePerformanceRequirement

AlphaApp最终要在Windows8平台上进行安装和运行,因此,要求Alpha应用程序必须支持

Win864位运行环境(注:16位程序和32位驱动不能在64位系统上运行)

Alpha应用在安装过程中,不得向windows传统桌面和开始菜单中创建快捷方式

静默安装、卸载过程中,不能有任何背景音乐

安装包不能附带任何插件,修改用户浏览器默认首页等等。安装完成后,不能启动浏览器来链

接到或其他网站

静默安装完成后,不能自动运行应用程序

应用开发者要保证,在静默安装情况下,各种默认安装选项也能够达到最优配置

Alpha应用在启动的入口处要进行唯一实例检查,在AlphaShell平台上,同一应用不允许运

行多个实例

Alpha应用程序自打开后,必须始终全屏运行,直到程序退出。

提交的应用程序图标(运行屏幕截图)像素必需符合AlphaShell平台的要求

lSignatureRequirements

建议Alpha应用开发者对自己制作的安装包进行数字签名(非强制性要求),以保证安装包在发布

过程中不被篡改

al

AlphaShell将部署在微软Windows864bit平台上,由于Windows系统对msi格式安装包有很好

的支持,提供了完善的命令行参数,有标准的ExitCode定义,以及安装过程中的错误回滚机制,

因此建议Alpha应用开发者提供msi(或基于msi)的安装包,以便AlphaShell平台更好的控制

和管理Alpha应用。


本文发布于:2022-08-01 17:40:08,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/falv/fa/78/51007.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 站长QQ:55-9-10-26