Head first программ для android
Всем привет! Мы недавно издали обновлённый труд Дэвида Гриффитса и Дона Гриффитса. Предлагаем ознакомится с 19 главой «Связанные службы»
Запускаемые службы отлично подходят для фоновых операций — а если вам нужна служба с большей интерактивностью? В этой главе вы научитесь создавать связанные службы — разновидность служб, с которыми могут взаимодействовать ваши активности. Вы узнаете, как выполнить привязку к службе и как отменить ее после завершения работы для экономии ресурсов. Служба позиционирования Android поможет вам получать информацию местонахождения от GPS-приемника вашего устройства. Наконец, вы научитесь пользоваться моделью разрешений Android, включая обработку запросов разрешений во время выполнения.
Связанные службы привязываются к другим компонентам
Как упоминалось в главе 18, запускаемая служба начинает работу при передаче интента. Она выполняет код в фоновом режиме и останавливается при завершении операции. Такие службы продолжают выполняться даже в том случае, если запустивший их компонент уничтожается.
Связанная служба привязывается к другому компоненту — например, к активности. В отличие от запускаемых служб, компонент может взаимодействовать со связанной службой и вызывать ее методы.
Чтобы увидеть, как работают связанные службы, мы создадим новое приложение со связанной службой, которая, словно одометр, измеряет пройденное машиной расстояние. Для измерения расстояния будет использоваться служба позиционирования Android:
Что мы собираемся сделать
Создание проекта Odometer
В этом коде реализуется единственный метод onBind(), который вызывается, когда компонент (например, активности) выдаст запрос на связывание со службой. Метод получает один параметр Intent и возвращает объект IBinder. Интерфейс IBinder используется для связывания службы с активностью; вы должны предоставить его реализацию в коде своей службы. Сейчас вы узнаете, как это делается.
Реализация IBinder
Чтобы реализовать IBinder, добавьте в код службы новый внутренний класс, который расширяет класс Binder (реализующий интенфейс IBinder). Внутренний класс должен включать метод, используемый активностями для получения ссылки на связанную службу.
Мы определим класс OdometerBinder, который используется MainActivity для получения ссылки на OdometerService. Код ее определения выглядит так:
Мы написали весь код службы, необходимый для связывания MainActivity с OdometerService.
Теперь добавим в службу новый метод, с которым она будет возвращать случайное число.
Добавление метода getDistance()
В класс OdometerService будет добавлен код с именем getDistance(), который будет вызываться нашей активностью. Пока он будет возвращать случайное число, а позднее мы обновим его так, чтобы он использовал службу позиционирования Android.
Ниже приведен полный код OdometerService.java; внесите в свою версию
изменения, выделенные жирным шрифтом:
Теперь обновим класс MainActivity для использования OdometerService.
Обновление макета MainActivity
Следующий шаг в построении приложения — связывание активности MainActivity со службой OdometerService и вызов ее метода getDistance(). Начнем с добавления надписи в макет
MainActivity. В ней будет выводиться число, возвращенное методом getDistance() класса OdometerService.
Измените свою версию разметки activity_main.xml и внесите изменения, выделенные жирным шрифтом:
Привет, Хаброжители! Мы пополнили серию «Head First O'Reilly» новой книгой:
В этой книге мы научим вас разрабатывать собственные приложения, а также покажем, как построить простое приложение и запустить его на виртуальном устройстве Android. Вы узнаете, как структурировать приложения, познакомитесь с дизайном интерфейсов, научитесь создавать базы данных, заставите работать свои приложения на любых смартфонах и планшетах. Попутно будут рассмотрены основные компоненты приложений Android — такие, как активности и макеты. Все, что от вас потребуется, — некоторые базовые знания Java.
Для кого написана эта книга?
Если вы ответите «да» на все следующие вопросы:
1. Вы уже умеете программировать на Java?
2. Вы хотите достичь мастерства в области разработки приложения для Android, создать следующий бестселлер в области программных продуктов, заработать целое состояние и купить собственный остров?
3. Вы предпочитаете заниматься практической работой и применять полученные знания вместо того, чтобы выслушивать нудные многочасовые лекции?
тогда эта книга для вас.
Кому эта книга не подойдет?
Если вы ответите «да» на один из следующих вопросов:
1. Вам нужен краткий вводный курс или справочник по разработке приложений для Android?
2. Вы скорее пойдете к зубному врачу, чем опробуете что-нибудь новое? Вы считаете, что в книге по Android не должно быть веселых человечков, а если читатель будет помирать со скуки — еще лучше?
… эта книга не для вас.
Эта книга для тех, кто хочет учиться.
Как мы что-то узнаем? Сначала нужно это «что-то» понять, а потом не забыть. Затолкать в голову побольше фактов недостаточно. Согласно новейшим исследованиям в области когнитивистики, нейробиологии и психологии обучения, для усвоения материала требуется что-то большее, чем простой текст на странице. Мы знаем, как заставить ваш мозг работать.
Основные принципы серии «Head First»:
Наглядность. Графика запоминается лучше, чем обычный текст, и значительно повышает эффективность восприятия информации (до 89 % по данным исследований). Кроме того, материал становится более понятным. Текст размещается на рисунках, к которым он относится, а не под ними или на соседней странице — и вероятность успешного решения задач, относящихся к материалу, повышается вдвое.
Разговорный стиль изложения. Недавние исследования показали, что при разговорном стиле изложения материала (вместо формальных лекций) улучшение результатов на итоговом тестировании достигает 40 %. Рассказывайте историю, вместо того чтобы читать лекцию. Не относитесь к себе слишком серьезно. Что привлечет ваше внимание: занимательная беседа за столом или лекция?
Активное участие читателя. Пока вы не начнете напрягать извилины, в вашей голове ничего не про-изойдет. Читатель должен быть заинтересован в результате; он должен решать задачи, формулировать выводы и овладевать новыми знаниями. А для этого необходимы упражнения и каверзные вопросы, в решении которых задействованы оба полушария мозга и разные чувства.
Привлечение (и сохранение) внимания читателя. Ситуация, знакомая каждому: «Я очень хочу изучить это, но засыпаю на первой странице». Мозг обращает внимание на интересное, странное, притягательное, неожиданное. Изучение сложной технической темы не обязано быть скучным. Интересное узнается намного быстрее.
Обращение к эмоциям. Известно, что наша способность запоминать в значительной мере зависит от эмоционального сопереживания. Мы запоминаем то, что нам небезразлично. Мы запоминаем, когда что-то чувствуем. Нет, сантименты здесь ни при чем: речь идет о таких эмоциях, как удивление, любопытство, интерес и чувство «Да я крут!» при решении задачи, которую окружающие считают сложной — или когда вы понимаете, что разбираетесь в теме лучше, чем всезнайка Боб из технического отдела.
Примите к сведению
Это учебник, а не справочник. Мы намеренно убрали из книги все, что могло бы помешать изучению материала, над которым вы работаете. И при первом чтении книги начинать следует с самого начала, потому что книга предполагает наличие у читателя определенных знаний и опыта.
Предполагается, что у вас уже есть опыт программирования на языке Java.
Мы будем строить приложения Android с использованием Java и XML. Предполагается, что вы уже знакомы с языком программирования Java. Если вы еще никогда не писали программы на Java, прочитайте Head First Java, прежде чем браться за эту книгу.
Мы начинаем строить приложения с первой главы.
Хотите — верьте, хотите — нет, но даже если вы никогда не программировали для Android, вы все равно можете сходу взяться за создание приложений. Заодно вы познакомитесь с Android Studio, основной интегрированной средой разработки для Android.
Упражнения ОБЯЗАТЕЛЬНЫ.
Упражнения являются частью основного материала книги. Одни упражнения способствуют запоминанию материала, другие помогают лучше понять его, третьи ориентированы на его практическое применение. Не пропускайте упражнения.
Повторение применяется намеренно.
У книг этой серии есть одна принципиальная особенность: мы хотим, чтобы вы действительно хорошо усвоили материал. И чтобы вы запомнили все, что узнали. Большинство справочников не ставит своей целью успешное запоминание, но это не справочник, а учебник, поэтому некоторые концепции излагаются в книге по нескольку раз.
Об авторах
Дон Гриффитс начала с изучения математики в одном из ведущих университетов Великобритании, где получила диплом с отличием. Затем она продолжила карьеру в области разработки программного обеспечения; ее опыт работы в IT-отрасли составляет 20 лет.
Прежде чем браться за книгу Head First. Программирование для Android, Дон написала уже три книги из серии Head First (Head First Statistics, Head First 2D Geometry и Head First C), а также участвовала в работе над другими книгами этой серии.
Когда Дон не работает над книгами серии Head First, она обычно совершенствует свое мастерство тай цзи, увлекается чтением, бегом, плетением кружев и кулинарией. Но больше всего ей нравится проводить время с ее замечательным мужем Дэвидом.
Дэвид Гриффитс увлекся программированием в 12 лет, после документального фильма о работе Сеймура Пейперта. В 15 лет он написал реализацию языка программирования LOGO, созданного Пейпертом. После изучения теоретической математики в университете он начал писать программы для компьютеров и статьи в журналах. Он работал преподавателем гибких методологий разработки, разработчиком и дежурным по гаражу (хотя и в другом порядке). Дэвид пишет программы на 10 языках и прозу на одном. А когда он не занят программированием, литературной работой или преподаванием, он проводит свободное время в путешествиях со своей очаровательной женой — и соавтором — Дон. До Head First. Программирование для Android Дэвид написал еще три книги из серии Head First: Head First Rails, Head First Programming и Head First C.
Научные редакторы
Эдвард Ю Шун Вон увлекается программированием с того момента, когда он написал свою первую строку кода Haskell в 2006-м. В настоящее время он работает над событийным управлением торговыми операциями в центре Лондона. Он щедро делится своей страстью к разработке с сообществами London Java Community и Software Craftsmanship Community. В свободное время Эдварда можно найти на футбольном поле или за подготовкой игровых обзоров для YouTube (@arkangelofkaos).
Тони Уильямс — разработчик с опытом программирования на языке Java и создания приложений для Android.
Более подробно с книгой можно ознакомиться на сайте издательства
Оглавление
Отрывок
Привет. Хаброжители! Go упрощает построение простых, надежных и эффективных программ. А эта книга сделает его доступным для обычных программистов. Основная задача Go — эффективная работа с сетевыми коммуникациями и многопроцессорной обработкой, но код на этом языке пишется и читается не сложнее чем на Python и JavaScript. Простые примеры позволят познакомиться с языком в действии и сразу приступить к программированию на Go. Так что вы быстро освоите общепринятые правила и приемы, которые позволят вам называть себя гофером.
Нулевые значения в массивах
Как и в случае с переменными, при создании массивов все содержащиеся в них значения инициализируются нулевым значением для типа, содержащегося в массиве. Так массив значений int по умолчанию заполняется нулями:
С другой стороны, нулевым значением для строк является пустая строка, так что массив строковых значений по умолчанию заполняется пустыми строками:
Нулевые значения позволяют безопасно выполнять операции с элементами массивов, даже если им не были присвоены значения. Например, в следующем массиве хранятся целочисленные счетчики. Любой элемент можно увеличить на 1 даже без предварительного присваивания значения, потому что мы знаем, что все значения счетчиков начинаются с 0.
При создании массива все содержащиеся в нем элементы инициализируются нулевым значением для типа, хранящегося в массиве.
Литералы массивов
Если вам заранее известны значения, которые должны храниться в массиве, вы можете инициализировать массив этими значениями в форме литерала массива. Литерал массива начинается как тип массива — с количества элементов в квадратных скобках, за которым следует тип элементов. Далее в фигурных скобках идет список исходных значений элементов массива. Значения элементов должны разделяться запятыми.
Эти примеры почти не отличаются от предыдущих, если не считать того, что вместо последовательного присваивания значений элементам массива весь массив инициализируется с использованием литерала массива.
Литералы массивов также позволяют использовать короткие объявления переменных с помощью :=.
Литералы массивов могут распространяться на несколько строк, но перед каждым переносом строки в коде должна стоять запятая. Запятая даже должна стоять после последнего элемента в литерале массива, если за ним следует перенос строки. (На первый взгляд этот синтаксис выглядит неуклюже, но он упрощает последующее добавление новых элементов в коде.)
Функции пакета «fmt» умеют работать с массивами
Когда вы занимаетесь отладкой кода, вам не нужно передавать элементы массивов Println и другим функциям пакета fmt один за одним. Просто передайте весь массив. Пакет fmt содержит логику форматирования и вывода массивов. (Пакет fmt также умеет работать с сегментами, картами и другими структурами данных, которые будут описаны позднее.)
Обращение к элементам массива в цикле
Вы не обязаны явно записывать целочисленные индексы элементов массивов, к которым обращаетесь в своем коде. В качестве индекса также можно использовать значение целочисленной переменной.
Это означает, что элементы массивов можно перебирать в цикле for. Цикл перебирает индексы массива, а переменная цикла используется для обращения к элементу с текущим индексом.
При обращении к элементам массивов через переменную необходимо действовать внимательно и следить за тем, какие значения индексов используются в программе. Как упоминалось ранее, массивы содержат конкретное число элементов. Попытка обратиться к индексу за пределами массива приводит к панике — ошибке, происходящей во время выполнения программы (а не на стадии компиляции).
Проверка длины массива функцией «len»
Написание циклов, которые ограничиваются только правильными индексами, сопряжено с определенным риском ошибок. К счастью, есть пара приемов, которые упрощают этот процесс.
Во-первых, вы можете проверить фактическое количество элементов в массиве перед обращением к элементу. Для этого можно воспользоваться встроенной функцией len, которая возвращает длину массива (количество содержащихся в нем элементов).
В цикле обработки всего массива можно воспользоваться функцией len для определения того, по каким индексам можно обращаться безопасно.
Безопасный перебор массивов в цикле «for. range»
В другом, еще более безопасном способе обработки всех элементов массива используется специальный цикл for. range. В форме с range указывается переменная для хранения целочисленного индекса каждого элемента, другая переменная для хранения значения самого элемента и перебираемый массив. Цикл выполняется по одному разу для каждого элемента в массиве; индекс элемента присваивается первой переменной, а значение элемента — второй переменной. В блок цикла включается код для обработки этих значений.
Эта форма цикла for не содержит запутанных выражений инициализации, условия и завершения. А поскольку значение элемента автоматически присваивается переменной, риск обращения к недействительному индексу массива исключен. Форма цикла for с range читается безопаснее и проще, поэтому именно она чаще всего встречается при работе с массивами и другими коллекциями.
Ниже приведен пример с выводом всех значений из массива нот, преобразованный для использования цикла for. range:
Цикл выполняется семь раз, по одному разу для каждого элемента в массиве notes. Для каждого элемента переменной index присваивается индекс элемента, а переменной note присваивается значение элемента. После этого мы выводим индекс и значение.
Для Хаброжителей скидка 25% по купону — Head First
По факту оплаты бумажной версии книги на e-mail высылается электронная книга.
Чтение технической литературы такого плана особо не отличается от чтения художественной литературы. Многие люди мне говорили: "Но там ведь нет сюжета! Как это можно читать? Оно же сухо, будешь там свои буковки печатать.". Доводит до умиления, что за развитие человека и его внутреннего мира они считают чтение исключительно художественной литературы. Что я могу сказать про эту книгу, материал изложенный в ней, авторов данной книги? Могу сказать то, что авторы постарались, и сделали действительно прекрасную книгу. Она подойдет всем, кто хочет связать свою жизнь с разработкой(программированием) под операционную систему Android. Подача материала производится путем "игры" с читателем, как и во всех книгах этой прекрасной серии. Чего только стоят разделы внутри глав "Поработай компилятором". Эта книга научила меня думать, эта книга, как и другие, которые я читал относящиеся к программированию, перестроили моё мышление в корне. Материал в книге подаётся последовательно, придерживаясь определенных рамок и знаний читателя. В качестве сравнения к получению знаний из книг этой серии, можно представить деревья, где каждая прочитанная книга является отдельным деревом, которые между собой взаимосвязаны. Сначала начинаешь с маленькой семечки, потом всё больше и больше это семя знаний начинает раскрываться, расти вверх и покрываться листвой. Каждый лист - отдельная тема, которую я знаю, и знаю прекрасно. Авторы этой книги сделали упор на графическом представлении книги и практических занятиях, которые читатель должен выполнять сам. Радует то, что это развивает понимание того, что ты делаешь, а не глухое зазубривание. Ты понимаешь, как читатель и разработчик, что от тебя требуется, и что ты должен сделать. И всё же, в этой книге присутствует доля сюжета - каждая глава начинается с приятной фотографии, с помощью которой раскрывается тема этой самой главы. Описываются разные "сюжетные линии" между взаимодействием разных частей программы с конкретными объектами, и таких деталей в книге очень много. Тем, кто не знает что прочитать, или чем напрягать свои мозги - советую к прочтению. Мне было действительно интересно читать эту книгу, а это один из главных критериев, по которым я читал и читаю до сих пор.
Прочитали это произведение? Помогите другим посетителям - поделитесь своим мнением о нем!
Система Android покорила мир. Все хотят иметь планшет или смартфон, а устройства на базе Android — самые популярные в мире. В этой книге мы научим вас разрабатывать и запускать приложения. Вам уже пришла в голову гениальная идея? Дело за малым — воплотить ее в жизнь. Вы научитесь правильно формировать структуру приложений, проектировать гибкие и интерактивные интерфейсы, запускать службы в фоновом режиме, обеспечивать работу на разных устройствах и многое другое. Все, что от вас требуется, — базовые знания Java.
Отзывы
Wild goose
Читатель
Популярные книги
Теперь я второкурсница в лучшей академии магии. Особенность моего дара — я не вижу магические иллю.
Лучшая академия магии, или Попала по собственному желанию. Часть 3. Новые правила
Джон Эйкафф Начни. Врежь страху по лицу, перестань быть «нормальным» и займись чем-то стоящим И.
Начни. Врежь страху по лицу, перестань быть «нормальным» и займись чем-то стоящим
Все было как в бреду: и подъехавшая скорая помощь, врачи которой буквально силой вырвали у меня из .
Камень Книга восьмая
СОТНЯ. После опустошительной атомной войны спасшиеся остатки человечества живут на космических .
Сотня. Трилогия (ЛП)
Ренсом Риггз Дом странных детей Сна нет, и смерти тоже нет. Те, кто как будто умер, живы. .
Дом странных детей
Уличный кот по имени Боб .
Уличный кот по имени Боб
Здравствуй, дорогой незнакомец. Книга "Head First. Программирование для Android. 2-е изд." Гриффитс Дэвид Марк не оставит тебя равнодушным, не вызовет желания заглянуть в эпилог. События происходят в сложные времена, но если разобраться, то проблемы и сложности практически всегда одинаковы для всех времен и народов. Гармоничное взаимодоплонение конфликтных эпизодов с внешней окружающей реальностью, лишний раз подтверждают талант и мастерство литературного гения. Очевидно-то, что актуальность не теряется с годами, и на такой доброй морали строится мир и в наши дни, и в былые времена, и в будущих эпохах и цивилизациях. Долго приходится ломать голову над главной загадкой, но при помощи подсказок, получается самостоятельно ее разгадать. С невероятным волнением воспринимается написанное! – Каждый шаг, каждый нюанс подсказан, но при этом удивляет. Финал немножко затянут, но это вполне компенсируется абсолютно непредсказуемым окончанием. Обильное количество метафор, которые повсеместно использованы в тексте, сделали сюжет живым и сочным. Казалось бы, столь частые отвлеченные сцены, можно было бы исключить из текста, однако без них, остроумные замечания не были бы столь уместными и сатирическими. Созданные образы открывают целые вселенные невероятно сложные, внутри которых свои законы, идеалы, трагедии. Удивительно, что автор не делает никаких выводов, он радуется и огорчается, веселится и грустит, загорается и остывает вместе со своими героями. "Head First. Программирование для Android. 2-е изд." Гриффитс Дэвид Марк читать бесплатно онлайн необычно, так как произведение порой невероятно, но в то же время, весьма интересно и захватывающее.
- Размещено 25.03.2019
- Тип размещения: Бесплатно
Новинки
Я влип! Мало того, что сам чуть не сдох и теперь не могу предупредить своего повелителя про зреющ.
Читайте также: