测试本地化应用程序
在设备上测试
要记住,你所使用的测试设备可能与其他地区消费者使用的设备有明显的不同。测试设备上的语言环境与其他设备存在差异,还有设备屏幕的分辨率和密度也可能不同,这些都会影响到UI中的字符串和可描画资源的显示。
使用Android系统的设置应用程序(Home->Menu->Settings->Locale&text->Select locale),来改变设备的语言环境,以便在不同的语言环境中测试应用程序。
在模拟器上测试
有关使用模拟测试的细节,请看“Android 模拟器”文档。
创建和使用定制的语言环境
定制的语言环境是Android系统镜像没有明确支持的语言/地区组合。(在SDK选项的版本注释中可以看到Android平台支持的语言环境列表。)通过在模拟器中创建定制的语言环境,可以测试应用程序在定制的语言环境中是怎样运行的。有两种创建定制语言环境的方法:
1. 使用定制语言环境的应用程序,可以从应用程序选项卡中可以访问这个程序。(创建了定制的语言环境之后,可以通过按住这个定制语言环境名称来进行切换。)
2. 使用下面介绍的方法,从adb shell中改变到定制的语言环境。
当把模拟器设置成一个Android系统镜像所不支持的语言环境时,系统自己会用它的默认语言来显示。但是应用程序应该正确的本地化。
从adb shell中改变模拟器的语言环境
1. 选择想要测试的语言环境,并且确定它的语言和地区代码,如法国是fr、加拿大是CA;
2. 启动模拟器;
3. 在计算机的命令行窗口中,运行下列命令:
adb shell
或者,如果有设备已经绑定了,那么通过添加 –e 选项来指定想要的模拟器
adb –e shell
4. 在adb的提示符(#)下,运行下面的命令:
setprop persist.sys.language [language code];setprop persist.sys.country [country code];stop;sleep 5;start
用步骤1中适当的代码来替换方括号中内容。
这回导致模拟器重启。(它看上去好像是完全重启,实际上不是。)一旦主屏重新显示了,就会重载你的应用程序,并且会用新的语言环境来启动启动应用程序。
测试默认资源
以下是如何测试应用程序是否包含了它所需要的每一个字符串资源方法:
1. 把模拟器或设备设置成应用程序所不支持的语言环境。例如,如果应用程序在res/values-fr/目录中有法语的字符串,但在res/values-es/目录中却没有西班牙语字符串,那么就把模拟器的语言环境设置成西班牙语。(可以使用定制语言环境的应用程序给模拟器设置一个不支持的语言环境。)
2. 运行应用程序
3. 如果应用程序显示了一个错误和强制关闭按钮,那么就可能遇到不可用的字符串。要确保res/values/strings.xml文件中包含了应用程序需要的每一个字符串的定义。
如果测试成功,那么重复其他配置类型的测试。例如,如果应用程序有一个叫做res/layout-land/main.xml的布局文件,但却没有叫做res/layout-port/main.xml的布局文件,那么,就把模拟器设置成纵向方向,并看应用程序的运行结果。
发布本地化应用程序
Google Play是Android设备主要的应用程序发布系统。要发布本地化的应用程序,就要给应用程序进行数字签名、赋予版本号以及其他的所有步骤。详细请参照“准备发布”文档。
http://developer.android.com/guide/publishing/preparing.html
如果要把应用程序分成几个.apk文件,每个针对一个不同的语言环境,那么要遵循以下原则:
1. 用相同的证书签署每个.apk文件,有关更多的信息,请参阅“数字签名策略”。
http://developer.android.com/guide/publishing/app-signing.html#strategies
2. 给每个.apk文件不同的应用程序名,当前,不可能把两个完全相同的名称的应用程序发布到Google Play上。
3. 在每个.apk文件上要包含完整的默认资源。