多服务示例
在多个服务上安排任务。
后台读取Android Service。
启动服务,启动任务(重复?),然后停止服务。也许重复这个顺序。
该方法中配置服务数量和任务数量build()。默认情况下,应用程序启动 6 个服务和 20 个任务。如果设备核心数少于 6,则默认服务数量将会减少。
在此示例中,任务(在 中实现service.py)是以一种效率较低的方式生成有界伪随机素数。只是工作忙而已。任务完成后,应用程序会报告所用时间的标准化测量值。
使用前台服务,这些可以用buildozer.spec. 该服务具有 AutoRestartService(True) 并且应用程序尝试连接到重新启动的服务。重新连接可能并非在所有情况下都可靠,在这种情况下,重新启动的服务将不可用。
细粒度任务的性能取决于启动的服务数量。启动比设备拥有的核心数量更多的服务总是会适得其反。对于下图,示例已修改为始终生成相同的素数并报告延迟(以秒为单位)。UI 活动很少。
显然,某处存在一些开销,因为需要添加 4 到 5 个核心,才能将 1 个核心上的任务所花费的时间减少一半。