Wie halte ich die CPU während des Ladevorgangs ausgeschaltet?

Wenn ich die USB-Stromquelle anschließe, bleibt die CPU eingeschaltet (obwohl "Entwicklung -> Wach bleiben" ausgeschaltet ist).

Beim Laden von einer schwachen Stromquelle entlädt sich der Akku sogar noch schneller als bei gar nicht angeschlossenem USB-Strom (da die CPU eingeschaltet bleibt, anstatt zu schlafen).

Wie verhindere ich, dass die externe Stromverbindung die CPU-Schlafrichtlinie beeinflusst?

Ich spreche nicht davon, dass der Bildschirm eingeschaltet ist, sondern davon, dass die CPU wach ist (leider ist es nicht leicht zu sehen, ob die CPU ein- oder ausgeschaltet ist).

Was meinst du mit "CPU bleibt an"? Reden Sie davon, dass der Bildschirm eingeschaltet ist? Oder verwenden Sie eine App, um ständig die Frequenz zu überwachen, mit der die CPU läuft?
Ich habe ein Programm, das ständig LED blinkt, wenn der Bildschirm ausgeschaltet ist, damit ich deutlich sehe, wann (CPU ist eingeschaltet, während der Bildschirm ausgeschaltet ist). Nachdem ich den Netzschalter gedrückt habe, um den Bildschirm auszuschalten, blinkt er normalerweise mehrmals und stoppt. Aber wenn das Ladegerät angeschlossen ist, blinkt es weiter.
Das Programm: brightact ( Quelle ); Verwendung:brightact /sys/...led.../brightness 20 100000 400000 /sys/power/wait_for_fb_sleep
Ich schaue mir die von Ihnen bereitgestellte Quelle an und sie ist in einfachem C geschrieben. Ich bin mir nicht sicher, ob es möglich ist, ein solches Programm in Android auszuführen. Von welchem ​​Gerät sprechen wir (Hersteller, Modell)? Welches Betriebssystem läuft darauf?
Die meisten meiner Programme für Android sind derzeit in C, benötigen Root-Zugriff und binden den Linux-Kernel direkt ein (ich bin derzeit mehr Linux-Hacker als Android-Hacker). Ich verwende Android 2.3 auf dem Sony-Ericcson Xperia X10.
Haben Sie überprüft, was passiert, wenn Sie Ihr Programm während des Ladevorgangs nicht ausführen? Entlädt sich der Akku trotzdem?
1. Android sollte sich dieses Programms nicht allzu bewusst sein, und es berührt nicht /sys/power/wake_lock; 2. Auch ohne das Programm bemerke ich, dass, wenn das Ladegerät nominell angeschlossen ist, aber nicht lädt (z. B. gibt es nur etwa 3 V statt 5 V), es sich schneller entlädt (ungefähr die gleiche Rate, als ob eine App CPU-Wakelock hält).

Antworten (2)

Drücken Sie lange auf den Ausschalter, während das Gerät angeschlossen ist, und tippen Sie anschließend auf die Aufforderung zum Ausschalten. Achten Sie beim Ausschalten darauf, dass die Ladeanzeige eingeschaltet bleibt. Wenn das Licht nicht an ist, drücken Sie schnell auf die Stromversorgung, nur so dass der Batterieprozentsatz in der Mitte angezeigt wird, der Bildschirm sollte wieder leer sein und die Ladeanzeige aufleuchten und eingeschaltet bleiben. Sie können den Prozentsatz der Batterieladung jederzeit erneut testen. Wenn Sie einsatzbereit sind, drücken Sie lange auf Ein/Aus, um das Gerät einzuschalten, und beobachten oder warten Sie, bis der Neustart erfolgt.

Wenn ich das Gerät während des Ladevorgangs ausschalte, wird es meiner Meinung nach stattdessen in einen Lademodus (mit eingeschalteter CPU) neu gestartet, nur dass die übliche Android-Benutzeroberfläche nicht gestartet wird.
Ich möchte, dass sich Android im üblichen Schlafmodus befindet (wie bei nicht angeschlossenem Gerät ohne Wakelocks), aber auch aufgeladen wird. Wenn ich zum Beispiel ein sehr schwaches Ladegerät (weniger als 1 Watt) anschließe, beginnt es, den Akku zu entladen, anstatt ihn aufzuladen, da das Laden die CPU eingeschaltet hält und die schwache Leistungsaufnahme nicht ausreicht, um die CPU eingeschaltet zu halten, sodass der Akku mehr verwendet wird (im Vergleich nur in den Standby-Modus).
Ich habe das Laden mit ausgeschalteter CPU nur gesehen, wenn der Akku wirklich schwach ist. In diesem Modus versucht es nicht einmal, sich einzuschalten, reagiert nicht auf Tasten und lässt keine LEDs leuchten (es sei denn, der Akku ist bereits geladen).
Der Batterieprozentsatz kann nicht angezeigt werden, wenn die CPU wirklich ausgeschaltet ist. Und das Booten von wirklich ausgeschaltet bis "kann den Batterieprozentsatz anzeigen" ist ziemlich lang (zum Booten ist ein Linux-Kernel erforderlich). Langes Drücken des Netzschalters, um Android von Grund auf neu zu starten (ausgeschaltet), unterscheidet sich vom Fortsetzen des Startvorgangs aus dem Lademodus; Letzteres ist noch schneller.

Ich habe herausgefunden, dass einige CPU-Optimierungen deaktiviert werden, wenn das Telefon mit Geräten verbunden ist, die die Datenübertragung unterstützen (z. B. ein Notebook (sogar schlafend) oder einige Solarzellen). Daher verwende ich ein USB-Kabel, das die Datenübertragung nicht unterstützt.