Проверка принадлежности к классу

В Java можно явно проверить, к какому классу принадлежит объект. Выражение fooinstanceof Foo истинно, если объект foo принадлежит классу Foo или его наследнику, или реализует интерфейс Foo (или, в общем виде, наследует класс, который реализует интерфейс, который наследует Foo).

Далее, функция getClass(), определённая для всех объектов, выдаёт объект типа Class. Для каждого класса создаётся не более одного описывающего его объекта типа Class, поэтому эти объекты можно сравнивать. Так, например, foo.getClass() == bar.getClass() будет истинно, если объекты foo и bar принадлежат в точности к одному классу (но это не означает что это два одинаковых объекта).

Кроме того, объект типа Class любого типа можно получить так: Integer.class, Object.class.

Однако прямое сравнение классов не всегда является оптимальным средством проверки на принадлежность к классу. Зачастую вместо него используют функциюisAssignableFrom(). Эта функция определена у объекта типа Class и принимает объект типа Class в качестве параметра. Таким образом, вызовFoo.class.isAssignableFrom(Bar.class) вернёт true в случае, если Foo является предком класса Bar. Так как все объекты являются потомками типа Object, вызовObject.class.isAssignableFrom() всегда вернёт true.

В паре с упомянутыми функциями объекта типа Class используются также функции isInstance() (эквивалентно instanceof), а также cast() (преобразует параметр в объект выбранного класса).

Библиотеки классов

· JDK — содержит набор базовых классов для всего ПО на платформах Java SE и Java EE

· CDK — для создания химического ПО

· MARF — модульная библиотека для распознавания аудио

· JDOM — реализация XML DOM, учитывающая особенности платформы Java.

Средства разработки ПО

JDK — помимо набора библиотек для платформ Java SE и Java EE содержит компилятор командной строки javac и набор утилит, также работающих в режиме командной строки.

NetBeans IDE — свободная интегрированная среда разработки для всех платформ Java — Java ME, Java SE и Java EE. Пропагандируется Sun Microsystems, разработчиком Java, как базовое средство для разработки ПО на языке Java и других языках (C, C++, PHP, Fortran и др.).

Eclipse IDE — свободная интегрированная среда разработки для Java SE, Java EE и Java ME. Пропагандируется IBM, одним из важнейших разработчиков корпоративного ПО, как базовое средство для разработки ПО на языке Java и других языках (C, C++, Ruby, Fortran и др.)

IntelliJ IDEA — среда разработки для платформ Java SE, Java EE и Java ME. Разработчик — компания JetBrains. Распространяется в двух версиях: свободной бесплатной (Community Edition) и коммерческой проприетарной (Ultimate Edition).

JDeveloper — среда разработки для платформ Java SE, Java EE и Java ME. Разработчик — компания Oracle.

BlueJ — Среда разработки программного обеспечения на языке Java, созданная в основном для использования в обучении, но также подходящая для разработки небольших программ.

ANDROID

Android (Андро́ид) — операционная система для коммуникаторов, планшетных компьютеров, электронных книг, цифровых проигрывателей, наручных часов, нетбуков и смартбуков, очков Google и других устройств, основанная на ядре Linux и собственной реализации Java от Google. Изначально разрабатывалась компанией Android Inc., которую затем купила Google. Впоследствии Google инициировала создание альянса Open Handset Alliance (OHA), который сейчас занимается поддержкой и дальнейшим развитием платформы. Android позволяет создавать Java-приложения, управляющие устройством через разработанные Google библиотеки. Android Native Development Kit позволяет портировать (но не отлаживать) библиотеки и компоненты приложений, написанные на Си и других языках.

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

История

В июле 2005 года корпорация Google купила компанию Android Inc. 5 ноября 2007 года компания официально объявила о созданииOpen Handset Alliance (OHA) и анонсировала открытую мобильную платформу Android, а 12 ноября 2007 года альянс представил первую версию пакета для разработчиков Android «Early Look» SDK и эмулятор Android.

23 сентября 2008 года официально вышла первая версия операционной системы, а также первый полноценный пакет разработчика SDK 1.0, Release 1. С момента выхода первой версии платформы произошло несколько обновлений системы. Эти обновления, как правило, касаются исправления обнаруженных ошибок и добавления новой функциональности в систему.

В 2009 году было представлено целых четыре обновления платформы. Так, в феврале вышла версия 1.1 с исправлением различных ошибок. В апреле и сентябре вышли ещё два обновления — 1.5 «Cupcake» и 1.6 «Donut» соответственно. Обновление «Cupcake» привнесло существенные изменения: виртуальная клавиатура, воспроизведение и запись видео, браузер и другие. В «Donut» впервые появились поддержка различных разрешений и плотности экрана и сетей CDMA. В октябре того же года вышла версия операционной системы Android 2.0 «Eclair» с поддержкой нескольких аккаунтов Google, поддержкой браузером языкаHTML5 и других нововведений, а также после небольшого обновления в пределах версии «Eclair» (2.1) появились «живые обои», видоизменён экран блокировки.

В середине 2010 года Google представила Android версии 2.2 под наименованием «Froyo», а в конце 2010 года — Android 2.3 «Gingerbread». После обновления «Froyo» стало возможно использовать смартфон в качестве точки доступа, использовать традиционную блокировку смартфона цифровым или буквенно-цифровым паролем и другие изменения, а обновление «Gingerbread» привносит более детальный контроль над функциями «Вставка и Копирование», улучшение управления питанием и контроля за приложениями, поддержка нескольких камер на устройстве и т. д.

22 февраля 2011 года была официально представлена платформа Android 3.0 «Honeycomb», главная особенность которой — её планшетоориентированность.

Android 4.0 «Ice Cream Sandwich», вышедшая 19 октября 2011 года, — первая универсальная платформа, которая предназначена как для планшетов, так и для смартфонов.

2012 год принёс обновление операционной системы до версии под названием «Jelly Bean». Она была представлена в июне с порядковым номером 4.1, сменившая свой номер на 4.2 после небольшого обновления в конце октября.

1.8.2 Применение

Первым устройством, работающим под управлением Android, стал разработанный компанией HTC смартфон HTC Dream (официально выпущен сотовым оператором T-Mobile под названием T-Mobile G1), презентация которого состоялась 23 сентября 2008 года. Вскоре последовали многочисленные заявления других производителей смартфонов о намерении выпустить устройства на базе Android. В России первым Android-смартфоном поступившим в продажу (июль 2009 года) стал Highscreen PP5420. С выходом Android третьей версии (Honeycomb), ориентированной на планшеты, всё больше производителей стали объявлять и о выпуске планшетов на этой платформе. Также компания Google в сотрудничестве с разными гигантами мобильной индустрии выпускает собственные устройства в серии «Google Nexus». Именно эти устройства первыми получают обновления до новых версий.

Кроме смартфонов и планшетов, операционную систему Android устанавливают и на другие устройства. Так, в конце 2009 года появилась в продаже первая фоторамка, работающая на Android. В июне 2011 года итальянская компания Blue Sky анонсировала выпуск интеллектуальных наручных часов i’mWatch под управлением ОС Android. В августе 2012 года Nikon представила первую в мире фотокамеру, которая также работает на Android. В серии «Google Nexus» присутствуют не только смартфоны и планшеты, но и медиаплеерNexus Q, работающий на Android.

Кроме того, энтузиасты портировали Android на ряд известных устройств, среди которых, например, смартфоны на платформе Windows MobileHTC Touch Dual и HTC TyTN II, на которых Android был запущен в режиме эмуляции. Также было осуществлено полноценное портирование на такие устройства, как интернет-планшеты, работающие на Maemo — Nokia N810 и Nokia N900 (порт под названием Nitdroid) на смартфоны Nokia N9, работающий на платформе MeeGo, и HTC HD2, работающий на операционной системе Windows Mobile, на котором ОС Android можно запускать как с microSD-карты, так и с внутренней NAND-памяти. При этом установленная система имеет полную, ничем особо не ограниченную функциональность. Помимо этого есть удачный опыт установки Android на некоторые устройства Apple — iPhone, iPod Touch и iPad с помощью специальной программы под названием Openiboot, которая предназначена для запуска на данных устройствах разнообразных ОС, в том числе и Android. Появляются предварительные прошивки с ограниченной функциональностью на устройствах на операционной системе Bada. Компания Koolu не только занялась портированием Android на Neo FreeRunner, но и строила свой бизнес на продаже этих смартфонов с предустановленной мобильной платформой от Google. Первый официальный и общедоступный бета-релиз порта Android на Neo FreeRunner от Koolu состоялся в декабре 2008 года. Также Android портирован на архитектуру x86.

В октябре 2012 года исполнительный директор компании Ларри Пейдж сообщил о более 500 миллионов активированных смартфонов и планшетов на базе операционной системы Android и о ежедневной активации 1,3 миллиона устройств

Программное обеспечение:

Приложения под операционную систему Android являются программами в нестандартном байт-коде для виртуальной машины Dalvik, для которых был разработан формат установочных пакетов .apk. Для работы над приложениями доступно множество библиотек: Bionic (библиотека стандартных функций, несовместимая с libc); libc (стандартная системная библиотека языка Си); мультимедийные библиотеки на базе PacketVideo OpenCORE (поддерживают такие форматы, как MPEG4, H.264, MP3, AAC, AMR, JPG и PNG); SGL (движок двухмерной графики);OpenGL ES 1.0 ES 2.0 (движок трёхмерной графики); Surface Manager (обеспечивает для приложений доступ к 2D/3D); WebKit (готовый движок для Web-браузера; обрабатывает HTML, JavaScript); FreeType (движок обработки шрифтов); SQLite (легковесная СУБД, доступная для всех приложений); SSL (протокол, обеспечивающий безопасную передачу данных по сети). По сравнению с обычными приложениями Linux, приложения Android подчиняются дополнительным правилам: Content Providers — обмен данными между приложениями; Resource Manager — доступ к таким ресурсам, как файлы XML, PNG, JPEG; Notification Manager — доступ к строке состояния; Activity Manager — управление активными приложениями.

Google предлагает для свободного скачивания инструментарий для разработки (Software Development Kit), который предназначен для x86-машин под операционными системами Linux,Mac OS X (10.4.8 или выше), Windows XP, Windows Vista и Windows 7. Для разработки требуется JDK 5 или более новый.

Разработку приложений для Android можно вести на языке Java (не ниже Java 1.5). Существует плагин для Eclipse — Android Development Tools (ADT), предназначенный для Eclipse версий 3.3-3.7. Также существует плагин для IntelliJ IDEA, облегчающий разработку Android-приложений, и для среды разработки NetBeans IDE, который, начиная с версии NetBeans 7.0, перестал быть экспериментальным, хоть пока и не является официальным. Кроме того, существует Motodev Studio for Android — комплексная среда разработки на базе Eclipse, позволяющая работать непосредственно с Google SDK.

В 2009 году в дополнение к ADT был опубликован Android Native Development Kit (NDK) — пакет инструментариев и библиотек, позволяющий вести разработку приложений на языке С/С++. NDK рекомендуется использовать для разработки участков кода, критичных к скорости.

Android Developer Challenge

Для стимулирования разработчиков в ноябре 2007 года компания Google объявила конкурс Android Developer Challenge с призовым фондом в 5 миллионов долларов. Участникам конкурса предлагалось создать любое приложение из самых разных областей — социальные сети, работа с информацией различного типа, игры и т. д. Мероприятия конкурса ADC проходили в 2008 году и закончились награждением 50 финалистов крупными денежными призами (25—275 тысяч долларов).

27 мая 2009 года был объявлен новый конкурс ADC2 с призовым фондом в 2 млн долл. (главный приз — 250 тыс. долл.). Подача приложений на конкурс продолжалась с 24 по 31 августа 2009 года. С 24 сентября по 6 октября в рамках первого раунда ADC2 пользователи путём голосования отбирали приложения для участия во втором раунде. 5 ноября был опубликован список из 200 лучших приложений (по 20 приложений в каждой из 10 категорий), попавших во второй раунд, и началось голосование пользователей за эти приложения. 24 ноября голосование во втором раунде было закрыто, начал работу специальный комитет судей-экспертов, которые с учётом мнения пользователей отбирали лучшие приложения. 30 ноября был опубликован список победителей конкурса.

Наши рекомендации