No Image

Java программирование на телефоне

0 просмотров
11 марта 2020

Бытует мнение, что в современном мире каждый должен в той или иной степени уметь программировать. Президент США Барак Обама даже принял участие во всемирной акции «Час кода», которая проводится в декабре, и продемонстрировал свои умения в JavaScript. Зима не за горами, и если вы хотите блеснуть своими умениями в «Час кода», за 3 месяца вам очень сильно поможет приложение Javvy.

Программирование на телефоне – почему люди задаются таким вопросом?

Люди всё чаще начинают задавать вопрос, как это – программирование на телефоне? Может удобно или нет? Все эти вопросы задавал себе наверное каждый начинающий программист, который стремится к знаниям и хочет программировать везде и всегда. Безусловно на это повлияло и столь быстрое развитие технологий. За небольшой промежуток времени печатные машинки заменились ноутбуками и ПК, которые способны решить очень сложные задачи.

Если мы посмотрим на развитие телефонов в целом, то они также очень быстро начали развиваться. Сначала сенсорные телефоны не восприняли так как надо, а сейчас такой смартфон неотъемлемая часть каждого человека. Это и есть ответ на вопрос: “Программирование на телефоне – откуда у людей такие вопросы и мысли“. Практически каждый человек, который хоть как то знаком с программированием скажет, что программирование на смартфонах Android или Apple – крайне неудобно и ненужно. Они будут отчасти правы, однако это всё же возможно и давайте разберемся как и зачем?

Программирование на телефоне – разберемся?

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

Читайте также:  Lbook ereader v3 прошивка

Как это? Программирование на телефоне с помощью различных сервисов и ПО.

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

Ideone – это онлайн-компилятор и инструмент для отладки, который позволяет вам компилировать исходный код и выполнять его онлайн в более чем 60 языках программирования.

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

Также, существуют узкоспециализированные программы, такие как Java Compiler и т.д. Их можно без проблем скачать на ваш смартфон. Программирование на телефоне и заключается в таких программах и сервисах, так как делать это в терминале, как на Linux будет крайне неудобно. Одним из лучших терминалов на Android является Termux.

Зачем программировать на телефоне. Удобство и заключительный ответ.

Как вы могли уже догадаться, программирование на телефоне – это крайне неудобно из-за маленького экрана и отсутствия полноценной клавиатуры. Конечно, вы можете подключить клавиатуру через OTG, но зачем? Почему не взять ноутбук в таком случае, ведь клавиатура у вас с собой вмещается?! Ещё одним фактором, который говорит против программирования на телефонах Android и Apple является отсутствие профессионального софта. Существуют только узконаправленные компиляторы или онлайн-IDE. Они, как вы понимаете, никогда не смогут заменить нормальное ПО для программиста.

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

Если вы считаете, что программирование на телефоне не является чем-то неудобным, пишите об этом в комментариях. Подписывайтесь на обновления сайта, а также наш Telegram.

В языке Java есть ряд преимуществ. Он легок в освоении. Под него есть большое количество документации и средств разработки. Кроме того, разработкой Java-приложений (не обязательно под мобильные телефоны) занимается множество людей по всему миру – и, в случае необходимости, есть у кого спросить совета.

Введение

Технология Java была разработана компанией Sun Technologies, Inc. На сайте компании можно найти документацию и средства разработки: http://java.sun.com и http://wireless.java.sun.com/. Спецификации по CLDC и MIDP – наиболее нужные документы для разработчика приложений под «беспроводные устройства связи», находятся по адресу http://java.sun.com/j2me/docs.

Несколько слов про совместимость. Как известно, поддержка сотовыми телефонами языка Java предполагала появление универсального средства разработки. В реальности все оказалось не совсем так. Да, язык программирования один и, при необходимости, адаптировать программу для работы на разных телефонах вполне реально. Но, иногда, для этого приходится выпускать несколько версий приложения.

Дело в том, что основным предназначением Java очень быстро стала разработка игр. И вот здесь MIDP 1.0 (Mobile Information Device Profile), использующийся в настоящий момент в большинстве телефонов, оказался не на высоте. Отсутствие возможности использования прозрачных спрайтов уже сильно затрудняло разработку приложений. К этому прибавлялось невозможность использования полноэкранного режима, поворота и инвертирования спрайтов (чтобы сделать кораблик, способный лететь в четыре направления, надо было рисовать и закачивать на телефон четыре практически одинаковых спрайта, что отрицательно сказывалось на размерах игры и доступной памяти) и некоторые прочие недостатки.

Читайте также:  Ссылка на мобильную версию вконтакте

Nokia решила не ждать появления MIDP 2.0 и разработать собственный API, ориентированный на производителей игр. MIDP 2.0 до большинства аппаратов Nokia еще не добрался, хотя большинство аппаратов поддерживает отдельные его функции.

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

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

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

Что Вам понадобится

Прежде чем создавать свое первое приложение, нужно скачать и установить необходимый набор средств разработки.

Внимание! У приложений Sun Technologies есть одна неприятная особенность. Если произвести установку в каталог, в названии которого имеются пробелы или русские символы, они будут работать некорректно. В частности, будут большие проблемы с поиском библиотек во время компиляции.

Создаем первое приложение

Сейчас мы создадим свое первое Java-приложение, представляющее собой классический пример программы «Hello, world». Будут использоваться универсальные библиотеки, что позволит запускать приложение на любом телефоне, поддерживающем Java с версией MIDP 1.0.

После установки средств разработки, запускайте KToolbar.

Пуск -> Программы -> J2ME Wireless Toolkit 2.0 -> KToolbar

В программе KToolbar создаем новый проект (кнопка New Project…)

Введите название проекта (Project Name) и название класса MIDlet (MIDlet Class Name). Мы будем использовать “Hello” и “HelloWorldMIDLet” соответственно.

После создания проекта будет предложено отредактировать его настройки. Нужно изменить всего один пункт, MicroEdition-Profile на MIDP-1.0 .

Теперь нужно найти созданный проект. Найдите, куда Вы устанавливали J2ME™ Wireless Toolkit 2.0 и разыщите в этом каталоге подкаталог appsHellosrc.

В нем создайте файл с названием «HelloWorldMIDLet.java». Учтите, что Java-код и имена файлов регистрозависимые.

Код программы и комментарии приведены ниже. После заполнения файла скомпилируйте программу нажатием кнопки «Build» и запустите в эмуляторе нажатием на «Run».

Чтобы опробовать созданное приложение на своем телефоне выберите меню Project -> Package -> Create Package. Файлы, предназначенные для закачивания на трубку буду находиться в подкаталоге bin, находящемся в каталоге с программой.

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class HelloWorldMIDlet extends MIDlet

public void startApp()
<
Displayable current = Display.getDisplay(this).getCurrent();
if(current == null)
<
HelloScreen helloScreen = new HelloScreen(this, “Hello World.”
Display.getDisplay(this).setCurrent(helloScreen);
>
>

public void pauseApp()
<
>

public void destroyApp(boolean b)
<
>

void exitRequested()
<
destroyApp(false);
notifyDestroyed();
>
>

class HelloScreen extends TextBox implements CommandListener
<
private final HelloWorldMIDlet midlet;
private final Command exitCommand;
HelloScreen(HelloWorldMIDlet midlet, String string)
<
super(“HelloWorldMIDlet”, string, 256, 0);
this.m > exitCommand = new Command(“Exit”, Command.EXIT, 1);
addCommand(exitCommand);
setCommandListener(this);
>

public void commandAction(Command c, Displayable d)
<
if(c == exitCommand)
<
midlet.exitRequested();
>
>
>

Любое J2ME приложение может находится в следующих состояниях: рабочее, пауза и уничтоженное. Для контроля за этими состояниями, управления приложением со стороны аппарата

После создания MIDlet находится в состоянии паузы. Если в конструкторе MIDlet’а происходит прерывание, он немедленно входит в уничтоженное состояние и его ресурсы очищаются. Перейти из активного состояния в паузу приложение может после успешного завершения метода pauseApp (), или, в случае возникновения прерывания в методе startApp ().

Перейти из состояния паузы в активное состояние MIDlet может при успешном завершении метода startApp() в случае нормальной работы приложения.

Читайте также:  Fwd в письме что значит

Метод destroyApp (boolean unconditional) служится для перевода приложения в уничтоженное состояние, т.е. для очистки ресурсов, занимаемых им. Если аргумент unconditional соответствует значению true (истинно), MIDlet будет уничтожен. В противном случае (значение false) и при возникновении прерывания MIDletStateChangeException он не будет уничтожен. В этом случае может понадобится соответствующая обработка возникающих прерываний.

Чего это означает для нас? Функция startApp () вызывается в двух случаях: когда приложение впервые запущено и когда оно возвращается из состояния паузы. Пауза, как правило, включается по решению самого сотового телефона, например, при входящем телефонном звонке (и, в этом случае, автоматом выполняется функция pauseApp(), в которой можно произвести необходимые действия – освободить некоторые ресурсы, остановить таймеры и прочее). В методе destroyApp () пишется код, который будет выполнен непосредственно перед выключением приложения – в частности, из нее может вызываться функция сохранения.

В нашем случае в функции startApp производится анализ показываемого в данный момент экрана:

Displayable current = Display.getDisplay(this).getCurrent();

и, если показываемый в данный момент объект current пуст (на экране ничего нет) – мы создаем новый объект класса helloScreen и отображаем его на экране.

if(current == null)
<
HelloScreen helloScreen = new HelloScreen(this, “Hello World.”);
Display.getDisplay(this).setCurrent(helloScreen);
>

Функция Display.getDisplay(this) возвращает объект класса Display, который может быть использован в этом MIDlet для отображения информации на экране.

Подробнее разберемся с этим классом. Он наследует параметры класса TextBox, который в свою очередь наследует параметры класса Form. В данном случае это означает, что у нас на экран выводится элемент формы, предназначенный для ввода текста (содержащий строчку string). Кроме того, класс обладает возможностями CommandListener, т.е. может ожидать от пользователя ввода команд, реагировать на них, а также отображать подсказку по действиям команд на экране. В верхней части экрана также показывается строка (В данном случае – HelloWorldMIDlet).

Все операции организации ввода команд производятся в конструкторе, т.е. функции HelloScreen одноименного класса.

super(“HelloWorldMIDlet”, string, 256, 0);

Создаем объект формы с названием (title) “HelloWorldMIDlet”, изначальным содержимым (text) равным строке string, максимальной длиной вода 256 и без специальных ограничений на ввод текста.

Просто присваиваем значению объекта midlet в классе значение объекта midlet, переданному в конструктор фукнции.

exitCommand = new Command(“Exit”, Command.EXIT, 1);
addCommand(exitCommand);
setCommandListener(this);

Создаем новый объект класса Command с названием «Exit», типа Command.EXIT. Пусть это Вас не смущает, несмотря на название типа, срабатывание этой команды не будет приводить к автоматическому выходу из приложения. Обработчик этой команды мы напишем после.

Тип команды указывает телефону, в какое место экрана, обычно предназначено для отображения именно подобных команд, установить ее. В случае, если этих команд в одном месте оказывается несколько (к примеру, на правой soft-клавише телефона на одном экране могут оказаться повешены команды Command.EXIT и Command.BACK, т.е. выход и возврат в предыдущее меню) – обеспечивает выбор меню с соответствующим выбором; в этом порядок следования команд определяется третьим передаваемым параметром – приоритетом ( в нашем случае, 1).

Функция addCommand добавляет выбранный объект (команду) на показываемый экран (Displayable).
setCommandListener включает для данного же экрана режим приема команд.

public void commandAction(Command c, Displayable d)
<
if(c == exitCommand)
<
midlet.exitRequested();
>
>

А вот и обработчик. В случае, если вызванная команда соответствует exitCommand, запускает функция exitRequested родительского класса. В данном случае она приводит к закрытию приложения.

Для первого раза вполне достаточно. Только что мы написали простейшую команду на Java2ME, типичный «Hello World».

Запускайте эмулятор кнопкой «Run» и смотрите на результат.

“>

Комментировать
0 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
Adblock detector