Android 如何在自定义ROM(如CM7)上调试所有边缘情况

Android 如何在自定义ROM(如CM7)上调试所有边缘情况,android,Android,最近,我们发布了一个应用程序。在发布之前,我们在三星Nexus S、三星Galaxy S和三星Galaxy Tab上进行了测试 然而,最近,我们意识到,对于运行HTC EVO 4G Cyanogen 7的用户,我们的应用程序无法检测到前置摄像头 我想知道,你们是如何在不购买新硬件的情况下开始在这样的边缘情况下进行调试的?平台碎片化的喜怒哀乐,特别是在涉及定制固件的情况下。简单的答案是什么?您不能测试所有的边缘情况,而且您肯定永远不会发现CM衍生的缺陷。这是野兽的本性。即使是CM基线的独立分支也会

最近,我们发布了一个应用程序。在发布之前,我们在三星Nexus S、三星Galaxy S和三星Galaxy Tab上进行了测试

然而,最近,我们意识到,对于运行HTC EVO 4G Cyanogen 7的用户,我们的应用程序无法检测到前置摄像头


我想知道,你们是如何在不购买新硬件的情况下开始在这样的边缘情况下进行调试的?

平台碎片化的喜怒哀乐,特别是在涉及定制固件的情况下。简单的答案是什么?您不能测试所有的边缘情况,而且您肯定永远不会发现CM衍生的缺陷。这是野兽的本性。即使是CM基线的独立分支也会做自己的事情,这些事情可能会完全破坏某些东西(例如前摄像头)或使其他东西工作(例如CPU睡眠)。我的意思是,想想看:自定义固件是自定义的。我本来可以——而且可以我自己的CM7分支,我可以用它做任何事情。我可以让它完全忽略ldpi资源,总是拉hdpi,而不管点间距或其他任何东西。更重要的是,我完全可以把事情搞砸。除非你管理我的分支机构,否则你不会看到这种行为

您所能做的最好的事情是为最大的平台(针对API级别7,目前为您提供99%的市场份额)编程,然后等待边缘案例报告并尽快处理。根据您的消费资源,购买能够覆盖绝大多数平台的设备。选择beta测试人员以接收深奥设备或固件的早期版本


那就祈祷吧:)

并且,如果库存固件在设备上工作,但改装ROM不工作,则向改装维护人员报告错误。例如,如果EVO 4G的原始ROM运行良好(基于通过DeviceAnywhere风格的服务进行的测试,或者基于显示大量EVO 4G用户且没有其他崩溃的分析),那么问题很可能出在CyanogenMod 7上。这就是快乐和悲伤。然而,大多数时候,客户只是不理解,会把责任推到我们身上:)完全正确。我还意识到,您询问了如何在这些硬件平台上调试边缘案例,而不仅仅是尽早捕获它们。那是一罐不同的虫子。除非你能找到一个愿意拥有的人,否则你必须购买基于定制固件的设备,或者至少在库存中有一个可以轻松闪存的类似设备。这取决于问题的性质。不管给定的代码检查和堆栈跟踪如何,通常都会发现崩溃。如果没有实际的硬件,比如找不到相机就有点棘手了:|。