Czy Android trzyma.pliki apk? jeśli tak, to gdzie?

Po zainstalowaniu aplikacji android z Marketplace, czy utrzymuje .plik apk?

Czy istnieje standardowa lokalizacja, w której Android przechowywałby takie pliki?

Author: Gubatron, 2010-03-24

19 answers

Preinstalowane aplikacje znajdują się w folderze /system/app. Aplikacje zainstalowane przez użytkownika znajdują się w /data/app. Chyba nie masz dostępu, chyba że masz zrootowany telefon. Nie mam tutaj zrootowanego telefonu, ale wypróbuj ten kod:

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]);

        }
    }

To nie wymienia APK w moim rooted htc magic i w emu.

 111
Author: Macarse,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-13 19:40:48

Jeśli po prostu chcesz uzyskać plik APK czegoś, co wcześniej zainstalowałeś, zrób to:

  1. Pobierz AirDroid z Google Play
  2. Dostęp do telefonu za pomocą AirDroid z przeglądarki internetowej komputera
  3. Przejdź do aplikacji i wybierz zainstalowaną aplikację
  4. Kliknij przycisk "Pobierz", aby pobrać wersję APK tej aplikacji z telefonu

Nie musisz rootować telefonu, używać adb, ani nic pisać.

 87
Author: Jan Przybylo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-27 06:04:16

Możesz użyć menedżera pakietów (pm) nad adb shell Aby wyświetlić listę pakietów:

adb shell pm list packages

Oraz wyświetlenie gdzie znajduje się plik .apk:

adb shell pm path com.king.candycrushsaga
package:/data/app/com.king.candycrushsaga-1/base.apk

I adb pull Aby pobrać plik apk.

adb pull data/app/com.king.candycrushsaga-1/base.apk
 86
Author: Mariusz Jamro,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-15 11:53:16

Nie ma standardowej lokalizacji, jednak możesz użyć Packagemanagera, aby dowiedzieć się o pakietach, A Klasa ApplicationInfo, którą możesz stamtąd uzyskać, zawiera różne informacje o konkretnym pakiecie: ścieżkę do jego.apk, ścieżka do katalogu danych, ścieżka do zasobu tylko .apk (for forward locked apps), itp. Pamiętaj, że możesz lub nie masz uprawnień do odczytywania tych katalogów w zależności od relacji z inną aplikacją; jednak wszystkie aplikacje są w stanie odczytać zasób .apk (który jest również prawdziwy .apk for non-forward-locked app).

Jeśli tylko grzebasz w powłoce, aktualnie nie blokowane aplikacje znajdują się w /data/app/.apk. Użytkownik powłoki może odczytać konkretny .apk, choć nie może wyświetlić katalogu. W przyszłym wydaniu konwencja nazewnictwa zostanie nieznacznie zmieniona, więc nie licz na to, że pozostanie taka sama, ale jeśli pojawi się ścieżka do .apk z menedżera pakietów, a następnie można go użyć w powłoce.

 25
Author: hackbod,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-24 17:11:14

Preinstalowane aplikacje są zazwyczaj w /system / app, a zainstalowane przez użytkownika aplikacje są w / data / app.

Możesz użyć "ADB pull" , ale musisz znać pełną ścieżkę pliku APK. Na emulatorze można uzyskać listę katalogów za pomocą "adb shell" + "ls". Ale na urządzeniu z Androidem nie będziesz w stanie tego zrobić w folderze "/data " ze względów bezpieczeństwa. Jak więc ustalić pełną ścieżkę pliku APK?

Możesz uzyskać pełną listę wszystkich zainstalowanych aplikacji pisząc program, który odpytuje PackageManager. Krótki fragment kodu poniżej:

PackageManager  pm = getPackageManager();
List<PackageInfo> pkginfo_list = pm.getInstalledPackages(PackageManager.GET_ACTIVITIES);
List<ApplicationInfo> appinfo_list = pm.getInstalledApplications(0);
for (int x=0; x < pkginfo_list.size(); x++){             
  PackageInfo pkginfo = pkginfo_list.get(x);
  pkg_path[x] = appinfo_list.get(x).publicSourceDir;  //store package path in array
}

Można również znaleźć aplikacje, które dadzą takie informacje. Jest ich dużo. spróbuj tego (AppSender).

 17
Author: xmaslatte,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-24 14:42:37

Jeśli szukasz ścieżki do konkretnej aplikacji, szybkim i brudnym rozwiązaniem jest po prostu grep the bugreport:

$ adb bugreport | grep 'dir=/data/app' 

Nie wiem, czy to dostarczy wyczerpującą listę, więc może pomóc najpierw uruchomić aplikację.

 8
Author: tomwhipple,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-15 17:44:02

Możesz pobierać aplikacje za pomocą ADB. Są w / data / App/, jak sądzę.

adb pull (location on device) (where to save)

Zauważ, że musisz wykorzenić swój telefon, aby pobrać aplikacje chronione przed kopiowaniem.

 7
Author: Bryan Denny,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-14 07:08:05

Zainstaluj z marketplace

To zachowanie marketplace, czy zachować apk po instalacji. Google play nie zachowuje apk po instalacji. Inne rynki innych firm mogą mieć różne zachowania.

Instalacja z narzędzia programistycznego / debugowania (adb, eclipse, android studio)

Kiedy zainstalujemy apk z narzędzia debugowania, bezpośrednio wywołujemy adb install lub z eclipse / android studio, apk zostanie przeniesiony (adb push) do publiczny katalog odczytywalny i zapisywalny, zwykle /data/local/tmp/. Następnie narzędzie użyje polecenia pm do instalacji, usunie tymczasowy apk w /data/local/tmp/ po pomyślnej instalacji.

Możemy uzyskać te informacje z wyjścia debugowania, jak poniżej.

$ adb install bin/TestApplication.apk 
3155 KB/s (843375 bytes in 0.260s)
    pkg: /data/local/tmp/TestApplication.apk
Success

Jak system utrzymuje apk

Oczywiście system musi gdzieś przechowywać wszystkie APK. Istnieją trzy miejsca dla systemu, aby apks podstawowe na różnych typach apks.

  1. dla aplikacji stock

Są one zazwyczaj dostarczane w urządzeniu przez producenta, w tym core app do uruchamiania systemu i usługi google, można je znaleźć w katalogu /system/app i /system/priv-app.

  1. Aplikacja zainstalowana przez użytkownika

Większość APK należy do tej kategorii. Te pliki APK są zwykle instalowane z marketplace przez użytkowników lub przez adb install bez opcji -s. Można je znaleźć w katalogu /data/app dla rooted urządzenie.

  1. Aplikacja na sdcard

Jeśli APK włączyć jego lokalizację instalacji w sdcard z android:installLocation="auto" w manifeście, aplikacja może być przeniesiona do sdcard z menu menedżera aplikacji systemu. Te pliki APK znajdują się zwykle w bezpiecznym folderze sdcard /mnt/sdcard/asec.

Innym sposobem, aby wymusić lokalizację instalacji do sdcard jest użycie polecenia adb install -s apk-to-install.apk.

Dla przypomnienia, pliki preinstalowanej aplikacji nie znajdują się już w jednym pliku .apk. Istnieje folder zawierający pliki dla każda preinstalowana aplikacja w katalogu /system/app lub /system/priv-app dla najnowszej wersji Androida.

 7
Author: alijandro,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-08 22:32:28

Jeśli jesteś zakorzeniony, pobierz aplikację Root Explorer. Najlepszy menedżer plików dla zakorzenionych użytkowników. Tak czy inaczej, System / aplikacja ma wszystkie domyślne APK, które zostały dostarczone z telefonem, a data / apk ma wszystkie APK z zainstalowanych aplikacji. Wystarczy Długo nacisnąć na Apk chcesz (podczas gdy w Root Explorer), dostać się do folderu / sdcard i po prostu wklej.

 4
Author: Tanzer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-01 01:49:41

W / data / app, ale dla ochrony przed kopiowaniem nie wydaje mi się, żebyś miał do niego dostęp.

 3
Author: Robby Pond,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-24 13:32:15

Użyj tego, aby wyświetlić listę wszystkich .apks under / data / app /

adb bugreport | grep 'package name="' | grep 'codePath="/data' | cut -d'"' -f4
 3
Author: gilm,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-31 09:48:58
  • data / app
  • system / app
  • system / priv-app
  • mnt / asec (po zainstalowaniu w sdcard)

Możesz pociągnąć .apks z dowolnego z nich:

ADB pull/mnt / asec

 3
Author: Ignorante,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-16 17:24:23

Jeśli używasz eclipse goto DDMS, a następnie file explorer, zobaczysz folder System / Apps i znajdują się tam apki

 1
Author: Jawad Amjad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-28 12:30:42

.pliki apk mogą znajdować się w katalogu / data / app/. Używając ES File Explorer możemy uzyskać do nich dostęp .Pliki APK.

 1
Author: vgokul129,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-31 13:18:17

Kiedy zainstalowałem moją aplikację na emulatorze, pokazał mi .plik apk w

Dane / aplikacja Wtedy użyłem LS data / app / / aby sprawdzić, czy istnieje lub nie

Po zainstalowaniu aplikacji po prostu użyj polecenia ls vie shell i sprawdź pożądany katalog, ale to zależy, jakiego rodzaju aplikację próbujesz zainstalować. Użyłem tej metody, Aby zainstalować Wskaż, jeśli coś jest nie tak.

 0
Author: DeAviator,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-06-10 21:11:52

Innym sposobem na uzyskanie apks, których nie można znaleźć, na urządzeniu zakorzenionym jest rom tool box.

Następnie przejdź do zakładki storage/emulated/appmanager i zaznacz opcję kopia zapasowa aplikacji systemowej lub kopia zapasowa aplikacji użytkownika.
 0
Author: load,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-26 04:44:12

Aby znaleźć apk, Pobierz i zainstaluj aplikację Bluetooth Sender ze Sklepu Play. Po zakończeniu instalacji otwórz nadawcę aplikacji Bluetooth. Wyświetli wszystkie aplikacje (.apk) zainstalowane w urządzeniu, a następnie możesz łatwo przenieść aplikację na komputer przez Bluetooth.

 0
Author: Prem,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-25 12:19:54

W przeciwieństwie do tego, co jest napisane na wybranej odpowiedzi, nie potrzebujesz roota i możliwe jest uzyskanie APK zainstalowanych aplikacji, co jest jak zrobiłem to w mojej aplikacji (Proszę.). Przykład:

List<PackageInfo> packages=getPackageManager().getInstalledPackages(0);

Następnie, dla każdego z elementów listy, możesz uzyskać dostęp do packageInfo.applicationInfo.sourceDir , który jest pełną ścieżką APK zainstalowanej aplikacji.

 0
Author: android developer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-05 18:20:25

Cóż przyszedłem do tego postu, ponieważ chciałem ponownie zainstalować aplikację, którą bardzo lubię. Jeśli tak jest w Twoim przypadku, po prostu przejdź do Google Play i poszukaj Moich aplikacji, zakładki Wszystkie, a znajdziesz sposób na ponowną instalację aplikacji, którą lubisz. Napotkałem problem, że nie mogłem znaleźć przez wyszukiwanie jednej aplikacji, ale to było w moich aplikacjach, więc mogłem ponownie zainstalować w moim nowym telefonie komórkowym ;)

 0
Author: Sergio Abreu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-26 03:08:25