您没有太多选择:您必须使用尽可能多(和不同)的物理设备,来自不同的供应商和技术规范(屏幕等),以尝试检测尽可能多的特定错误。
这很困难,因为您通常仅限于几个物理设备。
举个例子,我最近在Camera
, 上为一个仅在 Motorola Defy 上发生的错误而苦苦挣扎。我目前正在努力解决这个Camera
问题,但这次仅适用于三星 Galaxy。
当您发现特定错误时,请尝试“通用方式”修复它:与其检测设备的供应商/版本来为其编写特定代码,不如尝试以适用于所有测试手机的方式增强您的代码。到目前为止,我从来不需要为给定的设备编写任何特定的东西。我遇到的错误总是与可以通过使通用代码更完整或更具弹性来处理的许可或特定情况相关联。让我们说“尽可能少地做假设”,因为我们知道我们倾向于做出没有意义的假设。
除了在尽可能多的物理设备上进行测试之外,还要创建模拟器。您可以对它们进行参数设置,使其具有不同的屏幕布局、不同的嵌入式硬件、内存等。除了 Android 发行版附带的默认模拟器之外,您还可以使用设备供应商提供的模拟器来重现这些设备的特殊性。例如,三星发布了 Galaxy Tab 模拟器。索尼爱立信发布了一款 EDK 手机模拟器。您可以通过常规的 android 分发更新工作流程获得它们。
- 每个设备(将来)都会满足这些布局参数(正常、小、大和 xlarge)吗?
是的,因为 Android 发行版是向后兼容的。将来仍会支持这些布局中的任何一个,但可能会被“弃用”(因此不推荐,但仍然有效),并且肯定会创建新的布局类型。