Моя проблема в том, что мне нужно иметь возможность показать приложение, которое мое приложение устанавливает вручную, скопировав dex, data и apk в соответствующие каталоги данных, но проблема в том, что оно не распознает его как установленное.
У меня нет кода, потому что я понятия не имею, как его достичь.
Копирование dex или .apk (на самом деле нужен только .apk) во внутреннюю память и попытка установить его программно может оказаться невозможной.
Варианты:
https://www.asus.com/support/faq/1006430
Устанавливаем через adb:
adb установить path_to_apk
https://developer.android.com/studio/command-line/adb.html#move
Если у вас есть .apk во внешнем хранилище , это можно сделать так, указав папку, в которой он находится, и имя .apk-файла:
Приложения можно устанавливать из другого приложения (в магазине есть приложения, которые это делают и также делают бэкапы других приложений). Есть несколько способов сделать это в зависимости от версии Android.
Намерение, которое открывает файл APK.
Вы можете попробовать установить приложение следующим образом:
Вы можете найти полный код в этом ответе .
менеджер пакетов
Существует также класс Package Installer , который предлагает возможность установки приложений. Для этого код выглядит так:
Вы можете проверить этот вопрос . Вероятно, вам нужно разрешение INSTALL_PACKAGES .
С помощью менеджера пакетов PM:
полезные команды
Последний способ, который, я думаю, вам нужен, — это скопировать все файлы вручную. Чтобы объяснить это, я собираюсь перевести пост In Depth: Android Package Manager and Package Installer.
Исходный код менеджера пакетов находится в репозитории Android .
Исходный код анализатора пакетов .
Исходный код установщика пакетов .
Если вы хотите сделать это вручную, вам придется выполнить тот же процесс с вашим собственным кодом. Сгенерируйте uid приложения, создайте пользователей, каталоги и файлы, обновите файлы, в которых хранятся записи об установленных приложениях, и, наконец, сгенерируйте широковещательное событие, чтобы обновить программы, которые прослушивают событие установки пакета. Touchwiz от Samsung или приложение настроек Android.
Другие ссылки.
Как создаются и работают приложения для Android,
как установить приложение в фоновом режиме на Android
Что именно происходит, когда я устанавливаю приложение для Android?
PS: Вы должны иметь доступ к ROOT (и все, что подразумевается) и, вероятно, один и тот же процесс несовместим между различными версиями Android. И я не пробовал это делать, потому что это занимает слишком много времени и потому что я не такой капризный :P Тем не менее, интересно быть вовлеченным в исходный код Android :P
Этот процесс известен как неопубликованная загрузка.
Важным шагом для этого является активация вкладки « Неизвестные источники » на вашем устройстве .
В зависимости от марки эта вкладка будет:
или в
или в
Затем вы устанавливаете свой APK, как сказано в других ответах, открывая файл APK напрямую, либо через ADB, либо другим способом.
Примечание: