После того, как android устанавливает приложение из Marketplace, сохраняет ли он файл .apk?
Существует ли стандартное место, где Android будет хранить такие файлы?
Предустановленные приложения находятся в /system/app
папке. Установленные пользователем приложения находятся в /data/app
. Я думаю, что вы не можете получить доступ, если у вас нет рутированного телефона. У меня нет рутированного телефона, но попробуйте этот код:
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]);
}
}
В нем перечислены apks в моей корневой магии htc и в эму.
Вы можете использовать менеджер пакетов (
pm
)adb shell
для вывода списка пакетов:и показать, где находится
.apk
файл:И
adb pull
скачать апк.источник
adb pull /data/app/com.example.app-filename.apk path/to/desired/destination
Если вы просто хотите получить APK-файл ранее установленного вами файла, сделайте следующее:
Вам не нужно рутировать свой телефон, использовать
adb
или писать что-нибудь.источник
Стандартного расположения не существует, однако вы можете использовать PackageManager, чтобы узнать о пакетах, и класс ApplicationInfo, который вы можете получить оттуда, содержит различную информацию о конкретном пакете: путь к его .apk, путь к его каталогу данных, путь к .apk только для ресурсов (для приложений с заблокированной пересылкой) и т. д. Обратите внимание, что вы можете иметь или не иметь разрешения на чтение этих каталогов в зависимости от ваших отношений с другим приложением; однако все приложения могут читать ресурс .apk (который также является реальным .apk для приложения без блокировки вперед).
Если вы просто ковыряетесь в оболочке, в настоящее время не заблокированные вперед приложения находятся в /data/app/.apk. Пользователь оболочки может прочитать конкретный .apk, но не может перечислить каталог. В будущем выпуске соглашение об именах будет немного изменено, поэтому не рассчитывайте, что оно останется прежним, но если вы получите путь к .apk из менеджера пакетов, вы можете использовать его в оболочке.
источник
Предустановленные приложения обычно находятся в / system / app, а установленные пользователем приложения - в / data / app.
Вы можете использовать «adb pull», но вам нужно знать полный путь к файлу APK. В эмуляторе вы можете получить список каталогов, используя "adb shell" + "ls". Но на устройстве Android вы не сможете сделать это в папке "/ data" по соображениям безопасности. Так как же выяснить полный путь к файлу APK?
Вы можете получить полный список всех установленных приложений, написав программу, которая запрашивает PackageManager. Ниже приведен фрагмент кода:
Вы также можете найти приложения, которые будут давать такую информацию. Их много. Попробуйте это (AppSender).
источник
Если вы ищете путь к конкретному приложению, быстрое и грязное решение - просто просмотреть отчет об ошибке:
Я не знаю, что это даст исчерпывающий список, поэтому он может помочь запустить приложение в первую очередь.
источник
Установить с рынка
Это поведение маркета, сохранять ли apk после установки. Google play не сохраняет apk после установки. Другие сторонние торговые площадки могут иметь другое поведение.
Установить из инструмента разработки / отладки (adb, eclipse, android studio)
Когда мы устанавливаем apk из инструмента отладки, напрямую вызываем
adb install
или из eclipse / android studio, apk обычно переносится (adb push
) в общедоступный каталог для чтения и записи/data/local/tmp/
. После этого инструмент будет использоватьpm
команду для установки, он удалит временный apk/data/local/tmp/
после успешной установки.Мы могли бы получить эту информацию из вывода отладки, как показано ниже.
Как система держит апк
Конечно, система должна хранить все apks где-нибудь. В системе есть три места для хранения apks на основе различных типов apks:
для фондового приложения
Они обычно поставляются на устройстве изготовителем, включая основное приложение для работающей системы и сервис Google, вы можете найти их в каталоге
/system/app
и/system/priv-app
.приложение, установленное пользователем
Большинство apks попадают в эту категорию. Эти apks обычно устанавливаются с рынка пользователями или
adb install
без-s
опции. Вы можете найти их в каталоге/data/app
для корневого устройства.приложение на SDCard
Если apk активирует свое место установки в SDCard с помощью
android:installLocation="auto"
манифеста, приложение можно переместить в SDCard из меню системного менеджера приложений. Эти apks обычно находятся в безопасной папке SDCard/mnt/sdcard/asec
.Другой способ принудительно установить место установки на SDCard - использовать команду
adb install -s apk-to-install.apk
.Как примечание, файлы для предварительно установленного приложения больше не находятся в одном
.apk
файле. Существует папка, содержащая файлы для каждого предустановленного приложения в каталоге/system/app
или/system/priv-app
для самой новой версии Android.источник
Вы можете тянуть приложения с АБР. Они находятся в / data / App /, я считаю.
Обратите внимание, что вам нужно рутировать свой телефон, чтобы вытащить защищенные от копирования приложения.
источник
В / data / app, но для защиты от копирования я не думаю, что вы можете получить к нему доступ.
источник
Если вы рутированы, скачайте приложение Root Explorer. Лучший файловый менеджер для рутированных пользователей. В любом случае, System / app имеет все apks по умолчанию, которые поставляются с телефоном, а data / apk содержит все apks установленных приложений. Просто нажмите и удерживайте нужный файл (в Root Explorer), перейдите в папку / sdcard и просто вставьте.
источник
Используйте это, чтобы перечислить все .apks в / data / app /
источник
Вы можете извлечь .apks из любого из них:
источник
Файлы .apk могут находиться в каталоге / data / app /. Используя ES File Explorer, мы можем получить доступ к этим файлам .APK.
источник
если вы используете eclipse, перейдите в DDMS, а затем в проводник, там вы увидите папку System / Apps и там есть apks
источник
Когда я установил свое приложение на эмулятор, он показал мой файл .apk в
После установки приложения просто используйте команду ls vie shell и проверьте нужный каталог, но это зависит от того, какое приложение вы пытаетесь установить. Я использовал этот метод для установки точки, если что-то не так.
источник
Еще один способ получить то, что
apk
вы не можете найти, на рутированном устройстве - с помощью ящика для инструментов .Сделайте резервную копию с помощью диспетчера приложений затем перейдите
storage/emulated/appmanager
и проверить либо резервную копию системного приложения или резервное копирование приложений пользователя .источник
Чтобы найти
apk
, загрузите и установите отправителя приложения Bluetooth из магазина Play. После завершения установки откройте отправителя приложения Bluetooth. Он покажет все приложения,(.apk)
установленные на вашем устройстве, а затем вы можете легко перенести приложение на ПК через Bluetooth.источник
В отличие от того, что написано в выбранном ответе, вам не нужен root, и можно получить APK-файлы установленных приложений, как я это сделал в своем приложении ( здесь ). Пример:
Затем для каждого из элементов списка вы можете получить доступ к packageInfo.applicationInfo.sourceDir , который является полным путем к APK установленного приложения.
источник
Я пришел к этому посту, потому что хотел переустановить какое-то приложение, которое мне очень понравилось. Если это ваш случай, просто перейдите в Google Play и найдите «Мои приложения», вкладку «Все», и вы найдете способ переустановить понравившееся вам приложение. Я столкнулся с проблемой, которую не смог найти при поиске по одному приложению, но это было в Моих приложениях, поэтому я мог переустановить свой новый мобильный телефон;)
источник