Wo werden heruntergeladene Apps gespeichert, wenn sie auf der SD-Karte installiert sind?

Gestern hatte ich ~40 MB freien Speicherplatz auf meinem Android 2.2.1 Samsung GT-S5570. Ich wollte die App installieren Facebook, also habe ich sie heruntergeladen Play Storeund dann automatisch installiert. Seine Größe betrug ~20 MB.

Diese App wird auf der SD-Karte installiert. Nach all dem Vorgang erhielt ich jedoch eine Warnmeldung über niedrigen internen Speicher. Ich habe den freien Speicherplatz überprüft und überraschenderweise sind es jetzt ~ 20 MB ... Ich nehme an, die 20 MB sind die heruntergeladene App (etwas wie die .exe in Windows).

Ich habe .temp und Downloads durchsucht, um zu sehen, ob die ".exe" dort ist, aber ich konnte sie nicht finden. Ich habe die Browsereinstellungen (den Standard-Android-Browser) durchgesehen, um zu sehen, wo die Downloads gespeichert werden, aber ich konnte keinen Verweis auf die Downloads finden.

Wo werden die heruntergeladenen „.exe“-Dateien gespeichert?

Thanos, ich habe gerade das insufficient-memoryTag zu deiner Frage hinzugefügt. Bitte werfen Sie einen Blick auf das Tag-Wiki für Details, einschließlich des Vorschlags von babelmonk (der eher im app2sd-Tag-Wiki behandelt wird ).

Antworten (2)

Android-Apps sind keine .exe-Dateien, sondern .apk-Dateien, die effektiv Java-JAR-Dateien mit zusätzlichen enthaltenen Informationen sind.

Die Pakete werden an einem der wenigen Orte installiert:

  1. /system/app- für vom System installierte Apps - Sie können diesen Ordner nicht ändern.
  2. /data/app- Alle vom Markt installierten Apps werden hier installiert, und Sie als Benutzer können den Ordner ändern.
  3. /sdcard/.android_secure- Apps, die auf die SD-Karte verschoben werden, werden hier gespeichert

Beachten Sie, dass Apps auch Daten an einer Reihe von Orten ablegen, und nicht alle davon befinden sich auf der SD-Karte, selbst wenn die App selbst auf der SD-Karte installiert ist. Dies ist wahrscheinlich Ihr Problem mit der App auf Ihrem Gerät, und leider - ohne das Gerät zu rooten und etwas wie a2sd zu verwenden , mit dem Sie andere Partitionen auf die SD-Karte verschieben können.

Als Referenz siehe auch diese Frage zu StackOverflow , die weitere Informationen enthält.

Ich danke Ihnen sehr für Ihre Antwort! Ich habe mein Telefon tatsächlich gerootet, aber ich verstehe nicht wirklich, was der a2sd tun wird. Der Link, den Sie bereitgestellt haben - korrigieren Sie mich, wenn ich falsch liege - ist eine Anleitung zum Verschieben des Betriebssystems auf die SD-Karte ... Ich glaube, das ist nicht die sicherste Vorgehensweise, oder?
Richtig, es birgt ein gewisses Risiko und erfordert ein erhebliches Maß an Verständnis des Android-Systems, um das Beste daraus zu machen - ich würde es sicherlich nicht für schwache Nerven empfehlen :) Um Ihre Frage zu beantworten, wenn Sie das Betriebssystem auf das verschieben SD-Karte, das ist im Großen und Ganzen richtig, aber Sie können ziemlich wählerisch sein, welche Partitionen verschoben werden und wie, also ist es ziemlich leistungsfähig.
Mächtig? Das klingt lecker! Haben Sie ein Tutorial oder eine Anleitung im Sinn, um dies zu tun? Diese Speicherwarnungen sind wirklich nervig, das kann ich sagen!
Izzy hat auf das app2sd-Tag-Wiki verlinkt , was ein guter Ort ist, um damit anzufangen (danke Izzy, das war mir nicht bewusst!)
Um ehrlich zu sein, habe ich all diese Ratschläge bereits ausprobiert. Ich habe mein Telefon gerootet, eine ~250-MB-Partition auf der SD-Karte erstellt ext2, alle verschiebbaren Apps mit verschoben Link2SD, symbolische Links zu nicht verschiebbaren Apps erstellt (wie maps, play store), „System“-Apps gelöscht wie gmailund youtubeaber ich habe wieder nur ~20 MB frei Raum...

Der tatsächliche Speicherort (oder Pfad) der externen SD-Karte (nicht intern, manchmal wird der vom Benutzer verfügbare interne Speicher als externer Speicher betrachtet (in der Android-Entwicklung)) variiert von Gerät zu Gerät. Vermutlich unterscheidet sich also auch der Pfad der installierten Anwendungen auf der SD-Karte von Gerät zu Gerät. Wenn Sie wirklich wissen möchten, wo sich installierte Apps (auf der SD-Karte) befinden, müssen Sie ein wenig programmieren.

Aber in den meisten Fällen (Samsung-Geräte, die auf Lolipop laufen) befindet sich das Anwendungspaket in /mnt/asec/[package_name] und die .apk-Datei in /mnt/asec/[package_name]/[app_name].apk . Wenn Sie wirklich wissen möchten, wo es sich befindet, fügen Sie den folgenden Code in die Methode onCreate() ein und führen Sie die App auf dem gewünschten Gerät aus. Es zeigt Ihnen alle Speicherorte der App, die sich auf der SD-Karte befinden....

Hoffe es hilft...

PackageManager pm=getPackageManager();
    List<ApplicationInfo> infos=pm.getInstalledApplications(0);
    for(int i=0;i<infos.size();++i){
       String src_path=infos.get(i).sourceDir;
       if(!src_path.contains("/system") &&
               !src_path.contains("/data")){
           // showing path as toast message
           // you can even print it with System.out.println()
           Toast.makeText(this, src_path, Toast.LENGTH_SHORT).show();
       }
    }