Booten und "Unpacking native libraries"

usta0815

usta0815

Neues Mitglied
2
Moin zusammen,

zunächst einmal ein "Great Thanks!" an das Portal und ihre tüfftelfreudigen Mitglieder :thumbsup:

Zu meinem Problem:
Aktuell nutze ich folgende Basis:

-V1
-System=30MB frei (81 Apps)
-Data=79 frei (An Apps nur Touchpal und Opera Mini drauf...rest verlinkt auf=>
-SDExt2=1GB; 420 frei (30-40 Apps)

Wenn ich nun "der Gerät" neu boote, dauert der Startvorgang sehr lange. Das eigentlich Problem ist aber, dass nach dem Neustart erstmal der Data-Speicher komplett vollgeklotzt ist + diverser Fehlermeldungen und grafischer Fehler.
Sofern ich feststellen konnte blähen sich Data/Data und Dalvik bis zum geht-nicht-mehr auf (1-2 MB frei).

Nachdem ich Logcat mir ein bisschen angeschaut habe, konnte ich feststellen das so ziemlich jede verlinke App beim booten erneut entpackt wird, und dies geschieht eben zunächst in den überlaufenden Data-Bereich.

"Unpacking native for data..."
"Unpacking native for data..."

Schließlich wenn Link2SD gestartet werden konnte werden die neu entpackten Libraries&Darvik für die verlinkten Apps erneut auf SDExt2 Partition geschoben und es ist erstmal wieder Ruhe im Schacht.

Dies ist insofert unbefriedigend als das es die Anzahl der Installierten&Verlinkten Apps einschränkt obwohl der Data immer schön frei gehalten wird.

Es gibt hierzu einen FAQ - Link2SD Eintrag:
"[FONT=verdana, sans-serif]Q. Library files that I linked get unlinked after restarting my phone, why?..."

Vorschlag wie ich hier am besten vorgehen könnte?...bis auf weniger kram installieren natürlich ;)

[/FONT]
 
Zuletzt bearbeitet:
Hängt möglicherweise mit den Einstellungen von Link2SD zusammen.
Programm-Bibliotheken beim Hochfahren erneut verschieben
Relink dex files at boot
 
Denke auch das es an den Einstellungen liegt, da in dalvik cache nur einmal geschrieben wird, beim instalieren der App. Sonst würde der dalvik cache ja keinen Sinn machen.

In meiner Firmware verschiebe ich data und dalvik cache direct beim booten auf die Sd-Karte. Damit ist das Speicher Problem (größe) auch gelöst.
 
usta0815 schrieb:
-V1
-System=30MB frei (81 Apps)
-Data=79 frei (An Apps nur Touchpal und Opera Mini drauf...rest verlinkt auf=>
-SDExt2=1GB; 420 frei (30-40 Apps)

[FONT=verdana, sans-serif]
...bis auf weniger kram installieren natürlich ;)

[/FONT]


OT Question:

ich versuche es mir gerade vorzustellen, wozu man 120 Apps auf einem Telefon überhaupt benötigt. Was hast Du denn alles da?:confused2: Poste mal die Liste.
 
"Was hast Du denn alles da? Poste mal die Liste"
Sorry, aber wie soll das bitte helfen? ;-) (ja ich weiß du hast geschrieben "OT"...)
 
Naja die 81 Systemapps sind ja noch normal. 30-40 Userapps auch. Ist ja jedem selbst überlassen was er installiert hat und hat eigentlich mit der Frage nix zu tun. Link2SD soll ja gerade da helfen, dass man mehr Apps installieren kann als normal.

Habe bei meinem GNex nicht wirklich viele Apps installiert ca. 4-5 Appdrawer Seiten. Dennoch habe ich insgesamt ca. 190 Apps lt. Auswertung. Die meinsten sind ja Systemapps.

@usta0815:
Bist du noch auf der Original-ROM oder hast du z.b. meine ausprobiert, wo init.d-Support dabei ist.
 
segler11 schrieb:
Denke auch das es an den Einstellungen liegt, da in dalvik cache nur einmal geschrieben wird, beim instalieren der App. Sonst würde der dalvik cache ja keinen Sinn machen.

In meiner Firmware verschiebe ich data und dalvik cache direct beim booten auf die Sd-Karte. Damit ist das Speicher Problem (größe) auch gelöst.

Kann ich bitte deine Firmware haben oder auch nur die boot.img:biggrin:?

Würde es mal gerne testen:D!
 
Zuletzt bearbeitet:
ElTonno schrieb:
Hängt möglicherweise mit den Einstellungen von Link2SD zusammen.

Ok, wenn ich die Einstellungen:

Programm-Bibliotheken: Automatisch die Programm-Bibliotheken beim Hochfahren erneut verschieben
&
Relink dex files at boot...

deaktiviere passiert folgendes: /data-Speicher: 161 MB=> Benutzt: 160 MB.

/data/data=93,6 MB
/data/dalvik-cache=53,4 MB

/data/sdext2/data=92,7 MB
/data/sdext2/dalvik-cache=63,4 MB


Wenn ich jetzt Link2SD manuell anstupse die libs und dalvik zu verschieben, ist die Welt wieder in Ordnung: /data-Speicher: 161 MB=> Benutzt: 82 MB

/data/data=16,7 MB
/data/dalvik-cache=53,4 MB

/data/sdext2/data=92,7 MB
/data/sdext2/dalvik-cache=63,4 MB

Nach dem reboot waren also die libs für die verlinkten apps sowohl in data/data als auch in data/sdext2/data, wo sie ja auch hingehören vorhanden.

Dies deckt sich mit dem in der Link2SD beschriebenen verhalten:

On Android 2.3 and 2.2, the links to the lib files are being lost after rebooting because the PackageManager service unpacks all native libraries from the apk files at boot time.

Android 2.3 links native library directories and it does not unpack libs for apps on the external card since they have their libraries in the ASEC container. But it unpacks the lib files that are linked by Link2SD.

Logcat log shows what is going on...

...
I/PackageManager( 184): Unpacking native libraries for /data/app/com.aurorasoftworks.quadrant.ui.standard-1.apk...

You can use "relink lib files at boot option" as workaround.


Sprich das gehört sich bei Android 2.2 und 2.3 so. Der Paketmanager entpackt alle libs beim booten neu in data/data. Das dies für die verlinkten apps völlig überflüssig ist, da sich deren libs bereits in data/sdext2/data befinden ist android worscht.
Link2sd wird gestartet, schaut in data/data nach libs von verschobenen apps nach, findet welche und verschiebt sie erneut, alles wieder gut, klappe zu, affe tot und in data ist wieder bombig platz.

Falls sich die libs im externen android-secure befinden, soll der Paketmanager laut der beschreibung oben ja ruhe geben. Werde mal hier ein bisschen rumspielen.

Soviele Apps sind es übrigens garnicht. Bin da ein ganz braver :winki:
Sind vielleicht 45 user apps, der rest ist system.
Vollständige App-Liste inkl. Kreditkartennummern gibts selbstverständlich auf Wunsch :D
 
MorphX schrieb:
@usta0815:
Bist du noch auf der Original-ROM oder hast du z.b. meine ausprobiert, wo init.d-Support dabei ist.

Nutze das V1 hier aus dem Board.
Das mit dem init.d support könnte eine Idee sein....wenn nich nur wüsste nach was für ein skript ich suchen soll :D

der paketmanager entpackt die libs für die verlinkten apps beim booten neu in data/data, da diese ja nur als links vorliegen.
es müsste also entweder irgendwie der paketmanager für den bootvorgang schlafen gelegt werden, oder man müsste ihn dazu bringen, das interesse daran verlieren die libs zu entpacken, da er entweder die verlinkten apps gar nicht mehr sieht, weil z.b. die symbolischen links sich beim booten nicht mehr in data/app befinden?,
oder die libs selbst schon "vorhanden" sind, z.b. in einem gültigen bereich auf der karte (.android.secure??)...oder vielleicht wäre es auch möglich die library-links in data/data schreibzuschützen?

Das Problem selbst gibt es jedenfalls schon eine ganze weile.

bakpinar, der link2sd gebastelt hat schrieb am 25th April 2011 dazu:
...I am looking into a solution for this.

zur idee mit den schreibgeschützen "dummy-libs"
...Anybody have any idea how we can prevent symlinks from being removed/overwritten without changing permissions for the directory?
 
Zuletzt bearbeitet:
Ich habe jetzt eine Lösung für das Problem gefunden, mit der sich einigermaßen Leben lässt.
Libs werden einfach grundsätzlich nicht verlinkt sondern im internen Speicher gelassen.
Genau gehe ich dabei mit Link2SD so vor:

1. App hat keine Lib=>App+Dex wird in die 2. Partition verlinkt.
2. App hat Lib, Lib < Dex => App+Dex wird in die 2. Partition verlinkt. Lib bleibt im internen Speicher und verkleinert diesen.
3. App hat Lib, Lib > Dex => App+Lib wird in die 1. Partition gemounted (App2SD). Dex bleibt im internen Speicher und verkleinert diesen.

Der Neustart dauert jetzt anstatt 4-5 Minuten fehlerfreie 1,5 Minuten.
Probleme wird es dann geben falls ein Dalvik-Cache wipe durchgeführt werden wird, da der interne Speicher für die dex-dateien aller verlinkten Apps knapp sein dürfte. Dies wird ensprechend ein paar reboots länger dauern bis alle dex-dateien von neuem gebildet und verlinkt sind.

Und falls der interne Speicher dann doch mal zu knapp werden sollte, kann man gezielt soviele Libs verlinken wie man dann Data-speicher frei hat. Der Neustart dauert dann zwar wieder länger, läuft aber ohne Fehler durch.

Insgesamt habe ich dies bei mehreren Geräten so eingerichtet und getestet.
Bisher läuft alles bombig. Aber vor allem das schnellere Booten ist echt ein Zugewinn.
 
Neustart 1,5 Minuten ????
 
PIN-Abfrage ist nach knapp einer minute da.
bis der ganze rest dann da ist dauert es etwa 30 sekunden.
rest=LBE (rechteverwaltung für apps), advanced taskmanager, GO weather widget....und noch ein bisschen kleinkram ala URSave Cpumonitor (zum sofort sehen ob ein task hängt).
habe so bei meinem nutzerprofil eine akkulaufzeit von 3-4 tagen.
 

Ähnliche Themen

woingenau
Antworten
22
Aufrufe
17.813
p01.01
P
intrepid777
Antworten
9
Aufrufe
1.735
intrepid777
intrepid777
M
Antworten
0
Aufrufe
2.178
mkrueger
M
Zurück
Oben Unten