Unija应用开发
一、 Unija SDK的安装及使用
1、Unija SDK2.1是联通在WTK2.1的基础上增加了一些自定义接口和规范的开发包,安装方式和WTK2.1没有差别,按照提示进行安装即可。
2、与Jbuilder的集成:在使用中发现,按照集成WTK2.1的方式集成Unija SDK后,编译出错,未找到原因,目前是在Jbuilder中用WTK2.1进行开发,再将源程序复制到Unija SDK下重新编译、运行。
3、使用Unija SDK2.1的方法与WTK2.1相同,只是Unija SDK2.1中增加了x859、w800两种设备的模拟器。
二、 Unija应用的开发
(一)、用户界面规范:
1、 开发JAVA 业务时的可用性原则:
使用的灵活性和效率;
系统状态的显见性;
系统和真实世界间的匹配;
用户控制和自由;
风格的一致性和标准;
业务简单易用;
审美的考虑;
帮助用户识别、诊断和修复错误;
帮助和文件编制;
视觉合成。
2、 应用程序用户接口:
1) 应用程序的名称只允许采用中文名称(英文专有名词出外),不论是否含有图标,名称应控制在一行显示,字数与每一个目标设备的屏幕相匹配
2) JAD属性
在任何条件下必选的JAD属性:
MIDlet-Name
MIDlet-Version
MIDlet-Vendor
MIDlet-Jar-URL
MIDlet-Jar-Size
MIDlet-Description
3) 应用程序的闪屏(Splash screen)
必选:(1)、在启动应用程序的同时应启动闪屏;
(2)、启动后SPLASH只能显示一屏,不能含有帮助或用户信息;
(3)、在一屏内包含:
应用程序的名称或LOGO
应用程序的版本
公司的名称或LOGO。
可选:(1)、在出现闪屏时可以伴有音效;
(2)、建议闪屏的显示时间不超过1 秒,同时允许用户按任意键跳过闪屏
4) 应用程序的主屏幕(Main Screen)
在闪屏过后显示的是应用程序的主屏幕或基本屏幕,主屏幕至少应包含以下各项:
开始:启动应用程序(此菜单项名称可自定义)
关于:应给出公司名称、应用程序名称、应用程序的版本号、应用程序大小、公司客服电话。
帮助:提供应用介绍,操作指南。建议300 个汉字以内,或给出网址。
退出:退出应用程序。
备注:对于过关类游戏类等相关应用,应增加保存/恢复进度的功能菜单。
5) 运行过程的等待处理(Process waiting)
很多情况下,应用程序无法做出瞬间反应。如果用户必须等待应用程序完成一个进程,应向用户提供一个可视的反馈,并应提示用户如何取消进程。
小于1 秒:一秒钟是正常思维速度的极限,但用户可能注意到延误,不需要提供反馈。
1 秒以上:当用户在等待长时间的进程时,应使用动画等(如,进度条)来显示进度状态,建议给出提示信息(如,需等待的时间)。
对重复按键,除“CLR”键外,予以忽略,因为用户在进程处理时间较长时倾向于重复按键。
3、 JAVA 用户接口特性
1) 版式(Typography)
字体:建议采用正常、大号、粗体三种字体;
对齐:文档应左对齐,标题可以左对齐、居中或右对齐;
为使信息更容易阅读,应该在适当的地方换行;
屏幕布局需针对每一款手机进行相应的提交。
2) 图标
(1)、图标分类:
状态图标:若菜单项有多个状态,可使用图标直观的显示这些状态。
图标栏:当向用户提供一系列操作,但又不能占用太多应用程序的屏幕面积时,
应使用图标栏。
(2)、图标使用规范:
图标尺寸
应用程序的图标
- 每个应用程序的图标尺寸:16×16。
- 尺寸为16×16(或26×26)的图标,实际占用尺寸为12×12(或22×22),保留2 个点阵宽度的透明边界或者图标进行透明化处理。
菜单的图标
- 12×12 (list menu),图标高度不大于文本高度
- 24×24
图标的格式:
PNG (透明化处理背景颜色RGB 值=0,0,0)
3) 提示文本(Alerting text)
提示文本应为简体中文,避免出现其他语言和中文混合的内容(英文专有名词除外),如:“Loading…请稍候“,应为“下载中…请稍候”。
错误信息提示应简明,并提示用户如何退回到前一屏幕。
4) 菜单使用规范:
¨ 菜单标题字数控制在一行显示;
¨ 缺省的情况下,菜单中的每一项占据一行,但是在特殊情况下, 允许在同一行中使用多个菜单项;
¨ 菜单中的各项要按照一定的逻辑顺序来排列,如按照类型、时间、字母顺序等。如果没有逻辑顺序,就按优先级排列,将优先级高的排在前面;
¨ 当设计使用菜单的用户界面时,要考虑菜单层次的宽度和深度。宽度指每层菜单中选项个数,建议选项个数以终端一屏显示为上限;深度指结构中的菜单层数,建议2~3 层。
5) 文本输入和导航(Text input and navigation)
¨ 若需要特定输入格式,都必须标明输入格式,例如,输入日期:MM/YY
¨ 若输入超过一行,文本框应支持多行输入和滚动条。
¨ 对用户输入的密码,在输入过程中应明文显示,不要用* 进行掩盖。用户在下一次使用时,密码应以*显示。
¨ 支持输入数据的自动记忆功能,如用户名和密码的保存。
¨ 对需要用户名和密码登陆的应用,要充分考虑如何让新用户非常方便、简单地完成注册;对用户注册后再次使用时,对于不涉及移动支付等安全性要求非常高的应用,建议用户名和密码默认填好,用户选“登录”键即可。
¨ 对用户输入应自动切换到恰当的输入模式例如,若应用程序要求用户输入电话号码,自动将文本输入模式设定为只能输入数字。
¨ 若要求用户输入用户名,由于用户一般会用字母表示,所以自动将文本输入模式设定为字母。
¨ 应用程序应限制用户在要求字符数的范围内输入,以避免用户输入错误
¨ 对确定的内容进行预置,例如,输入“年”可以预置为“20XX”,只需用户输入后两位数字
¨ 尽量减少用户的文本输入
¨ 为每一个输入项作直观的提示与描述,不多于8 个汉字
¨ 在文本输入的状态下“后退/返回”前一屏幕
在文本输入的状态下,用户可有两种不同办法返回前一屏幕。首选办法是选择软键菜单。在文本输入的软键菜单中加入一个菜单项,其功能类似于菜单中的“后退”或者“取消”功能。
第二种方法是,在文本输入中但无字符输入的状态下,允许“CLR”键起到“后退”或者“返回“前一屏幕的功能。
应该考虑将上述两种方法合并起来使用。
6) 表单
表单是与用户交互的常用界面,以下列出了表单布局中的一般建议:
¨ 数字应靠右对齐。
¨ 货币字段的数字应靠右对齐,但货币符号应靠左对齐。
¨ 标题和输入字段的标题应清楚分开。
¨ 将输入字段排序和分组是一种有效办法,用户不需要经常前后翻阅。
¨ 应在视觉上将标题及其输入字段相联系。
7) 关键词(Key words)
在应用中,一致的关键词使用风格能显著提高业务的可用性,一般而言,关键词的首字母应大写,其他字母应小写,除非纯大写组合的词,如:OK 等。
(二)、开发设计指南:
1、终端的特性:
1) Flash ROM:JAR+JAD+RMS的大小不能超过256K。
2) LCD:至少支持12bits彩色显示。
2、执行速度:
MIDP 的通常方法是在程序中添加一些附加行来自行检测。以下语句可以测出某个调用所费
的时间:
Long startTime = System.currentTimeMillis();
DoSomething();
Long timeTaken = System.currentTimeMillis() – startTime;
你将得到单位为毫秒的所费时间值,为了避免测试过程中因垃圾收集而造成的结果波动,在
测试之前,应先调用System.gc()。要显示测试数据,可以使用一个特殊的MIDlet 屏幕,或
者用结果数据覆盖普通屏幕上的显示。
值得注意的是,必须检查手机系统时钟的精度,返回值可能精确不到毫秒,所以请注意检查
返回值,如果它总是十的倍数,那么保证足够长的测试时间是可以忽略这个问题的。
3、文件大小
尽量缩小JAR 文件的尺寸,联通UniJa 规范规定应用的最大文件大小不应超过256k。
4、在联通《UniJa 开发指南》中可参看其它的一些开发建议。
三、 Unija应用的测试
(一)、测试过程概述
联通UniJa测试包含下列阶段:
1、进入测试:该阶段主要对测试程序进行详细测试前的基本测试。
2、UI测试:该阶段测试将保证应用程序UI设计遵循联通UI规范的必选项,并对开发商定义的UI基本逻辑及用例进行最基本的检查。
3、功能测试:保证提交的《应用规范》中描述的功能都存在,未描述的功能不存在。
4、兼容性测试:该阶段将对应用程序和手机电话系统的兼容性进行严格测试。保证应用程序的执行不能干扰手机正常的呼叫和短信功能。
5、最终验证测试:保证应用程序的下载和安装及计费策略的正确性、数字签名的有效性。
(二)、测试结果分类
1、 问题严重程度分类:
测试完成后,测试中发现的问题按照严重程度分为以下几类:
¨ 严重:应用无法安装、启动;应用在运行过程中出现死机等异常情况;
¨ 一般:不符合开发指南或测试规范、功能没有很好的实现、逻辑结构不合理等;
¨ 微小:其它不会影响应用正常使用的问题。如文字的描述不清楚,界面不美观等。
2、 修改意见分类:
对测试中发现的问题,分成以下两种修改意见:
¨ 必须修改:该类问题会影响用户的使用,必须修正后才能申请上线。
严重问题和一般问题都必须修改,微小问题根据对用户的影响程度决定。
¨ 建议修改:该类问题不影响用户的使用,但修改后能提高用户的满意度,建议修改此类问题。
(三)、进入测试
序号
测试点描述
1
对提交的应用程序包中的文档等进行查杀病毒。
2
应用正确地安装。
3
在JAM中能够正确显示应用图标及名称,应用按照《UniJa开发指南》正确地使用图标。
4
应用能正常启动。
5
应用名称与相关文档中一致。
6
应用的内容和图片合法。
7
应用名称必须符合《UniJa开发指南》。
8
各处版本一致
9
JAD文件的属性必须符合《UniJa开发指南》。
10
退出应用再次进入,应用能正常启动。
11
重启移动设备,应用启动正常。
12
启动应用后立刻退出,并立刻重启,应用正常。
13
联网应用须采用联通内部URL。
14
应用能正确的卸载。
15
应用能正确的加载。
16
主屏幕“关于”项中所提供的支持电话和Email必须准确真实。
(四)、UI测试
序号
测试点描述
1
应用启动后屏幕的显示顺序,Splash屏幕要符合《UniJa开发指南》。
2
主屏幕要符合《UniJa开发指南》。
3
在入口点没有改变的情况下,应用显示的屏幕应该是一样的。
4
屏幕能正确的刷新。
5
应用程序UI布局方案:应用程序的背景应满屏显示。
6
屏幕内容显示清晰,用户可以容易地读懂它们,内容应满足于上下文,屏幕的内容不显示无礼的或不相称的内容。
7
应用运行当中的所有屏幕都能够调出主屏幕(建议通过右软键调出主屏幕)
8
应用程序中的各种文字显示,应统一采用中文简体(英文专用名称和注册商标除外)。
9
应用中没有空的菜单项。
10
控件的显示符合《UniJa开发指南》。
11
应用的所有设置项应风格一致。
12
应用的错误信息清晰可理解,必须清晰地向用户解释问题的本质,必须指出用户下一步该执行什么操作。
13
如果应用为多语言版,语言能被正确的设置,语言改变时相关项能正确响应。
(五)、功能测试
序号
测试点描述
1
按照《应用规范》的流程图的基本分支运行应用,应用存在的所有屏幕和流程图的描述一致。即:所有已列出的屏幕都存在,在未列出的屏幕不存在。
2
按照《应用规范》的流程图的基本分支运行应用,应用存在的功能和流程图的描述一致。即:所有已列出的功能都存在,在未列出的功能不存在。
3
应用程序按照帮助中的描述正确执行。
4
应用能正确处理背景音乐和声效。如:提供静音功能等等。
5
设置项清晰合理,每一个设置项有单独的使能和不使能的状态(如果应用使用了如声音、振动等效果,要求在应用运行当中有改变设置的设置项)。
6
应用的等待处理要符合《UniJa开发指南》。
7
按照《UniJa开发指南》“只要对应用可以进行暂停,就要求提供暂停功能”。用户可以在允许暂停的屏幕上暂停应用,并可以从暂停状态恢复,当恢复应用的时候,能从被暂停的位置恢复。
8
应用程序能正确地处理send键的功能,如:《应用规范》里指定的功能等等。
9
按键能正确地在整个应用间导航。
10
应用程序能处理连续的按键输入。
11
应用程序的每一个屏幕都应该能处理该手机可用的输入机制。
12
动作(一般为要改动数据的动作如存储、修改信息等)的撤消功能被提供,或明确地通知用户要执行的动作是不可撤消的。
13
应用程序的成绩能被正确记录。如为过关应用必须符合《UniJa开发指南》。
14
有能够输入,保存并修改的应用程序应该能在应用正常或非正常退出和掉电后能找回数据。
15
自动保存数据的应用能找回已存储的数据。
16
文本输入控件按照《UniJa开发指南》能正确地处理输入文本。
17
安全信息(如密码、识别码等)按照《UniJa开发指南》妥善处理。
18
如果应用具有屏保功能(此处指的应用程序内的屏保),应能正确运行此项功能。
19
如果应用具有短信功能,应能正确地运行此项功能。
20
如果应用程序内有定时器和报警功能,应用能够正确的设置及响应。
21
如果应用支持Camera功能,应正确进行拍照和存储等功能。
22
在线应用在服务器不可用时,能正常启动并通知用户。
(六)、兼容性测试
1、 核心终端设备功能
序号
测试点描述
1
不管无线服务是否可用,应用程序应该能启动并完成一些基本的功能。
2
在手机异常掉电后,应用能启动并完成一些基本的功能。
3
应用能正确处理终端的定时器和报警。
4
应用程序能正确地建立和断开数据连接。
5
手机本地屏保能在应用运行和关闭情况下正常运行。
6
应用在手机文件系统达到极限的情况下能否正确处理。
7
终端运行应用时,可以获取系统音量大小、是否静音的设置,并可以根据系统设置确定应用开始运行时的状态。
8
终端运行应用时,可以获取系统振动的设置,并可以根据系统设置确定应用开始运行时的状态。
9
终端运行应用时,可以获取系统背景灯的设置,并可以根据系统设置确定应用开始运行时的状态。
10
终端运行应用时,可以获取系统红外/蓝牙的设置,并可以根据系统设置确定应用开始运行时的状态。
2、 核心手机功能的动网测试
序号
测试点描述
1
应用程序不应阻碍手机显示来电号码。
2
应用程序能正确地处理来电呼叫。
3
应用运行时,能正确地处理非应用程序的短信。
4
应用运行时,失去网络服务情况下应能继续运行。
3、 稳定性
序号
测试点描述
1
在运行应用前和应用后剩余内存的数量应是一致的。
(七)、最终验证测试
序号
测试点描述
1
应用能正确地下载和安装。
2
应用提交时设置的计费策略与CP预期的保持一致。
四、 Unija应用的提交
(一)、业务上线流程:
提交业务审核
通过业务审核
提交网上申报
合作发展处审核
终端管理处审核
提交技术测试申请材料
联通技术测试
提交业务上线申请材料
上线
(二)、应用提交、下载、测试流程:
1、 JAR、JAD文件的制作:
在Unija SDK中,在模拟器测试通过后,完善JAD文件,制作JAR包文件。
2、 应用提交:
提交网址:http://211.94.164.122/contentprovider/
用户名:*****,密码:******
登录后按照步骤提交新内容
1) 在目录中选择“测试专区”>>“应用测试”
2) 测试时在“计费策略”中选中“免费”。
3、 应用下载
在提供的Unija测试手机上进入神奇宝典后,选择下载新应用中的“未决内容”>>“我的未决内容”,即可发现提交测试的应用,按提示步骤下载即可。
4、 应用测试:应用下载、安装完成后即可在Unija测试手机上进行真机测试。
五、 Unija开发中的注意事项
(一)、以下是我在向Unija平台移植商旅宝时所遇到的需要改动或注意的事项:
1、网络连接的URL中如果含有中文字符,只能使用post方式。
2、字符串存取RMS:如果有中文字符,使用getBytes()的时候也必须转换,我采用的是将中文字符转为\uxxxx的方式(怀疑为BUG,已向联通人员发送电子邮件,但未得到回复)。
3、JAR+JAD+RMS不能超过256K。
4、左右软键及拨号、关机键、清楚(C)键无法获取键值,只能使用Command处理命令,无法自绘命令进行处理。
5、x859真机的全屏模式依然上部有电池信号栏,下部有命令栏。
6、必须有splash screen。
7、主页面必须具有关于、帮助和退出的选项。
8、各子页面必须有返回主页面的选项。
(二)、阮陈鹏返回的一些联通着重提出的需注意的事项:
1、JAM中正确现实应用图标,规定为16X16像素
2、应用名称需要符合开发指南
3、程序本身需要符合以下要求:
能正确启动
退出后再进入能正确启动
重启后能正确启动
启动载入时退出,再重启后,能正确启动
能正确下载和卸载
4、错误提示信息清晰可理解
5、功能说明中的流程图与程序一致
6、连续按键后(信息传输过程中)不出现错误
7、手动和自动储存的信息正常,非正常模式退出后信息储存正常
8、来电、来短信时正常使用
9、启动后SPLASH只能显示一屏,不能含有帮助或用户信息
10、背景需要满屏显示
11、所有的页面均可以调出主菜单,建议右软键
12、文字显示正常、不能有截断
13、服务器无法连接时候有友好的提示,且基本的不联网功能需能正常使用
14、存储空间满时能正常处理,不能导致手机异常
在x859真机上测试如下功能,未发现异常:
1. 来电接听
2. 来电号码显示
3. 非应用的短信
4. 输入法
通过MIDlet.PlatformRequest(String url)拨打电话未通过,报“java/lang/SecurityException”错误后退出应用。