Behält Android nach der Installation einer Anwendung vom Marktplatz die APK-Datei bei?
Gibt es einen Standardspeicherort, an dem Android solche Dateien aufbewahren würde?
Vorinstallierte Anwendungen befinden sich im /system/app
Ordner. Vom Benutzer installierte Anwendungen befinden sich in /data/app
. Ich denke, Sie können nur zugreifen, wenn Sie ein gerootetes Telefon haben. Ich habe hier kein verwurzeltes Telefon, aber probieren Sie diesen Code aus:
public class Testing extends Activity {
private static final String TAG = "TEST";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
File appsDir = new File("/data/app");
String[] files = appsDir.list();
for (int i = 0 ; i < files.length ; i++ ) {
Log.d(TAG, "File: "+files[i]);
}
}
Es listet die Apks in meiner verwurzelten HTC-Magie und im Emu auf.
Sie können package manager (
pm
) verwenden, umadb shell
Pakete aufzulisten:und um anzuzeigen, wo sich die
.apk
Datei befindet:Und
adb pull
um die apk herunterzuladen.quelle
adb pull /data/app/com.example.app-filename.apk path/to/desired/destination
Wenn Sie nur eine APK-Datei von etwas erhalten möchten, das Sie zuvor installiert haben, gehen Sie folgendermaßen vor:
Sie müssen Ihr Telefon nicht rooten, verwenden
adb
oder schreiben.quelle
Es gibt keinen Standardspeicherort. Sie können jedoch den PackageManager verwenden, um Informationen zu Paketen zu erhalten, und die ApplicationInfo-Klasse, die Sie von dort abrufen können, enthält verschiedene Informationen zu einem bestimmten Paket: den Pfad zu seiner APK, den Pfad zu seinem Datenverzeichnis, den Pfad zu einer Nur-Ressourcen-APK (für vorwärts gesperrte Apps) usw. Beachten Sie, dass Sie abhängig von Ihrer Beziehung zur anderen App möglicherweise die Berechtigung zum Lesen dieser Verzeichnisse haben oder nicht. Alle Apps können jedoch die Ressource .apk lesen (die auch die echte .apk für nicht vorwärts gesperrte Apps ist).
Wenn Sie nur in der Shell stöbern, befinden sich derzeit nicht vorwärts gesperrte Apps in /data/app/.apk. Der Shell-Benutzer kann eine bestimmte APK-Datei lesen, das Verzeichnis jedoch nicht auflisten. In einer zukünftigen Version wird die Namenskonvention geringfügig geändert. Verlassen Sie sich also nicht darauf, dass sie gleich bleibt. Wenn Sie jedoch den Pfad der APK vom Paketmanager erhalten, können Sie sie in der Shell verwenden.
quelle
Vorinstallierte Apps befinden sich normalerweise in / system / app und vom Benutzer installierte Apps in / data / app.
Sie können "adb pull" verwenden, müssen jedoch den vollständigen Pfad der APK-Datei kennen. Auf dem Emulator können Sie mit "adb shell" + "ls" eine Verzeichnisliste abrufen. Auf einem Android-Gerät ist dies aus Sicherheitsgründen im Ordner "/ data" nicht möglich. Wie ermitteln Sie den vollständigen Pfad der APK-Datei?
Sie können eine vollständige Liste aller installierten Apps abrufen, indem Sie ein Programm schreiben, das den PackageManager abfragt. Kurzcode-Ausschnitt unten:
Sie können auch Apps finden, die solche Informationen geben. Es gibt viele von ihnen. Versuchen Sie dies (AppSender).
quelle
Wenn Sie nach dem Pfad einer bestimmten App suchen, besteht eine schnelle und schmutzige Lösung darin, nur den Fehlerbericht zu lesen:
Ich weiß nicht, dass dies eine vollständige Liste enthält, daher kann es hilfreich sein, die App zuerst auszuführen.
quelle
Vom Marktplatz installieren
Es ist das Verhalten des Marktplatzes, ob die apk nach der Installation beibehalten werden soll. Google Play behält die apk nach der Installation nicht bei. Andere Marktplätze von Drittanbietern weisen möglicherweise ein anderes Verhalten auf.
Installation vom Entwicklungs- / Debug-Tool (ADB, Eclipse, Android Studio)
Wenn wir die apk über das Debug-Tool installieren, direkt aufrufen
adb install
oder aus eclipse / android studio, wird die apkadb push
normalerweise in ein öffentliches Lese- und Schreibverzeichnis übertragen ( )/data/local/tmp/
. Danach verwendet das Tool denpm
Befehl zum Installieren und löscht die temporäre apk/data/local/tmp/
nach der erfolgreichen Installation.Wir könnten diese Informationen aus der Debug-Ausgabe wie folgt erhalten.
Wie das System die apk hält
Natürlich muss das System alle apks irgendwo speichern. Es gibt drei Stellen, an denen das System die Apks basierend auf den verschiedenen Arten von Apks aufbewahren kann:
für Lager App
Diese werden normalerweise vom Hersteller im Gerät geliefert, einschließlich der Kern-App für den Systembetrieb und des Google-Dienstes. Sie finden sie unter Verzeichnis
/system/app
und/system/priv-app
.Benutzer installierte App
Die meisten Apks fallen in diese Kategorie. Diese Apks werden normalerweise von Benutzern oder
adb install
ohne-s
Option vom Marktplatz installiert . Sie finden sie im Verzeichnis/data/app
für ein gerootetes Gerät.App auf SD-Karte
Wenn die apk ihren Installationsort in SD-Karte mit
android:installLocation="auto"
in ihrem Manifest aktiviert , kann die App aus dem App-Manager-Menü des Systems auf SD-Karte verschoben werden. Diese apks befinden sich normalerweise im sicheren Ordner der SD-Karte/mnt/sdcard/asec
.Eine weitere Möglichkeit, den Installationsort auf SD-Karte zu erzwingen, ist die Verwendung des Befehls
adb install -s apk-to-install.apk
.Hinweis: Die Dateien für die vorinstallierte App befinden sich nicht mehr in einer einzigen
.apk
Datei. Es gibt einen Ordner mit Dateien für jede vorinstallierte App im Verzeichnis/system/app
oder/system/priv-app
für die neueste Android-Version.quelle
Sie können Apps mit ADB abrufen. Sie sind in / data / App /, glaube ich.
Beachten Sie, dass Sie Ihr Telefon rooten müssen, um kopiergeschützte Apps abzurufen.
quelle
In / data / app, aber zum Kopierschutz glaube ich nicht, dass Sie darauf zugreifen können.
quelle
Wenn Sie verwurzelt sind, laden Sie die App Root Explorer herunter. Bester Dateimanager für gerootete Benutzer. Wie auch immer, System / App hat alle Standard-Apks, die mit dem Telefon geliefert wurden, und data / apk hat alle Apks der Apps, die Sie installiert haben. Drücke einfach lange auf die gewünschte apk (während du im Root Explorer bist), gehe zu deinem / sdcard Ordner und füge sie einfach ein.
quelle
Verwenden Sie diese Option, um alle .apks unter / data / app / aufzulisten.
quelle
Sie können die .apks von jedem von ihnen ziehen:
quelle
APK-Dateien befinden sich im Verzeichnis / data / app /. Mit dem ES File Explorer können wir auf diese .APK-Dateien zugreifen.
quelle
Wenn Sie Eclipse goto DDMS und dort den Datei-Explorer verwenden, sehen Sie den Ordner System / Apps und die Apks sind dort
quelle
Als ich meine App auf dem Emulator installiert habe, wurde meine APK-Datei in angezeigt
Nachdem Sie Ihre App installiert haben, verwenden Sie einfach den Befehl ls vie shell und überprüfen Sie das gewünschte Verzeichnis. Dies hängt jedoch davon ab, welche Art von Anwendung Sie installieren möchten. Ich habe diese Methode verwendet, um Point zu installieren, wenn etwas nicht stimmt.
quelle
Eine andere Möglichkeit, die
apk
s, die Sie nicht finden können, auf einem gerooteten Gerät zu erhalten, ist die ROM-Toolbox .Erstellen Sie eine Sicherung mit dem App-Manager
storage/emulated/appmanager
und überprüfen Sie entweder die System-App-Sicherung oder die Benutzer-App-Sicherung .quelle
Einen finden
apk
, herunterladen und installieren Sie die Bluetooth - App Sender von Play Store. Öffnen Sie nach Abschluss der Installation den Bluetooth App Sender. Es werden alle(.apk)
auf Ihrem Gerät installierten Apps angezeigt. Anschließend können Sie die App problemlos über Bluetooth auf Ihren PC übertragen.quelle
Im Gegensatz zu dem, was auf der gewählten Antwort steht, benötigen Sie kein Root-Verzeichnis und es ist möglich, die APKs der installierten Apps abzurufen. So habe ich es in meiner App gemacht ( hier ). Beispiel:
Anschließend können Sie für jedes Element der Liste auf packageInfo.applicationInfo.sourceDir zugreifen. Dies ist der vollständige Pfad der APK der installierten App.
quelle
Nun, ich bin zu diesem Beitrag gekommen, weil ich eine App neu installieren wollte, die mir sehr gut gefallen hat. Wenn dies der Fall ist, gehen Sie einfach zu Google Play und suchen Sie nach "Meine Apps", der Registerkarte "Alle". Dort finden Sie eine Möglichkeit, eine App neu zu installieren, die Ihnen gefällt. Ich hatte ein Problem, das ich bei der Suche nach einer App nicht finden konnte, das sich jedoch in meinen Apps befand, damit ich es auf meinem neuen Handy neu installieren konnte;)
quelle