Как запустить на телефоне jar файл
Papa-jobs.ru

Ремонт телефонов

Как запустить на телефоне jar файл

Пишем, собираем и запускаем HelloWorld для Android в блокноте. Java 8 и Android N

Два с половиной года назад я опубликовал статью Пишем, собираем и запускаем HelloWorld для Android в блокноте. Она стала пользоваться огромной популярностью и набрала около 80 000 просмотров. С появлением новых инструментов, таких как Jack ToolChain, возникла необходимость переиздания и обновления статьи.

Когда я начал изучать Android, захотелось полностью написать и скомпилировать Android-приложение вручную — без использования IDE. Однако эта задача оказалась непростой и заняла у меня довольно много времени. Но как оказалось — такой подход принёс большую пользу и прояснил многие тонкости, которые скрывают IDE.

Используя только блокнот, мы напишем совсем маленькое учебное Android-приложение. А затем скомпилируем его, соберём и запустим на устройстве — и всё через командную строку. Заинтересовало? Тогда прошу.

Вступление

Я был поражён, насколько сложным и запутанным является шаблонное приложение в Android Studio. Оно просто нагромождено ресурсами. И в меньшей степени — кодом и скриптами. Хотя всё что оно должно делать — это выводить на экран HelloWorld! Кроме того, в книгах и руководствах, которые я просмотрел, объясняется, как с помощью диалоговых окон создать IDEA-шный или эклипсовый HelloWorld — и от него уже идёт дальнейшее повествование. А что происходит «под капотом» — остаётся только гадать.

Мы создадим свой шаблонный проект, который идеально использовать для учебных целей. Там не будет ничего лишнего, только всё самое необходимое. А потом детально разберём, как его собрать и запустить на вашем Android-устройстве. В конце статьи будет ссылка на скачивание архива с итоговым проектом — если возникнут какие-то вопросы — можете свериться с ним.

Таким образом, вы будете на 100% знать и понимать состав вашего проекта и процесс его сборки. Хотя этот тестовый проект предназначен для обучения, при небольшой доработке его можно будет использовать как прочный фундамент для ваших реальных проектов.

Подготовка

Для начала нам нужно скачать и установить инструменты командной строки (command line tools). Ссылка на их скачивание находится внизу страницы, посвящённой Android Studio (https://developer.android.com/studio/index.html).

Android SDK 24 это как раз Android N (Nougat / 7). Принимаем условия, скачиваем установщик, запускаем его. Оставим всё по умолчанию. Он установится в директорию вида C:UserskcirayAppDataLocalAndroidandroid-sdk. Запомните этот путь, там будут находится наши основные инструменты.

Далее, запускаете SDK Manager (из папки android-sdk) и тоже устанавливаете набор по-умолчанию. Там есть всё необходимое, включая новый Jack-компилятор. Также вам понадобится JDK 8.

Главное требование перед прочтением этой статьи — кроме установленного софта вы должны уже уметь запускать на вашем девайсе тот Helloworld, который поставляется вместе с Eclipse или Android Studio. Т.е. у вас должен быть настроен драйвер usb, включена отладка по usb на вашем девайсе и т.д… Или же создан и настроен эмулятор. Это совсем элементарные вещи, и их рассмотрение выходит за рамки данной статьи — в сети достаточно информации. Кстати прочитать пару глав из книг тоже будет не лишним — хотя бы понимать, как устроен манифест, ресурсы, да и вообще основы языка Java. А в этой статье я опишу то, о чём книги молчат.

Написание проекта

Для начала, создайте некоторую папку, где будет ваш проект. Назовём её testapp. В ней создайте ещё 3 папки — bin, res и src.

Создайте в testapp пустой текстовый файл и измените его имя на AndroidManifest.xml.

Добавьте в него следующее:

Тут всё просто. Мы намерены сделать приложение с именем TestApp, которое при старте запускает класс MainActivity. Осталось только написать этот небольшой класс — и приложение готово. Если нужно — отредактируйте в теге uses-sdk свойство android:targetSdkVersion — поставьте ту версию, которая у вас.

Далее — создадим простейший ресурс — строку Hello test app. Вообще-то мы могли обойтись и без ресурса, вставив эту строку прямо в Java код. Но некоторые шаги сборки работают с ресурсами, и чтобы увидеть интересные моменты — мы всё-таки поработаем с ними.

Давайте создадим в папке res папку values. Все ресурсы следует разбивать по папкам. Далее — в ней создадим пустой файл strings.xml, а в нём напишем:

Вот и все ресурсы, нам необходимые. Просто, не так ли? Далее создадим внутри src папку com, в ней папку example, потом ещё ниже по иерархии папку testapp — а там уже наш класс MainActivity.java. Добавим туда код:

Это простейшая Activity, которая содержит одну кнопку на весь экран. При нажатии на эту кнопку вызывается диалоговое окно, которое показывает строку из ресурсов. Обратите внимание на лямбду (конструкция v -> ). Jack ToolChain позволяет нам использовать многие возможности Java 8 под андроидом. Более подробно можете почитать на developer.android.com и source.android.com.

Структура каталогов должна получится такая

И это собственно всё, что нам было нужно для простейшего проекта. Для сравнения —

Собственно, автоматизация через gradle, работа с git и IDE — вещи очень важные, однако на этапе изучения Android мне бы очень хотелось от них абстрагироваться.

Сборка

Теперь же подходим к самому важному и сложному этапу. Мы будем много работать с командной строкой, поэтому рекомендую вам все команды, данные здесь, записывать в один файл и назвать его Compile.bat. В конце файла после команд можете добавить pause, чтобы был виден результат и ошибки — если таковые возникнут.

Подготовка путей

Первое, что мы сделаем для удобства и краткости — создадим специальные переменные, в которых будем хранить пути. Для начала — определим наши основные директории. Вам нужно заменить пути к JDK и Android SDK на те, которые у вас.

Далее — пути непосредственно к программам. Я рекомендую вам просмотреть каталоги ваших SDK и убедится в том, что всё на месте. Также подкорректировать версии, которые присутствуют в путях.

Между прочим, в более старых версиях утилита aapt находилась в platform-tools — и я не исключаю что она иили другие могут слинять куда-нибудь ещё. Так что будьте внимательны. Если вы всё правильно сверите сейчас — то остальная часть статьи должна пройти гладко.

И ещё — в пару переменных забьём наши пакеты и классы. Если заходите их сменить — вам не придётся бегать по коду — все настройки вначале.

Подготовка к компиляции

Для начала спрошу — а вы никогда не задумывались, как работает загадочный класс R? Собственно меня он сперва смутил из-за его сверхъестественных возможностей. Как на этапе компиляции можно через поля класса обращаться к XML-файлам в других каталогах? Я предположил, что тут орудует прекомпилятор — так оно и оказалось.

Собственно, есть специальная утилита AAPT — она проходится по каталогам ваших ресурсов и создаёт тот самый R.java. Оказывается, всё очень даже просто — это просто класс, в составе которого другие статические вложенные классы с целочисленными константами. И всё! Он выглядит примерно так:

Теперь давайте создадим его у вас. Для этого используем следующие команды:

Давайте разберёмся, что к чему. AAPT — Android Asset Packaging Tool — буквально «упаковщик андроид-имущества». Его опции:

  • package — говорит, что нам нужно именно упаковать ресурсы (а не добавить или удалить)
  • -f — перезапись существующего R.java, если таковой имеется
  • -m — разместить R.java в надлежащих пакетах, а не в корне указанного в -J пути
  • -S — после этой опции мы указываем каталог с ресурсами
  • -J — после этой опции мы указываем куда сохранить получившийся R.java
  • -I — после этой опции мы указываем путь к подключаемой библиотеке — включаем android.jar

После его выполнения в каталоге src должен появится тот самый файл R.java. Проверьте.

Теперь в нашем проекте нет никакой магии и он полностью синтаксически корректен в рамках Java. А теперь самое интересное. Помните, как классические Java-программы компилируются через javac? Раньше он также входил в последовательность сборки Android-приложений. Мы брали наши исходники (*.java), получали из них байт-код JVM (*.class) и уже потом из него получали байт-код для Dalvic (*.dex). С появлением Jack ToolChain мы сократили нашу последовательность сборки на один шаг. Из исходников (*.java) мы сразу же получаем байт-код для Dalvic (*.dex).

Где же взять Джека? Он находится в папке build-tools в виде jack.jar и запускается как обычный Java-архив.

  • -jar — Стандартная опция для JVM, указывающая на то, что нужно запустить Java-архив. Не имеет никакого отношения к Джеку
  • –output-dex — Папка, в которую нужно поместить итоговый dex-файл. Пускай он будет в bin
  • -D jack.java.source.version=1.8 — «D» указывает на то, что мы задаём свойство. jack.java.source.version позволяет нам указать, что мы используем Java 8. Без неё лямбды не будут работать и будут ошибки. Полный список свойств можете посмотреть по команде %JAVAVM% -jar %JACK_JAR% –help-properties
  • [Список из *.java — файлов] — Ваши исходники. У нас всего 2 файла — R.java и MainActivity.java

Полный список опций для Джека можете посмотреть по команде %JAVAVM% -jar %JACK_JAR% –help

Убедитесь в том, что в папке bin находится наш classes.dex. Теперь осталось только упаковать его вместе с ресурсами в APK-файл. Сделаем это:

Здесь опции аналогичны тем, которые мы использовали при создании R.java:

  • package — говорит, что нам нужно именно упаковать ресурсы (а не добавить или удалить)
  • -f — перезапись существующего AndroidTest.unsigned.apk, если таковой имеется
  • -M — после этой опции мы указываем путь к файлу манифеста
  • -S — после этой опции мы указываем каталог с ресурсами
  • -I — после этой опции мы указываем путь к подключаемой библиотеке — включаем android.jar
  • -F — после этой опции мы указываем куда сохранить получившийся AndroidTest.unsigned.apk
  • последний аргумент — путь к папке с dex — файлами

В папке bin теперь должен появится AndroidTest.unsigned.apk. И мы назвали его не просто так! У него нет цифровой подписи. Андроид запрещает устанавливать и запускать приложения без подписи. Но создать её не так-то трудно, как может показаться на первый взгляд

Собственно, эти строчки запускают 2 Java-утилиты, которые не имеют никакого отношения к Android SDK — но они необходимы. Первая создаёт файл AndroidTest.keystore (проверьте его наличие), а вторая — этот файл соединяет с AndroidTest.unsigned.apk. Получается файл AndroidTest.signed.apk. Вот такой дикий крафт файлов. Но однажды создав bat-скрипт запускайте его — и он будет делать всё это в автоматическом режиме.

Я думаю, не стоит тратить время на детальный разбор опций этих утилит в пределах данной статьи. Просто нужно уловить суть — они берут AndroidTest.unsigned.apk, подписывают его файлом AndroidTest.keystore и сохраняют в AndroidTest.signed.apk. Если есть желание, можете почитать в документации.

У вас, скорее всего, будет предупреждение “Warning: No -tsa or -tsacert is provided and this jar. “, но не обращайте внимание.

Запуск

Теперь, когда мы наконец собрали наш apk-файл — можем его запустить. Подключите по usb ваше устройство, или же запустите эмулятор. А затем выполните

Собственно, первая строчка удаляет программку, если она уже там есть. Для повторных запусков пригодится. Вторая — устанавливает APK на ваш девайс или эмулятор. Третья же — запускает. Давайте более подробно разберём её аргументы:

  • shell — мы хотим выполнить некоторые команды на нашем девайсе
  • am — используем для выполнения команд activity manager
  • start — мы хотим запустить некоторое Activity
  • имя пакета и полное имя класса (включая пакет), которые мы стартуем
Читать еще:  Как привязать номер телефона

Внимание — во время установки на устройстве может появится диалоговое окно с подтверждением. Если вовремя его не одобрить, то установка произойдёт с ошибкой [INSTALL_FAILED_USER_RESTRICTED]. Также у вас может возникнуть вопрос — зачем делать uninstall/install вместо install -r. Я сделал так для чистоты эксперимента. Скрипт полностью удаляет все продукты своей деятельности и создаёт их с нуля при каждом запуске. Даже ключи. Вы можете использовать install -r, но тогда следует убрать код, который отвечает за пересоздание ключей. Иначе вы столкнётесь с ошибкой [INSTALL_FAILED_UPDATE_INCOMPATIBLE].

Если всё прошло удачно, вы увидите что-то вроде этого:

Заключение

После сборки всех файлов дерево каталогов должно быть примерно таким.

Теперь вы можете наглядно увидеть и понять, как происходит сборка андроид-приложения на более низком уровне. Когда будете использовать IDE — если сборка вдруг пойдёт не так (а такое часто бывает) — сможете вырулить ситуацию как надо. Также обратите внимание на то, что итоговый apk-файл занимает всего около 4 килобайт.

Выкладываю архив проекта. Обратите внимание, что я добавил туда ещё один маленький скрипт — Clear.bat. Он удаляет все созданные при сборке файлы. И поставил его запуск на начало Compile.bat. Также добавил комментарии с помощью Rem — по шагам.

Таким образом, скрипт производит полную очистку и пересборку проекта, включая подпись, а также удаление его на устройстве, установку и запуск.

Мои параметры

ОC: Windows 10 Pro x64
JDK: 1.8.0_73
Android SDK: 24

Модель: Meizu MX4
Android: 5.1
ОС: Flyme 5.6.8.9 beta

Как запустить на телефоне jar файл

Закачали девушке на телефон Samsung свежий JIMM (2 файла jimm2009.jad и jimm2009.jar). JAD файл сам по себе запускаться не захотел, а при попытке запустить его через JAR файл высветилось сообщение — “JAR не найден”. Начал читать, разобрался и сейчас научу вас. Для начала немного теории.

JAR — это файл, который является исполняемым файлом программы, написанной на языке JAVA. По сути – это ZIP-архив, в котором находятся все файлы (картинки мелодии, программный код и т.д.) из которых состоит программа.
JAD-файл — это короткий текстовый файл, в котором хранится информация о JAR-файле программы (прямой адрес расположения JAR-файла в Интернете, размер этого файла, имя разработчика программы, адрес сайта разработчика и т.п.)

При загрузке в телефон JAD-файла, из него извлекается информация о местоположении (адрес в сети Итернет) JAR-файла и его длине, эти данные передаются на встроенный в телефон загрузчик приложений, который, собственно, производит загрузку JAR-файла с последующей его установкой в телефон.
Некоторые модели телефонов не поддерживают загрузку непосредственно JAR-файлов. Для загрузки приложения таким телефонам требуются только JAD-файл. Используя информацию из этого файла-описания телефон самостоятельно загружает исполняемый (JAR) файл программы. К таким телефонам, например, относится большинство телефонов Samsung и Siemens.

Любой файл JAD можно открыть блокнотом. Содержимое на снимке внизу.

В моём случае файл jimm2009.jad был повреждён. В нем была неверная ссылка на jimm2009.jar. Именно поэтому появлялось назойливое сообщение об ошибке.

Простая программка JadMaker поможет вам создать jad файл. Вам нужно переместить jar-файл в окошко програмы Jad Maker. Либо при запущенной программе щелкнуть на jar файле правой кнопокой мыши и выбрать меню “Make Jad”. Jad -файл будет создан в папке, где расположен файл *.jar. А его уже нужно будет закачать на мобильный телефон. Внимание! На телефон нужно закачивать оба файла (jar и jad) и запускать jad.

Если на Вашем компьютере уже есть загруженный JAR-файл, но нет JAD, то быстро создать JAD-файл можно с помощью программы JADGen, скачать ее можно ЗДЕСЬ (227 кб). Просто перетащите JAR-файл на иконку с программой JADGen.exe — в папке с Вашим JAR-файлом появится JAD-файл.

Пересоздав файл с помощью одной из утилит JADMaker и JADGen, все начало чудесно работать.

Комментарии

Прошу прощения, что вмешался… У меня похожая ситуация. Можно обсудить.

Комментарий от Кубланов [ 14 января, 2010, 23:18 ]

Спасибо огромное! Вы мне очень сильно помогли!

Комментарий от Lamer [ 19 января, 2010, 01:17 ]

Большое человеческое спасибо.

Комментарий от Натали [ 19 января, 2010, 16:50 ]

Молодца. Огромное спасибо!

Комментарий от Дима [ 22 июня, 2010, 07:41 ]

Закачала я на Samsung jar файл(книгу), памяти убавилось в java приложении, а вот самого файла нет. Где же его найти или как удалить? Помогите!

Комментарий от Марина [ 1 октября, 2010, 00:01 ]
Комментарий от qwerty [ 19 октября, 2010, 23:28 ]

Хорошее решение, но ни один способ не помог, Samsung D780 Duos, зря я его купил. Перекидывал через карту памяти, возможно через провод или блютуз поможет, но таких аксессуаров у меня к сожалению нет.

Комментарий от Алексей [ 6 ноября, 2010, 23:56 ]

СПАСИБО. Все получилось!

Комментарий от Андрей [ 17 ноября, 2010, 00:06 ]

хотя не совсем ВСЁ!? на некоторые файлы ругается:»загруженный JAR неверный»…

Комментарий от Андрей [ 17 ноября, 2010, 00:22 ]

Отправь мне в майл ия буду тебе блогодарень

Комментарий от DIMA [ 24 декабря, 2010, 20:18 ]

Спасибо огромнейшеееее=)
На мой самсунг теперь все приложеия и игры идут !

Комментарий от Timur [ 25 февраля, 2011, 15:50 ]

Я так и всё сделал как вы покозали переместил jar файл на значок программы формат поменялся на jad скинул на телефон игра стала весить 1 кб я начал устанавливать на телефон но пишит java слишком больших размеров данных !Что я неправильно сделал подскажите .

Комментарий от Денис [ 25 марта, 2011, 00:08 ]

Всё Работает, супер, спасибо! =)

Комментарий от Виталий [ 14 мая, 2011, 15:46 ]
Комментарий от Леха [ 13 июля, 2011, 01:16 ]

На телефоне SoniErixon Xperia X10 не работает встроенная Opera 4,2; 5,0.Cкачал Mini opera 6,но при загрузке высвечивается:»Файл JAR не обнаружен». Что делать?

Комментарий от Геннадий [ 18 сентября, 2011, 16:22 ]

У меня тоже. Файл JAR большого размера пишет тел!

Комментарий от Фильтры [ 18 ноября, 2011, 22:42 ]

почему?? я после этой процедуры захожу в файл jad мне пишут что файл jar не доступен!! ;(

Комментарий от Макс [ 30 ноября, 2011, 17:00 ]

помогите пожалуйста качаю игру jar на телефон и не идет превышенный
размер че делать.

Комментарий от kthf [ 28 декабря, 2011, 19:42 ]

не могу разобраться, где взять jar

Комментарий от m508xe [ 1 февраля, 2012, 19:26 ]

воооооооот такеннное спасибо.

Комментарий от Kolt [ 4 февраля, 2012, 21:21 ]
Комментарий от Namized [ 14 июля, 2012, 20:11 ]

Спасибо автору за материал, помогло. Пытался ставить на дуос переводчик с английского(мобайллексикон), а в ответ файл jar слишком большой и нифига. С помощью JADGen сделал jad файлик бросил его вместе с jar файлом в телефон и переводчик заработал.

Комментарий от yuriy [ 15 июля, 2012, 14:56 ]

Подскажите такой вопрос! у меня galaxy s2 gt-i 9100. при скачивании и установке игр — конкретно с этим случаем я столкнулся при скачивании ФИФА 2012 у меня при установке игры появляется черный экран и потом и потом на основной рабочий стол все вылетает. в комментах на сайте выяснил что на некоторых самсунгах есть такая проблема с JAD JAR файлами и надо установить какую то програмку … очень нужна помощь — что делать

Комментарий от Дмитрий [ 12 ноября, 2012, 13:28 ]

[quote]Файл JAR большого размера пишет тел![/quote]

[quote]jar на телефон и не идет превышенный
размер че делать. [/quote]

1.Наберите в режиме ожидания: *#52828378#
2.В списке найдите строку OTA TEST
3.В ней вместо 500 мб впишите 1024. Сохраните.
4.Учтите, что при выключении телефона эта настройка опять установится по умолчанию — 500 мб.

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

Эмулятор Java на Andro >

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. После завершения установки в главном меню появится иконка с приложением, которое теперь готово к работе.

Используется эта функция не только для запуска мобильных игр, но и при необходимости писать софт для 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, выходят регулярно. Совершенствуется работа существующих приложений, благодаря выпуску постоянных обновлений. Главное, не забывать их загружать.

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

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

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

Пишем, собираем и запускаем HelloWorld для Android в блокноте. Java 8 и Android N

Два с половиной года назад я опубликовал статью Пишем, собираем и запускаем HelloWorld для Android в блокноте. Она стала пользоваться огромной популярностью и набрала около 80 000 просмотров. С появлением новых инструментов, таких как Jack ToolChain, возникла необходимость переиздания и обновления статьи.

Когда я начал изучать Android, захотелось полностью написать и скомпилировать Android-приложение вручную — без использования IDE. Однако эта задача оказалась непростой и заняла у меня довольно много времени. Но как оказалось — такой подход принёс большую пользу и прояснил многие тонкости, которые скрывают IDE.

Используя только блокнот, мы напишем совсем маленькое учебное Android-приложение. А затем скомпилируем его, соберём и запустим на устройстве — и всё через командную строку. Заинтересовало? Тогда прошу.

Вступление

Я был поражён, насколько сложным и запутанным является шаблонное приложение в Android Studio. Оно просто нагромождено ресурсами. И в меньшей степени — кодом и скриптами. Хотя всё что оно должно делать — это выводить на экран HelloWorld! Кроме того, в книгах и руководствах, которые я просмотрел, объясняется, как с помощью диалоговых окон создать IDEA-шный или эклипсовый HelloWorld — и от него уже идёт дальнейшее повествование. А что происходит «под капотом» — остаётся только гадать.

Мы создадим свой шаблонный проект, который идеально использовать для учебных целей. Там не будет ничего лишнего, только всё самое необходимое. А потом детально разберём, как его собрать и запустить на вашем Android-устройстве. В конце статьи будет ссылка на скачивание архива с итоговым проектом — если возникнут какие-то вопросы — можете свериться с ним.

Таким образом, вы будете на 100% знать и понимать состав вашего проекта и процесс его сборки. Хотя этот тестовый проект предназначен для обучения, при небольшой доработке его можно будет использовать как прочный фундамент для ваших реальных проектов.

Подготовка

Для начала нам нужно скачать и установить инструменты командной строки (command line tools). Ссылка на их скачивание находится внизу страницы, посвящённой Android Studio (https://developer.android.com/studio/index.html).

Android SDK 24 это как раз Android N (Nougat / 7). Принимаем условия, скачиваем установщик, запускаем его. Оставим всё по умолчанию. Он установится в директорию вида C:UserskcirayAppDataLocalAndroidandroid-sdk. Запомните этот путь, там будут находится наши основные инструменты.

Далее, запускаете SDK Manager (из папки android-sdk) и тоже устанавливаете набор по-умолчанию. Там есть всё необходимое, включая новый Jack-компилятор. Также вам понадобится JDK 8.

Главное требование перед прочтением этой статьи — кроме установленного софта вы должны уже уметь запускать на вашем девайсе тот Helloworld, который поставляется вместе с Eclipse или Android Studio. Т.е. у вас должен быть настроен драйвер usb, включена отладка по usb на вашем девайсе и т.д… Или же создан и настроен эмулятор. Это совсем элементарные вещи, и их рассмотрение выходит за рамки данной статьи — в сети достаточно информации. Кстати прочитать пару глав из книг тоже будет не лишним — хотя бы понимать, как устроен манифест, ресурсы, да и вообще основы языка Java. А в этой статье я опишу то, о чём книги молчат.

Написание проекта

Для начала, создайте некоторую папку, где будет ваш проект. Назовём её testapp. В ней создайте ещё 3 папки — bin, res и src.

Создайте в testapp пустой текстовый файл и измените его имя на AndroidManifest.xml.

Добавьте в него следующее:

Тут всё просто. Мы намерены сделать приложение с именем TestApp, которое при старте запускает класс MainActivity. Осталось только написать этот небольшой класс — и приложение готово. Если нужно — отредактируйте в теге uses-sdk свойство android:targetSdkVersion — поставьте ту версию, которая у вас.

Далее — создадим простейший ресурс — строку Hello test app. Вообще-то мы могли обойтись и без ресурса, вставив эту строку прямо в Java код. Но некоторые шаги сборки работают с ресурсами, и чтобы увидеть интересные моменты — мы всё-таки поработаем с ними.

Давайте создадим в папке res папку values. Все ресурсы следует разбивать по папкам. Далее — в ней создадим пустой файл strings.xml, а в нём напишем:

Вот и все ресурсы, нам необходимые. Просто, не так ли? Далее создадим внутри src папку com, в ней папку example, потом ещё ниже по иерархии папку testapp — а там уже наш класс MainActivity.java. Добавим туда код:

Это простейшая Activity, которая содержит одну кнопку на весь экран. При нажатии на эту кнопку вызывается диалоговое окно, которое показывает строку из ресурсов. Обратите внимание на лямбду (конструкция v -> ). Jack ToolChain позволяет нам использовать многие возможности Java 8 под андроидом. Более подробно можете почитать на developer.android.com и source.android.com.

Структура каталогов должна получится такая

И это собственно всё, что нам было нужно для простейшего проекта. Для сравнения —

Собственно, автоматизация через gradle, работа с git и IDE — вещи очень важные, однако на этапе изучения Android мне бы очень хотелось от них абстрагироваться.

Сборка

Теперь же подходим к самому важному и сложному этапу. Мы будем много работать с командной строкой, поэтому рекомендую вам все команды, данные здесь, записывать в один файл и назвать его Compile.bat. В конце файла после команд можете добавить pause, чтобы был виден результат и ошибки — если таковые возникнут.

Подготовка путей

Первое, что мы сделаем для удобства и краткости — создадим специальные переменные, в которых будем хранить пути. Для начала — определим наши основные директории. Вам нужно заменить пути к JDK и Android SDK на те, которые у вас.

Далее — пути непосредственно к программам. Я рекомендую вам просмотреть каталоги ваших SDK и убедится в том, что всё на месте. Также подкорректировать версии, которые присутствуют в путях.

Между прочим, в более старых версиях утилита aapt находилась в platform-tools — и я не исключаю что она иили другие могут слинять куда-нибудь ещё. Так что будьте внимательны. Если вы всё правильно сверите сейчас — то остальная часть статьи должна пройти гладко.

И ещё — в пару переменных забьём наши пакеты и классы. Если заходите их сменить — вам не придётся бегать по коду — все настройки вначале.

Подготовка к компиляции

Для начала спрошу — а вы никогда не задумывались, как работает загадочный класс R? Собственно меня он сперва смутил из-за его сверхъестественных возможностей. Как на этапе компиляции можно через поля класса обращаться к XML-файлам в других каталогах? Я предположил, что тут орудует прекомпилятор — так оно и оказалось.

Собственно, есть специальная утилита AAPT — она проходится по каталогам ваших ресурсов и создаёт тот самый R.java. Оказывается, всё очень даже просто — это просто класс, в составе которого другие статические вложенные классы с целочисленными константами. И всё! Он выглядит примерно так:

Теперь давайте создадим его у вас. Для этого используем следующие команды:

Давайте разберёмся, что к чему. AAPT — Android Asset Packaging Tool — буквально «упаковщик андроид-имущества». Его опции:

  • package — говорит, что нам нужно именно упаковать ресурсы (а не добавить или удалить)
  • -f — перезапись существующего R.java, если таковой имеется
  • -m — разместить R.java в надлежащих пакетах, а не в корне указанного в -J пути
  • -S — после этой опции мы указываем каталог с ресурсами
  • -J — после этой опции мы указываем куда сохранить получившийся R.java
  • -I — после этой опции мы указываем путь к подключаемой библиотеке — включаем android.jar

После его выполнения в каталоге src должен появится тот самый файл R.java. Проверьте.

Теперь в нашем проекте нет никакой магии и он полностью синтаксически корректен в рамках Java. А теперь самое интересное. Помните, как классические Java-программы компилируются через javac? Раньше он также входил в последовательность сборки Android-приложений. Мы брали наши исходники (*.java), получали из них байт-код JVM (*.class) и уже потом из него получали байт-код для Dalvic (*.dex). С появлением Jack ToolChain мы сократили нашу последовательность сборки на один шаг. Из исходников (*.java) мы сразу же получаем байт-код для Dalvic (*.dex).

Где же взять Джека? Он находится в папке build-tools в виде jack.jar и запускается как обычный Java-архив.

  • -jar — Стандартная опция для JVM, указывающая на то, что нужно запустить Java-архив. Не имеет никакого отношения к Джеку
  • –output-dex — Папка, в которую нужно поместить итоговый dex-файл. Пускай он будет в bin
  • -D jack.java.source.version=1.8 — «D» указывает на то, что мы задаём свойство. jack.java.source.version позволяет нам указать, что мы используем Java 8. Без неё лямбды не будут работать и будут ошибки. Полный список свойств можете посмотреть по команде %JAVAVM% -jar %JACK_JAR% –help-properties
  • [Список из *.java — файлов] — Ваши исходники. У нас всего 2 файла — R.java и MainActivity.java

Полный список опций для Джека можете посмотреть по команде %JAVAVM% -jar %JACK_JAR% –help

Убедитесь в том, что в папке bin находится наш classes.dex. Теперь осталось только упаковать его вместе с ресурсами в APK-файл. Сделаем это:

Здесь опции аналогичны тем, которые мы использовали при создании R.java:

  • package — говорит, что нам нужно именно упаковать ресурсы (а не добавить или удалить)
  • -f — перезапись существующего AndroidTest.unsigned.apk, если таковой имеется
  • -M — после этой опции мы указываем путь к файлу манифеста
  • -S — после этой опции мы указываем каталог с ресурсами
  • -I — после этой опции мы указываем путь к подключаемой библиотеке — включаем android.jar
  • -F — после этой опции мы указываем куда сохранить получившийся AndroidTest.unsigned.apk
  • последний аргумент — путь к папке с dex — файлами

В папке bin теперь должен появится AndroidTest.unsigned.apk. И мы назвали его не просто так! У него нет цифровой подписи. Андроид запрещает устанавливать и запускать приложения без подписи. Но создать её не так-то трудно, как может показаться на первый взгляд

Собственно, эти строчки запускают 2 Java-утилиты, которые не имеют никакого отношения к Android SDK — но они необходимы. Первая создаёт файл AndroidTest.keystore (проверьте его наличие), а вторая — этот файл соединяет с AndroidTest.unsigned.apk. Получается файл AndroidTest.signed.apk. Вот такой дикий крафт файлов. Но однажды создав bat-скрипт запускайте его — и он будет делать всё это в автоматическом режиме.

Я думаю, не стоит тратить время на детальный разбор опций этих утилит в пределах данной статьи. Просто нужно уловить суть — они берут AndroidTest.unsigned.apk, подписывают его файлом AndroidTest.keystore и сохраняют в AndroidTest.signed.apk. Если есть желание, можете почитать в документации.

У вас, скорее всего, будет предупреждение “Warning: No -tsa or -tsacert is provided and this jar. “, но не обращайте внимание.

Запуск

Теперь, когда мы наконец собрали наш apk-файл — можем его запустить. Подключите по usb ваше устройство, или же запустите эмулятор. А затем выполните

Собственно, первая строчка удаляет программку, если она уже там есть. Для повторных запусков пригодится. Вторая — устанавливает APK на ваш девайс или эмулятор. Третья же — запускает. Давайте более подробно разберём её аргументы:

  • shell — мы хотим выполнить некоторые команды на нашем девайсе
  • am — используем для выполнения команд activity manager
  • start — мы хотим запустить некоторое Activity
  • имя пакета и полное имя класса (включая пакет), которые мы стартуем

Внимание — во время установки на устройстве может появится диалоговое окно с подтверждением. Если вовремя его не одобрить, то установка произойдёт с ошибкой [INSTALL_FAILED_USER_RESTRICTED]. Также у вас может возникнуть вопрос — зачем делать uninstall/install вместо install -r. Я сделал так для чистоты эксперимента. Скрипт полностью удаляет все продукты своей деятельности и создаёт их с нуля при каждом запуске. Даже ключи. Вы можете использовать install -r, но тогда следует убрать код, который отвечает за пересоздание ключей. Иначе вы столкнётесь с ошибкой [INSTALL_FAILED_UPDATE_INCOMPATIBLE].

Если всё прошло удачно, вы увидите что-то вроде этого:

Заключение

После сборки всех файлов дерево каталогов должно быть примерно таким.

Теперь вы можете наглядно увидеть и понять, как происходит сборка андроид-приложения на более низком уровне. Когда будете использовать IDE — если сборка вдруг пойдёт не так (а такое часто бывает) — сможете вырулить ситуацию как надо. Также обратите внимание на то, что итоговый apk-файл занимает всего около 4 килобайт.

Выкладываю архив проекта. Обратите внимание, что я добавил туда ещё один маленький скрипт — Clear.bat. Он удаляет все созданные при сборке файлы. И поставил его запуск на начало Compile.bat. Также добавил комментарии с помощью Rem — по шагам.

Таким образом, скрипт производит полную очистку и пересборку проекта, включая подпись, а также удаление его на устройстве, установку и запуск.

Мои параметры

ОC: Windows 10 Pro x64
JDK: 1.8.0_73
Android SDK: 24

Модель: Meizu MX4
Android: 5.1
ОС: Flyme 5.6.8.9 beta

Как запустить на телефоне jar файл

Закачали девушке на телефон Samsung свежий JIMM (2 файла jimm2009.jad и jimm2009.jar). JAD файл сам по себе запускаться не захотел, а при попытке запустить его через JAR файл высветилось сообщение — “JAR не найден”. Начал читать, разобрался и сейчас научу вас. Для начала немного теории.

JAR — это файл, который является исполняемым файлом программы, написанной на языке JAVA. По сути – это ZIP-архив, в котором находятся все файлы (картинки мелодии, программный код и т.д.) из которых состоит программа.
JAD-файл — это короткий текстовый файл, в котором хранится информация о JAR-файле программы (прямой адрес расположения JAR-файла в Интернете, размер этого файла, имя разработчика программы, адрес сайта разработчика и т.п.)

При загрузке в телефон JAD-файла, из него извлекается информация о местоположении (адрес в сети Итернет) JAR-файла и его длине, эти данные передаются на встроенный в телефон загрузчик приложений, который, собственно, производит загрузку JAR-файла с последующей его установкой в телефон.
Некоторые модели телефонов не поддерживают загрузку непосредственно JAR-файлов. Для загрузки приложения таким телефонам требуются только JAD-файл. Используя информацию из этого файла-описания телефон самостоятельно загружает исполняемый (JAR) файл программы. К таким телефонам, например, относится большинство телефонов Samsung и Siemens.

Любой файл JAD можно открыть блокнотом. Содержимое на снимке внизу.

В моём случае файл jimm2009.jad был повреждён. В нем была неверная ссылка на jimm2009.jar. Именно поэтому появлялось назойливое сообщение об ошибке.

Простая программка JadMaker поможет вам создать jad файл. Вам нужно переместить jar-файл в окошко програмы Jad Maker. Либо при запущенной программе щелкнуть на jar файле правой кнопокой мыши и выбрать меню “Make Jad”. Jad -файл будет создан в папке, где расположен файл *.jar. А его уже нужно будет закачать на мобильный телефон. Внимание! На телефон нужно закачивать оба файла (jar и jad) и запускать jad.

Если на Вашем компьютере уже есть загруженный JAR-файл, но нет JAD, то быстро создать JAD-файл можно с помощью программы JADGen, скачать ее можно ЗДЕСЬ (227 кб). Просто перетащите JAR-файл на иконку с программой JADGen.exe — в папке с Вашим JAR-файлом появится JAD-файл.

Пересоздав файл с помощью одной из утилит JADMaker и JADGen, все начало чудесно работать.

Комментарии

Комментарий от Mozly [ 22 ноября, 2013, 21:18 ]

Прошу прощения, что вмешался… У меня похожая ситуация. Можно обсудить.

Комментарий от Кубланов [ 14 января, 2010, 23:18 ]

Спасибо огромное! Вы мне очень сильно помогли!

Комментарий от Lamer [ 19 января, 2010, 01:17 ]

Большое человеческое спасибо.

Комментарий от Натали [ 19 января, 2010, 16:50 ]

Молодца. Огромное спасибо!

Комментарий от Дима [ 22 июня, 2010, 07:41 ]

Закачала я на Samsung jar файл(книгу), памяти убавилось в java приложении, а вот самого файла нет. Где же его найти или как удалить? Помогите!

Комментарий от Марина [ 1 октября, 2010, 00:01 ]
Комментарий от qwerty [ 19 октября, 2010, 23:28 ]

Хорошее решение, но ни один способ не помог, Samsung D780 Duos, зря я его купил. Перекидывал через карту памяти, возможно через провод или блютуз поможет, но таких аксессуаров у меня к сожалению нет.

Комментарий от Алексей [ 6 ноября, 2010, 23:56 ]

СПАСИБО. Все получилось!

Комментарий от Андрей [ 17 ноября, 2010, 00:06 ]

хотя не совсем ВСЁ!? на некоторые файлы ругается:»загруженный JAR неверный»…

Комментарий от Андрей [ 17 ноября, 2010, 00:22 ]

Отправь мне в майл ия буду тебе блогодарень

Комментарий от DIMA [ 24 декабря, 2010, 20:18 ]

Спасибо огромнейшеееее=)
На мой самсунг теперь все приложеия и игры идут !

Комментарий от Timur [ 25 февраля, 2011, 15:50 ]

Я так и всё сделал как вы покозали переместил jar файл на значок программы формат поменялся на jad скинул на телефон игра стала весить 1 кб я начал устанавливать на телефон но пишит java слишком больших размеров данных !Что я неправильно сделал подскажите .

Комментарий от Денис [ 25 марта, 2011, 00:08 ]

Всё Работает, супер, спасибо! =)

Комментарий от Виталий [ 14 мая, 2011, 15:46 ]
Комментарий от Леха [ 13 июля, 2011, 01:16 ]

На телефоне SoniErixon Xperia X10 не работает встроенная Opera 4,2; 5,0.Cкачал Mini opera 6,но при загрузке высвечивается:»Файл JAR не обнаружен». Что делать?

Комментарий от Геннадий [ 18 сентября, 2011, 16:22 ]

У меня тоже. Файл JAR большого размера пишет тел!

Комментарий от Фильтры [ 18 ноября, 2011, 22:42 ]

почему?? я после этой процедуры захожу в файл jad мне пишут что файл jar не доступен!! ;(

Комментарий от Макс [ 30 ноября, 2011, 17:00 ]

помогите пожалуйста качаю игру jar на телефон и не идет превышенный
размер че делать.

Комментарий от kthf [ 28 декабря, 2011, 19:42 ]

не могу разобраться, где взять jar

Комментарий от m508xe [ 1 февраля, 2012, 19:26 ]

воооооооот такеннное спасибо.

Комментарий от Kolt [ 4 февраля, 2012, 21:21 ]
Комментарий от Namized [ 14 июля, 2012, 20:11 ]

Спасибо автору за материал, помогло. Пытался ставить на дуос переводчик с английского(мобайллексикон), а в ответ файл jar слишком большой и нифига. С помощью JADGen сделал jad файлик бросил его вместе с jar файлом в телефон и переводчик заработал.

Комментарий от yuriy [ 15 июля, 2012, 14:56 ]

Подскажите такой вопрос! у меня galaxy s2 gt-i 9100. при скачивании и установке игр — конкретно с этим случаем я столкнулся при скачивании ФИФА 2012 у меня при установке игры появляется черный экран и потом и потом на основной рабочий стол все вылетает. в комментах на сайте выяснил что на некоторых самсунгах есть такая проблема с JAD JAR файлами и надо установить какую то програмку … очень нужна помощь — что делать

Комментарий от Дмитрий [ 12 ноября, 2012, 13:28 ]

[quote]Файл JAR большого размера пишет тел![/quote]

[quote]jar на телефон и не идет превышенный
размер че делать. [/quote]

1.Наберите в режиме ожидания: *#52828378#
2.В списке найдите строку OTA TEST
3.В ней вместо 500 мб впишите 1024. Сохраните.
4.Учтите, что при выключении телефона эта настройка опять установится по умолчанию — 500 мб.

Ссылка на основную публикацию
Adblock
detector
Комментарий от Mozly [ 22 ноября, 2013, 21:18 ]