diverses

Eine kurze Info vorab: Bei den auf dieser Seite vorgestellten Tipps handelt es sich um Empfehlungen, die überprüft wurden.
Dennoch kann nicht garantiert werden, dass diese auch bei euch so wie erwartet funktionieren.
Aus diesem Grund muss jeder selbst entscheiden, ob und in welcher Art und Weise diese Tipps umgesetzt werden.



*** Akkulaufzeit erhöhen ***

Ein großes Problem bei Smartphones ist der recht hohe Stromverbrauch.
Bereits kleine Einschränkungen können eine deutlich längere Akkulaufzeit bewirken.

Als am effektivsten zeigt sich das Abschalten nicht benötigter Module wie z.B. WLAN/Bluetooth.
Auch das Deaktivieren nicht benötigter Funktionen wie z.B. autom. Displayrotation/Animationen zeigt sich als sehr effektiv.

Da das Display als sehr stromhungrig gilt, sollte man eine recht kurze Displaylaufzeit nutzen.
Entweder durch eine recht kurze Displayzeit, oder durch Verwenden des Ein-/Aus Schalters, sobald das Display nicht mehr benötigt wird. Zusätzlich sollte die Beleuchtung so niedrig wie möglich eingestellt werden.





*** Rooten ***

Standartmäßig wird das Smartphone vor seinem Benutzer geschützt, indem dieser systemrelevante Dinge (wie z.B. übertakten der CPU, überschreiben wichtiger Dateien fürs Betriebssystem, etc.) nicht ändern darf.

Will mann allerdings z.B. eine Firewall installieren, das Smartphone vom PC aus steuern, oder vorinstallierte Apps deinstallieren, benötigt man Root-Zugriff.

Um diesen einzurichten sollte man sich allerdings gut auskennen oder einen Fachmann darum bitten, um auf evtl. Rückfragen während der Einrichtung richtig reagieren zu können.

Übrigens: Oftmals wird vor dem Rooten zurückgeschreckt, da es die Befürchtung gibt, dass dadurch die Garantie verloren geht.
Dies ist allerdings nur die halbe Wahrheit, denn der Garantieverlust bezieht sich lediglich auf die Software.
Die Hardware wurde ja nicht verändert und befindet sich im Originalzustand (sofern z.B. nicht die CPU übertaktet wurde).
Also lasst euch nicht abschrecken und holt euch den Vollzugriff für euer Gerät, damit ihr auch alles nutzen könnt, was es euch anbietet!

So verschafft Ihr euch den begehrten Root-Zugriff (ab Ice Cream Sandwich):

1) Ladet euch diese Dateien auf eure SD-Karte:
- CWM via stock recovery (http://dl.dropbox.com/u/34053267/CWM.zip)
- SU-Busybox-Installer.zip (http://db.tt/zW591p6W)
2) Neustart in den Service-Modus (von Handy zu Handy verschieden)
3) wählt "apply update from external storage"
4) wählt "CWM.zip" und wartet bis "CWM recovery" erscheint
5) wählt "install zip from sdcard or external SD"
6) wählt und installiert "SU-Busybox-Installer.zip"
7) macht einen Neustart

Nun sollte euer Smartphone gerootet sein, was Ihr an der zusätzlich installierten App "Superuser" erkennen könnt.

Über die App "Superuser" laufen alle Root-Zugriffe. D.h. sobald eine App Root-Zugriff anfordert, schaltet sich die App "Superuser" dazwischen und frägt euch nach, ob der Zugriff genehmigt wird oder abgelehnt wird.
Somit ist sichergestellt, dass keine App ohne eure Genehmigung Root-Zugriff erhält.


Rückgängig macht ihr dies wie folgt (z.B. wenn das Handy einen Garantie-Defekt hat):


1) Ladet euch diese Dateien auf eure SD-Karte:
- CWM via stock recovery (http://dl.dropbox.com/u/34053267/CWM.zip)
- SU-Uninstaller-Signed.zip (http://dl.dropbox.com/u/34053267/SU-Uninstaller-signed.zip)
2) Neustart in den Service-Modus (von Handy zu Handy verschieden)
3) wählt "apply update from external storage"
4) wählt "CWM.zip" und wartet bis "CWM recovery" erscheint
5) wählt "install zip from sdcard or external SD"
6) wählt und installiert "SU-Uninstaller-Signed.zip"
7) macht einen Neustart

Nun sollte euer Smartphone nicht mehr gerootet sein, was Ihr an der nicht mehr vorhandenen App "Superuser" erkennen könnt



*** Governor ***

Der Governor ist ein Treiber, welcher die CPU-Taktrate regelt, sodass die CPU nicht permanent auf maximaler Leistung gefahren wird, wodurch der Akku geschont wird.

Dieser kann nur geändert/optimiert werden, wenn man Root-Rechte hat mit Hilfe der App "OS Monitor".

Welche Governors zur Verfügung stehen, findet man im Verzeichnis "/sys/devices/system/cpu/cpufreq".
Standartmäßig sind i.d.R. folgende Governors installiert:

Ondemand (standart) (geht kurz auf max. Leistung und regelt dann runter auf Bedarf)
Powersave (regelt die Leistung auf minimal, sodass max. Akkulaufzeit, jedoch min. Leistung)
Userspace (ermöglicht individuelle Einstellungen)
Conservative (wie Ondemand, regelt jedoch halb so schnell und von min-Leistung nach max-Leistung zugunsten der Akkulaufzeit)
Performance (permanent max. Leistung, keine Stromersparnis!)


Jeder Governor bietet andere Einstellungsmöglichkeiten:


Sampling Time/Rate (in µS)
gibt an, wie oft der Kernel die CPU-Auslastung überprüfen soll und entsprechend entscheidet und regelt

Thresholds (in Prozent, 1 - 100)
Wenn die CPU-Last diesen Punkt, x %, erreicht, skaliert der Governor die CPU hoch oder runter. Die meisten Governor haben Niedrig- und Hoch-Schwellenwerte von Haus aus, die die CPU entweder hoch- oder runterskalieren, und fest integriert sind.


*** Ondemand ***

sampling_rate (µS)
gibt an, wie oft der Kernel die CPU-Auslastung überprüfen soll und entsprechend entscheidet und regelt

up_threshold (Prozent, 1 - 100)
Wenn die CPU-Last diesen Schwellen- bzw. Grenzwert erreicht hat, wird der Governor die CPU hochskalieren.
Höhere Werte bedeuten weniger Reaktionsfähigkeit, aber dafür Akkuersparnis und niedrigere Werte höhere Reaktionsfähigkeit, aber dafür ein höherer Akkuverbrauch.

powersave_bias (0 - ?)
Wird ein hoher Wert festgelegt, beeinflusst dies den Governor in niedrigeren Frequenz-Schritten zu skalieren.
Verwendet man diese Funktion, wird die CPU weniger Zeit für höhere Frequenzen aufbringen.
Eine bessere Alternative wäre, dass man auf eine niedrigere Frequenz untertaktet als die Verwendung von powesave_bias, weshalb die meisten Programmierer von Vornherein diese Funktion mit 0 belegen.

sampling_down_factor
Dieser Parameter bestimmt, wie oft die CPU bei höheren Frequenzen sich aufhält, wenn sie real beschäftigt ist. Vorgabe ist, schnell sich auf niedrigere Frequenzen umzustellen = 1. d.h. ist der Wert für sampling_down_factor auf größer als 1 gesetzt, bedeutet das einen neuen Multiplikator für das Scheduling-Intervall, was eine Neubewertung der Last zu Grunde legt, wenn die CPU die höchste Taktfrequenz (die scaling_max_freq) wegen hoher Last erreicht. Dies verbessert die Leistung durch eine Verringerung des Aufwands der Last-Auswertung und hilft die CPU bei der höchsten Frequenz zu halten, wenn sie real ausgelastet ist, statt sie ständig hin und her takten zu lassen, was mehr Akkuleistung bedeuten würde. Diese Abstimmung hat keinen Einfluss auf das Verhalten bei niedrigeren Frequenzen/ niedrigerer CPU-Last.

down_differential
Dieser Faktor berechnet indirekt den down_threshold, also den Niedrig-Schwellenwert. Nach Fertigstellung von sampling_down_factor * sampling_rate bei maximaler Frequenz aufgrund von hoher Auslastung, probiert der Governor die Last erneut aus, um eine Schätzung der neuen Soll-Frequenz zu berechnen und erreicht dies, indem er die niedrigste Frequenz wählt, die den up_threshold nicht auslöst. Die Ziel-Frequenz wird folgendermaßen berechnet: max_load_freq/(up_threshold - down_differential). Sollte der erhaltene Wert nicht in der Frequenz-Tabelle enthalten sein, wird zum nächsten Wert abgerundet. max_load_freq ist die theoretische Frequenz, bei der die CPU 100% arbeiten kann. I.d.R ist es ein Wert unter scaling_max_freq.


*** Powersave ***
*** Userspace ***
*** Conservative ***
*** Performance ***



*** Konfiguration per Script ***

Hat man die optimalen Werte für einen Governor ermittelt/gestestet, möchte man sicherlich, dass diese Werte auch nach einem Neustart noch eingestellt sind.
Dies erreicht man mittels eines Scriptes im Verzeichnis "/system/etc/init.d", denn sämtliche Scripte in diesem Verzeichnis werden automatisch gestartet.
Man muss jedoch darauf achten, dass dieses Script erst nach den anderen Abgearbeitet wird.
Dies erreicht man mittels "sleep 25" direkt zu Beginn des Scriptes.


Beispiel für Ondemand, optimiert auf Akkulaufzeit:

#!/system/bin/sh
sleep 25
echo "95" /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
echo "120000" > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
echo "1" > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
echo "5" > /sys/devices/system/cpu/cpufreq/ondemand/down_differential


Beispiel für Ondemand, optimiert auf Leistung:

#!/system/bin/sh
sleep 25
echo "70" /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
echo "40000" > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
echo "2" > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
echo "15" > /sys/devices/system/cpu/cpufreq/ondemand/down_differential



weitere Scripte, welche sich nicht nur auf den Governor beziehen, findet ihr hier:
http://www.pocketpc.ch/samsung-galaxy-s2-root-rom-gt-i9100/151879-scripte-init-d-scripte-fuer-governor-einstellungen-i-o-schedulers-uv-oc-u-s-w.html





*** Prozessoptimierung ***

Eigentlich regelt Android selbständig, wann welche Prozesse beendet werden, um neuen Prozessen Platz im Hauptspeicher zur Verfügung zu stellen. I.d.R. bleiben dadurch soviele Prozesse wie möglich im Speicher, um bei einem möglichen Abruf nicht erneut geladen zu werden, wodurch der Zugriff deutlich beschleunigt wird.
Diese Vorgehensweise hat jedoch den Nachteil, dass der Hauptspeicher permanent möglichst voll ist, unter anderem auch von Prozessen, welche nicht erneut benötigt werden. Damit die Prozesse im Hauptspeicher gehalten werden können, benötigt dieser für die Prozesse auch Akkuleistung. Es macht somit Sinn, ab und zu mal über die nicht aktuell genutzten, aber dennoch im Hauptspeicher geladenen Prozesse zu schauen und unbenötigte Prozesse zugunsten einer länger Akkulaufzeit zu beenden. Ist man zudem im Besitz eines Smartphones mit geringer CPU-Leistung, so ist diese Optimierung oft durch eine flüssigere Darstellung zu bemerken.

Eine Frage bleibt jedoch noch: Wie regelt nun Android wann welcher Prozess beendet wird?

Hierfür ordnet Android jedem Prozess eine Prozessart zu, welche dann wiederum eine Priorität erhält:

Active Processes (Sehr hohe Priorität)
Visible Processes (hohe Priorität)
Started Service Processes (hohe Priorität)
Background Processes (geringe Priorität)
Empty Processes (geringe Priorität)

Werden die Ressourcen zu eng, werden Prozesse ausgehend von der niedrigsten Priorität beendet.


Welche Prozesse gerade bei euch laufen und welche Prioritäten diese bekommen haben, könnt Ihr mit Hilfe der App "SystemPanel Lite" nachschauen.






*** Anwendungsentwicklung ***

Anwendungen bzw. Programme heißen auf dem Android-Betriebssystem "Apps" (von: Applications).

Da die App-Entwicklung allerdings wesentlich umfangreicher und komplexer als eine Anwendungsentwicklung von Windows ist, verweise ich hier lediglich auf eine Bücherei eures Vertrauens.


Ausführungszeit: 0,361sek
...bis Ausführung: 0sek
RAM: 3.05%