我正在构建一个android应用程序,它将作为一个独立的应用程序在微控制器上运行。
我必须在我的应用程序中添加一个后台线程,执行一些任务,并且每隔20 my无限期地调用一次。在运行我的应用程序时,我会收到以下警告。
I/ample.app: Background concurrent copying GC freed 3461(211KB) AllocSpace objects, 36(1872KB) LOS objects, 49% free, 2MB/4MB, paused 509us total 104.562ms
I/ample.app: Background concurrent copying GC freed 7921(410KB) AllocSpace objects, 36(1872KB) LOS objects, 49% free, 1933KB/3MB, paused 2.204ms total 109.949ms
I/ample.app: Background concurrent copying GC freed 2823(175KB) AllocSpace objects, 32(1664KB) LOS objects, 49% free, 2022KB/3MB, paused 1.047ms total 104.209ms
I/ample.app: Background concurrent copying GC freed 2758(176KB) AllocSpace objects, 36(1872KB) LOS objects, 50% free, 1918KB/3MB, paused 550us total 101.114ms
I/ample.app: Background concurrent copying GC freed 2725(177KB) AllocSpace objects, 32(1664KB) LOS objects, 50% free, 1918KB/3MB, paused 503us total 102.727ms
I/ample.app: Background concurrent copying GC freed 2717(161KB) AllocSpace objects, 32(1664KB) LOS objects, 49% free, 1918KB/3MB, paused 502us total 114.887ms
I/ample.app: Background concurrent copying GC freed 2592(144KB) AllocSpace objects, 32(1664KB) LOS objects, 49% free, 1918KB/3MB, paused 492us total 101.373ms
I/ample.app: Background concurrent copying GC freed 2724(176KB) AllocSpace objects, 32(1664KB) LOS objects, 50% free, 2022KB/3MB, paused 504us total 106.705ms
I/ample.app: Background concurrent copying GC freed 2880(176KB) AllocSpace objects, 36(1872KB) LOS objects, 50% free, 1918KB/3MB, paused 501us total 101.745ms
I/ample.app: Background concurrent copying GC freed 2599(161KB) AllocSpace objects, 32(1664KB) LOS objects, 50% free, 1918KB/3MB, paused 1.229ms total 107.834ms
I/ample.app: Background concurrent copying GC freed 2855(193KB) AllocSpace objects, 32(1664KB) LOS objects, 49% free, 1918KB/3MB, paused 503us total 119.165ms
I/ample.app: Background concurrent copying GC freed 2594(160KB) AllocSpace objects, 32(1664KB) LOS objects, 49% free, 1918KB/3MB, paused 689us total 117.995ms
I/ample.app: Background concurrent copying GC freed 2470(176KB) AllocSpace objects, 32(1664KB) LOS objects, 49% free, 1918KB/3MB, paused 502us total 107.202ms
I/ample.app: Background concurrent copying GC freed 2744(160KB) AllocSpace objects, 32(1664KB) LOS objects, 50% free, 1918KB/3MB, paused 504us total 114.165ms
I/ample.app: Background concurrent copying GC freed 3100(177KB) AllocSpace objects, 32(1664KB) LOS objects, 50% free, 1918KB/3MB, paused 507us total 106.392ms
I/ample.app: Background concurrent copying GC freed 2722(177KB) AllocSpace objects, 32(1664KB) LOS objects, 49% free, 1918KB/3MB, paused 501us total 112.687ms
I/ample.app: Background concurrent copying GC freed 2719(177KB) AllocSpace objects, 32(1664KB) LOS objects, 49% free, 1918KB/3MB, paused 596us total 102.322ms
I/ample.app: Background concurrent copying GC freed 2594(160KB) AllocSpace objects, 32(1664KB) LOS objects, 49% free, 1918KB/3MB, paused 586us total 112.978ms
I/ample.app: Background concurrent copying GC freed 2842(161KB) AllocSpace objects, 32(1664KB) LOS objects, 49% free, 1918KB/3MB, paused 603us total 110.437ms
D/QueuedWork: waited: [<1: 0, <2: 111, <4: 30, <8: 147, <16: 712, <32: 24, <64: 0, <128: 0, <256: 0, <512: 0, <1024: 0, <2048: 0, <4096: 0, <8192: 0, <16384: 0, >=16384: 0]
无视这些警告可以吗?虽然我的应用程序目前运行良好,但我担心这个警告可能会导致我的应用程序崩溃。
任何帮助都将不胜感激。谢谢
发布于 2022-01-10 13:23:49
Android确实不适合作为微控制器的操作系统。最重要的是,你希望在这方面保持稳定。Android不会给你这样的机会--任何进程都可以在任何时候被操作系统杀死以获取资源。另一个问题是,正如您看到的,垃圾收集。这可以在任何时候发生,并阻塞任何或所有线程。如果您需要快速响应硬件事件,则不希望使用垃圾收集语言--您想要确保永远不会被阻止的东西。我会重新考虑这个方法。
在一个普通的应用程序中,我会说你看到的GC事件是可以的,只要你没有看到perf问题。但是对于一个微控制器来说,你肯定会因为它而失去一些事件。你不会从那些崩溃,除非你耗尽内存,但他们可以推迟一切。
https://stackoverflow.com/questions/70658979
复制相似问题