我正在开发一款我想在所有Android设备上运行的Android应用程序,没有任何问题,但我很难确定有多少设备配置和我应该拥有多少硬件设备进行测试。 / p>
我正在使用的一些功能在模拟器中不受支持,如开发指南中Using the Android Emulator底部所述:
模拟器限制
在此版本中,模拟器的限制包括:
- 不支持拨打或接听实际的电话。您可以 通过模拟器模拟电话(放置和接收) 然而,控制台。
- 不支持USB连接不支持相机/视频捕捉 (输入)。
- 不支持设备连接耳机不支持 确定连接状态
- 不支持确定电池电量和AC充电 状态
- 不支持确定SD卡插入/弹出
- 不支持蓝牙
Multiple APK Support页面说明:
...我们鼓励您开发并发布支持尽可能多的设备配置的单个APK ...
Android Market允许您在同一版本下发布多个APK 申请清单。 Android Market然后将每个APK提供给 基于您声明的配置支持的适当设备 每个APK的清单文件。
我认为没有必要涵盖所有可用功能集的每一个排列,但我不清楚有多少设备配置被认为足以涵盖所有可用设备。
如果我想在硬件上确认我的应用程序几乎可以保证在每台设备上运行,我需要多少部手机和多少平板电脑?另外,我是否需要为制造商或运营商特定的修改做出特殊考虑?
答案 0 :(得分:10)
答案于2011年11月15日更新
使用Android网站统计信息收集最流行的操作系统版本的信息。
使用Android网站统计信息获取最受欢迎的DPI /屏幕大小组合。
使用1& 2的组合来确定您要覆盖的设备的规格。
准备一份符合上述(3)的设备的粗略列表。
如果你有很多钱,或者 - 如果你在一家大公司工作,那么订购手机。如果没有,那么正如其他人已经提到的那样选择一个可以为您提供最大覆盖范围的设备。遗憾的是,模拟器和设备之间的差异有时可能是荒谬的。我最近才发现的另一个选择是,您可以将此流程外包给专门关注这一市场需求的公司。不幸的是,我没有任何具体的公司在这方面推荐。祝你好运!
更新
我遇到了几家提供Android测试即服务的公司。这些都是测试APK的好选择,无需购买设备。
您可能想尝试一下APKUDO:http://www.apkudo.com/ “ 查看您在每台Android设备上运行的应用。自由。 Apkudo通过在每个Android™设备上安装,执行和运行他们的应用程序,帮助开发人员放心地发布,并提供详细的测试报告和流媒体视频。目前处于私人测试版。 “
[更新 - 2013年3月25日]
AppThwack是另一种解决方案
Ranorex是另一种解决方案(http://www.ranorex.com/mobile-automation-testing/android-test-automation.html)
答案 1 :(得分:5)
android的一个大问题是每个制造商可能会在固件中改变他想要的任何东西。它可能有许多优点,但在尝试测试兼容性时可能是一个大问题。
你应该至少有一个设备,但没有限制,甚至一个“足够”的数字,你测试的设备越多越好。
关于运营商修改,通常那些更小,并且变化少于制造商修改,但这也可能会改变。
答案 2 :(得分:3)
我在许多不同的Android手机上遇到过很多问题。每部手机都有它的小怪癖,因此你测试的手机越多越好。我的应用程序下载量超过20万,并且对某些问题感到非常惊讶。现在有些事我做了,并且因为我发现的这些怪癖而远离。此外,每个版本的Android都有其问题。所以我想我的答案是,从至少每个版本的操作系统中获取尽可能多的手机,例如从1.6到3.x.
使用自定义适配器的ListView是一个,我创建了自定义适配器,为ListView中的每个项目添加图标。我曾经从像DroidX这样的2.2手机中反复崩溃过一次,但在其他手机上它运行良好。它也在G1上运行良好。此外,ListViews和SimpleExpandableListAdapter充满了其他手机上的问题,其中图标没有排列,或者在大型列表上,它只会使应用程序崩溃。我现在远离ListView,因为我想尝试让我的应用程序可以在许多不同的操作系统上进行部署
与此处的另一个答案相关的是我在大多数美国部署中遇到的手机列表。不确定为什么三星Galaxy S上市3次或摩托罗拉Droid II上市两次,可能与操作系统版本有关。
1 Motorola Droid X 9.3%
2 HTC Evo 4G 6.2%
3 Samsung Galaxy S 4.9%
4 HTC Desire HD 4.4%
5 Motorola Droid 4.4%
6 HTC Droid Incredible 4.1%
7 Motorola Droid II 3.4%
8 Samsung Galaxy S 3.3%
9 Samsung Galaxy S 2.7%
10 Motorola Droid II 2.4%
这就是为什么我编程的时候我会记住与OS API无关,只是尽量确保它适用于大多数用户。
答案 3 :(得分:2)
决定测试所需手机数量的一种可能方法是使用您的应用程序查看市场。
我的一个应用程序有以下手机故障(请注意这是在英国)。所以在我的地区,这10部手机将为您提供大约70%的覆盖率
1 HTC Wildfire 15.2%
2 Samsung Galaxy S2 10.5%
3 HTC Desire 10.2%
4 Samsung Galaxy S 9.7%
5 HTC Desire S 8.6%
6 HTC Desire HD 7.5%
7 Samsung Galaxy Ace 3.1%
8 Samsung Europa 2.7%
9 ZTE Blade 2.1%
10 Samsung Galaxy Tab 2.1%
答案 4 :(得分:2)
您的目标应该是为您的项目覆盖尽可能多的Android用户。您需要涵盖的重要参数是api级别,ppi,屏幕大小和分辨率。
如何实现: 1.为您的项目查找最受欢迎的设备(例如使用谷歌分析) 2.按参数对这些设备进行分组 3.找到最受欢迎的群体 4.查找每组中最受欢迎的设备
这种方法是在http://choosedevice.com上实现的。
因此,根据您的预算,您应该从第4步购买设备,从最受欢迎群体的设备开始。