万本电子书0元读

万本电子书0元读

顶部广告

Asynchronous Android Programming - Second Edition电子书

售       价:¥

3人正在读 | 0人评论 9.8

作       者:Helder Vasconcelos

出  版  社:Packt Publishing

出版时间:2016-07-01

字       数:262.0万

所属分类: 进口书 > 外文原版书 > 电脑/网络

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
Unlock the power of multi-core mobile devices to build responsive and reactive Android applications About This Book Construct scalable and performant applications to take advantage of multi-thread asynchronous techniques Explore the high-level Android asynchronous constructs available on the Android SDK Choose the most appropriate asynchronous technique to implement your next outstanding feature Who This Book Is For This book is for Android developers who want to learn how to build multithreaded and reliable Android applications using high-level and advanced asynchronous techniques and concepts. No prior knowledge of concurrent and asynchronous programming is required. This book will also be great for Java experts who are new to Android. Whether you are a beginner at Android development or a seasoned Android programmer, this book will guide you through the most basic and advanced asynchronous constructs used in Android programming. What You Will Learn Get familiar with the android process model and low-level concurrent constructs delivered by the Android SDK Use AsyncTask and loader framework to load data in the background, delivering progress results in the meantime Create services that interact with your activity without compromising the UI rendering Learn the working of Android concurrency on the Native Layer Interact with nearby devices over Bluetooth and WiFi communications channels Create and compose tasks with RxJava to execute complex asynchronous work in a predictable way Get accustomed to the use of the Android Loader construct to deliver up-to-date results In Detail Asynchronous programming has acquired immense importance in Android programming, especially when we want to make use of the number of independent processing units (cores) available on the most recent Android devices. With this guide in your hands you’ll be able to bring the power of Asynchronous programming to your own projects, and make your Android apps more powerful than ever before! To start with, we will discuss the details of the Android Process model and the Java Low Level Concurrent Framework, delivered by Android SDK. We will also guide you through the high-level Android-specific constructs available on the SDK: Handler, AsyncTask, and Loader. Next, we will discuss the creation of IntentServices, Bound Services and External Services, which can run in the background even when the user is not interacting with it. You will also discover AlarmManager and JobScheduler APIs, which are used to schedule and defer work without sacrificing the battery life. In a more advanced phase, you will create background tasks that are able to execute CPU-intensive tasks in a native code-making use of the Android NDK. You will be then guided through the process of interacting with remote services asynchronously using the HTTP protocol or Google GCM Platform. Using the EventBus library, we will also show how to use the Publish-Subscribe software pattern to simplify communication between the different Android application components by decoupling the event producer from event consumer. Finally, we will introduce RxJava, a popular asynchronous Java framework used to compose work in a concise and reactive way. Asynchronous Android will help you to build well-behaved applications with smooth responsive user interfaces that delight the users with speedy results and data that’s always fresh. Style and approach This easy-to-follow guide is full of code examples of real-world use cases. Each asynchronous topic is explained sequentially, from the most basic and low-level to the more advanced, using concise and effective language. Some lifecycle flows and concepts feature illustrations to help you understand the complex interactions between Android entities.
目录展开

Asynchronous Android Programming Second Edition

Table of Contents

Asynchronous Android Programming Second Edition

Credits

About the Author

About the Reviewer

www.PacktPub.com

eBooks, discount offers, and more

Why subscribe?

Preface

What this book covers

What you need for this book

Who this book is for

Conventions

Reader feedback

Customer support

Downloading the example code

Errata

Piracy

Questions

1. Asynchronous Programming in Android

Android software stack

Dalvik runtime

ART runtime

Memory sharing and Zygote

Android process model

Process ranks

Process sandboxing

Android thread model

The main thread

The Application Not Responding (ANR) dialog

Maintaining responsiveness

Concurrency in Android

Correctness issues in concurrent programs

Liveness issues in concurrent programs

Thread coordination

Concurrent package constructs

Executor framework

Android primary building blocks

Activity concurrent issues

Manipulating the user interface

Service concurrent issues

Started services issues

Bound services issues

Service in a separate process

Broadcast receiver concurrent issues

Android concurrency constructs

Summary

2. Performing Work with Looper, Handler, and HandlerThread

Understanding Looper

Understanding Handler

Sending work to a Looper

Scheduling work with post

Using Handler to defer work

Leaking implicit references

Leaking explicit references

Updating the UI with Handler

Canceling a pending Runnable

Scheduling work with send

Cancelling pending messages

Composition versus inheritance

Multithreading with Handler and ThreadHandler

Looper message dispatching debugging

Sending messages versus posting runnables

Applications of Handler and HandlerThread

Summary

3. Exploring the AsyncTask

Introducing AsyncTask

Declaring AsyncTask types

Executing AsyncTasks

Providing indeterministic progress feedback

Providing deterministic progress feedback

Canceling an AsyncTask

AsyncTask Execution State

Handling exceptions

Controlling the level of concurrency

Common AsyncTask issues

Fragmentation issues

Memory leaks

Activity lifecycle issues

Handling lifecycle issues with early cancellation

Handling lifecycle issues with retained headless fragments

Applications of AsyncTask

Summary

4. Exploring the Loader

Introducing Loaders

Loader API

Loader

Loader Manager

LoaderManager.LoaderCallbacks

Loader lifecycle

Loading data with Loader

Building responsive apps with AsyncTaskLoader

Building responsive apps with CursorLoader

Combining Loaders

Applications of Loader

Summary

5. Interacting with Services

Introducing Service

Started service

Building responsive apps with IntentService

Handling results

Posting results with PendingIntent

Posting results as system notifications

Applications of IntentService

HTTP uploads with IntentService

Reporting progress

Bound Service

Communicating with a Local Service

Broadcasting results with intents

Detecting unhandled broadcasts

Applications of Services

Summary

6. Scheduling Work with AlarmManager

Introducing AlarmManager

Scheduling alarms with AlarmManager

Setting alarms in recent Android versions

Testing your alarms in Doze Mode

Setting a Window alarm

Debugging AlarmManager alarms

Canceling alarms

Scheduling repeating alarms

Scheduling an alarm clock

Handling alarms

Handling alarms with Activities

Handling alarms with BroadcastReceiver

Working with BroadcastReceiver

Asynchronous work with goAsync

Handling alarms with Services

Staying awake with WakeLocks

Resetting alarms after a system reboot

Applications of AlarmManager

Summary

7. Exploring the JobScheduler API

Introduction to JobScheduler

Setting running criteria

Scheduling a job

Implementing the JobService

Listing pending jobs

Canceling a job

Scheduling a periodic job

Applications of the JobScheduler

Summary

8. Interacting with the Network

Introducing Android HTTP clients

AndroidHttpClient

HttpURLConnection

Performing HTTP requests asynchronously

Retrieving a text response

Interacting with JSON web APIs

Converting Java objects to JSON

Interacting with XML web APIs

Converting Java objects to XML

Converting XML to Java objects

Customizing HTTP timeouts

Communicating securely over SSL sessions

Summary

9. Asynchronous Work on the Native Layer

Introduction to JNI

Android NDK (Native Development Kit)

Calling C functions from Java code

Calling C++ functions from native code

Accessing Java objects from native code

Executing native background work on Java threads

Executing asynchronous work on a native thread

Attaching and detaching native threads from JVM

JNI references explained

Interacting with UI from native threads

Starting the native threads

Stopping the native threads

Handling Java exceptions in the native layer

Interacting with a Java monitor from native code

Wrapping native data objects

Summary

10. Network Interactions with GCM

Introduction to GCM

Setting up and configuring GCM for your application

Registering the GCM Receiver

Setting up a registration service

InstanceID listener

Receiving downstream messages

Receiving messages from topic

Sending upstream messages

GcmListenerService delivery callbacks

Executing tasks with GCM Network Manager

Building a one shot task

Summary

11. Exploring Bus-based Communications

Introduction to bus-based communication

EventBus library

Defining events

Submitting events

Registering sbscribers

Thread mode

Posting sticking events

Removing sticky events

Summary

12. Asynchronous Programing with RxJava

Introduction to RxJava

Cold versus Hot Observable

RxJava setup

Creating Observables

Transforming Observables

Understanding Schedulers

Performing IO operations with Schedulers

Canceling subscriptions

Composing Observables

Monitoring the event stream

Combining Observables

Observing UI Events with RxJava

Working with Subjects

Summary

Index

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部