《Android编程 第2版 英文》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:Zigurd Mednieks,Laird Dornin,G.Blake Meike,Masumi Nakamura著
  • 出 版 社:南京:东南大学出版社
  • 出版年份:2013
  • ISBN:9787564142018
  • 页数:546 页
图书介绍:快速上手Android编程,学习如何创建适合于手持设备和平板电脑的最新用户体验。本次第二版进行了大范围的修订,从中你可以了解到Android工具和编程要点,包括使用Android 4 API的最佳实践。只要你熟悉Java或者Objective-C,你就能够搭建精心设计的应用。

PartⅠ.Tools and Basics 3

1. Installing the Android SDKand Prerequisites 3

Installing the Android SDK and Prerequisites 3

The Java Development Kit (JDK) 4

The Eclipse Integrated Development Environment (IDE) 5

The Android SDK 7

Adding Build Targets to the SDK 8

The Android Developer Tools (ADT) Plug-in for Eclipse 9

Test Drive: Confirm That Your Installation Works 12

Making an Android Project 12

Making an Android Virtual Device (AVD) 16

Running a Program on an AVD 19

Running a Program on an Android Device 20

Troubleshooting SDK Problems: No Build Targets 21

Components of the SDK 21

The Android Debug Bridge (adb) 21

The Dalvik Debug Monitor Server (DDMS) 21

Components of the ADT Eclipse Plug-in 23

Android Virtual Devices 25

Other SDK Tools 26

Keeping Up-to-Date 27

Keeping the Android SDK Up-to-Date 28

Keeping Eclipse and the ADT Plug-in Up-to-Date 28

Keeping the JDK Up-to-Date 29

Example Code 30

SDK Example Code 30

Example Code from This Book 30

On Reading Code 31

2. Java for Android 33

Android Is Reshaping Client-Side Java 33

The Java Type System 34

Primitive Types 34

Objects and Classes 35

Object Creation 35

The Object Class and Its Methods 37

Objects, Inheritance, and Polymorphism 39

Final and Static Declarations 41

Abstract Classes 45

Interfaces 46

Exceptions 48

The Java Collections Framework 51

Garbage Collection 55

Scope 55

Java Packages 56

Access Modifiers and Encapsulation 57

Idioms of Java Programming 59

Type Safety in Java 59

Using Anonymous Classes 62

Modular Programming in Java 64

Basic Multithreaded Concurrent Programming in Java 67

Synchronization and Thread Safety 68

Thread Control with wait() and notify() Methods 71

Synchronization and Data Structures 72

3. The Ingredients of an Android Application 75

Traditional Programming Models Compared to Android 75

Activities, Intents, and Tasks 77

Other Android Components 79

Service 79

Content Providers 80

BroadcastReceiver 83

Component Life Cycles 83

The Activity Life Cycle 83

On Porting Software to Android 85

Static Application Resources and Context 86

Organizing Java Source 87

Resources 88

Application Manifests 90

Initialization Parameters in AndroidManifest.xml 91

Packaging an Android Application: The .apk File 94

The Android Application Runtime Environment 94

The Dalvik VM 95

Zygote: Forking a New Process 95

Sandboxing: Processes and Users 95

The Android Libraries 96

Extending Android 98

The Android Application Template 98

Overrides and Callbacks 99

Polymorphism and Composition 101

Extending Android Classes 102

Concurrency in Android 104

AsyncTask and the UI Thread 105

Threads in an Android Process 116

Serialization 118

Java Serialization 119

Parcelable 120

Classes That Support Serialization 124

Serialization and the Application Life Cycle 125

4. Getting Your Application into Users' Hands 127

Application Signing 127

Public Key Encryption and Cryptographic Signing 127

How Signatures Protect Software Users, Publishers, and Secure Communications 129

Signing an Application 130

Placing an Application for Distribution in the Android Market 135

Becoming an Official Android Developer 135

Uploading Applications in the Market 136

Getting Paid 138

Alternative Distribution 139

Verizon Applications for Android 139

Amazon Applications for Android 141

Google Maps API Keys 143

Specifying API-Level Compatibility 144

Compatibility with Many Kinds of Screens 144

Testing for Screen Size Compatibility 145

Resource Qualifiers and Screen Sizes 145

5. Eclipse forAndroid Software Development 147

Eclipse Concepts and Terminology 148

Plug-ins 148

Workspaces 149

Java Environments 150

Projects 151

Builders and Artifacts 151

Extensions 151

Associations 153

Eclipse Views and Perspectives 153

The Package Explorer View 154

The Task List View 154

The Outline View 155

The Problems View 155

Java Coding in Eclipse 156

Editing Java Code and Code Completion 156

Re factoring 156

Eclipse and Android 158

Preventing Bugs and Keeping Your Code Clean 158

Static Analyzers 158

Applying Static Analysis to Android Code 163

Limitations of Static Analysis 166

Eclipse Idiosyncrasies and Alternatives 166

PartⅡ. About the Android Framework 166

6. Building a View 171

Android GUI Architecture 171

The Model 171

The View 172

The Controller 173

Putting It Together 173

Assembling a Graphical Interface 175

Wiring Up the Controller 180

Listening to the Model 182

Listening for Touch Events 187

Multiple Pointers and Gestures 190

Listening for Key Events 192

Choosing an Event Handler 193

Advanced Wiring: Focus and Threading 195

The Menu and the Action Bar 199

View Debugging and Optimization 202

7. Fragments and Multiplatform Support 205

Creating a Fragment 206

Fragment Life Cycle 209

The Fragment Manager 210

Fragment Transactions 211

The Support Package 216

Fragments and Layout 217

8. Drawing 2D and 3D Graphics 225

Rolling Your Own Widgets 225

Layout 226

Canvas Drawing 231

Drawables 242

Bitmaps 247

Bling 248

Shadows, Gradients, Filters, and Hardware Acceleration 251

Animation 253

OpenGL Graphics 258

9. Handling and Persisting Data 263

Relational Database Overview 263

SQLite 264

The SQL Language 264

SQL Data Definition Commands 265

SQL Data Manipulation Commands 268

Additional Database Concepts 270

Database Transactions 271

Example Database Manipulation Using sqlite3 271

SQL and the Database-Centric Data Model for Android Applications 275

The Android Database Classes 276

Database Design for Android Applications 277

Basic Structure of the SimpleVideoDbHelper Class 277

Using the Database API: MJAndroid 280

Android and Social Networking 280

The Source Folder (src) 282

Loading and Starting the Application 283

Database Queries and Reading Data from the Database 283

Modifying the Database 287

PartⅢ. A Skeleton Application for Android 295

10. A Framework for a Well-Behaved Application 295

Visualizing Life Cycles 296

Visualizing the Activity Life Cycle 296

Visualizing the Fragment Life Cycle 308

The Activity Class and Well-Behaved Applications 311

The Activity Life Cycle and the User Experience 311

Life Cycle Methods of the Application Class 312

11. Buildinga User Interface 315

Top-Level Design 316

Fragment, Activity, and Scalable Design 317

Visual Editing of User Interfaces 319

Starting with a Blank Slate 319

Laying Out the Fragments 323

Lay Out Fragments Using the Visual Editor 324

Multiple Layouts 325

Folding and Unfolding a Scalable UI 326

Decisions about Screen Size and Resolution 326

Delegating to Fragment Classes 330

Making Activity, Fragment, Action Bar, and Multiple Layouts Work To-gether 333

Action Bar 333

Tabs and Fragments 333

The Other Activity 336

12. Using Content Providers 341

Understanding Content Providers 342

Implementing a Content Provider 343

Browsing Video with Finch 344

Defining a Provider Public API 345

Defining the CONTENT_URI 346

Creating the Column Names 348

Declaring Column Specification Strings 348

Writing and Integrating a Content Provider 350

Common Content Provider Tasks 350

File Management and Binary Data 352

Android MVC and Content Observation 354

A Complete Content Provider: The SimpleFinchVideoContentProvider Code 355

The SimpleFinch Video ContentProvider Class and Instance Variables 355

Implementing the on Create Method 357

Implementing the getType Method 358

Implementing the Provider API 358

Determining How Often to Notify Observers 363

Declaring Your Content Provider 363

13. A Content Provider as a Facade for a RESTful Web Service 365

Developing RESTful Android Applications 366

A "Network MVC" 367

Summary of Benefits 369

Code Example: Dynamically Listing and Caching YouTube Video Content 370

Structure of the Source Code for the Finch YouTube Video Example 371

Stepping Through the Search Application 372

Step 1: Our UI Collects User Input 373

Step 2: Our Controller Listens for Events 373

Step 3: The Controller Queries the Content Provider with a managedQuery on the Content Provider/Model 374

Step 4: Implementing the RESTful Request 374

Constants and Initialization 375

Creating the Database 375

A Networked Query Method 375

insert and ResponseHandlers 388

File Management: Storing Thumbnails 390

PartⅣ. Advanced Topics 395

14. Search 395

Search Interface 395

Search Basics 395

Search Dialog 402

Search Widget 403

Query Suggestions 404

Recent Query Suggestions 404

Custom Query Suggestions 405

15. Location and Mapping 411

Location-Based Services 412

Mapping 413

The Google Maps Activity 413

The MapView and MapActivity 414

Working with MapViews 415

MapView and MyLocationOverlay Initialization 415

Pausing and Resuming a MapActivity 418

Controlling the Map with Menu Buttons 419

Controlling the Map with the Keypad 421

Location Without Maps 422

The Manifest and Layout Files 422

Connecting to a Location Provider and Getting Location Updates 423

Updating the Emulated Location 426

StreetView 430

16. Multimedia 433

Audio and Video 433

Playing Audio and Video 434

Audio Playback 435

Video Playback 437

Recording Audio and Video 438

Audio Recording 439

Video Recording 442

Stored Media Content 443

17. Sensors, NFC, Speech, Gestures, and Accessibility 445

Sensors 445

Position 447

Other Sensors 449

Near Field Communication (NFC) 450

Reading a Tag 451

Writing to a Tag 457

P2P Mode and Beam 459

Gesture Input 461

Accessibility 463

18. Communication, Identity, Sync, and Social Media 467

Account Contacts 467

Authentication and Synchronization 470

Authentication 471

Synchronization 478

Bluetooth 485

The Bluetooth Protocol Stack 485

BlueZ: The Linux Bluetooth Implementation 487

Using Bluetooth in Android Applications 487

19. The Android Native Development Kit (NDK) 501

Native Methods and JNI Calls 502

Conventions in Native Method Calls 502

Conventions on the Java Side 503

The Android NDK 504

Setting Up the NDK Environment 504

Editing C/C++ Code in Eclipse 504

Compiling with the NDK 505

JNI, NDK, and SDK: A Sample App 506

Native Libraries and Headers Provided by the NDK 507

Building Your Own Custom Library Modules 509

Native Activities 512

Index 519