ДонНТУ   Портал магистров

Опыт разработки приложений на языке Java

Содержание

Мотивация

Разрабатывать приложения на языке Java я начал с 2010 года. В основном это были учебные проекты и лабораторные работы. В 2012 успешно защитил дипломный проект, для которого разработал программу расчета нагрузки университета. С 2011 года разрабатываю приложения под платформу Android. В данный момент участвую в разработке игры для Android. В данной статье хочу поделиться опытом разработки приложений на языке Java.

Введение

Язык программирования Java – объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems (в последующем приобретённой компанией Oracle) [1].

На сегодняшний день язык программирования Java является одним из наиболее востребованных языков программирования в мире. Данные по основным критериям:

Язык Java также является одним из самых распространённых языков. По данным сайта java.com исполняемая среда Java установлена на приблизительно 1.1 миллиардах настольных компьютеров, и 3 миллиардах телефонах. Java также повсеместно применятся в бытовых приборах, таких как Blu-ray плееры, бортовые компьютеры автомобилей, а также другие устройства с наличием микропроцессора [5].

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

Платформа Java делится на три основных типа:

Несмотря на разнообразность применения языка, основными сферами использования являются разработка приложений под мобильную платформу Android (Java SE), и разработка корпоративных приложений, включающих сетевые и веб сервисы, и другие (Java EE).

1. Пример программы на языке Java

Без учета специфики разработки мобильных и корпоративных приложений программист рассчитывает только на свои знания основ языка (Java core) и знания стандартных библиотек. Именно поэтому изучение языка стоит начинать с основ Java SE.

Как пример использования языка я покажу процесс разработки простейшей программы на языке Java.

Для начала следует загрузить и установить комплект разработчика приложений Java (Java Development Kit, JDK), Это можно сделать на сайте загрузки JDK [7].

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

Подробная инструкция по установке jdk приведена на сайте javaprobooks.ru [8].

После успешной установки и проверки комплекта разработки можно приступить к выполнению примера.

Для написания простых программ вполне достаточно текстового редактора Notepad и установленного JDK. Такой способ разработки является наиболее полезным при изучении языка, так как раскрывает подробности компиляции и запуска программ, чего не происходит при программировании с помощью интегрированных сред разработки.

Для начала создайте папку с произвольным названием в любом удобном для вас месте (Например С:/Users/user/Desktop/New_folder). В папке создайте новый текстовый документ. Поместите в него следующий текст:

    public class MyProgram {
        public static void main(String[] args) {
            System.out.println("Hello World!");
        }
    }

Сохраните документ, переименуйте файл в MyProgram.java. Откройте командную консоль и перейдите в созданную ранее папку.

Выполните следующие команды:

  1. Компиляция программы: «javac MyProgram.java»
  2. Запуск программы: «java MyPgogram»

После этого на экране командной консоли появится следующий текст: Hello World!

Поздравляю, только что вы успешно написали и запустили программу на языке Java.

Если у вас возникло желание начать обучение основам языка, прочитайте книгу Герберта Шилдта “Java. Полное руководство” 8-е издание. Книга доступна на русском языке и продается в украинских магазинах. Также можно заниматься по книге “Java 2 том 1: Основы”, авторы: Кей Хорстманн, Гари Корнелл. Каждая книга даст исчерпывающие знания по основам Java и стандартным библиотекам.

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

2. Разработка приложений для мобильной платформы Android

Android – операционная система для мобильных устройств (таких как смартфоны, планшеты, плееры, электронные книги и другие), разработанная компанией Google на основе ядра Linux. Android имеет открытый исходный код и свободно распространяется для производителей устройств.

В 70,1 % смартфонов, проданных в четвёртом квартале 2012 года, была установлена операционная система Android.

22 октября 2008 года Google объявила об открытии онлайн-магазина приложений для ОС Android – Android Market. По соглашению, разработчики получают 70 % прибыли, операторы сотовой связи – 30 %. В феврале 2009 года для разработчиков из США и Великобритании появилась возможность брать плату за свои приложения в Android Market. Компания Sony Ericsson первая запустила собственный канал в онлайн-магазине приложений Android Market. В нём представлены приложения и игры, которые рекомендованы компанией.

На декабрь 2011 года, с момента создания Android Market, было скачано 10 млрд. приложений, но несмотря на количество, качество большинства приложений остается на невысоком уровне. Это связанно как с упрощенной формой распространения, так и с низкой сложностью разработки. Однако качественные приложения довольно быстро распространяются. Прибыль с приложений в Android Market можно получать с продажи приложений, или со встраивания контекстной рекламы в приложение [9].

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

Программы для Dalvik пишутся на языке Java. Несмотря на это, стандартный байт-код Java не используется, вместо него Dalvik VM исполняет байткод собственного формата. После компиляции исходных текстов программы на Java (при помощи javac) утилита dx из «Android SDK» преобразует .class файлы в формат .dex, пригодный для интерпретации в Dalvik [10].

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

Приложение для Android в общем случае состоят из 4 компонентов:

  1. Activity;
  2. Service;
  3. Content providers;
  4. Broadcast receivers.

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

Service – компонент приложения Android, предназначенный для выполнения длительных операций, не нуждающихся во взаимодействии с пользователем (загрузка файлов, отправка запроса, воспроизведение медиа файла).

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

Broadcast receivers – компонент Android приложения позволяющий производить действия на определенные сообщения системы, такие как низкий заряд батареи или поступления SMS сообщения.

Все экземпляры основных компонентов, как и общая информация о приложении хранятся в файле – манифесте приложения – AndroidManifest.xml. Манифест также хранит информацию о действиях, разрешенных для приложения. Это необходимо для AndroidMarket. Загружая приложение из магазина, пользователь видит список необходимых разрешений. Android в свою очередь контролирует доступность функций по их разрешению

Основная документация по различным версиям операционной системы Android приведена на официальном сайте разработчика Android [11].

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

3. Особенности применения языка Java в корпоративных приложениях

Еще одной сферой применения языка Java является описание архитектуры серверной платформы для задач средних и крупных предприятий с использованием Java EE.

Java Platform, Enterprise Edition, сокращенно Java EE (до версии 5.0 – Java 2 Enterprise Edition или J2EE) – набор спецификаций и соответствующей документации для языка Java, описывающей архитектуру серверной платформы.

Java EE является промышленной технологией и в основном используется в высокопроизводительных проектах, в которых необходима надежность, масштабируемость, гибкость. Популярности Java EE способствует то, что платформа распространяется бесплатно [12].

Java EE включает в себя стандарты следующих основных технологий:

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

Для написания Java EE приложений было разработано множество дополнительных фреймворков и библиотек, таких как Spring, Hybernate, GWT и другие.

Сервер приложений Java EE (часто называемый Java EE-контейнер) – это реализация системы в соответствии со спецификацией Java EE, обеспечивающая работу модулей с логикой конкретного приложения [12].

Одним из бесплатных хостингов серверов приложений Java EE является облачная вычислительная платформа OpenShift разработанная компанией Red Hat [14].

Вывод

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

Список источников

  1. Java [Электронный ресурс]. – Режим доступа:http://ru.wikipedia.org
  2. TIOBE Programming Community Index for May 2013 [Электронный ресурс]. – Режим доступа: http://www.tiobe.com
  3. Обзор зарплат программистов Java/C++/C#/Delphi [Электронный ресурс]. – Режим доступа: http://habrahabr.ru
  4. Рейтинг языков программирования №4, январь 2013 [Электронный ресурс]. – Режим доступа: http://dou.ua
  5. Подробнее о технологии Java [Электронный ресурс]. – Режим доступа: http://java.com
  6. Java (программная платформа) [Электронный ресурс]. – Режим доступа: http://ru.wikipedia.org
  7. Java SE Downloads [Электронный ресурс]. – Режим доступа: http://www.oracle.com
  8. Где скачать JDK и как его установить? [Электронный ресурс]. – Режим доступа: http://www.javaprobooks.ru
  9. Android [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org
  10. Dalvik virtual machine [Электронный ресурс]. – Режим доступа: http://ru.wikipedia.org
  11. Android Developers [Электронный ресурс]. – Режим доступа: http://developer.android.com
  12. Java Platform, Enterprise Edition [Электронный ресурс]. – Режим доступа: http://ru.wikipedia.org
  13. Сервлет (Java) [Электронный ресурс]. – Режим доступа: http://ru.wikipedia.org
  14. OpenShift by Red Hat [Электронный ресурс]. – Режим доступа: https://www.openshift.com