Fehlerbehebung bei lowmemorykiller

lowmemorykiller: Was ist Töten?

„lowmemorykiller: Killing“ ist ein Android-Systemprotokoll, das darauf hinweist, dass das System wenig Arbeitsspeicher hat und die App beendet, um Arbeitsspeicher freizugeben. Lowmemorykiller ist ein im Android-System integrierter Wiederherstellungsmechanismus für geringen Arbeitsspeicher. Wenn der Systemspeicher nicht ausreicht, beendet er den Prozess entsprechend der Speichernutzung der Anwendung, um Speicher freizugeben.

Wenn Sie dieses Protokoll häufig sehen, kann dies bedeuten, dass Ihr Gerät nicht über ausreichend Speicherplatz verfügt, und Sie sollten Ihr Gerät aktualisieren oder andere Maßnahmen ergreifen (z. B. das Schließen unnötiger Hintergrundprozesse), um Speicherplatz freizugeben.

Wie kann die Ursache für unzureichenden Speicher anhand von Protokollen behoben werden? Wie kann anhand von Protokollen behoben werden, welcher Prozess das Problem verursacht?

Wenn Sie das Problem des unzureichenden Speichers im Android-System beheben, können Sie von den folgenden Aspekten ausgehen:

Überprüfen Sie die Systemprotokolle: Das Android-System generiert viele zugehörige Protokolle, wenn der Arbeitsspeicher niedrig ist. Sie können die Ursache für den niedrigen Arbeitsspeicher finden. Protokolle können mit ADB-Tools gesammelt und dann mit einem Texteditor oder speziellen Tools wie dem Logcat-Dienstprogramm angezeigt werden.

Speicherüberwachung verwenden: Sie können ein Speicherüberwachungstool eines Drittanbieters (z. B. MAT, Memory Analyzer) verwenden, um die Systemspeichernutzung zu analysieren. Diese Tools können Ihnen dabei helfen, Programme mit Speicherlecks und Programme mit dem größten Speicherverbrauch zu identifizieren.

Anwendungen überprüfen: Sie können überprüfen, ob Anwendungen den Speicher falsch verwenden, z. B. Speicherlecks. Sie können Tools (z. B. MAT, LeakCanary) verwenden, um Speicherlecks zu identifizieren und zu analysieren.

Mit diesen Methoden können Sie die Ursache für wenig Arbeitsspeicher finden und so feststellen, welcher Prozess das Problem verursacht.

Wie kann die Speichernutzung jedes Prozesses im System über das aktuelle Protokoll angezeigt werden?

Zeigen Sie die Speichernutzung jedes Prozesses im System über das aktuelle Protokoll an.Die übliche Methode ist die Verwendung von Speicherverfolgungstools (wie dumpsys meminfo) oder Systemtools (wie top, ps) für die Analyse.

Verwenden Sie dumpsys meminfo:
Sie können ADB-Tools (wie "adb shell dumpsys meminfo [package_name]") verwenden, um detaillierte Berichte über die Speichernutzung eines Prozesses zu erstellen. Diese Berichte enthalten Informationen wie die Größe des Speicherheaps, den verwendeten Speicher und den maximal verfügbaren Speicher Erinnerung. .

Verwenden Sie top oder ps:
Durch Ausführen des Befehls "adb shell top" oder "adb shell ps" können Sie die detaillierten Informationen aller Prozesse im aktuellen System anzeigen, einschließlich Prozessname, PID, Speichernutzung usw.

Durch die Analyse der obigen Informationen können Sie die Speichernutzung des Systems ermitteln und feststellen, welcher Prozess den unzureichenden Speicher verursacht hat.

zygote : Explizites gleichzeitiges Kopieren GC befreite 185 (8 KB) AllocSpace-Objekte, 0 (0B) LOS-Objekte, 98 % frei, 24 KB/1560 KB, pausierte 40 us insgesamt 2,319 ms Wie ist dieses Protokoll zu interpretieren?

上面这段日志表示系统的内存管理机制在进行内存回收操作,具体的信息如下:

"Explicit concurrent copying GC":表示这是一次显式的并发复制垃圾回收。

"freed 185(8KB) AllocSpace objects":表示回收了185个大小为8KB的内存对象。

"0(0B) LOS objects":表示回收了0个大小为0B的大对象。

"98% free, 24KB/1560KB":表示当前可用的内存占总内存的98%,可用内存大小为24KB,总内存大小为1560KB。

"paused 40us total 2.319ms":表示这次回收的总时间为2.319ms,其中暂停时间为40us。

总体来说,这段日志告诉我们系统正在进行内存回收,释放了185个大小为8KB的内存对象,总共回收的时间为2.319ms,暂停的时间为40us。

Ist 1560 KB der Systemspeicher des Android-Geräts? Warum ist es so klein?

1560KB 是在特定时刻 Android 设备的可用系统内存,
不一定是整个系统内存的大小。系统内存的大小通常取决于设备硬件配置,
在不同的设备上可能会有所不同。

如果该数值较小,可能是因为此时正在运行的应用程序需要大量内存,
导致系统内存不足。或者是设备内存容量本来就不够大,不能满足现有应用程序的
需求。在这种情况下,可以尝试卸载一些不常用的应用程序或者更换配置更高的设备。

Über die Android Debug Bridge (ADB)

Mit der Android Debug Bridge (ADB) können Sie die Systemprotokolle des Android-Geräts anzeigen, um die Speichernutzung zu ermitteln. Hier sind die einfachen Schritte zur Verwendung von ADB zum Anzeigen der Speichernutzung:

Installieren Sie ADB auf Ihrem Computer.

Verbinden Sie das Android-Gerät mit dem Computer.

Führen Sie den folgenden Befehl in der Befehlszeile/im Terminal aus:

java
adb shell dumpsys meminfo <package name>

wobei der Paketname der Anwendung ist, deren Speichernutzung Sie sehen möchten.

Sehen Sie sich die Ausgabe an, die Informationen zur Speichernutzung enthält, wie z. B.: Gesamtspeichernutzung, freier Speicher, Dalvik-Heap-Größe usw.
Ich hoffe, diese Informationen helfen Ihnen, die Speichernutzung Ihres Android-Geräts zu verstehen.

Guess you like

Origin blog.csdn.net/u013168615/article/details/128852874