Android runs java programs

HOWTO: Running Java code directly on Android (without creating an APK)

A step by step instruction for compiling a Java program into Android executable and using ADB to run it.

When you want to create a system / commandline tool for Android, you have to write it in C(++)… or do you?

TLDR; here’s the final proof of concept.

Sticking with Java would have the benefit of avoiding all of the native ABI hassle and also being able to call into the Android runtime. So how do we do that?

A (not so) simple Hello World program

Let’s start with the Java program we want to run. In order to make it a bit more interesting (and because any useful program has dependencies), it won’t just print the obligatory “Hello World” message, but also use the Apache Commons CLI library to parse its commandline arguments:

Setting up the working directory

We will have to manually run several commandline tools in the next step, assuming the following final directory structure:

Start by creating an empty directory in a convenient place. Download and unpack the following items there:

  • Android SDK (either via Android Studio or the SDK Manager). NOTE: If you are an Android developer, you’ll have the Android SDK already installed. In that case, you don’t actually need to copy it to the working directory as long as you know the path to the dx tool.
  • Apache Commons CLI library v1.3.1

Afterwards copy&paste the HelloWorld code from above into the source folder. You might also find my semantic version parser class useful later on (not required here, though).

Compiling and dexing the Java class

Next step is to compile the java class (keep in mind that Android is stuck with Java 7 — bytecode for later versions won’t work). In case you are not used to doing this outside of an IDE, here’s the command:

Make sure the program compiled properly:

Android cannot run Java class files directly. They have to be converted to Dalvik’s DEX format first (yes, even if you are using ART):

NOTE: Android Build Tools v28.0.2 and later contain a dx upgrade, called d8 . The d8 tool can process Java 8 class files. I’ll stick with dx for backwards compatibility reasons here.

Creating the startup shellscript

Android does not have a (normal) JRE, so JAR files cannot be started the same way as on a PC. You need a shellscript wrapper to do this. Copy&paste the one below to the workspace.

NOTE: DEX files can also be started directly using the dalvikvm command, but going through app_process gives us a pre-warmed VM from the Zygote process (it is also the method employed by framework commands like pm and am ).

Installing and running the (non-) app

Time to push everything to the device:

Moment of truth (fingers crossed):

NOTE: Since nothing was installed into the system, getting rid of the program is simply done by deleting the directory again.

It works, but how do I get a Context?!

Contexts represent an environment that is associated with an app (which we explicitly did not build) and are also device dependant. They can only be created by the ActivityThread class (a hidden system class that you cannot instantiate). If you want to interact with the Android runtime, you have to talk to the system services directly through their Binder interfaces. But that’s a topic for another article.

Источник

Android runs java programs

Сегодня речь пойдет о том, как запускать полноценные java-приложения на устройствах под управлением Android, для чего это может быть необходимо и какие приложения будут актуальны для мобильной платформы. Полноценные приложения это те, для запуска которых не хватает возможностей Dalvik VM. Таким приложениям необходима JRE. Далее поговорим о том, как ее установить и работать с ней.

Читайте также:  Говорящий пришелец для андроида

Установка

Для установки JRE требуется установить какой-нибудь terminal и busybox. Последний пакет требует наличия root-прав. О том, как получить root-права для Android можно прочесть здесь. Сама JRE не требует root. Скачать приложение можно из основного репозитория альтернативного маркета F-droid, либо самостоятельно собрать пакет из исходного кода. Сам процесс установки тривиален, все как и для любого другого apk-файла. После запуска программы она предложит докачать дополнительные библиотеки (glibc, awt и т.д.). Кстати, все зависимости, вроде терминала и busybox программа также способна скачать самостоятельно. Разумеется, для максимальной совместимости необходимо отметить все элементы.

Использование

Для запуска jar-архива нажимаем на кнопку «run jar file», программа запрашивает доступ к файловой системе. Выбираем программу, с помощью которой указываем файл для запуска.

Лично я рекомендую Total Commander в качестве файлового менеджера. Он бесплатен и очень удобен, плюс есть поддержка плагинов.

Так вот, после выбора файла открывается окно терминала, который запускает java-машину и передает ей путь к выбранному jar-файлу. Далее, в зависимости от программы, работа будет через терминал, либо запустится отрисовка интерфейса. Очень легко и удобно, не правда ли? К сожалению, есть небольшой косметический недочет, при первом запуске в терминале криво отображается путь к исполняемому файлу java и передаваемым аргументам.

Но на работу это не влияет, а при повторном запуске команды она отображается правильно.

На рисунке результат запуска небольшого тестового проекта. Его код приведен ниже

Что касается GUI-приложений, то мой AExplorer отказался запускаться, ссылаясь на отсутствие поддержки в текущих версиях.

Тем не менее, «полноценные» консольные приложения работают без особых проблем.

Итоги

Не смотря на очевидные недоработки в запуске оконных приложений, на сегодняшний день уже возможно запускать консольные java-приложения. Они работают без каких-либо проблем, если не используют каких-либо дополнительных нативных библиотек. В таком случае необходимо сначала собрать библиотеку на устройстве, а уже потом запускать jar-архив. Тем не менее, java installer на сегодняшний день вполне жизнеспособный проект.

Источник

Запускаем консольные Java приложения на Android

Речь пойдёт о проекте-утилитке, который может пригодиться всякому кто изучает Java и не всегда имеет под рукой ПК для просмотра работы примера кода в полевых условиях (как-то — в метро, маршрутке, кафешке и т.д.).

Необходимость создать сие поделище возникла когда я готовился к OCJP-сертификации. После успешного прохождения оной, решил предоставить плоды своих задумок на обозрение уважаемым участникам хабрасообщества.

Ноутбука у меня нет, а запускать примеры кода на смартфоне, сидя на кухне за чашечкой чая, удобно.

Так уж повелось, что бо́льшая часть примеров для обучения обычно приводится именно в формате консольных программ. Замечательный инструмент AIDE позволяет собирать Android-приложение на основе Eclipse-проектов. Возможность, увы, недостаточная для запуска консольных примеров методом копипасты.

Дело за малым — перенаправляем потоки ввода/вывода в UI контролы:

Консольная программа стартует в отдельном потоке из обработчика activity onResume() :

Здесь же можно задавать аргументы командной строки — старый добрый args . Пример — запуск BankTellerSimulation на 10 секунд:

Поддерживается работа нескольких потоков ( SimpleThreadsTest ):

HorseRace и BankTellerSimulation — примеры более сложных многопоточных приложений (взяты из книги Thinking in Java, 4th Ed by Bruce Eckel).

Ошибки времени выполнения

Напоследок, для полноты возможностей, был добавлен консольный ввод. Пока что мои познания в области пользовательского интерфейса Android не велики. Кое-как впихнуть EditText удалось, но результат не идеален 🙂

Приглашение ввода строки ( ReadingInputTest ):

Функции меню

Exit выключает процесс через System.exit(0) .

Программа «одноразовая». Повторных перезапусков нет (не хотелось возиться с очисткой значений статических полей).

Что делает Clear — большой секрет.

Что не работает

• assert ‘ы Java. Т.е. оператор

исключение java.lang.AssertionError не кинет. Не путать с assert’ами JUnit — с ними всё в порядке!)
• Класс Console .
• Поле ввода не всегда подхватывает фокус.

Файлы проекта

Исходники можно забрать с GitHub, либо скачать zip-архив с проектами для Android Studio и Eclipse.

Источник

Android runs java programs

Краткое описание:
Работа с java

##О приложении
Этот проект создан для изучения и создания Java приложений на Android.
Вы можете создать и запустить Ява-приложение с JDK 1.7.

(НЕт оффициальной поддержки) Создайте apk-файл (поддержка только armeabi-v7a, x86, x86_64)

## Туториалы(Советы по использованию)
1. Настройте систему https://youtu.be/FZtSbgq8ZN0
2. Создайте файл при помощи библиотеки https://youtu.be/fUFqR8ZlChg
3. Создайте Android приложение https://youtu.be/euZilR8-EhA

##Внимание
Это бета версия,которая будет часто обновляться.

## Todo(. Оставлено по английски,иначе будет утрачен смысл.
1. Java compiler JDK 1.7 ✔
2. Java editor ✔
3. Java auto complete code ✔ (But not working perfect)
4. Java debugger (jdb).
5. Run java file, class file ✔
6. Build java library ✔
7. Support VCS
8. Decompile class, jar
9. Java code formatter (Google Java code formatter) ✔
10. Build Android app. ✔
11. XML auto complete
12. Layout builder for Android

Читайте также:  Загрузить firefox для андроид

## Что содержит проект?
1. Javac — Java compiler
2. Aapt — Android asset package tool
3. Dx — Dex for dalvik vm
4. Zip Signer
5. Apk сборщик

Это приложение бесплатно, потому что я хочу помочь людям изучать Java. Я работаю для людей. Если вы хотите поддержать проект нажмите на кнопку Донат в приложении.

## Overview
This project is develop to help the community learn java on android.
You can build and run Java file with JDK 1.7.

(No official support) Build apk file (only support armeabi-v7a, x86, x86_64)

##Attention
Because this is beta version so I will update very often.

## Todo
1. Java compiler JDK 1.7 ✔
2. Java editor ✔
3. Java auto complete code ✔ (But not working perfect)
4. Java debugger (jdb).
5. Run java file, class file ✔
6. Build java library ✔
7. Support VCS
8. Decompile class, jar
9. Java code formatter (Google Java code formatter) ✔
10. Build Android app. ✔
11. XML auto complete
12. Layout builder for Android

## What does tools the project include?
1. Javac — Java compiler
2. Aapt — Android asset package tool
3. Dx — Dex for dalvik vm
4. Zip Signer
5. Apk builder

## Contribute
I would absolutely love every possible kind of contributions. If you
have a questions, ideas, need help or want to propose a change just open
an issue. Pull request are greatly appreciated.

This app is free for everyone to learn Java. I work for the community. If you want to donate to the project, you can click donate button in the application.

Источник

7 лучших эмуляторов для запуска java игр на Андроид

Эмулятор Java на Android – специальная программа, с помощью которой запускаются мидлеты J2ME. Подобные приложения стали появляться практически сразу после выхода самой первой версии этой операционной системы. Изначально платформа Java предназначена для программ со сложным интерфейсом и графикой. Особенно популярны среди них мобильные игры. Помимо этого, существуют библиотеки для программирования — RxJava и RxJava2. Сейчас существует несколько популярных эмуляторов для Android.

Java J2ME Runner

Этот эмулятор стал одним из первых, обеспечивших работу мидлетов. Успешным он стал за счет модульности. Разработчики реализовали все его базовые функции с помощью плагинов. В этой форме настройки графики, управление, другие важные параметры. Добавлять сторонние плагины нельзя, можно только отключать или включать те, что были предустановлены изначально.

Эта программа совместима со многими играми, популярными среди пользователей. Существует сложность, так как файлы, имеющие расширение JAR предварительно приходится конвертировать в APK.

Пользователи отмечают, что некачественно реализована поддержка трехмерных игр. Более того, симулятор не работает с операционной системой Android 7.0 и выше, а также с форматом Full HD.

Внешне интерфейс выглядит устаревшим, на современных смартфонах часто появляются артефакты. Однако многие все равно его используют, особенно когда загрузить другие симулятора не удается. Он остается востребованным среди пользователей коммуникаторов и нетбуков.

Как использовать?

Чтобы начать ею пользоваться, требуется установить скачать и установить симулятор. В файловом менеджере смартфона его можно будет узнать по расширению APK. Софт, поддерживавший Java, который был загружен ранее, не потребуется, так как Runner его не увидит. Поэтому придется вручную скачивать все необходимые программы.

Когда для Java-программ потребуется софт для закачки, Runner и пригодится. Он как раз предназначен, чтобы загружать и устанавливать выбранные приложения.

Установить загрузчик на мобильное устройство можно, загрузив установочный файл с компьютера. Для этого рекомендуется действовать по следующему алгоритму:

  1. Перенести эмулятор из памяти ПК на флешку, находящуюся в смартфоне.
  2. Установить программу, поддерживающую сторонние приложения, или специальный файловый браузер.
  3. Отыскать файл, имеющий расширение APK, и запустить его.

Скачать Runner можно напрямую в смартфон из Интернета. В этом случае первый пункт опускается.

Запуск Java-программ

При запуске софта с использованием Runner пользователю предстоит действовать по следующему алгоритму.

  1. Найти необходимо приложение, которое требуется запустить.
  2. Начать его загрузку на смартфон.
  3. Дождаться появления системного запроса на подтверждение открытия файла с таким расширением.
  4. Из предложенного списка выбрать J2ME Runner в качестве программы, с помощью которой требуется начать загрузку.
  5. После завершения установки в главном меню появится иконка с приложением, которое теперь готово к работе.
Читайте также:  Андроид user dictionary что это

Используется эта функция не только для запуска мобильных игр, но и при необходимости писать софт для Android. Для этого рекомендуется использовать программу Native Development Kit. В ней присутствует полный набор инструментов для этого, возможность использовать коды на языках С++ и С, а также функции системы.

В работе J2ME Runner было немало проблем, поэтому со временем появился более продвинутый и хорошо проработанный софт.

J2ME Loader

Этот эмулятор был окончательно разработан к 2017 году. Качество его работы обеспечивают регулярные обновления, которые позволяют каждый раз предоставлять пользователям необходимые и актуальные функции. От большинства других эмуляторов этот софт отличается тем, что для него не требуется предварительная конвертация файлов с расширением JAD и JAR в формат APK.

Loader совместим со многими современными приложениями, которые выпускаются для Android. Например, с ним хорошо идут любые двухмерные игры или браузер Opera Mini. С трехмерными играми возникают проблемы. Большинство из них запустить не представляется возможным, исключение составляют только отдельные модифицированные сборки. Если брать трехмерные приложения для смартфонов Sony Ericsson, то с помощью Loader их не удастся запустить вовсе.

В программе удобный и интуитивно понятный интерфейс. Чтобы запустить Java-приложение, например, мобильную игру, пользователю требуется отыскать файл в формате JAR и скачать его на свой смартфон. Затем его следует открыть, используя программу Loader.

Альтернативный вариант – внести соответствующие изменения в настройки. Сделав это, удастся избавиться от навязчивых рекламных баннеров. Преимуществом является бесплатное распространение этого программного обеспечения, платить за дополнительные функции не приходится.

Единственный минус в том, что время от времени возникают баги, которые портят общее впечатление. Однако их постепенно исправляют с каждой новой версией обновления.

BlueStacks

Поклонникам игр на Android и специалистам по разработке нового софта будут интересны другие качественные программы-эмуляторы, выходящие на ПК.

BlueStacks совместим практически с любыми приложениями, которые можно скачать с Google Play. Дополнительно разработана система специальных наград, в которой очки дают за скаченные приложения. Пользователь обязательно должен в них постоянно играть. Заработанные баллы обмениваются на премиум-подписку, подарочные карты от Google Play, другие приятные подарки.

Не возникает сложностей при загрузке отдельных файлов. Фото, документы, любые сведения легко переносятся из «Проводника» других операционных систем обычным перетаскиванием. Есть возможность переходить из одного приложения в другое, если они уже запущены.

Nox App Player

Этот эмулятор назвают минималистичным. Существует возможность в настройках влиять на производительность, запускать root-доступ, объем ОЗУ.

Часть мобильных игр может запускаться с ошибками. Поэтому эмулятор используется преимущественно разработчиками. Софт интегрирован с Windows 10. Это позволяет легко устанавливать любые мессенджеры, продолжая общение с помощью эмулятора.

MEmu

Доступен для скачивания на русском языке. В отличие от предыдущего, он оптимально подходит для игр. Это заметно даже по устройству геймпада и раскладке клавиатуры. Эмулятор совместим с софтом, который устанавливаются через Google Play, также можно загружать приложения с расширением APK.

На MEmu «идут» даже тяжелые игры с хорошо проработанной графикой. Трудностей с производительностью устройства не появляется, может пострадать только качество картинки.

Загрузка аудио, фотографий, видео и картинок осуществляется через соответствующие папки.

Имеется каталог с перечнем всех приложений, но принципиальной функциональности эмулятору это не добавляет.

Koplayer

Эмулятор, как и предыдущие, распространяется на безвозмездной основе. Используется преимущественно для игр. Запускается даже на устройствах с низкой производительностью.

Например, когда другому софту для стабильного функционирования требуется минимум 4 гигабайта ОЗУ, то этому хватает в два раза меньше.

При установке автоматически все элементы отображаются на английском языке. Есть возможность в настройках поменять его на русский.

Отличительная особенность – возможность настраивать клавиатуру отдельно для каждой игры. Помимо этого, доступно управление мышкой и даже геймпадом.

Genymotion

С помощью этого приложения можно эмулировать сразу несколько устройств на Android с принципиально разными характеристиками. Перед загрузкой требуется завести аккаунт (платить за него не придется). При авторизации следует это указать.

Для обывателей не самый удобный вариант, так как часть софта из Google Play не запускается, отсутствует русский язык. Но для программистов полезный софт, позволяющий проводить разнообразные тесты. Например, исследовать, как поведет себя конкретное приложение при отключенном GPS или с другой ориентацией экрана.

Новые эмуляторы, облегчающие жизнь пользователям Android, выходят регулярно. Совершенствуется работа существующих приложений, благодаря выпуску постоянных обновлений. Главное, не забывать их загружать.

Средняя оценка 4 / 5. Поставлено оценок: 8

Еще никто не поставил оценку.

Нам очень жаль, что Вы разочарованы содержанием этой страницы!

Источник

Оцените статью