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?
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.
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:
- Pobierz AirDroid z Google Play
- Dostęp do telefonu za pomocą AirDroid z przeglądarki internetowej komputera
- Przejdź do aplikacji i wybierz zainstalowaną aplikację
- Kliknij przycisk "Pobierz", aby pobrać wersję APK tej aplikacji z telefonu
Nie musisz rootować telefonu, używać adb
, ani nic pisać.
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
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.
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).
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ę.
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.
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.
- 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
.
- 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.
- 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.
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.
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.
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
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
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
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.
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.
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 apk
s, których nie można znaleźć, na urządzeniu zakorzenionym jest rom tool box.
storage/emulated/appmanager
i zaznacz opcję kopia zapasowa aplikacji systemowej lub kopia zapasowa aplikacji użytkownika.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.
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.
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 ;)
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