Android. Разработка приложений для чайников

Android. Разработка приложений для чайников
Автор: Донн Фелкер, Джошуа Доббс
Год: 2012
ISBN: 978-5-8459-1748-5
Страниц: 336
Язык: Русский
Формат: PDF
Размер: 10 Мб

Download

В наше время миллиарды пользователей носят в кармане портативные устройства, и в половине из них установлена операционная система Android. Даже если вы никогда не разрабатывали приложения для мобильных устройств, прочитав эту книгу, вы сможете воплотить свои невероятные идеи в современные приложения для платформы Android. Здесь вы найдете подробные инструкции по загрузке и установке среды разработки и созданию приложений для Android. Прочитайте книгу и станьте настоящим профессионалом!
Добро пожаловать в Android! Научитесь создавать современные приложения для Android, использовать инструменты разработки, работать с экранами мобильных устройств и организовывать процесс разработки. Ваше приложение должно понравиться пользователям. Научитесь делать графический интерфейс приложения эстетически привлекательным и удобным для использования. Научитесь программировать приложения. Ознакомьтесь с жизненным циклом приложения и стандартными библиотечными классами Android. Научитесь пользоваться отладчиком Eclipse и эмулятором портативных устройств. Важны не только основы. Узнайте, как создавать приложения, взаимодействующие с базами данных SQLite и отображающие информацию на многих экранах. Назначьте цену и продайте свою разработку. Научитесь определять правильную цену собственным приложений и публиковать их в онлайн-магазине Android Market для продажи миллионам пользователей.
Основные темы книги:

  • Как применять акселерометр в приложении;
  • Как превратить ограничения мобильных устройств в их преимущества;
  • Как установить и сконфигурировать инструменты разработки;
  • Как программировать приложения (пошаговые инструкции);
  • Как создавать меню и элементы управления;
  • Как продвигать разработанные приложения на рынок.
+

При разработке приложений Android используется язык XML, однако и о нем вам нужно иметь лишь элементарное представление, потому что Eclipse автоматически генерирует документы XML, и вам остается только подставлять нужные значения атрибутов. Например, Eclipse не знает, какого цвета кнопка вам нужна, и по умолчанию делает ее серой. Замените слово gray (серый) значением red (красный) или green (зеленый), и можно считать, что вы умеете программировать для Android.

Платформа Android позволяет разрабатывать приложения для устройств самых разных типов, включая мобильные телефоны, электронные книги, плееры, нетбуки, устройства GPS (Global Positioning System — система глобального позиционирования) и др. В недалеком будущем этот список пополнится телевизорами — невероятно, правда?! Компания Google уже объявила о планах включить телевидение в набор своих услуг на платформе Android.

Конечно, прочитав эту книгу, вы не станете крупным специалистом в области разработки приложений для Android, но перед вами откроются широкие возможности. Запрограммировав свое первое приложение, вы создадите прочный фундамент для совершенствования мастерства и приобретения новых знаний. Данная книга представляет собой “концентрат” сотен или даже тысяч страниц технической документации по Android. Чтобы написать ее, я прочитал десятки учебников и извлек из них наиболее полезные методики, советы и трюки. Не воспринимайте книгу как сборник рецептов. Она предназначена для того, чтобы помочь вам собрать многочисленные фрагменты инфраструктуры Android в работоспособное интерактивное приложение.

Основы программирования для Android

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

В приложении Android почти все делается с помощью Java, однако в некоторых компонентах инфраструктуры применяются также документы XML и сценарии
Apache Ant. Я рекомендую, прежде чем начать читать данную книгу, ознакомиться с базовыми элементами XML. Вам нужно знать только структуру документа XML, дескрипторы и атрибуты, все остальное пока что не нужно. Выберите самую простую книгу по XML. Сценарии Ant вам знать пока что не нужно; в примерах книги я предоставлю готовые сценарии. Эти же сценарии вы можете использовать в качестве шаблона для создания собственных приложений Android. Если же вы хорошо знакомы с XML и Java, тем лучше. В любом случае смело приступайте к чтению книги и созданию своих первых приложений Android.

Java в приложениях Android

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

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

Асинхронные вызовы

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

Поток (thread) — это последовательность инструкций программы, выполняемых компьютером. Процесс — это тоже последовательность инструкций, а различие между ними состоит в том, что с каждым процессом ассоциирована изолированная область памяти, недоступная для других процессов, тогда как все потоки данного процесса имеют доступ к общей области памяти, принадлежащей данному процессу. Фактически процесс — это выполнение приложения, а потоки — одновременное выполнение многих операций в одном приложении. Асинхронным называется поток, выполняющийся в фоновом режиме, т.е. одновременно с другими потоками и независимо от них.

Асинхронные потоки применяются для решения длительных задач, таких, например, как загрузка большого файла, воспроизведение аудиоклипа, поиск чего-либо в Интернете и т.д. Вы не должны заставлять пользователя сидеть и ждать, пока завершится длительная задача. С помощью асинхронного потока предоставьте ему возможность заниматься в это время другими делами. Например, он может просматривать электронную почту или читать файл книги. Когда в фоновом потоке происходит чтолибо важное (например, завершение загрузки большого файла), поток должен известить об этом пользователя с помощью какого-либо элемента управления. Конечно, ничто не делается само по себе. Вы, как программист, обязательно должны создать этот элемент управления, иначе пользователь, не имеющий возможности узнать, закончилась ли загрузка файла, будет очень недоволен.

Как стать разработчиком приложений Android

Начать разрабатывать приложения Android — несложная задача. Фактически, это намного проще, чем вам сейчас кажется. Ответьте на следующие вопросы.

  • Хотите ли вы разрабатывать приложения Android?
  • Хотите ли вы бесплатно получить инструменты для разработки программного обеспечения?
  • Хотите ли вы бесплатно пользоваться библиотеками классов Android?
  • Есть ли у вас настольный компьютер?

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

Инфраструктура приложения

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

Язык Java

Язык программирования Java — превосходный инструмент, существенно облегчающий программирование приложений Android по сравнению с другими мобильными платформами. Большинство других языков для мобильных устройств не обладает мощными средствами, предоставляемыми языком Java. Например, работая с другими языками, вы будете вынуждены вручную управлять памятью, размещать байты и сдвигать биты. Ввиду малой мощности процессора в мобильных устройствах традиционно использовались низкоуровневые языки, программировать на которых значительно тяжелее и сложнее, чем на высокоуровневых языках. Ситуация радикально изменилась благодаря вторжению Java в мир мобильных устройств. JVM (Java Virtual Machine —виртуальная машина Java) установлена на каждом устройстве Android и позволяет применять для программирования приложений высокоуровневый язык Java. Программисту больше не нужно вручную отображать на экране каждый пиксель.

Разработка пользовательского интерфейса

И так, вы уже знаете, что такое Android, и способны создать простое приложение. Значит, мы можем перейти к самому интересному — к созданию реального приложения, которое можно использовать в повседневной жизни или опубликовать на сайте Android Market.

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

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

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

Кодирование приложения

В операционной системе Android деятельность (activity) — это программная реализация единой, конкретной операции, которую может выполнить пользователь. Например, деятельность может представлять на экране список элементов меню, доступных для пользователя, или отображать фотографии с заголовками. Приложение Android может состоять из одной деятельности, но большинство приложений состоит из нескольких. Деятельности могут взаимодействовать друг с другом, благодаря чему они выглядят как одно приложение, однако фактически независимы друг от друга. Деятельность — фундаментальный элемент инфраструктуры Android и жизненного цикла приложения, поэтому способ запуска деятельностей и принципы их взаимодействия — важная часть модели приложений. С программной точки зрения каждая деятельность — это реализация базового класса Activity.

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

Выход за границы приложения

Иногда устройство решает задачи, внешние по отношению к данному приложению, но тем не менее влияющие на него. Например, устройство может загружать
большой файл в фоновом режиме во время прослушивания музыки с помощью онлайн-радио. Нарушит ли процесс загрузки файла из Интернета работу приложения, воспроизводящего радиопередачу? Ответ на этот вопрос зависит от ряда факторов. Еще один вопрос: если приложению необходимо соединение с Интернетом и по какой-либо причине оно не может получить его, потерпит ли оно крах? Как оно отреагирует на невозможность получения доступа к Интернету? Эти и другие аналогичные вопросы я называю “выходом за границы приложения”.

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

Проектирование и создание приложения для мобильного устройства существенно отличается от решения этой же задачи для настольного компьютера. Причина этого простая: ресурсов у мобильного устройства (объем памяти, мощность процессора, разрешение экрана и т.п.) существенно меньше, чем у настольного. Если устройством Android является мобильный телефон, его главная задача — решение “телефонных” задач, таких как прием входящих звонков и SMS, включение сигнала, поддержка телефонной книги и пр.

Когда пользователь говорит по телефону, операционная система Android считает этот процесс главным. Если в это же время происходит загрузка файла в фоновом режиме, этот процесс считается второстепенным. Если более приоритетному процессу не хватает ресурсов, Android уничтожает менее приоритетные процессы. Файл всегда можно загрузить повторно, но если не ответить на телефонный звонок, последствия могут быть непоправимыми. Поэтому вы обязательно должны протестировать ситуацию, в которой приложение загрузки файла уничтожается в непредсказуемый момент времени по независящим от него причинам. Также протестируйте ситуации, в которых сигнал беспроводного канала связи становится слабым или пропадает. Соединение будет отключено и файл не загрузится. Продолжит ли приложение загрузку автоматически при восстановлении соединения? Протестируйте все возможные варианты
развития событий и обеспечьте правильную работу приложения в любой ситуации. В противном случае ваше приложение будет генерировать исключения времени выполнения, пользователи будут недовольны, и вы получите отрицательные отзывы на сайте Android Market.

Выбор правильной цены приложения

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

Это решение нужно принять перед публикацией приложения, потому что оно имеет психологические последствия для потенциальных пользователей и экономические последствия для вас. Если решите сделать приложение платным, назначьте ему оптимальную цену. Никто (и я в том числе) не сможет выбрать цену за вас, я могу лишь дать несколько советов, как человек более опытный в этом деле. Просмотрите аналогичные приложения на сайте Android Market. Ознакомление с ними и, конечно же, с их ценами поможет вам определить свою ценовую политику. На сайте Android Market вы увидите, что большинство приложений попадает в ценовой диапазон от 0,99 до 9,99 долларов. Приложения дороже 10 долларов встречаются довольно редко. Цена вашего продукта должна быть конкурентоспособной на фоне других, аналогичных продуктов. Если ваш продукт уникален, можете назначить более высокую цену, но тогда объясните потенциальным пользователям, чем он уникален. Ценовая политика — это игра, в которую вы должны включиться, чтобы найти оптимальную цену
для вашего приложения.

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