很难同时强调 VM 的每个部分。
您可以编写运行堆和垃圾收集器的内存压力测试、同步压力测试(如 JSR-166 java.util.concurrent 测试套件)、同时在不同内核上执行大量整数和浮点计算的 CPU 压力测试. 等等。
诀窍是编写一个做你认为它做的测试——数量惊人的“多核”测试由于意外的依赖关系而最终成为单线程——并且可以评估其结果的正确性。除非以某种方式将该事实传达给用户,否则成功导致不稳定的测试是没有用的。使虚拟机崩溃是一个很好的方法。:-)
在同一进程中运行多个应用程序和服务在理论上是可行的,但在实践中很少见。我认为您实际上无法通过这种方式更好地向系统施加压力,因为一次只有一个应用程序处于前台,并且如果您正在发出服务请求,则一个线程将等待响应而另一个运行。你最好只拥有一个具有多个线程的应用程序,这样你就可以准确控制每个应用程序的作用以及它们如何交互。
在你可以做任何这些之前,你需要定义“稳定性”的范围。简单地运行许多应用程序不会出现任何问题,因为有数亿台设备运行着数十亿个 Dalvik 实例,基本上没有由于 VM 本身而出现故障(但由于应用程序中的错误,框架,第三-party库等)。自从两年前发布 Android 4.0(冰淇淋三明治)以来,Dalvik 并没有太大变化。