Статьи

Изучите Java для разработки под Android: Введение в Java

В этой серии руководств вы познакомитесь с Java, языком программирования, используемым для разработки приложений для Android. Наша цель — подготовить тех, кто уже знаком с одним языком программирования, таким как PHP или Objective-C, чтобы освоиться с языком программирования Java и погрузиться в разработку приложений для Android. В этом руководстве вы получите краткое введение в основы Java, включая объектно-ориентированное программирование, наследование и многое другое. Если вы новичок в Java или просто хотите освежить в деталях, то эта серия учебников для вас!

Что касается предварительных условий, мы предполагаем, что вы понимаете, как программировать (возможно, на PHP, или Visual Basic, или C ++), но что вы не знакомы со спецификой программирования на языке Java. Мы не собираемся учить вас программировать; мы предоставим вам наглядные примеры часто используемых конструкций и принципов языка Java, а также приведем некоторые советы и рекомендации для Android.

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

Для разработки приложений Android (или любых других приложений Java) вам необходима среда разработки для написания и создания приложений. Eclipse — это очень популярная среда разработки (IDE) для Java и предпочтительная IDE для разработки под Android. Он свободно доступен для операционных систем Windows, Mac и Linux.

Полные инструкции по установке Eclipse (включая поддерживаемые версии) и Android SDK см. На веб-сайте разработчиков Android .

Приложения для Android разрабатываются с использованием языка Java. На данный момент это действительно единственный вариант для нативных приложений. Java — очень популярный язык программирования, разработанный Sun Microsystems (в настоящее время принадлежит Oracle). Разработанная задолго до C и C ++, Java включает в себя многие из мощных функций этих мощных языков, устраняя при этом некоторые их недостатки. Тем не менее, языки программирования столь же мощны, как и их библиотеки. Эти библиотеки существуют, чтобы помочь разработчикам создавать приложения.

Некоторые важные функции Java:

  • Это легко учиться и понимать
  • Он разработан, чтобы быть независимым от платформы и безопасным, используя
    виртуальные машины
  • Это объектно-ориентированный

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

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

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

Наконец, Java — один из самых понятных человеку языков, под которым мы подразумеваем, что человек, который ничего не знает о программировании, часто может взглянуть на некоторый код Java и хотя бы понять, что он делает. Рассмотрим следующий пример:

Если вы просто читаете код вслух, вы можете сказать, что этот фрагмент кода работает. Там есть переменная из одной буквы, которая называется символом. Если символьная переменная равна букве a, то мы что-то делаем (вызываем метод doSomething ()), в противном случае мы делаем что-то еще (вызывая метод doSomethingElse ()).

При использовании многих языков программирования вам необходимо использовать компилятор, чтобы свести код к машинному языку, понятному устройству. Хотя это хорошо, разные устройства используют разные машинные языки. Это означает, что вам может понадобиться скомпилировать ваши приложения для каждого устройства или машинного языка — другими словами, ваш код не очень переносим. Это не относится к Java. Компиляторы Java преобразуют ваш код из читаемых человеком исходных файлов Java в нечто, называемое «байт-кодом» в мире Java. Они интерпретируются виртуальной машиной Java, которая работает так же, как физический процессор может работать с машинным кодом, чтобы фактически выполнить скомпилированный код. Хотя может показаться, что это неэффективно, много усилий было приложено, чтобы сделать этот процесс очень быстрым и эффективным. Эти усилия окупились тем, что производительность Java обычно уступает только C / C ++ в сравнении производительности на общем языке.

Приложения Android работают на специальной виртуальной машине под названием Dalvik VM. Хотя детали этой виртуальной машины не важны для среднего разработчика, полезно думать о виртуальной машине Dalvik как о пузыре, в котором работает ваше Android-приложение, позволяя вам не беспокоиться о том, является ли устройство Motorola Droid, HTC Evo или новейший тостер под управлением Android. Вам все равно, если устройство совместимо с виртуальной машиной Dalvik — и это задача производителя устройств, а не ваша.

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

Как и многие языки, Java по-прежнему является компилируемым языком, хотя и не компилируется полностью до машинного кода. Это означает, что вы, разработчик, должны скомпилировать свои проекты Android и упаковать их для развертывания на устройствах. Среда разработки Eclipse (используемая с плагином Android Development) делает это довольно безболезненным. В Eclipse автоматическая компиляция часто включена по умолчанию. Это означает, что каждый раз, когда вы сохраняете файл проекта, Eclipse перекомпилирует изменения для вашего пакета приложения. Вы сразу видите ошибки компиляции. Eclipse также интерпретирует Java по мере ввода текста, обеспечивая удобную раскраску и форматирование кода, а также отображает множество типов ошибок по мере продвижения. Зачастую вы можете нажать на ошибку, и Eclipse автоматически исправит опечатку, или добавит оператор импорта, или предоставит вам заглушку метода, что сэкономит вам много времени на ввод текста.

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

Процесс сборки для обычных Java-проектов приводит к созданию файла с расширением JAR — J ava AR chive. Приложения Android принимают файлы JAR и упаковывают их для развертывания на устройствах в виде файлов A ndroid P ac K age с расширением .apk. Эти форматы включают не только ваш скомпилированный код Java, но также любые другие ресурсы, такие как строки, изображения или звуковые файлы, которые требуются вашему приложению, а также файл манифеста приложения, AndroidManifest.xml. Файл манифеста Android — это файл, необходимый для всех приложений Android, который используется для определения деталей конфигурации вашего приложения.

Ладно. Время для очень краткого и 20 000-футового обзора объектно-ориентированного программирования (ООП). ООП — это стиль или метод программирования, основанный на определении структур данных, называемых объектами. Для тех, кто плохо знаком с ООП, объект может рассматриваться как пользовательский тип данных. Например, у вас может быть объект Dog, представляющий проект общей собаки с именем, породой и полом. Затем вы можете создать разные экземпляры объекта Dog для представления конкретных собак. Каждый объект Dog должен быть создан путем вызова его конструктора (метод, который имеет то же имя, что и сам объект, и может иметь или не иметь параметры для установки начальных значений). Например, следующие объекты Dog используют конструктор с тремя параметрами (имя, порода, пол):

Так где же определен этот объект Dog? Итак, здесь мы должны начать определять некоторые фундаментальные строительные блоки языка программирования Java. Класс предоставляет определение для объекта. Следовательно, где-то есть класс Dog — либо определенный вами, либо в какой-то библиотеке. Вообще говоря, класс будет определен в своем собственном файле с именем файла, совпадающим с именем класса (например, Dog.java). Есть исключения из этого правила, такие как классы, определенные в других классах (когда класс объявляется внутри класса, он обычно определяется для использования в родительском классе только как вспомогательный класс и упоминается как внутренний класс ).

Если вы хотите сослаться на объект из другого класса, вам нужно включить оператор импорта в начало вашего файла класса, так же, как вы бы использовали оператор #include в скомпилированном языке, таком как C.

Класс обычно описывает данные и поведение объекта. Поведение определяется с использованием методов класса. Метод — это общий термин для подпрограммы на языке ООП. Многие общие классы объектов определены в разделяемых библиотеках классов, таких как наборы для разработки программного обеспечения (SDK), тогда как другие определяются вами, разработчиком, для ваших собственных целей. Программное обеспечение создается с использованием и манипулированием экземплярами объектов различными способами.

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

Примечание. В этом руководстве мы используем много разных терминов. Есть несколько способов обратиться к данной концепции (например, суперкласс против родительского класса), что вводит в заблуждение тех, кто плохо знаком с объектно-ориентированным программированием. Разные разработчики используют разные термины, поэтому мы постарались упомянуть синонимы, где это уместно. Решать, какие термины вы будете использовать, это личный выбор.

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

Эта концепция лучше всего иллюстрируется на примере. Давайте представим, что мы разрабатываем приложение Java для имитации аквариума. В этом аквариуме есть несколько рыб. Следовательно, мы можем определить класс для представления рыбы. Этот класс, называемый Рыбой, может включать в себя некоторые поля данных (также называемые атрибутами или переменными членами класса) для описания объекта рыбы: вид, цвет и размер; а также некоторые из его поведения в форме методов (также называемых подпрограммами или функциями на процедурных языках), таких как eat (), sleep () и makeBabyFish ().

Специальный тип метода, называемый конструктором , используется для создания и инициализации объекта; Конструкторы названы так же, как их класс и могут включать параметры. В следующем классе Fish есть два конструктора: один для создания общего объекта Fish, а другой для создания определенного объекта Fish с некоторыми начальными данными. Вы также увидите, что у класса Fish есть два метода eat (): один для того, чтобы есть что-то случайное, а другой — для еды другой рыбы, которая будет представлена ​​другим экземпляром класса Fish:

Классы могут быть организованы в иерархии, где производный класс (или подкласс ) включает все функции своего родительского класса (или суперкласса ), но уточняет и добавляет к ним, чтобы определить более конкретный объект, используя ключевое слово extends. Это называется наследством.

Например, класс Fish может иметь два подкласса: FreshwaterFish и SaltwaterFish. Эти подклассы будут иметь все функции класса Fish, но могут дополнительно настраивать объекты с помощью новых атрибутов и поведения или измененного поведения из родительского класса Fish. Например, класс FreshwaterFish может включать информацию о типе пресноводной среды, в которой жили (например, река, озеро, пруд или лужа). Точно так же класс SaltwaterFish может настроить метод makeBabyFish () таким образом, чтобы рыба съела свою пару после размножения (как определено в суперклассе), используя механизм переопределения, например:

В Java вы можете организовать поведение объектов в так называемых интерфейсах. В то время как класс определяет объект, интерфейс определяет некоторое поведение, которое может быть применено к объекту. Например, мы могли бы определить интерфейс Swimmer, который предоставляет набор методов, которые являются общими для всех объектов, которые могут плавать, будь то рыбы, выдры или подводные андроиды. Интерфейс Swimmer может указывать четыре метода: startSwimming (), stopSwimming (), dive () и surface ().

Такой класс, как Fish, может затем реализовать интерфейс Swimmer (используя ключевое слово Implements) и обеспечить реализацию поведения плавания:

Иерархии классов, такие как наши классы рыбы, могут быть организованы в пакеты . Пакет — это просто набор классов и интерфейсов, связанных вместе. Разработчики используют пространства имен для уникального именования пакетов. Например, мы могли бы использовать com.mamlambo.aquarium или com.ourclient.project.subproject в качестве имени нашего пакета, чтобы отслеживать наши связанные с рыбой классы.

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

Вы только поцарапали поверхность разработки Java для разработки под Android. Ознакомьтесь с другими великолепными учебными пособиями по Mobiletuts +, чтобы глубже погрузиться в разработку Java и Android. Удачи!

Разработчики мобильных приложений Лорен Дарси и Шейн Кондер являются соавторами нескольких книг по разработке Android: углубленная книга по программированию под названием « Разработка беспроводных приложений для Android» и « Разработка Android-приложений Sams TeachYourself за 24 часа» . Когда они не пишут, они тратят свое время на разработку мобильного программного обеспечения в своей компании и оказание консультационных услуг. С ними можно связаться по электронной почте [email protected] , через их блог на androidbook.blogspot.com и в Twitter @androidwireless .


Если вы хотите начать разработку под Android, лучше всего начать с шаблона приложения для Android . Проверьте выбор на Envato Market — или вы можете посмотреть более конкретно на элементы Java .

Шаблоны приложений для Android на Envato Market
Шаблоны приложений для Android на Envato Market

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

Разработчики Android на Envato Studio
Разработчики Android на Envato Studio