- APK – Пакет приложения Android (Android Package File)
- Расширение APK
- Чем открыть файл APK
- Описание расширения APK
- Пишем свой Android Market
- Серверная часть
- Установка
- Обновление
- Удаление
- Обратная связь
- Пакет приложений для Android — Android application package
- СОДЕРЖАНИЕ
- Обзор
- Использование в других операционных системах
- Содержимое пакета
- Установить приложение программно на Android
- Русские Блоги
- Установка приложения под Android 8.0
- Так как бороться с этим разрешением?
- 1. Процесс установки приложения
- 2. Сначала обратитесь за разрешением
- 3. Нажмите кнопку, чтобы установить приложение
- 4. Проверьте, есть ли у вас разрешения для неизвестных источников приложения
- 5. Выполните процесс установки
- Вы почти закончили, но есть несколько вещей, на которые стоит обратить внимание:
APK – Пакет приложения Android (Android Package File)
Расширение APK
Чем открыть файл APK
В Windows: Google Android SDK, BlueStacks, Corel WinZip 16.5, Smith Micro StuffIt Deluxe 2010, 7-Zip, WinRAR, Eclipse с плагином ADT, IntelliJ IDEA
В Mac OS: Google Android SDK, Apple Archive Utility, Smith Micro StuffIt Deluxe 2011, BlueStacks App Player для Mac, Eclipse с плагином ADT, IntelliJ IDEA
В Linux: Google Android SDK, Eclipse с плагином ADT, IntelliJ IDEA
В Google Android: Google Android
Описание расширения APK
Популярность:
Разработчик: Google
Расширение APK файла связано с операционной системой смартфона Google Android, разработанный компанией Google и Open Handset Alliance. APK-файл представляет собой архив, содержащий исходные данные Android приложения (скомпилированные файлы с кодом DEX, скомпилированные файлы ресурсов ARSC, файлы настроек AndroidManifest.xml). Файлы APK хранятся в каталоге /data/app. Каталог «App» доступен только через проводник. Для разработки приложений можно использовать Google’s Android SDK, набор для разработки, основанный на Java.
.APK файлы используют алгоритм сжатия ZIP. Содержание .APK архива можно получить с использованием утилит сжатия таких как WinRAR, WinZip и т.д. Чтобы открыть архив APK архиватором, необходимо переименовать APK файл в файл с расширением ZIP.
Новые приложения доступны в магазине Google Play. Приложения в Google Play подписаны и протестированы, но Google Play так же поддерживает установку неподписанных приложений через USB.
Для установки Android APK приложение на телефон через USB:
1. Подключите телефон к компьютеру с помощью USB кабеля и скопируйте .APK файл на карту памяти.
2. Используйте файловый менеджер, например, ASTRO и откройте содержимое карты памяти.
3. Выберите файл APK.
Некоторые производители отключают сервис установки приложений через USB в своих телефонах. Чтобы включить эту опцию, идите в раздел Настройки -> Приложения и установите опцию Неизвестный источник (Unknown sources) в Доступно (enabled).
Источник
Пишем свой Android Market
В рамках работы над большим количеством android приложений появилось желание создать свой Android Market на локальном сервере (с шахматами и поэтессами).
Свой маркет должен решать две простые задачи:
- Распространение и обновление корпоративных приложений. У нас есть набор внутри корпоративных приложений, которые нельзя публиковать на Google Play. Сейчас пользователи оповещаются о новых версиях по емайлу, что не удобно.
- Бета тестирование заказных приложений на большой группе коллег, с обратной связью.
И так, нам необходимо реализовать небольшое Android приложение, которое будет скачивать список доступных приложений, проверять наличие обновлений для уже установленных, устанавливать/удалять приложения.
Серверная часть
Серверной частью приложения может быть как сервис с широким функционалом (регистрация пользователей, отчеты, разграничение доступа к приложениям), так и просто xml файл:
В моем случае серверной частью фактически выступает http шара.
Данный xml файл в приложении трансформируется в список приложений, доступных для установки.
Установка
Пользователь выбирает нужное ему приложение и устанавливает,
Маркет скачивает apk файл на флешку устройства и инициирует установку приложения, конечно, должна быть разрешена установка из сторонних источников.
Установить незаметно в фоне мы не можем, поэтому после выполнения данного кода:
Пользователь увидит стандартное окно установки приложений:
Обновление
Приложение Market может по определенному интервалу проверять наличие новых версий, делается это достаточно просто, так как доступен список всех установленных приложений:
В случае необходимости обновления приложения, повторяем процесс Установки, приложение будет обновлено.
Удаление
Удалить программу лучше из интерфейса нашего маркета, чтобы не заставлять пользователя выискивать тестируемое приложение среди всех его программ, для этого достаточно вызвать этот код:
Обратная связь
Получение сообщений об ошибках, вместе с логом ошибки, очень важно для разработчика, особенно на этапе тестирования приложения, добавим функцию автоматического сбора этой информации через Маркет.
Для этого в каждое приложение, распространяемое через наш Маркет добавляем следующий класс
Как видно из кода, это хендлер, который получает ошибки (Exception), генерит строку со стеком, сохраняет ее в локальный файл и отправляет ошибку в виде броадкаст сообщения.
А в Application классе включаем переадресацию всех сообщений об ошибках в этот хендлер
Таким образом, если в тестируемои приложении происходит ошибка, то перед смертью пишется сообщение в лог и посылается броадкаст сообщение в маркет.,
Перед передачей приложения заказчику, этот код удаляется (комментируется).
В самом Маркете мы просто отлавливаем данное сообщение:
И дальше маркет уже может переслать это сообщение на почту разработчику, загрузить в какой нибудь веб-сервис или попросить пользователя добавить комментарий к ошибке
Я надеюсь, данный пример поможет многим начинающим разработчикам, разобраться, как написать свой универсальный велосипед для бета тестирования приложений и централизованному сбору статистики ошибок.
ps: В статье использован исходный код и картинки взятые из прототипа приложения.
Источник
Пакет приложений для Android — Android application package
Расширение имени файла | .apk , .xapk , .apks , .apkm |
---|---|
Тип интернет-СМИ | |
Тип формата | Формат упаковки |
Контейнер для | Android : мобильные приложения Windows 11 : настольные приложения для WSA |
Расширен с | БАНКА |
Android Package (APK) — это формат файла пакета приложения Android, используемый операционной системой Android и рядом других операционных систем на базе Android для распространения и установки мобильных приложений , мобильных игр и промежуточного программного обеспечения . Он может быть написан на Java или Kotlin .
Файлы APK могут быть созданы и подписаны из наборов Android App Bundle .
СОДЕРЖАНИЕ
Обзор
APK аналогична другим программных пакетов , таких как APPX в Microsoft Windows или его пакет Debian в Debian -На операционных систем. Чтобы создать файл APK, программа для Android сначала компилируется с помощью такого инструмента, как Android Studio или Visual Studio, а затем все ее части упаковываются в один файл-контейнер. Файл APK содержит весь код программы (например, файлы .dex ), ресурсы, активы, сертификаты и файл манифеста . Как и в случае со многими форматами файлов, файлы APK могут иметь любое необходимое имя, но для распознавания может потребоваться, чтобы имя файла заканчивалось расширением файла.
Большинство реализаций Android позволяют пользователям вручную устанавливать файлы APK только после того, как они включили параметр «Неизвестные источники», который разрешает установку из источников, отличных от надежных, таких как Google Play . Это можно сделать по многим причинам, например, во время разработки приложений, чтобы установить приложения, которых нет в магазине, или установить более старую версию существующего приложения.
Использование в других операционных системах
На мероприятии по анонсу Windows 11 в июне 2021 года Microsoft продемонстрировала новую подсистему Windows для Android (WSA), которая обеспечит поддержку Android Open Source Project (AOSP) и позволит пользователям запускать приложения Android на своих рабочих столах Windows. Microsoft подтвердила, что пользователи смогут загружать неопубликованные приложения Android в Windows и что можно будет устанавливать файлы APK, загруженные из сторонних источников.
Содержимое пакета
Файл APK — это архив, который обычно содержит следующие файлы и каталоги:
Источник
Установить приложение программно на Android
Мне интересно знать, возможно ли программно установить динамически загруженный apk из пользовательского приложения для Android.
Вы можете легко запустить ссылку на магазин Play Play или приглашение к установке:
Однако вы не можете установить .apks без явного разрешения пользователя ; нет, если устройство и ваша программа не рутированы.
У меня была такая же проблема, и после нескольких попыток у меня все получилось. Я не знаю почему, но установка данных и типа по отдельности провалила мои намерения.
Решения, предоставленные на этот вопрос, все применимы к targetSdkVersion с 23 и ниже. Однако для Android N, то есть уровня API 24 и выше, они не работают и аварийно завершают работу со следующим исключением:
Это связано с тем, что, начиная с Android 24, Uri изменился адрес для загруженного файла. Например, установочный файл с именем, appName.apk хранящимся в основной внешней файловой системе приложения с именем пакета, com.example.test будет иметь вид
для API 23 и ниже, тогда как что-то вроде
за API 24 и выше.
Более подробную информацию об этом можно найти здесь, и я не собираюсь проходить через это.
Чтобы ответить на вопрос targetSdkVersion о 24 и выше, необходимо выполнить следующие шаги: Добавьте следующее в AndroidManifest.xml:
2. Добавьте следующий paths.xml файл в xml папку res в src, main:
Это pathName то, что показано в приведенном выше примере содержимого и pathValue является фактическим путем в системе. Было бы неплохо поставить «.» (без кавычек) для pathValue в приведенном выше, если вы не хотите добавлять какие-либо дополнительные подкаталоги.
Напишите следующий код для установки apk с именем appName.apk в основной внешней файловой системе:
Разрешение также не требуется при записи в личный каталог вашего приложения во внешней файловой системе.
Я написал здесь библиотеку автообновления, в которой я использовал вышеизложенное.
Источник
Русские Блоги
Установка приложения под Android 8.0
каталог
Предисловие. После обновления системы Android до версии 8.0 Google удалил коммутатор для установки неизвестных приложений (все приложения, которые первоначально включили этот коммутатор, предоставили бы это разрешение), и заменил его списком управления приложениями из неизвестных источников. Установите разрешения для приложений из неизвестных источников. Если вы не обрабатываете разрешения этого неизвестного источника, он заблокирует внутреннее приложение, чтобы начать процесс установки, что приведет к тому, что приложение вообще не сможет быть обновлено и может быть загружено только снова на рынке приложений.
Так как бороться с этим разрешением?
1. Процесс установки приложения
1. Сначала поговорим о процессе установки до 8.0:
Скачайте приложение с сервера на локальный >> Откройте код приложения установки >> Установка завершена
2. Процесс установки приложения после 8.0:
Загрузите приложение с сервера на локальный >> Код, чтобы открыть интерфейс приложения источника местоположения установки >> Предоставить разрешения >> Откройте код приложения установки >> Установка завершена
Где «Код открывает интерфейс приложения источника местоположения установки» будет блокировать процесс установки приложения,Процесс установки не может продолжаться, пока вы не получите разрешение на установку неизвестных приложений.
3. Чтобы смоделировать загрузку обновлений приложений из Интернета, я поместил приложение непосредственно во внутреннее хранилище, нажал «Установить» и непосредственно выполнил процесс установки 8.0.
2. Сначала обратитесь за разрешением
Обработка прав чтения SD-карты, код выглядит следующим образом:
3. Нажмите кнопку, чтобы установить приложение
Код прост, кнопка для выполнения установки
4. Проверьте, есть ли у вас разрешения для неизвестных источников приложения
Комментарий очень ясен, здесь упоминаются только ключевые моменты: boolean b = getPackageManager (). CanRequestPackageInstalls (); эта строка кода проверяет, есть ли у вас разрешения для неизвестных источников приложения. Если у вас есть прямая установка, Откройте интерфейс неизвестного источника приложения без него. Обратите внимание, что это не то же самое, что подать заявку на разрешения во время выполнения (Многие люди путают разрешения во время выполнения!)
Обработайте результат обратного вызова в onActivityResult (), код выглядит следующим образом:
5. Выполните процесс установки
Выполните код установки:
Здесь нужно сказать, что параметр uri в intent.setDataAndType (uri, «application / vnd.android.package-archive») также должен быть адаптирован для систем 7.0 и выше, а поставщик должен быть установлен.
Я помещаю приложение прямо в корневой каталог:
Поставщик настроен следующим образом:
Файл file_paths_public.xml выглядит следующим образом:
путь = «.» означает корневой каталог внутреннего хранилища
Это введено в части провайдера, поэтому я не буду повторять это здесь.
Вы почти закончили, но есть несколько вещей, на которые стоит обратить внимание:
1. Для установки приложений из внутреннего хранилища необходимы разрешения времени выполнения SDCard. Если у вас нет этого разрешения, появится сообщение об ошибке разбора!
2. При запуске интерфейса установки intent.setDataAndType (uri, «application / vnd.android.package-archive»), пожалуйста, не забудьте выполнить адаптацию 7.0 в uri!
3. При тестировании apk, apk, помещенный во внутреннюю директорию хранилища, должен быть собран через build >> Build Apk (s), в противном случае приложение получит запрос, что оно не установлено во время установки! Смотри ниже
Поэтому, когда вы решите адаптироваться к 8.0, вы должны заняться другими адаптациями!
Источник