Программирование под Android
Автор – З. Медникс, Л. Дорнин, Б. Мик, М. Накамура
Перевод – О. Сивченко
Дата выхода – 11.05.12
Представляем вашему вниманию одну из переводных новинок нашего издательства, книгу «Программирование под Android».
Для начала – несколько слов об авторах данного мануала.
Зигурд Медникс – консультант, сотрудничает с ведущими изготовителями комплектного оборудования, корпорациями и другими предприятиями, занимающимися созданием систем на базе Android.
Лейрд Дорнин – старший инженер, работающий на крупном мобильном операторе, имеет богатейший опыт работы с Java, Android, J2ME, SavaJe и WebKit.
Дж. Блейк Мейке – разработчик-ветеран с огромным опытом написания приложений Java для ряда мобильных и серверных платформ.
Масуми Накамура – главный архитектор в группе по работе с большими данными и рекомендациям, работает в компании Where.Inc.
На оригинальной обложке печатного труда сих почтенных авторов сказано: «Если вы программист, обладающий средним или обширным опытом, то при помощи этой книги вы научитесь писать прекрасные приложения для Android». Но к аннотациям, как к текстам априори рекламного характера, часто относятся скептически. Посему проиллюстрируем достоинства и недостатки данного издания выдержками из рецензии американского блоггера Хексера Андерсона. Автор данной рецензии анализирует книгу «поглавно», полный англоязычный вариат можно прочитать здесь.
В течение последних полутора лет программирование под Android – это основная статья моих доходов. Но меня не оставляет ощущение, что во Фреймворке Android по-прежнему остаются некоторые аспекты, которые я когда-то пропустил, либо с которыми еще не сталкивался на практике. Благодаря iSyncr WiFi и Cheetah Sync , мне довелось вволю позаниматься работой с сетями, передачей файлов и разработкой для iTunes. Кроме того, в моем послужном списке – солидный объем разработки пользовательских интерфейсов, работы с фрагментами и т.д. Но я не уверен, что действительно знаю всё, что следует знать разработчику Android. Поэтому, я и купил эту книгу, чтобы устранить пробелы в знаниях.
Новичков своего дела должно порадовать наличие в книге материала, посвященного установке интегрированной среды Eclipse и комплекта для разработки в Android – Android SDK – на вашей рабочей машине. Авторы делают краткое введение, описывая создание программы «Hello World» для Android.
Вторая глава книги, «Java для Android», лично меня весьма порадовала. Прежде, чем заняться разработкой под Android, я имел дело, в основном, с C++ и .NET. А в этой главе я нашел целую массу любопытнейшей информации по Java – одновременно и полезной, и очень интересной.
В третьей главе довольно обстоятельно рассматриваются основные компоненты, из которых состоит приложение Android: активности (activity), намерения (intent), задачи (task), сервисы (service) и поставщики содержимого (content provider), а также излагается базовая информация о файле описания программы Android – который также называется «файл манифеста», о ресурсах приложения и о жизненном цикле программы.
В четвертой главе речь идет, в основном, о подписывании приложения и о цифровых сертификатах. Излагается некоторая базовая информация об отправке приложения на рынок Android Market (Google Play.). Вскользь упоминается о поддержке экранов с различными разрешениями. Однако здесь не слишком подробно рассмотрены детали того, как именно оптимизировать приложение для работы с различными разрешениями экрана и разной пиксельной плотностью.
Глава, «Среда Eclipse для разработки программ в Android», в сущности, является трактатом о различных «перспективах» Eclipse, которыми вы можете воспользоваться при написании или отладке вашего кода. Опытные пользователи Eclipse вполне могут пропустить эту главу. Однако здесь упоминается «статический анализатор» для поиска ошибок в вашем приложении – этот инструмент называется «FindBugs.»
Шестая глава называется «Эффективное использование Java для Android», самая интересная ее часть касается параллелизма и использования потоков в Android. При разработке под Android действует железное правило: не выполнять долгосрочных операций в потоке пользовательского интерфейса, чтобы пользователь не получал постоянных сообщений «Application Not Responding» (Приложение не отвечает). Итак, в этой главе обсуждается, как пользоваться AsyncTask для выполнения «медленных» операций в новом потоке – чтобы не блокировать поток пользовательского интерфейса. Кроме того, здесь затрагиваются вопросы сериализации и работы с объектами Parcelable – это важные концепции, которые необходимо освоить для разработки под Android. Тем не менее, кажется странным, что параллелизм и сериализация рассмотрены в одной главе.
К обсуждению видов и к разговору о том, как они используются для создания пользовательского интерфейса приложения, авторы приступают только в седьмой главе. Кажется, что эту информацию следовало дать гораздо раньше. Так или иначе, в этой главе рассматриваются вопросы компоновки видов, в частности, макет LinearLayout. Удивляет то, что, несмотря на название главы, «Создание вида», она в основном посвящена реализации архитектуры MVC в Android.
Касательно главы «Фрагменты и многоплатформенная поддержка». Не понятно, каким образом она связана с многоплатформенной поддержкой –поскольку она целиком посвящена фрагментам. Вряд ли эта глава должна стоять именно здесь. Всё-таки, фрагменты – сравнительно сложный элемент пользовательского интерфейса, а авторы рассматривают ее, едва познакомившись с видами и разобравшись с обратными вызовами событий? Кроме того, эта глава сравнительно короткая.
Десятая глава рассказывает, в основном, о том, как в Android реализована встроенная поддержка базы данных SQLite. Эта система нужна для долговременного хранения данных вашего приложения в реляционной базе данных и для их получения оттуда. В отличие от некоторых предыдущих глав, эта глава является обязательным чтением для каждого начинающего разработчика Android, и изучить ее нужно как можно оперативнее.
Следующая глава посвящена жизненному циклу активностей и фрагментов. Кроме того, здесь объясняется, как правильно сохранять и восстанавливать состояния во время жизненного цикла. Здесь также рассматривается интересный материал о поведении задач (и способы их запуска). О флагах намерений рассказано недостаточно хорошо. Тем не менее, это совсем не плохая глава, если не считать ее названия «Каркас работоспособного приложения».
Несколько глав книги посвящены «продвинутым» темам, в частности, воспроизведению и записи видео и аудио в Android, обнаружению местоположения и работе с картами, сенсорам, коммуникации ближнего поля, речи, жестам, доступности и т.д.
В семнадцатой главе рассматриваются две довольно разные темы. Во-первых, приводится пример того, как можно синхронизировать контактные данные вашего приложения с удаленной службой. Во-вторых, рассматриваются вопросы использования Bluetooth в вашем приложении. Не очень понятно, почему две эти темы оказались в одной главе, но, поскольку в других источниках первая тема раскрыта достаточно скупо, эту главу стоит прочесть.
Заключительная глава «Комплект для нативной разработки в Android (NDK)» – одна из моих любимых частей книги. В этой главе тема NDK практически не раскрыта. Все ограничивается кратким рассказом о том, как загрузить этот комплект, после чего вам предлагается просто опробовать его в своих приложениях. Допустим, но ведь разработчик сначала должен научиться работе с NDK, и лишь потом «опробовать» его. В этой главе рассказано, как и для чего следует использовать такой комплект. Глава краткая и легко читается.
Итак, книга показалась мне очень толковым введением в разработку под Android, не совсем понятно лишь выбранное авторами членение книги по главам. Некоторые темы слишком сложны, чтобы рассматривать их в первых главах, в других главах вместе рассматриваются довольно далекие друг от друга темы. Хотелось бы порекомендовать авторам, чтобы при написании новых книг они старались логично и последовательно переходить от менее сложных тем к более сложным.
Книга на www.piter.com
Книга на www.ozone.ru
Автор: ph_piter