Czy po zainstalowaniu aplikacji z Marketplace Android zachowuje plik .apk?
Czy istnieje standardowa lokalizacja, w której Android przechowuje takie pliki?
Zainstalowane aplikacje znajdują się w /system/app
folderze. Zainstalowane są aplikacje użytkownika /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]);
}
}
Wymienia apki w mojej zakorzenionej magii HTC i emu.
Możesz użyć menedżera pakietów (
pm
),adb shell
aby wyświetlić listę pakietów:i wyświetlić, gdzie
.apk
jest plik:I
adb pull
pobierz apk.źródło
adb pull /data/app/com.example.app-filename.apk path/to/desired/destination
Jeśli chcesz tylko pobrać plik APK czegoś wcześniej zainstalowanego, wykonaj następujące czynności:
Nie musisz rootować telefonu, używać
adb
ani pisać.źródło
Nie ma standardowej lokalizacji, jednak można użyć programu PackageManager, aby dowiedzieć się o pakietach, a klasa ApplicationInfo, którą można uzyskać stamtąd, zawiera różne informacje na temat określonego pakietu: ścieżka do pliku .apk, ścieżka do katalogu danych, ścieżka do pliku .apk dostępnego tylko dla zasobów (dla aplikacji zablokowanych do przodu) itp. Pamiętaj, że możesz, ale nie musisz, mieć uprawnienia do czytania tych katalogów w zależności od relacji z inną aplikacją; jednak wszystkie aplikacje są w stanie odczytać .apk zasobu (który jest również prawdziwym apkiem dla aplikacji bez blokady).
Jeśli tylko grzebiesz w powłoce, aktualnie nie zablokowane aplikacje znajdują się w /data/app/.apk. Użytkownik powłoki może odczytać określony plik .apk, chociaż nie może wyświetlić katalogu. W przyszłej wersji konwencja nazewnictwa zostanie nieco zmieniona, więc nie licz na to, że pozostanie taka sama, ale jeśli uzyskasz ścieżkę .apk od menedżera pakietów, możesz użyć jej w powłoce.
źródło
Wstępnie zainstalowane aplikacje są zazwyczaj w / system / app, a aplikacje zainstalowane przez użytkownika są w / data / app.
Możesz użyć „adb pull”, ale musisz znać pełną ścieżkę do pliku APK. Na emulatorze możesz uzyskać listę katalogów za pomocą „powłoki adb” + „ls”. Ale na urządzeniu z Androidem nie będzie można tego zrobić w folderze „/ data” ze względów bezpieczeństwa. Jak zatem ustalić pełną ścieżkę do pliku APK?
Możesz uzyskać pełną listę wszystkich zainstalowanych aplikacji, pisząc program, który odpytuje PackageManager. Krótki fragment kodu poniżej:
Możesz także znaleźć aplikacje, które podadzą takie informacje. Jest ich wiele. Wypróbuj ten (AppSender).
źródło
Jeśli szukasz ścieżki konkretnej aplikacji, szybkim i brudnym rozwiązaniem jest po prostu grep raport o błędzie:
Nie wiem, czy to zapewni wyczerpującą listę, więc może pomóc najpierw uruchomić aplikację.
źródło
Zainstaluj z rynku
Zachowanie się na rynku polega na tym, czy zachować apk po instalacji. Google Play nie utrzymuje apk po instalacji. Inne rynki innych firm mogą mieć różne zachowania.
Zainstaluj z narzędzia do programowania / debugowania (adb, eclipse, studio Android)
Kiedy instalujemy apk z narzędzia do debugowania, bezpośrednio wywołujemy
adb install
lub ze środowiska eclipse / android studio, apk zostanie zwykle przeniesiony (adb push
) do publicznego katalogu do odczytu i zapisu/data/local/tmp/
. Następnie narzędzie użyjepm
polecenia do zainstalowania, usunie tymczasowy apk/data/local/tmp/
po pomyślnej instalacji.Możemy uzyskać te informacje z wyników debugowania, takich jak następujące.
Jak system utrzymuje apk
Oczywiście system musi gdzieś przechowywać wszystkie apki. Istnieją trzy miejsca, w których system może przechowywać aplikacje w oparciu o różne typy aplikacji:
dla aplikacji magazynowej
Są one zazwyczaj dostarczane fabrycznie na urządzenie, w tym podstawową aplikację do uruchamiania systemu i usługę Google, można je znaleźć w katalogu
/system/app
i/system/priv-app
.aplikacja zainstalowana przez użytkownika
Większość aplikacji należy do tej kategorii. Te aplikacje są zwykle instalowane z rynku przez użytkowników lub
adb install
bez-s
opcji. Można je znaleźć w katalogu/data/app
zrootowanego urządzenia.aplikacja na karcie SD
Jeśli apk umożliwi lokalizację instalacji na
android:installLocation="auto"
karcie SD z manifestem, aplikację można przenieść do karty SD z menu menedżera aplikacji systemu. Te aplikacje zwykle znajdują się w bezpiecznym folderze sdcard/mnt/sdcard/asec
.Innym sposobem wymuszenia lokalizacji instalacji na karcie SD jest użycie polecenia
adb install -s apk-to-install.apk
.Uwaga: pliki wstępnie zainstalowanej aplikacji nie znajdują się już w jednym
.apk
pliku. W katalogu/system/app
lub/system/priv-app
najnowszej wersji Androida znajduje się folder zawierający pliki dla każdej wstępnie zainstalowanej aplikacji .źródło
Możesz pobierać aplikacje za pomocą ADB. Są w / data / App /, jak sądzę.
Pamiętaj, że musisz zrootować telefon, aby pobrać aplikacje chronione przed kopiowaniem.
źródło
W / data / app, ale dla ochrony przed kopiowaniem Nie sądzę, że możesz uzyskać do niego dostęp.
źródło
Jeśli jesteś zrootowany, pobierz aplikację Root Explorer. Najlepszy menedżer plików dla zrootowanych użytkowników. W każdym razie System / aplikacja ma wszystkie domyślne aplikacje dostarczone z telefonem, a dane / apk ma wszystkie aplikacje zainstalowane przez Ciebie. Po prostu naciśnij długo żądany apk (będąc w Eksploratorze root), przejdź do folderu / sdcard i po prostu wklej.
źródło
Użyj tego, aby wyświetlić listę wszystkich .apks w / data / app /
źródło
Możesz pobrać .apks z dowolnego z nich:
źródło
Pliki .apk mogą znajdować się w katalogu / data / app /. Za pomocą ES File Explorer możemy uzyskać dostęp do tych plików .APK.
źródło
jeśli używasz Eclipse goto DDMS, a następnie eksploratora plików tam zobaczysz folder System / Apps i apki tam są
źródło
Kiedy zainstalowałem moją aplikację na emulatorze, pokazał mój plik .apk w
Po zainstalowaniu aplikacji po prostu użyj powłoki ls vie shell i sprawdź żądany katalog, ale zależy to od rodzaju aplikacji, którą próbujesz zainstalować. Użyłem tej metody, aby zainstalować punkt, jeśli coś jest nie tak.
źródło
Innym sposobem na uzyskanie
apk
s, których nie możesz znaleźć, na zrootowanym urządzeniu jest przybornik ROM .Utwórz kopię zapasową za pomocą menedżera aplikacji, a następnie przejdź do
storage/emulated/appmanager
i sprawdź kopię zapasową aplikacji systemowej lub kopię zapasową aplikacji użytkownika .źródło
Aby znaleźć
apk
, pobierz i zainstaluj aplikację Bluetooth App Sender ze Sklepu Play. Po zakończeniu instalacji otwórz aplikację Bluetooth App Sender. Wyświetli wszystkie aplikacje(.apk)
zainstalowane w urządzeniu, a następnie możesz łatwo przenieść aplikację na komputer przez Bluetooth.źródło
W przeciwieństwie do tego, co jest napisane na wybranej odpowiedzi, nie potrzebujesz roota i można uzyskać APK zainstalowanych aplikacji, tak właśnie zrobiłem w mojej aplikacji ( tutaj ). Przykład:
Następnie dla każdego elementu listy można uzyskać dostęp do packageInfo.applicationInfo.sourceDir , który jest pełną ścieżką do pliku APK zainstalowanej aplikacji.
źródło
Przyszedłem do tego postu, ponieważ chciałem ponownie zainstalować aplikację, która bardzo mi się podobała. Jeśli tak jest, po prostu przejdź do Google Play i poszukaj Moje aplikacje, zakładki Wszystkie, a znajdziesz sposób na ponowną instalację aplikacji, którą lubisz. Napotkałem problem, którego nie mogłem znaleźć, wyszukując jedną aplikację, ale był on w Moich aplikacjach, więc mogłem ponownie zainstalować w moim nowym telefonie komórkowym;)
źródło