- Как запустить exe на Android и установить приложение
- Когда это может понадобиться
- Безопасно ли открывать файлы exe на смартфоне
- Можно ли открыть exe без всяких утилит и эмуляторов
- Как запустить exe на Андроид
- Bochs
- ExaGear Windows Emulator
- Как устроен билд APK файла внутри
- Процесс создания APK и компиляции кода
- Рассматриваемые темы
- Архитектура процессоров и зачем нужна виртуальная машина
- Понимание Java виртуальной машины
- Андроид виртуальная машина
- Комплияция в .dex файл
- ART против Dalvik
- Каждый этап описанного процесса
- Source Code (Исходный код)
- Resource Files
- AIDL Files
- Library Modules
- AAR Libraries
- JAR Libraries
- Android Asset Packaging Tool
- resources.arsc
- D8 и R8
- Dex and Multidex
Как запустить exe на Android и установить приложение
Исполнительный файл формата exe предназначен для открытия на компьютерах с операционной системой Windows. Тем не менее, некоторым может понадобится знать, как открыть exe файл на Андроиде. Именно этому посвящена данная статья.
Когда это может понадобиться
Запуск exe на Android может понадобиться в случае, когда нужно открыть компьютерный файл или программу. Exe — это исполняемый файл именно для операционной системы Windows.
Исполняемый файл выполняет определенную последовательность действий. Чаще всего эта последовательность связана с запуском мастера-установки и распаковкой архивированных файлов на компьютер.
Сокращенно такое называется установкой программного обеспечения.
Есть простенькие программы, которые не предусматривают даже наличие мастера установки. Запуск такого исполнительного файла равнозначен обычному разархивированию: файлы из архива просто перемещаются в каталог по умолчанию.
Сразу скажу, что установить большую часть программ для Windows на Android не получится. Это аргументируется несколькими факторами:
- мощность компьютера выше, чем мощность мобильного устройства (даже если по техническим характеристикам, таким как оперативная память и тактовая частота процессора, Андроид-аппарат мощнее);
- абсолютно разные принципы работы системы, взаимодействия с файлами и многое другое;
- архитектура процессоров тоже кардинально разная (это значит, что вычислительные процессы выполняются по-разному);
- работа внутренних комплектующих тоже сильно различается.
Безопасно ли открывать файлы exe на смартфоне
Открытие exe файлов на Андроиде возможно. А вот будут работать установленные или разархивированные программы, уже другой вопрос.
Так как запуск исполняемых файлов для Windows не предусмотрен разработчиками из Google, exe файлы открываются только через стороннее программное обеспечение. В большинстве случаев это эмуляторы операционной системы от Microsoft.
По поводу безопасности открытия исполнительных файлов на Android нельзя сказать ничего конкретного.
Если вы устанавливайте простенькую программу, которую другие пользователи уже успешно запускали на операционной системе от Google, то процесс можно назвать вполне безопасным.
Если же вы инсталлируете что-то и являетесь первопроходцем, либо это программное обеспечение которое точно не пойдет на Андроиде, то его запуск и установка может привести к плачевным последствиям.
Вряд ли планшет или телефон испортится окончательно и перестанет запускаться, но он может выключиться и начать функционировать медленнее. В таком случае советую произвести перепрошивку.
Можно ли открыть exe без всяких утилит и эмуляторов
Exe на Андроид можно запускать лишь через сторонние программы или эмуляторы. Стоковые функции не поддерживают исполняемые файлы Windows, потому что у Android есть аналог в виде формата apk.
Если вы хотите запустить экзешник без всяких утилит и без эмулятора, то можно схитрить и воспользоваться удаленным доступом через приложение Teamviewer.
Приложение нужно установить с Play Market, а также инсталлировать на компьютер. Затем надо подключиться к компьютеру, введя его IP-адрес в приложении на мобильном девайсе.
Так можно управлять компьютером удаленно, запуская exe файлы на нем и управляя программным обеспечением через Teamviewer. Качество соединения зависит от интернета.
Так как это не прямой запуск экзешников на Андроиде, я не внес удаленный доступ в список ниже.
Как запустить exe на Андроид
Чтобы открыть файл exe на планшетнике или смартфоне, нужно использовать один из двух приведенных ниже методов. Это самые эффективные, и главное, актуальные способы.
Bochs
Bochs — бесплатный и актуальный эмулятор операционной системы Windows для Android. Загружается из магазина приложений Play Market.
Сначала нужно правильно установить программное обеспечение:
- Скачать и инсталлировать приложение из Плей Маркета.
- Запустить приложение.
- В правом верхнем углу тапнуть на надпись “Start”.
- Файлы для эмуляции начнут копироваться в систему. Это займет немного времени, после чего откроется текстовое меню BIOS.
- Инсталляция произведена правильно. Теперь можно выйти из программы и закрыть ее.
Следующий этап — подготовка файлов. Для него понадобится любой файловый менеджер, но желательно не предустановленный. Отлично подойдет приложение ES Проводник, которое можно скачать с Play Market.
- Открыть менеджер файлов.
- Перейти в корневой каталог, выбрав “Устройство” и папку “sdcard”.
- Открыв “sdcard”, надо тапнуть на символ трех вертикальных точек (расположен в правом верхнем углу) — это меню.
- В меню выбрать “Создать”.
- Отобразится тип объекта, который нужно создать. Выбрать “Папка”.
- После этого папке нужно дать название. Оно может быть любым, но советую ввести название “HDD”, дабы в будущем быстро находить нужный файловый каталог. После ввода названия нажать на “Ок”.
- Эта директория станет хранилищем всех исполняемых файлов, поэтому в папку “HDD” нужно переместить экзешники, которые вы хотите запустить на мобильном устройстве.
Дальнейший шаг — добавление образа Windows в виде файла формата IMG. Их нужно предварительно скачать из интернета. Я предлагаю проверенный форум 4PDA. Сборник образов для Bochs можно найти по этой ссылке: https://4pda.ru/forum/index.php?showtopic=318284
В данном примере я использую версию Windows 98, так как она не такая требовательная к ресурсам.
- Скачать образ.
- Переместить его в основную директорию Bochs. Она находится по адресу: sdcard>Android>data>net.sourceforge.bochs>files. Перемещение и поиск каталога осуществляются через файловый менеджер.
- Когда образ будет перемещен в нужное место, требуется его переименовать. Введите имя “c.img”. Обратите внимание, что наименование файла пишется без кавычек, а буква “c” должна быть введена латиницей, а не кириллицей.
- В той же папке, куда вы переместили образ, найдите текстовый файл “bochsrc.txt” и откройте его. При нажатии появится выбор программы для открытия. Можно использовать любую.
- В текстовом файле необходимо найти строку “ata1: enabled=1” (без кавычек) и навести на ее конец.
- Нажмите Enter, начав новую пустую строку прямо над вышеописанной.
- Введите 2 строки:
ata0-master: type=disk, path=c.img
ata1-master: type=disk, mode=vvfat, path=/sdcard/HDD
Обратите внимание, что я указал название папки HDD. Если вы назвали каталог иначе, то замените значение HDD на другое. - Сохраните изменения в текстовом файле и закройте его.
Наконец, я дошел до заключительного шага — запуска исполнительного файла.
- Открыть приложение. В нем должны быть поставлены две галочки напротив первого и третьего пункта на вкладке “Storage”.
- Перейти на вкладку “Hardware”, настроив характеристики эмулируемой системы (чипсет, память, эзернет карта, шина PCI и т.д.). Чем слабее будет эмулируемая система, тем выше будет производительность.
- В верхнем правом углу нажать на “Start”. Windows начнет запускаться словно на компьютере.
- Когда “компьютер” включился, надо перейти в “Мой компьютер”.
- Теперь нужно открыть локальный диск D под названием “Bochs vvfat”. Здесь будет все, что перемещалось в папку HDD.
- Открыть необходимый исполнительный файл.
- Начнется установка программного обеспечения.
Важно! Инсталляция зависит не только от мобильного устройства, но и от выбранной версии Windows. Например, на WIndows 98 не запустится много современных программ.
ExaGear Windows Emulator
ExaGear не эмулирует операционную систему полностью, а поэтому создавать эмулятор не требуется. Это ограничивает установку и запуск приложений для Windows, но зато данный способ проще, чем метод с Bochs.
Сначала надо скачать и установить приложение.
- Перейти на эту страницу и скачать программу.
- Запустить apk и произвести установку (понадобится архиватор для открытия архива).
- Запустить приложение, и дождаться ошибки активации лицензии.
- Открыть папку с разархивированными файлами и скопировать папку “com.eltechs.ed”.
- Перейти в корневую папку “sdcard”, открыть “Android/obb” и вставить скопированные файлы, подтвердив их замену.
Теперь программу надо активировать:
- Скачать и установить приложение LuckyPatcher. Ссылка на официальный сайт: https://www.luckypatchers.com/download/
- Предоставить рут-права.
- Открыть программу. Начнется сканирование, по окончании которого надо тапнуть на “ExaGear Windows Emulator”, и выбрать “Меню патчей”.
- Нажать на “Создать лицензию”.
И последний этап — взаимодействие с файлами.
- Через файловый менеджер перейти в “sdcard” и открыть папку “Download”. Именно сюда нужно перемещать файлы формата exe.
- Запустить ExaGear, выбрав в главном меню пункт “Установка приложения”.
- Выбрать программу для инсталляции или указать путь к своей.
- Начнется установка исполняемого Windows-файла.
Теперь проблем с тем, как открыть exe файл на Андроиде, не возникнет. Откроется программа или нет, зависит уже от устройства и самого ПО.
Источник
Как устроен билд APK файла внутри
Процесс создания APK и компиляции кода
Рассматриваемые темы
- Архитектура процессоров и необходимость для виртуальной машины
- Понимание Java виртуальной машины
- Компиляция исходного кода
- Виртуальная машина Андроид
- Процесс компиляции в .dex файл
- ART против Dalvik
- Описание каждой части билд процесса
- Исходный код
- Файлы ресурсов
- AIDL файлы
- Модули библиотек
- AAR библиотеки
- JAR библиотеки
- Android Asset Packaging Tool
- resources.arsc
- D8 и R8
- Dex и Multidex
- Подписывание APK файла
- Ссылки
Понимание флоу процесса билда APK файла, среда исполнения и компиляция кода
Этот пост нацелен быть отправной точкой для разработчиков, чтобы они ближе познакомились с билд процессом и созданием APK файла.
Архитектура процессоров и зачем нужна виртуальная машина
Андроид после того как вышел в 2007 году претерпел множество изменений связанный с билд процессом, средой исполнения и улучшениями производительности.
У андроида много удивительных характеристик и одна из них разные архитектуры процессоров такие как ARM64 и x86
Невозможно скомпилировать код, который поддерживает каждую архитектуру. Вот именно поэтому используется Java виртуальная машина.
Понимание Java виртуальной машины
JVM это виртуальная машина, позволяющая устройству запускать код, который скомпилирован в Java байткод
Используя JVM, вы избавляетесь от проблемы с разной архитектурой процессоров.
JVM предоставляет переносимость и она позволяет запускать Java код в виртуальной среде, вместо того, чтобы запускать его сразу «на железе»
Но JVM была создана для систем с большими мощностями по ресурсам, а наш андроид имеет сравнительно мало памяти и заряда батареи.
По этой причине Google создал адаптированную под андроид виртуальную машину, которая называется Dalvik.
Компилируем исходный код
Наш исходный Java код для андроида компилируется в класс файл .class с байткодом с помощью javac компилятора и запускается на JVM
Для котлина есть kotlinc компилятор, который делает совместимый с Java байткод.
Байткод — это набор инструкций, который выполняется на целевом устройстве.
Java байткод — это набор инструкций для Java виртуальной машины.
Андроид виртуальная машина
Каждое андроид приложение работает на своей виртуальной машине. С версий 1.0 до 4.4, это был Dalvik. В андроид 4.4, вместе с Dalvik, Google представил в качестве эксперимента новый андроид runtime, который назывался ART
Сгенерированный класс файл .class содержит JVM Java байткод.
Но у андроида есть свой собственный оптимизированный формат байткода, который называется Dalvik bytecode — это просто инструкции машинного кода для процессора также как и JVM байткод.
Комплияция в .dex файл
Во время компиляции происходит конвертация .class класс файл и .jar библиотеки в один classes.dex файл, который содержит Dalvik байткод.
Команда dx превращает все .class и .jar файлы в один classes.dex файл, который написан с форматом Dalvik байткода.
Dex — это аббревиатура с английского — Dalvik Executable.
ART против Dalvik
C версии 4.4 андроид мигрировал на ART. ART также работает с .dex файлом.
Преимущество ART над Dalvik проявляется в том, что приложения запускаются быстрее, потому что весь DEX байткод транслируется в машинный код во время установки, не нужно дополнительного времени на компиляцию в рантайме.
ART и Dalvik совместимы, так что приложения разработанные для Dalvik должны работать и на ART.
Компиляция Dalvik (JIT- just in time) имела такие минусы как — быстрая трата батареи, лаги в приложениях и плохой перформанс. В Dalvik трансляция происходит только когда это нужно. Мы открываем новый экран и только в этот момент происходит трансляция, за счет этого установка происходит быстрее, но при этом проседает перформанс.
Это причина по которой Google сделал Android Runtime (ART).
ART — основан на AOT (ahead of time) компиляции, она происходит до того как приложение запустится.
В ART компиляция происходит во время установки приложения. Это ведет к более долгому времени установки, но уменьшает трату батареи и избавляет от лагов, которые были на Dalvik.
Несмотря на то, что Dalvik был заменен на ART, .dex формат файлов еще используется
В андроид 7.0 JIT вернулся. Гибридная среда сочетает фичи как от JIT компиляции так и
от ART
Среда запуска байткода это очень важная часть андроида и она вовлечена в процесс запуска и установки приложения
Каждый этап описанного процесса
Source Code (Исходный код)
Это Java и Kotlin файлы в src пакете.
Resource Files
Файлы находящиеся в директории с ресурсами
AIDL Files
AIDL — аббревиатура Android Interface Definition Language, позволяет вам описать интерфейс межпроцессорного взаимодействия.
AIDL — может использоваться между любыми процессами в андроиде.
Library Modules
Модули библиотек содержат Java или Kotlin классы, компоненты андроида и ресурсы.
Код и ресурсы бибилотеки компилируются и пакуются вместе с приложением.
Поэтому модуль библиотеки может считаться компайл тайм артефактом.
AAR Libraries
Андроид библиотеки компилируются в AAR — android archive файл, который вы можете использовать как зависимость для вашего android app модуля.
AAR файлы могут содержать андроид ресурсы и файл манифеста, что позволяет вам упаковать туда общие ресурсы такие как layouts и drawables в дополнение к Java или Kotlin классам и методам.
JAR Libraries
JAR это Java библиотека и в отличие от AAR она не может содержать андроид ресурсы и манифесты.
Android Asset Packaging Tool
AAPT2 — аббревиатура (Android Asset Packaging Tool) — компилирует манифест и файлы ресурсов в один APK.
Этот процесс разделен на два шага компиляцию и линковку Это улучшает производительность так как если вы поменяете один файл, вам нужно компилировать только его и прилинковать к остальным файлам командой ‘link’
AAPT2 может компилировать все типы андроид ресурсов, таких как drawables и XML файлы.
При вызове AAPT2 для компиляции, туда передается по одному ресурсному файлу на каждый вызов
Затем APPT2 парсит файл и генерирует промежуточный бинарный файл с расширением .flat
Фаза линковки склеивает все промежуточные файлы сгенерированные в фазе компиляции и дает нам на выход один .apk файл. Вы также можете сгенерировать R.java файл и правила для proguard в это же время.
resources.arsc
Полученный на выходе .apk файл не включает в себя DEX файл, APK не подписан и не может быть запущен на устройстве.
APK содержит AndroidManifest, бинарные XML файлы и resources.arsc
resource.arsc содержит всю мета информацию о ресурсах, такую как индексы всех ресурсов в пакете
Это бинарный файл и APK который может быть запущен. APK который вы обычно создаете и запускаете не сжат и может быть использован просто посредством размещения в памяти.
R.java файл это выходной файл вместе с APK ему назначен уникальный id, который позволяет Java коду использовать ресурсы во время компиляции.
arsc это индекс ресурса который используется во время запуска приложения
D8 и R8
Начиная с андроид студии 3.1 и далее, D8 был сделан дефолтным компилятором.
D8 производит более маленькие dex файлы с лучшей производительностью, если сравнивать со старым dx.
R8 используется для компиляции кода. R8 это оптимизированная версия D8
D8 играет роль конвертера класс файлов в Dex файлы, а также производит дешугаринг функций из Java 8 в байткод, который может быть запущен на андроиде
R8 оптимизирует dex байткод. Он предоставляет такие фичи как оптимизация, обфускация, удаление ненужных классов.
Обфускация уменьшает размер вашего приложения укорачивая названия классов, методов и полей.
Обфускация имеет и другие преимущества для предотвращения реверс инжиниринга, но основная цель уменьшить размер.
Оптимизация уменьшает размер Dex файла путем переписывания ненужных частей кода и инлайнинга.
С помощью дешугаринга мы можем использовать удобные фичи языка Java 8 на андроиде.
Dex and Multidex
R8 дает на выходе один DEX файл, который называется classes.dex
Если количество методов приложения переваливает за 65,536, включая подключенные библиотеки, то произойдет ошибка при билде
Источник