Как открывать файлы формата APK на компьютере или смартфоне
Вы скачали файл APK и не знаете, как открыть его на своём компьютере? Или вы хотите установить файл APK на свой компьютер, но не можете этого сделать, потому что операционная система не распознает его? Это нормально: файлы APK, по сути, являются установочными пакетами приложений для Android, и, если вы попытаетесь открыть их в системе, отличной от разработанной Google для смартфонов и планшетов, вы не сможете просмотреть их содержимое. если вы не используете специальные решения. Какие? Я объясню вам это в ближайшее время.
Если вы хотите узнать, как открыть APK-файлы на ПК, вам просто нужно потратить несколько минут свободного времени и прочитать инструкции, которые я собираюсь вам дать. Фактически, в сегодняшнем руководстве я покажу вам, как выполнить эту процедуру для Windows и macOS, и рекомендую различные решения. Расскажу вам об официальном программном обеспечении Google Android Studio, которое позволяет разрабатывать приложения для Android и детально просматривать их содержимое. С другой стороны, если ваша цель состоит в том, чтобы установить приложение для Android на ваш ПК, то это можно осуществить через эмулятор Android, о чём я расскажу во второй части руководства. Если вы намерены только извлечь содержимое файла APK на компьютер, не волнуйтесь, я покажу вам некоторые решения, которые могут подойти для этого случая.
Создание apk-файла
Рассмотрим процесс создания apk-файла на примере p13osgi, в котором использовался OSGi-фреймворк. Этот пример подробно рассмотрен на странице Android и OSGI-фреймворк Felix. В данной статье используем готовый модуль из проекта.
Заметка. Почему в качестве примера создания apk-файла выбираем данный модуль/проект, а не какой-либо другой? Дело в том, что в данном примере используется расположенная в поддиректории lib внешняя библиотека. И для нас интерес будет представлять структура apk-файла с внешней jar-библиотекой : какое место в данном пакете будет занимать внешний файл org.apache.felix.framework-6.0.3.jar. Здесь следует понимать, что OSGi-фреймворк (Felix) позволяет создавать модульную структуру приложения. Причем, в режиме run-time можно динамически подключать новые модули (bunlde), останавливать запущенные модули, одновременно подключать разноверсионные модули. Данный функционал OSGi-фреймворка на примере Вы можете реально проверить на своем компьютере; для этого необходимо познакомиться с Уроком 8.
На чём писать приложения для Android
В принципе для разработки нужна только Android Studio, которую можно бесплатно скачать с официального сайта. Это лучшая среда разработки андроид приложений из существующих на рынке. Подойдёт любая операционная система (Mac OS, Windows, Linux). Что касается аппаратной части, желательно иметь процессор не старше пяти лет и 8 гигабайт оперативной памяти (+ 1,5 ГБ свободного места на диске).
Если вы не знаете ничего о программировании и имеете только жгучее желание создавать, для начала нужно выучить хотя бы один язык программирования. На данный момент написать приложение для Android можно на Java или на Kotlin. Предпочтительный язык — Kotlin, но если вы планируете стать профессиональным разработчиком, то Java вам нужно хотя бы уметь «читать» (а лучше и писать на ней). Эти языки очень похожи, работают по одинаковым принципам и имеют очень похожий синтаксис. У нас на факультете Android-разработки мы начинаем изучать Java, а в середине обучения переходим на Kotlin. Так выпускник оказывается полностью подготовлен к профессии андроид-разработчика в плане языков программирования.
Чтобы с удобством изучать Java, установите среду разработки на Джаве — IntelliJ Idea Community Edition. Это бесплатная программа, лучшая на рынке. Инструкцию по установке можно найти в конце этой статьи, в дополнительных материалах.
Портирование Android на ПК
Если вас не пугают дополнительные трудности, вы можете установить модифицированную версию мобильной ОС на компьютер. Существуют несколько сред адаптации ОС Android, которые запускаются на ПК, но их поддержка ограничена из-за обширных вариантов аппаратной конфигурации компьютера. Двумя лидирующими платформами для полноценной установки Android на ПК является Android на архитектуре Intel (для устройств с UEFI) и проект Android-x86.
Ни один из продуктов не идеален — вам нужны поддерживаемые инструментами устройства, например Dell XPS 12 в случае с версией для Intel или Lenovo ThinkPad x61 для Android-x86. Вы можете установить данные среды поверх Windows, но это не самая лучшая идея. Самым разумным способом является создание отдельного раздела жесткого диска и установка Android на него.
Если конфигурация вашего ПК не поддерживается данными продуктами, Вы можете попробовать установить их в средs виртуализации VirtualBox или VMware, которые работают быстрее, чем эмулятор Android. Возможно, данные продукты все еще не подойдут для тестирования игр, но большинство приложений будут устанавливаться и работать корректно. Установку приложений нужно будет выполнять самостоятельно, т.к. интеграция Google Play в данных продуктах отсутствует. В качестве помощи вы можете воспользоваться инструкцией на нашем сайте — Установка Android в VMware Workstation.
Что такое АПК файл
Современные программы, как правило, состоят из десятков документов и папок, которые требуют много места. В интегрированной среде разработки Android Studio, работающей под Windows, OS X и Linux, предусмотрен сервис компиляции программ для платформы Android. В результате получается один упакованный исполняемый файл формата AndroidPackageKit (APK), обеспечивающий установку приложения с необходимыми библиотеками и ресурсами. В процессе распаковки пользователь выбирает полную установку либо распаковку отдельных компонентов. Второй вариант, как правило, выбирают разработчики для дальнейшего просмотра и редактирования программы.
WARNING
Чтобы подписать приложение с помощью apk-signer, ты должен установить Android SDK и указать полный путь до него в настройках приложения.
Вся информация предоставлена исключительно в ознакомительных целях. Ни редакция, ни автор не несут ответственности за любой возможный вред, причиненный материалами данной статьи.
Теперь этим ключом можно подписать APK. На вкладке APK Signer выбираем только что сгенерированный файл, вводим пароль, алиас ключа и пароль к нему, затем находим файл APK и смело жмем кнопку «Sign». Если все пройдет нормально, пакет будет подписан.
Так как мы подписали пакет нашим собственным ключом, он будет конфликтовать с оригинальным приложением, а это значит, что при попытке обновить софтину через маркет мы получим ошибку.
Цифровая подпись необходима только стороннему софту, поэтому если ты занимаешься модификацией системных приложений, которые устанавливаются копированием в каталог /system/app/, то подписывать их не нужно.
После этого скидываем пакет на смартфон, устанавливаем и запускаем. Вуаля, реклама пропала! Вместо нее, однако, появилось сообщение, что у нас нет интернета или отсутствуют соответствующие разрешения. По идее, этого могло бы и хватить, но сообщение выглядит раздражающе, да и, если честно, нам просто повезло с тупым приложением. Нормально написанная софтина, скорее всего, уточнит свои полномочия или проверит наличие интернет-соединения и в противном случае просто откажется запускаться. Как быть в этом случае? Конечно, править код.
Обычно авторы приложений создают специальные классы для вывода рекламы и вызывают методы этих классов во время запуска приложения или одной из его «активностей» (упрощенно говоря, экранов приложения). Попробуем найти эти классы. Идем в каталог smali, далее com (в org лежит только открытая графическая библиотека cocos2d), далее kauf (именно туда, потому что это имя разработчика и там лежит весь его код) — и вот он, каталог marketing. Внутри находим кучу файлов с расширением smali. Это классы, и наиболее примечателен из них класс Ad.smali, по названию которого нетрудно догадаться, что именно он выводит рекламу.
Мы могли бы изменить логику его работы, но гораздо проще будет тупо убрать вызовы любых его методов из самого приложения. Поэтому выходим из каталога marketing и идем в соседний каталог particle, а затем в virtualtorch. Особого внимания здесь заслуживает файл MainActivity.smali. Это стандартный для Android класс, который создается Android SDK и устанавливается в качестве точки входа в приложение (аналог функции main в Си). Открываем файл на редактирование.
Внутри находится код smali (местный ассемблер). Он довольно запутанный и трудный для чтения в силу своей низкоуровневой природы, поэтому мы не будем его изучать, а просто найдем все упоминания класса Ad в коде и закомментируем их. Вбиваем строку «Ad» в поиске и попадаем на строку 25:
Здесь создается поле ad для хранения объекта класса Ad. Комментируем с помощью установки знака ### перед строкой. Продолжаем поиск. Строка 423:
Здесь происходит создание объекта. Комментируем. Продолжаем поиск и находим в строках 433, 435, 466, 468, 738, 740, 800 и 802 обращения к методам класса Ad. Комментируем. Вроде все. Сохраняем. Теперь пакет необходимо собрать обратно и проверить его работоспособность и наличие рекламы. Для чистоты эксперимента возвращаем удаленную из AndroidManifest.xml строку, собираем пакет, подписываем и устанавливаем.
Наш подопытный кролик. Видна реклама Он же, но уже без рекламы
Оп-па! Реклама пропала только во время работы приложения, но осталась в главном меню, которое мы видим, когда запускаем софтину. Так, подождите, но ведь точка входа — это класс MainActivity, а реклама пропала во время работы приложения, но осталась в главном меню, значит, точка входа другая? Чтобы выявить истинную точку входа, вновь открываем файл AndroidManifest.xml. И да, в нем есть следующие строки:
Они говорят нам (и, что важнее, андроиду) о том, что активность с именем Start должна быть запущена в ответ на генерацию интента (события) android.intent.action.MAIN из категории android.intent.category.LAUNCHER. Это событие генерируется при тапе на иконку приложения в ланчере, поэтому оно и определяет точку входа, а именно класс Start. Скорее всего, программист сначала написал приложение без главного меню, точкой входа в которое был стандартный класс MainActivity, а затем добавил новое окно (активность), содержащее меню и описанное в классе Start, и вручную сделал его точкой входа.
Открываем файл Start.smali и вновь ищем строку «Ad», находим в строках 153 и 155 упоминание класса FirstAd. Он тоже есть в исходниках и, судя по названию, как раз и отвечает за показ объявлений на главном экране. Смотрим дальше, идет создание экземпляра класса FirstAd и интента, по контексту имеющего отношение к этому экземпляру, а дальше метка cond_10, условный переход на которую осуществляется аккурат перед созданием экземпляра класса:
Скорее всего, программа каким-то случайном образом вычисляет, нужно ли показывать рекламу на главном экране, и, если нет, перескакивает сразу на cond_10. Ок, упростим ей задачу и заменим условный переход на безусловный:
Больше упоминаний FirstAd в коде нет, поэтому закрываем файл и вновь собираем наш виртуальный факел с помощью apktool. Копируем на смартфон, устанавливаем, запускаем. Вуаля, вся реклама исчезла, с чем нас всех и поздравляем.
- Перевод приложений Android;
- пример снятия триала с приложения.
Шаг #0. Настройка среды разработки
Так как мы пишем приложение для Android, нам понадобится JDK (Java Development Kit) и Android SDK – среда разработки для приложений Android. А также собственно Cordova.
Установочник для нужной платформы можно найти на сайте Oracle. Выбирайте версию не выше JDK 8, с более новыми Cordova не будет работать.
Запомните, куда установился пакет, и сохраните этот путь в переменной окружения JAVA_HOME .
А также добавьте его в переменную PATH .
Android Studio
Для разработки под Android также потребуется установить Android Studio.
После установки зайдите в программу и откройте меню SDK Manager (при открытом проекте Tools -> SDK Manager).
Здесь вы найдете путь к Android SDK (Android SDK Location), сохраните его в переменную окружения ANDROID_SDK_ROOT .
Добавьте в переменную PATH каталоги tools и platform-tools :
Затем убедитесь, что установлен пакет Android SDK Build-Tools (во вкладке SDK Tools).
Создание эмулятора
Наконец, создадим эмулятор, на котором можно будет запускать приложение в процессе разработки.
Для этого зайдите в меню AVD Manager:
И создайте эмулятор с нужными параметрами.
Cordova
Осталось глобально установить npm-пакет Cordova:
Запуск эмулятора
Если целью загрузки APK-файла на компьютер была дальнейшая его установка, а не открытие, тогда потребуется воспользоваться эмулятором операционной системы Windows. На рынке программного обеспечения их довольно много, поэтому все рассматриваться в статье не будут, а лишь наиболее популярные.
BlueStacks
BlueStacks – самый популярный эмулятор Android, поэтому разумно будет начать с него. Итак, чтобы произвести инсталляцию приложения для Android в рамках рабочего стола Windows, необходимо выполнить следующие действия:
- Запустите программу BlueStacks.
- На левой панели с перечнем инструментов нажмите по кнопке «APK».
- Откроется окно файлового менеджера, в котором необходимо перейти в папку с заранее скачанным файлом APK.
- Выделите приложение для Андроид и нажмите кнопку «Открыть».
- Запустится процесс инсталляции приложения в BlueStacks, дождитесь его завершения.
- В меню эмулятора отобразится иконка только что установленной программы, нажмите по ней для запуска.
Droid4X
Droid4X – это ее один популярный эмулятор мобильной операционной системы, соответственно, и с его помощью можно на компьютерах под Windows запустить приложения для Android. Делается это на порядок проще:
- Произведите на компьютер установку программы Droid4X.
- Откройте файловый менеджер «Проводник».
- Перейдите в папку со скачанным APK-файлом.
- Нажмите по нему ПКМ.
- В контекстном меню выберите пункт «Play with Droid4X».
- Запустится процесс установки мобильного приложения. Дождитесь его завершения.
- Нажмите ЛКМ по иконке установленной программы в меню эмулятора.
Genymotion
С помощью эмулятора Genymotion произвести установку APK-файла на компьютер куда сложнее, но всё же это неплохая альтернатива предыдущим способам. Однако учтите, что предварительно необходимо создать аккаунт на сайте Genymotion и установить виртуальную машину VirtualBox.
- Запустите Genymotion.
- Нажмите на верхней панели кнопку «Add».
- В появившемся окне нажмите «Next».
- В последующем за ним также нажмите «Next».
- Дождитесь завершения загрузки и в открывшемся окне VirtualBox нажмите кнопку «Запустить».
- Вернитесь к окну Genymotion и нажмите кнопку «Start».
- Появится окно эмулированного Андроида. Чтобы устанавливать APK, надо сначала инсталлировать Genymotion ARM Translation. Для этого откройте папку с этим файлом и перетащите его мышкой в окно эмулятора.
- Перезапустите эмулятор и виртуальную машину.
- Откройте папку с файлом APK и перетащите его в окно эмулятора.
Сразу после этого приложение будет запущено, и вы сможете с ним взаимодействовать через окно эмулятора.