Как узнать имя пакета приложения на андроид
Для добавления новых приложений вам потребуется указать уникальный идентификатор приложения в магазине приложений (App Store или Google Play) в поле Bundle ID .
Узнать уникальный идентификатор iOS-приложения (Bundle ID или ID пакета) можно одним из двух способов:
Для собственных приложений:
Откройте iTunes Connect, перейдите к My Apps и выберите приложение, идентификатор которого хотите получить.
На странице приложения в выпадающем меню More выберите About this App .
Идентификатор приложения указан в поле Bundle ID .
Для любых приложений:
Скопируйте числовой идентификатор, который указан в URL между id и ? (в примере — 483693909 ).
В файле 1.txt, который браузер скачает по этому URL, найдите текст \"bundleId\" .
Идентификатор приложения Яндекс.Браузер для iPhone — ru.yandex.mobile.search .
Узнать уникальный идентификатор Android-приложения (имя пакета приложения или package name) можно одним из двух способов:
Для собственных приложений — откройте Консоль разработчика Google Play и выберите приложение, идентификатор которого хотите получить.
Идентификатор указан рядом с логотипом и названием приложения.
Идентификатор приложения Яндекс.Браузер для Android — com.yandex.browser .
","lang":>,"extra_meta":[>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>,>],"title":"Получение идентификатора приложения (Bundle ID) - Рекламная сеть. Справка","productName":"Рекламная сеть","extra_js":[[,"mods":,"__func137":true,"tag":"script","bem":false,"attrs":,"__func67":true>],[,"mods":,"__func137":true,"tag":"script","bem":false,"attrs":,"__func67":true>,,"mods":,"__func137":true,"tag":"script","bem":false,"attrs":,"__func67":true>],[,"mods":,"__func137":true,"tag":"script","bem":false,"attrs":,"__func67":true>]],"extra_css":[[],[,"mods":,"__func69":true,"__func68":true,"bem":false,"tag":"link","attrs":>,,"mods":,"__func69":true,"__func68":true,"bem":false,"tag":"link","attrs":>],[,"mods":,"__func69":true,"__func68":true,"bem":false,"tag":"link","attrs":>]],"csp":<"script-src":[]>,"lang":"ru">>>'>"current":"ru","available":["ru","en"]>Для добавления новых приложений вам потребуется указать уникальный идентификатор приложения в магазине приложений (App Store или Google Play) в поле Bundle ID .
Узнать уникальный идентификатор iOS-приложения (Bundle ID или ID пакета) можно одним из двух способов:
Для собственных приложений:
Откройте iTunes Connect, перейдите к My Apps и выберите приложение, идентификатор которого хотите получить.
На странице приложения в выпадающем меню More выберите About this App .
Идентификатор приложения указан в поле Bundle ID .
Для любых приложений:
Скопируйте числовой идентификатор, который указан в URL между id и ? (в примере — 483693909 ).
В файле 1.txt, который браузер скачает по этому URL, найдите текст "bundleId" .
Идентификатор приложения Яндекс.Браузер для iPhone — ru.yandex.mobile.search .
Узнать уникальный идентификатор Android-приложения (имя пакета приложения или package name) можно одним из двух способов:
Для собственных приложений — откройте Консоль разработчика Google Play и выберите приложение, идентификатор которого хотите получить.
Мне нужно получить имя пакета из Android APK. Я попытался распаковать APK и прочитать содержимое AndroidManifest.xml , но, похоже, это не текстовый файл.
Как я могу извлечь имя пакета APK?
вы можете установить apk на свой телефон, затем
connect используя adb, вы можете запустить adb shell и выполнить PM list packages-f, который показывает имя пакета для каждого установленного apk.
Если вы открываете AndroidManifest.xml с помощью MS Notepad, поиск фразы package и вы найдете следующее:
где XXX.ХХХХХХХ.xxxxxxx-это имя вашего пакета, просто написанное пробелом после каждого символа.
это полезный способ, когда у вас нет каких-либо конкретных установленных инструментов.
Если вы смотрите на google play и хотите узнать его имя пакета, вы можете посмотреть url или адресную строку. Вы получите имя пакета. Вот!--1--> - имя пакета
следующий скрипт bash отобразит имя пакета и основное имя действия:
apk_package.sh
запустите его так:
на основе ответа @hackbod . но связано с windows.
на dump суб-команда aapt используется для отображения значений отдельных элементов или частей пакет:
aapt dump badging <path-to-apk>
если вы хотите увидеть только строку с package: name информация, использовать findstr
aapt dump badging <path-to-apk> | findstr -n "package: name" | findstr "1:"
надеюсь, что это поможет другому пользователю windows!
Если вам нужно сделать это программно, это немного больше, чем просто ответ в ваш мозг. У меня есть скрипт, который я использую для подписи всех наших приложений, но каждый использует другой ключ. Вот 2 способа получить только имя пакета как выход, так что вы можете поместить его в переменную или сделать все, что вам нужно с ним.
пример: com.example.appname (и ничего еще)
требования
aapt - Android инструмент упаковки активов, часть SDK Tools загрузить
Решение 1
используя awk указать ' в качестве разделителя полей найдите строку с package: name= , и напечатать только 2-е "поле" в строку:
недостатком этого метода является то, что он полагается на aapt для вывода информационных полей пакета в том же порядок:
у нас нет обязательств от разработчиков поддерживать этот формат.
решение 2
используя awk указать " в качестве разделителя полей найдите строку с package= , и напечатать только 2-е "поле" в строку:
слабость этого метода заключается в том, что он полагается на aapt для вывода package= только в Android Manifest: раздел вывода. У нас нет обязательств от разработчиков поддерживать это формат.
решение 3
разверните файл apk с помощью apktool d и прочитайте AndroidManifest.XML.
это был бы лучший метод, но AndroidManifest.xml-это двоичный файл, и все ответы SO, которые я вижу для преобразования его в текст, не работают. (Используя apktool d вместо простого unzip должен делать это для вас, но это не так.) прокомментируйте, пожалуйста, если у вас есть решение этой проблемы
Если вы просто хотите знать имя пакета, запустите adb logcat, запустите действие, которое вы хотите, вы получите подсказку об имени пакета.
другое решение-использовать список aapt и использовать sed для анализа этого:
aapt list -a $PATH_TO_YOUR_APK | sed -n "/^Package Group[^s]/s/.*name=//p"
Я думаю, что лучший и самый простой способ извлечь только имя пакета в Linux
- aapt извлекает информацию APK
- Grep "пакет", чтобы сохранить только строку о пакете информации
- Make sed замените всю строку именем пакета, используя только следующее регулярное выражение: package: name='([a-z0-9.]*)'.* и замена первой (и только) соответствующей группой.
вы можете извлечь AndroidManifest.xml из APK, удалите все нулевые байты, пропустите все до тех пор, пока после строки "манифест", а затем вы находитесь в байте длины, за которым следует имя пакета (и что происходит после него). Для трудной задачи я использую великое гема tool, поэтому команда выглядит так:
конечно, вы можете использовать любой другой инструмент для фильтрации.
есть очень простой способ, если у вас есть APK allready на вашем смартфоне. Просто используйте одно из этих приложений:
простым решением было бы открыть Android Studio - > Build - > Analyze Apk. просмотрите и выберите APK теперь вы можете найти имя пакета и в значительной степени вы можете прочитать.
вы можете установить Package_Name_Viewer.apk на эмуляторе, а затем вы можете увидеть имя пакета всех установленных приложений на эмуляторе.
Я также пробовал де-компиляцию, она работает, но недавно я нашел самый простой способ:
Загрузите и установите Appium из веб-сайт Appium
открыть Appium - > настройка Android, выберите целевой файл apk. И тогда вы получаете все, что хотите, информацию о пакете, информацию о деятельности.
чтобы использовать это в пакетных сценариях, удобно, чтобы скрипт возвращал только имя пакета (например, для удаления приложения, когда у вас есть APK).
вот скрипт, который я использую:
чтобы вы могли написать:
ADB uninstall`. /getPackageName.sh файл.apk'
для Windows следующее работало для меня:
Примечание
пожалуйста, отредактируйте пути АБР, aapt, APKPath по пути АБР, aapt, и место АПК в вашей системе.
работает:
- здесь я добавил apk в папку на рабочем столе " \Desktop\APK\Instant_Instal\".
- команда %adb% install %apk% устанавливает приложение, если устройство подключено.
- этот %aapt% dump badging %APKFullPath% | FIND "package: name tokens=2 delims= '" %%s IN (temp.txt) установите pkgName=%%s extracts the package name and assigns to переменная pkgName
- наконец-то %adb% shell monkey -p %pkgName% -c android.intent.category.LAUNCHER 1 запускает приложение.
по сути, приведенный выше код устанавливает apk из заданного местоположения на рабочем столе "Desktop\APK\Instant_Instal\" на устройство и запускает приложение.
Как я не смог найти имя пакета в .файл apk с редактором (как предложено выше), я проверил функции в приложении "ES Datei Explorer" / "ES File Explorer" (бесплатная версия), который я уже установил. В этом инструменте имя пакета отображается правильно.
Поскольку я думаю, что хороший проводник не должен отсутствовать на телефоне, я предлагаю использовать этот инструмент (если вы уже установили apk на мобильном телефоне и должны знать имя пакета).
Я рекомендую вам сохранить его .txt, потому что он может быть очень длинным. Итак:
Android SDK предоставляет много средств для работы с системой. В том числе он позволяет получать список приложений, которые установлены на устройстве. Это может быть полезно, когда нужно получить сведения о сторонних приложениях (размер APK, путь до приложения, имя пакета и т.д.). Например, в наших приложениях получение списка, содержащего сторонние приложения, играет большую роль: в GreenBro с помощью этого списка выводятся сведения о приложениях, а также выполняются различные действия.
В Менеджере системных приложений и APK Extractor же список приложений необходим, чтобы удалять приложения и извлекать APK из приложений соответственно.
В этой статье мы рассмотрим, как можно получать список приложений, установленных на устройстве, а также как происходит установка приложений на устройство.
PackageManager предоставляет API, который фактически управляет установкой, удалением и обновлением приложений. Когда мы устанавливаем файл APK, PackageManager анализирует этот APK и выводит результат.
Получить экземпляр класса PackageManager можно с помощью метода getPackageManager(). PackageManager предоставляет методы для запросов к установленным пакетам и соответствующим разрешениям.
В зависимости от типа данных, на Androiid файлы могут храниться в следующих местах:
- Предустановленные и системные приложения (Камера, Браузер и т.д.) хранятся в /system/app/
- Установленные пользователем приложения хранятся в /data/app/
- PackageManager создаёт каталог /data/data/<имя пакета>/ для хранения базы данных, файлов с предпочтениями, нативных библиотек и кеша.
Менеджер пакетов хранит информацию о приложении в трёх файлах, расположенных в /data/system.
packages.xml
Этот XML-файл содержит список разрешений и пакеты\приложения. Он хранит две вещи: разрешения и пакет. Например:
Тег <package> содержит 10 атрибутов и несколько подтегов.
Атрибут | Описание |
name | Имя пакета |
codePath | Путь установки APK |
nativeLibraryPath | Нативная библиотека, расположенная по умолчанию в /data/data/<имя пакета>/lib |
flag | Хранит флаги ApplicationInfo |
ft | Время в шестнадцатtричном формате |
lt | Время установки в шестнадцатеричном формате |
ut | Время последнего обновления в шестнадцатеричном формате |
version | Код версии из AndroidManifest.xml |
sharedUserId | Идентификатор пользователя Linux, который будет использоваться совместно с другими приложениями. |
userId | Идентификатор пользователя Linux |
Подтеги же здесь следующие:
packages.list
Это простой текстовый файл, содержащий имя пакета, идентификатор пользователя, флаги и каталог data.
package-stopped.xml
Рассмотрим получение списка установленных приложений на примере GreenBro.
При запуске приложения запускается AsyncTask, внутри которого получаем экземпляр PackageManager и затем копируем в список List<ApplicationInfo> все данные об установленных приложениях.
Метод getInstalledApplications() принимает в качестве параметра флаг GET_META_DATA, который определяет, что нам нужные метаданные каждого пакета.
Результатом является список объектов ApplicationInfo для каждого установленного приложения. Класс ApplicationInfo предоставляет подробную информацию о пакете, собранную из тега <application> в AndroidManifest.xml, нам оттуда нужны лишь самые важные данные.
Поэтому в цикле проверяем каждый объект из полученного списка и записывать данные в собственный класс AppInfo, чтобы затем использовать в основном потоке.
Здесь с помощью метода getPackageInfo() класса PackageManager мы получаем общую информацию о приложении по заданному имени пакета. После эта информация объединяется с информацией, полученной от getInstalledApplications() и сохраняется в объекте AppInfo со следующими полями:
Чтобы узнать название приложения, можно также воспользоваться PackageManager, как показано ниже.
Проверка же на то, является ли приложение системным, тоже достаточно проста и показана ниже.
В конце работы AsyncTask возвращает результат обратно в основной поток. Вот и всё, мы загрузили себе список всех установленных на устройстве приложений и можем продолжить с ним работу.
Получение списка приложений в Android : 4 комментария
Это локальная переменная, Вы можете передавать контекст из активити или фрагмента
а есть ли функция наподобие getRunnedApplications(), которая выдает список запущенных последних приложений?
как отличить приложение от сервиса? Проверка на системное приложение не помогает
APK Checker
версия: 1.4.4
Последнее обновление программы в шапке: 28.12.2015
Краткое описание:
Информация о APK файле
APK Checker - это маленькая и невидимая в лаунчерах, но очень удобная и полезная программа, которая показывает всю нужную информацию о пакете приложения в момент начала его установки.
После установки и запуска утилиты вам нужно открыть любой файловый менеджер и найти APK файл того приложения, которое вы хотите установить. После нажатия на APK файл вам будет предложено на выбор два приложения - стандартный модуль установки приложений и APK Checker. Выбираете второе и дожидаетесь, пока утилита проанализирует информацию об APK файле и выдаст её на экран.
В информации указывается следующее:
1. Установщик APK файла
2. Полный путь к APK файлу
3. Название пакета
4. Полный размер APK файла
5. Иконка в Меню приложений
6. Размер иконки
7. Внутреннее имя пакета
8. Имя приложения
9. Версия приложения
10. Код версии
11. Время сборки
12. Минимальная версия Android SDK
13. Целевая версия Android SDK
14. Поддерживаемые библиотеки ABIs
15. Запрашиваемые разрешения
16. Флаги
17. Действующие активити
18. Сервисы
19. Контент провайдеры
20. Ресиверы передач
21. Подписи
22. Отпечаток сертификата
23. Дата начала действия сертификата
24. Дата окончания действия сертификата
Если во время просмотра информации о пакете поставить галочку возле пункта “Показать установленные”, то будет показана информация не только о выбранном APK, но и о версии APK этого же приложения, которое уже установлено в системе. При этом в информации об APK файле дополнительно будут указаны:
*Первая установка
*Последнее обновление
Чтобы продолжить установку, нажмите на кнопку "УСТАНОВИТЬ".
* Чтобы программа показывала абсолютно всю доступную для неё информацию о пакете приложения, которое вы хотите установить - в ней нужно включить режим разработчика: Выбираете любой установочный пакет приложения, чтобы появилось окно информера -> нажимаете на троеточие в правом верхнем углу экрана -> Дополнительно -> Помощь -> делаете долгий тап по ЗАКРЫТЬ на появившемся списке. Затем снова делаете короткий тап по тому же троеточию в правом верхнем углу экрана -> Дополнительно -> Показать/Скрыть элементы -> отмечаете все пункты в открывшемся меню и нажимаете OK (изменения вступят в силу при следующей установке любого *.apk-файла).
- Функция сохранения иконки приложения
- Функция переименования APK файла
В приложении также есть приятный бонус: функция пакетного переименования нескольких *.apk-файлов с помощью любого файлового менеджера (описание способа можно прочитать при включении данной функции в программном меню настроек).
ПРОГРАММА ЯВЛЯЕТСЯ ПРЕДВАРИТЕЛЬНЫМ ИНФОРМЕРОМ УСТАНАВЛИВАЕМЫХ ПАКЕТОВ ПРИЛОЖЕНИЙ И НЕ ЗАМЕНЯЕТ СИСТЕМНЫЙ УСТАНОВЩИК ПАКЕТОВ!
ROOT: Не нужен
Сервисы Google: Не требуются
Требуется Android: 2.3+
Русский интерфейс: Есть
Разработчик: syk
Читайте также: