Лучшие приложения

AliExpress ShoppingShazam EncoreUC BrowserSHAREitPicsArtVivaVideo Pro

Что такое Android - GPhone?

Опубликовано в Статьи


programmiruem na android


Open Handset Alliance выпустил Google Android SDK 12 ноября 2007 года. Удар был невероятным, почти в каждой связанной с программированием странице новостей появился пост о выпуске SDK. Группы Google были переполнены более двумя тысячами сообщений в течение первых двух дней.

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

За недели и месяцы до того как Google выпустила Android SDK было много слухов о так называемом GPhone. Говорили об обеспечении гуглом бесплатного общения за счет показа контекстно-зависимой рекламы на самом устройстве.

 

Render потенциального GPhone. 

Но 5 ноября 2007 Энди Rubin* заявил: "Android [Платформа] – штука более значительная и амбициозная, чем просто  телефон." Google в Open Handset Alliance (OHA) обеспечивает полный набор программного обеспечения для мобильных устройств: операционная системы, связующее ПО и ключевые мобильные приложения. То, что было выпущено вначале, не было конечным продуктом, а всего лишь "First Look SDK" (Первый взгляд на SDK), что многие не поняли. Многие новостные сайты начали ворчать, что тут уйма багов и мало документации. Но большинство говорили, что Android не багованее, чем любое другое программное обеспечение на начальном этапе.

Android сверху

Давайте взглянем, что OHA выделяет в своей платформе Android:

 Открытость

"Android был построен с нуля до состояния, позволяющего разработчикам создавать привлекательные мобильные приложения, которые могут в полной мере воспользоваться всеми функциями телефона. Он построен по-настоящему открыто. Например, приложение может обращаться к любым из основных функций телефона, таким, как принятие вызовов, отправка текстовых сообщений или камера, позволяющим разработчикам создавать более полезные и помогающие пользователям приложения."

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

 "Android построена на открытом ядра Linux. Кроме того, она использует пользовательскую виртуальную машину, которая была предназначена для оптимизации памяти и аппаратных ресурсов в мобильной среде. Android имеет  открытый исходный код, в него могут быть включены новые современные технологии по мере их появления. Эта платформа будет продолжать развиваться, пока разработчики производят новые приложения".

 Здесь Google говорит о так называемых Dalvik виртуальной машине (DalvikVM), которая основана на регистрах. Виртуальная машина, разработана и написана Dan Bornstein и некоторыми другими инженерами Google, чтобы быть важной частью платформы Android. В словах "на основе регистров" мы находим первое отличие от нормальных виртуальных машинах Java (JVM), которые основаны на стеке. См. "Dalvik.equals (Java) == FALSE" - главу для более подробной информации по этому вопросу.

  Все приложения равны

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

 Опять все это правда. Разработчики могут 100% настроить свое Android-устройство. Система связи Андроида построена  на основе так называемых целей, которые являются просто строкой (возможно, с некоторыми параметрами), определяющей действия, которые должны быть обработаны. Примером этого является:  "android.provider.Telephony.SMS_RECEIVED"

Можно просто слушать о этом Intent, написав 5 строк определений. Затем до системы дойдет, что есть более чем одно приложение, которое хочет обрабатывать этот Intent, и она попросит пользователя выбрать, какое из приложений будет обрабатывать этот Intent.

 Разрушение ограничений приложения

"Android разрушает барьеры к созданию новых и новаторских приложений. Например, разработчик может объединить информацию из Интернета с данными на мобильном телефоне - такими, как контакты пользователя, календарь, или географическое расположение - и обеспечить показ информации, более соответствующий пользователю. С Android, разработчик может создать приложение, которое будет позволять пользователям просматривать расположение своих друзей и предупреждать, когда они находятся в непосредственной близости, давая им возможность пообщаться".

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

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

После революции Web 2.0, создание наполненных информацией приложений в течение минут больше не является иллюзией. Андроид принес в разработку неизвестные скорости. Позвольте мне показать пример: Недавно я споткнулся об умное слово ‘DrivingDirections’ в документации андроида.

Подумал-сделал.

 

Google реализация DrivingDirections в Андроид.

Процесс разработки приложения в изображении выше занял приблизительно полтора часа! (Включая простой пользовательский интерфейс и все изображения, которые Вы видите). Можно было создать такое сложное приложение на любой другой мобильной платформе? - Нет.

Дополнительно в это приложение могло быть добавлено определение текущей позиции устройства через GPS с совсем небольшим количеством строк. Google подчеркивает мощность навигации Андроида на основе служб местоположения. Карты Google являются настолько четкими в пределах Андроида, как будто они был разработаны только для Андроида. Можно интегрировать, полностью изменяют масштаб изображения и перетаскивают карту, добавляя только три (!) символа в java-коде стандартного приложения Андроида и три строки XML-кода. Другими хорошими особенностями, которые удобны с Андроидом, являются Анимации и воспроизведение музыки. Начиная с версии m5 Андроид SDK содержит функции для прямого и обратного Геокодирования и, в дополнение к mp3, воспроизведения: ogg, MIDI и некоторых других форматов. 

Первые недели

К сожалению разработчики должны были иметь дело с не полностью осуществленным preview-SDK (первая версия, билд 'm3-rc20'), где некоторые ключевые части SDK даже были плохо зарегистрированы. Была острая нехватка документации, заявление от Google:

“Если оно не было документировано - оно еще не претендует на работу.“ 

Многие из разработчиков не понимали, что первые выпущенные SDK были предварительными просмотрами разработчика, где должны были ожидаться изменения в API.

Другим раздражающим багом был изменчивый звук эмулятора, который, было сказано, пофиксен в билде 'm3-rc37a' приблизительно 4 недели спустя, но все еще случался на некоторых установках до m5.

Dalvik.equals (Java) == false

Почему “Dalvik”? - Виртуальную машину Dalvik назвал Bornstein в честь рыбацкой деревни Dalvik в Исландии, где некоторые из его предков жили.

Dalvik - название виртуальной машины Андроида. Это - виртуальная машина только для интерпретатора, которая выполняет файлы в Dalvik Executable (*.dex) формате, формате, который оптимизирован для эффективной памяти и распределяемого памятью выполнения. Виртуальная машина основана на регистре, и она может выполнить классы, откомпилированные языковым компилятором Java, которые были преобразованы в его родной формат с использованием включенного "dx" инструмента. VM запущена на Linux 2.6 ядре, чтобы лежать в основе функциональных возможностей (таких как организация поточной обработки и управление памятью низкого уровня). DalvikVM был также оптимизирован, чтобы работать во множественных экземплярах класса с памятью низкого уровня. Несколько VMs защищают приложение от разрушения другим разрушенным Приложением.

Отличия от обычной JavaVM

JavaVM, которого можно найти на почти всех настольном компьютере в настоящее время, является основанной на стеке Виртуальной Машиной (VM). DalvikVM, с другой стороны основанный регистр, потому что мобильные процессоры оптимизированы для основанного на регистре выполнения. Также основанные на регистре VMs позволяют более быстрое время выполнения за счет программ, которых больше после трансляции.



Поиск по сайту