Read more
Provides information on building Android applications for enterprise systems.
List of contents
INTRODUCTION xix
CHAPTER 1: DEVELOPING FOR ANDROID TABLETS AND SMARTPHONES 1
Android Is a Java Operating System 2
Your Tools and Your First Android App 2
Prerequisites and Getting Ready 2
Toolchain Test Drive 4
One Code-Base for All Types of Devices 4
Getting Started with the Code Framework Example 5
Automatically Adapting to Screen Size 10
Components, Views, and Lifecycle 11
Destroying and Re-Creating Components 11
The Main Activity Class 12
Activity: The Basic Unit of User Interaction 12
Fragment: A Tool for Organizing Code and UI 17
The Pick Fragment Class 18
The Item Fragment Class 22
The Item Detail Fragment Class 25
Tying Together Activities, Fragments, and the Action Bar 25
The Tabbed Activity Class 25
A Main.xml File for Large Tablets 28
A Main.xml and a Subsidiary Activity for Smaller Screens 29
The Tab Activity Class 30
The Android Task and Process Model 33
Starting Dalvik Instances 34
Death, but No Transfi guration 34
Tasks Span Applications and Processes 35
Multiprocessing, Security, and Lifecycle 35
The Process and User ID as Security Boundary 36
Declaring Application Properties 36
Summary 37
CHAPTER 2: THE RELATIONAL MODEL AND SQLITE 39
Databases and the Relational Model 40
The History of the RDBMS 41
The Relational Model 41
Other DBMS Features 43
The SQL Language 45
Introduction to SQLite 48
SQLite from the Command Line 49
An Example SQLite Database 53
Summary 58
CHAPTER 3: ANDROID DATABASE SUPPORT 59
SQL in Java: The SQLiteDatabase Class 60
Basic SQL Embedding 60
Syntactic SQL 61
Creating a Database: The SQLite Open Helper Class 67
Managing a Database 71
Cursors, Loaders, and Adapters 73
Cursors 74
Adapters and View Binders 76
Loaders 79
Summary 81
CHAPTER 4: CONTENT PROVIDERS 83
Using a Content Provider 84
URIs as Names for Virtual Datasets 84
Content Resolvers: The Link between Clients and Providers 85
Content Observers: Completing the Loop 87
IPC: System-Wide Accessibility 89
The Contract: URIs and Types 90
Authority 91
Virtual Table URIs 93
Return Value MIME Types 94
Permissions 94
Publishing the Contract 95
Implementing the Content Provider 95
Creating the Content Provider 96
Return Types and the URI Matcher 97
Writing the Database 98
Database Queries 101
Content Observers (Again) 105
Permissions and Registration 106
Content Providers and Files 109
Summary 114
CHAPTER 5: REST, CONTENT PROVIDERS, CONCURRENCY, NETWORKING, AND SYNC ADAPTERS 115
Basic REST 116
Why REST? 117
REST over HTTP 118
An Example REST API 120
Contact Representation 120
Contact Methods and URIs 122
Contact Transactions 122Android Networking 125
The Apache Libraries 125
The java.net Libraries 126
Permissions 128
Considering Concurrency and Lifecycles 128
The Android Concurrency Architecture 128
A Naive Request 129
An Architecture for Robust Networking 131
Approach 1: Service-Centric 131
Approach 2: ContentProvider-Centric 133
Approach 3: SyncAdapter-Centric 135
REST within Android 135
The restfulCachingProviderContacts Project: An Example Client 136
Adding a Contact 138
Using Sync Adapters 143
Android Account Management 144
Creating a Sync Adapter 155
Summary 165
CHAPTER 6: SERVICE DEVELOPMENT 167
A Choice for Service Development 168
The Lifecycle of a Request 168
Three-Tier Service Architecture 169
Service Development Background 169
Building a RESTful Service for Contacts 172
A Conservative Software Stack 172
Writing the Examples: Spring Contacts Service
and Its Synchronization Variant 175
Code Example: Spring Sync Contacts Service 195
Summary 202
CHAPTER 7: MOBILE AND THE CLOUD 205
Cloud Performance and Scalability 206
The Scale of Mobile 207
Persistence in the Cloud: From SQL to NoSQL 208
Database File For