ap 的描述文件内容有:名字(name)、版本号 (version)、大小 (size)、安装时添加的文件个数 (num)及这些文件名信息(filename_list) 。
原方案:
将 ap描述文件与原 ap安装文件一同打包进runtime.tar.bz2 即新打包后的runtime.tar.bz2 包为原有内容加上/share/info/info 。
用户安装前须下载一个文件 —ap的 runtime.tar.bz2包( name-version. runtime.tar.bz2)
描述文件名: info,置于新建目录 /share/info下,安装成功后,更名为 name.info
添加 ap时,
1. 程序首先从用户选择的runtime.tar.bz2 中解压并读取/share/info/info 内容,读得ap名 :name
2. 比较小电脑/share/info/下是否有 name.info 的文件,
1) 若有,表时此ap已安装,版本号或许同,或许不同。此时读取/ share/info/info及 /share/info/name.info取得版本号信息,提示用户选择是否覆盖旧版本安装新版本。
2) 若无,表此ap为新 ap,此直接安装,安装完后将 /share/info/info,更名为/share/info/name.info 。
优点:
1. 当用户下载ap的 runtime.tar.bz2后可自行更改包名,安装时程序即使不事先知道其 ap名,版本号,也能从 /share/info/info文件中得到其 ap名,版本号等相关信息。
2. 在比较当前ap与小电脑上安装的 ap是否相同时,只要获得当前 ap的 name后直接查看/share/info/ 下是否有 name.info,即可得知该类ap 是否已安装
3. 用户只要down下想要安装的 ap的一个 runtime.tar.bz2包
缺点:
1. 读取描述文件须从ap的 runtime.tar.bz2包解压,当 ap的runtime.tar.bz2 包较大时从中解压出文件/share/info/info 会花时较长,在小电脑上运行会显得很慢。
2. 不利于以后的自动更新,因其描述文件是与ap的 runtime.tar.bz2一体,要取得描述文件必须先 down下整个 runtime.tar.bz2包。(若我们把 runtime.tar.bz2包里的描述文件同时复制一份与 runtime.tar.bz2包同时上传,其实也可以只取得描述文件就可与小电脑下 /share/info/的 .info为后缀的文件比较)
新方案:
描述文件不随ap文件一同打包进 runtime.tar.bz2包。
用户安装前须下载两个文件 —ap的 runtime.tar.bz2包及描述文件,且将它们置于相同目录。( name-version. runtime.tar.bz2和 name-version.info )
描述文件名: name-version.info, 与runtime.tar.bz2包位于同目录,安装完后置于 /share/info/目录下。 (描述文件名前缀与包名前缀相同便于用户下载时一同下载,减少下载出错 )
添加 ap时:
1. 程序从用户选择ap的 runtime.tar.bz2包得到包名前缀( name-version),在当前目录中查找并描述文件 name-version.info 。
2. 查看/share/info/下是否有 name-version.info ,
1) 若有,则表时相同ap且版本号相同的 ap已安装,提示用户选择是否覆盖
2) 若无,取得name,在 /share/info中取得所有文件名,比较是否含有 name,若有,则提示用户选择是否覆盖旧版本(版本号与当前 ap不同) ;若无,则表明为新ap ,直接安装。
3. 用户安装前要down下两个文件:一个 runtime.tar.bz2包、一个描述文件
优点:
1. 可直接读取描述文件,无需先从ap的 runtime.tar.bz2包解压,省时
2. 利于以后的自动更新,用户只需通过down下描述文件与小电脑中的描述文件比较即可决定是否更新,无须连同 down下 ap的 runtime.tar.bz2包
缺点:
1. 一旦用户更改了runtime.tar.bz2 包名,程序将无法找到其描述文件,无法获取ap 的名、版本号信息等,无法安装。
2. 在安装时读取描述文件,比较小电脑已安装ap,若有同 ap但不同版本号存在时,比较费时,因为须遍历 /share/info/下的所有文件名,当其含有相同 name的 name-version.info 文件存在时表时相同ap已安装。
3. 用户安装前得down下 runtime.tar.bz2包与描述文件,要下两个