Обзор книги «Программирование под Android»

    Программирование под Android
    image
    Автор — З. Медникс, Л. Дорнин, Б. Мик, М. Накамура
    Перевод — О. Сивченко
    Дата выхода — 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, не совсем понятно лишь выбранное авторами членение книги по главам. Некоторые темы слишком сложны, чтобы рассматривать их в первых главах, в других главах вместе рассматриваются довольно далекие друг от друга темы. Хотелось бы порекомендовать авторам, чтобы при написании новых книг они старались логично и последовательно переходить от менее сложных тем к более сложным.

    Поделиться публикацией
    Похожие публикации
    Комментарии 19
    • +2
      Есть такой тег — .

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

        Итак, книга показалась мне очень толковым введением в разработку под Android

        судя по главам, книга ничем не отличается от десятка других «вводных», я то уж думал что-то серьезное будет.
        • +1
          Съел зараза, ""
          • +9
            Все они одинаковые — сначала пособие для умственно отсталых на 20 страниц о том, как установить сдк, потом по несколько страниц на описание каждого виджета в стиле «Button — это кнопка, у нее есть текст и на нее можно нажимать..», потом еще 50 страниц о SQL, которые являются пересказом первой ссылки гугла (http://www.vogella.com/articles/AndroidSQLite/article.html), еще немного воды и книжка заканчивается.
            • 0
              Это вполне естественно, потому что ни о чем большем сам автор как бы не знает :). Ему сказали книгу написать — он прочел википедию, прочел тюториалы на сайте — и пересказал своими словами. Это совершенно разные компетенции — уметь хорошо программировать и уметь хорошо писать книги. Случаи, когда эти две компетенции пересекаются, можно пересчитать по пальцам одной руки.
              • +1
                Разве можно так судить, не держав книги в руках? Если у вас есть какие-то предложения/замечания или вы хотите сами написать книгу, пишите нам на email.
                • +3
                  У меня есть смутное подозрение, что я прочел очень много книг по разработке. Читаю я их последние лет десять, каждый месяц по штуке примерно.

                  Какие конкретно произведения вы имеете в виду под вашим "книги", относительно которых поддержанное мной суждение «все они одинаковые» неверно? Если конкретно про эту книгу, то указано четыре автора, трудно сказать кто ее на самом деле писал, а кого для солидноти в соавторы записали. Есть подозрение что первый указанный в списке — у него как раз единственное место работы «технический директор», сейчас работает «консультантом по вопросам разработки под android» (книги пишет?).

                  P.S. Я тут недавно дочитал последний «Programming Windows» Пэтзольда. Что могу сказать — одним исключением стало меньше. Дословный пересказ MSDN на восьмистах страницах, начинается с «вот у нас кнопочка, ей можно задавать текст» и заканчивается «виджет канвас — последний рассмотренный нами виджет. Удачного вам программирования под Windows 8!». У вас эта кника выйдет в переводе примерно через полгода, я так понимаю.
                  • 0
                    Ваш опыт впечатляет) Если есть желание, можем вам предоставить какую-нибудь книгу Питера для написания рецензии.
                    • 0
                      Спасибо за лестное предложение, но лучше не надо. У меня и так вокруг полно желающих откусть кусочек моего времени :(.
            • 0
              Господа, а где искать инфу по «кишкам» андроида? Форумы уже взрывают мне мозг…
              А надо-то — всего лишь найти как хук повесить на включение/выключение 3G.
              • 0
                Думаю стоит погуглить по поводу PhoneStateListener и DATA_CONNECTION_STATE
                • 0
                  Мне надо хук в системную, а не «фоновое приложение»
              • +1
                «Монотонно забитый в угол текст» — иначе не сказать…

                Ну пользуйтесь заголовками, лишними Enter'ами в конце концов…
                • 0
                  я так и не понял, книгу стоит покупать или нет?
                  • 0
                    Стерх на обложке крут.
                    • 0
                      на 250-й странице ссылка на Хабру в комментарии переводчика :)
                      • 0
                        А там, случайно, не описано, как собирать приложения под Андроид без среды, средствами командной строки?
                        Мне использование IDE дается очень тяжело, а мысли, что хорошо бы дописать для своего планшета, периодически появляются.

                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                      Самое читаемое