Apress Beginning Android (2009).pdf

(15230 KB) Pobierz
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
Beginning Android
■■■
Mark L. Murphy
850637152.174.png 850637152.184.png 850637152.193.png 850637152.201.png 850637152.001.png 850637152.009.png 850637152.020.png 850637152.028.png 850637152.037.png 850637152.045.png 850637152.054.png
 
850637152.071.png 850637152.080.png 850637152.088.png
 
850637152.106.png 850637152.115.png 850637152.123.png
 
850637152.139.png 850637152.149.png 850637152.150.png
 
850637152.151.png 850637152.152.png 850637152.153.png
 
850637152.154.png 850637152.155.png 850637152.156.png
 
850637152.157.png 850637152.158.png 850637152.159.png
 
850637152.160.png 850637152.161.png 850637152.162.png
 
850637152.163.png 850637152.164.png 850637152.165.png
 
850637152.166.png 850637152.167.png 850637152.168.png
 
850637152.169.png 850637152.170.png 850637152.171.png
 
850637152.172.png 850637152.173.png 850637152.175.png 850637152.176.png 850637152.177.png 850637152.178.png 850637152.179.png
Beginning Android
Copyright © 2009 by Mark L. Murphy
All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means,
electronic or mechanical, including photocopying, recording, or by any information storage or retrieval
system, without the prior written permission of the copyright owner and the publisher.
ISBN-13 (pbk): 978-1-4302-2419-8
ISBN-13 (electronic): 978-1-4302-2420-4
Printed and bound in the United States of America 9 8 7 6 5 4 3 2 1
Trademarked names may appear in this book. Rather than use a trademark symbol with every occurrence
of a trademarked name, we use the names only in an editorial fashion and to the benefit of the trademark
owner, with no intention of infringement of the trademark.
Java™ and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc., in the
US and other countries. Apress, Inc., is not affiliated with Sun Microsystems, Inc., and this book was written
without endorsement from Sun Microsystems, Inc.
Lead Editor: Matthew Moodie
Editorial Board: Clay Andres, Steve Anglin, Mark Beckner, Ewan Buckingham, Tony Campbell, Gary Cornell,
Jonathan Gennick, Michelle Lowman, Matthew Moodie, Duncan Parkes, Jeffrey Pepper, Douglas Pundick,
Frank Pohlmann, Ben Renow-Clarke, Dominic Shakeshaft, Matt Wade, Tom Welsh
Project Manager: Douglas Sulenta
Copy Editors: Candace English and Katie Stence
Associate Production Director: Kari Brooks-Copony
Production Editor: Ellie Fountain
Compositor: Susan Glinert
Proofreader: Lisa Hamilton
Indexer: BIM Indexing & Proofreading Services
Cover Designer: Kurt Krames
Manufacturing Director: Tom Debolski
Distributed to the book trade worldwide by Springer-Verlag New York, Inc., 233 Spring Street, 6th Floor,
New York, NY 10013. Phone 1-800-SPRINGER, fax 201-348-4505, e-mail orders-ny@springer-sbm.com , or
visit http://www.springeronline.com .
For information on translations, please contact Apress directly at 2855 Telegraph Avenue, Suite 600,
Berkeley, CA 94705. Phone 510-549-5930, fax 510-549-5939, e-mail info@apress.com , or visit http://
www.apress.com .
Apress and friends of ED books may be purchased in bulk for academic, corporate, or promotional use.
eBook versions and licenses are also available for most titles. For more information, reference our Special
Bulk Sales–eBook Licensing web page at http://www.apress.com/info/bulksales .
The information in this book is distributed on an “as is” basis, without warranty. Although every precaution
has been taken in the preparation of this work, neither the author(s) nor Apress shall have any liability to
any person or entity with respect to any loss or damage caused or alleged to be caused directly or indirectly
by the information contained in this work.
The source code for this book is available to readers at http://www.apress.com .
850637152.180.png 850637152.181.png 850637152.182.png
 
850637152.183.png 850637152.185.png 850637152.186.png
 
850637152.187.png 850637152.188.png 850637152.189.png
 
850637152.190.png 850637152.191.png 850637152.192.png
 
850637152.194.png 850637152.195.png 850637152.196.png
 
850637152.197.png 850637152.198.png 850637152.199.png
 
850637152.200.png 850637152.202.png 850637152.203.png
 
850637152.204.png 850637152.205.png 850637152.206.png
 
850637152.207.png 850637152.208.png 850637152.209.png
 
850637152.002.png 850637152.003.png 850637152.004.png
 
850637152.005.png 850637152.006.png 850637152.007.png
 
850637152.008.png 850637152.010.png 850637152.011.png 850637152.012.png 850637152.013.png 850637152.014.png 850637152.015.png
Contents at a Glance
About the Author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi
Core Concepts
PART 1
■ ■
CHAPTER 1
The Big Picture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
CHAPTER 2
Project Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
CHAPTER 3
Inside the Manifest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Activities
PART 2
■ ■
CHAPTER 4
Creating a Skeleton Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
CHAPTER 5
Using XML-Based Layouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
CHAPTER 6
Employing Basic Widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
CHAPTER 7
Working with Containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
CHAPTER 8
Using Selection Widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
CHAPTER 9
Getting Fancy with Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
CHAPTER 10
Employing Fancy Widgets and Containers . . . . . . . . . . . . . . . . . . . . . 93
CHAPTER 11
Applying Menus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
CHAPTER 12
Fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
CHAPTER 13
Embedding the WebKit Browser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
CHAPTER 14
Showing Pop-Up Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
CHAPTER 15
Dealing with Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
CHAPTER 16
Handling Activity Lifecycle Events . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
iv
850637152.016.png 850637152.017.png 850637152.018.png 850637152.019.png
 
850637152.021.png 850637152.022.png 850637152.023.png
 
850637152.024.png 850637152.025.png 850637152.026.png
 
850637152.027.png 850637152.029.png 850637152.030.png
 
850637152.031.png 850637152.032.png 850637152.033.png
 
850637152.034.png 850637152.035.png 850637152.036.png
 
850637152.038.png 850637152.039.png 850637152.040.png
 
850637152.041.png 850637152.042.png 850637152.043.png
 
850637152.044.png 850637152.046.png 850637152.047.png
 
850637152.048.png 850637152.049.png 850637152.050.png
 
850637152.051.png 850637152.052.png 850637152.053.png
 
850637152.055.png 850637152.056.png 850637152.057.png 850637152.058.png 850637152.059.png 850637152.060.png 850637152.061.png
Data Stores, Network Services,
and APIs
PART 3
■ ■
CHAPTER 17
Using Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
CHAPTER 18
Accessing Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
CHAPTER 19
Working with Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
CHAPTER 20
Managing and Accessing Local Databases . . . . . . . . . . . . . . . . . . . 193
CHAPTER 21
Leveraging Java Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
CHAPTER 22
Communicating via the Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Intents
PART 4
■ ■
CHAPTER 23
Creating Intent Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
CHAPTER 24
Launching Activities and Sub-Activities . . . . . . . . . . . . . . . . . . . . . . 221
CHAPTER 25
Finding Available Actions via Introspection . . . . . . . . . . . . . . . . . . . 231
CHAPTER 26
Handling Rotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Content Providers and Services
PART 5
■ ■
CHAPTER 27
Using a Content Provider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
CHAPTER 28
Building a Content Provider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
CHAPTER 29
Requesting and Requiring Permissions . . . . . . . . . . . . . . . . . . . . . . 269
CHAPTER 30
Creating a Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
CHAPTER 31
Invoking a Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
CHAPTER 32
Alerting Users via Notifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
v
850637152.062.png 850637152.063.png 850637152.064.png
 
850637152.065.png 850637152.066.png 850637152.067.png
 
850637152.068.png 850637152.069.png 850637152.070.png
 
850637152.072.png 850637152.073.png 850637152.074.png
 
850637152.075.png 850637152.076.png 850637152.077.png
 
850637152.078.png 850637152.079.png 850637152.081.png
 
850637152.082.png 850637152.083.png 850637152.084.png
 
850637152.085.png 850637152.086.png 850637152.087.png
 
850637152.089.png 850637152.090.png 850637152.091.png
 
850637152.092.png 850637152.093.png 850637152.094.png
 
850637152.095.png 850637152.096.png 850637152.097.png
 
850637152.098.png 850637152.099.png 850637152.100.png 850637152.101.png 850637152.102.png 850637152.103.png 850637152.104.png
Other Android Capabilities
PART 6
■ ■
CHAPTER 33
Accessing Location-Based Services . . . . . . . . . . . . . . . . . . . . . . . . . 293
CHAPTER 34
Mapping with MapView and MapActivity . . . . . . . . . . . . . . . . . . . . . 299
CHAPTER 35
Handling Telephone Calls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
CHAPTER 36
Searching with SearchManager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
CHAPTER 37
Development Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
CHAPTER 38
Where Do We Go from Here? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
APPENDIX
Introducing Android 1.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
INDEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
vi
850637152.105.png 850637152.107.png 850637152.108.png
 
850637152.109.png 850637152.110.png 850637152.111.png
 
850637152.112.png 850637152.113.png 850637152.114.png
 
850637152.116.png 850637152.117.png 850637152.118.png
 
850637152.119.png 850637152.120.png 850637152.121.png
 
850637152.122.png 850637152.124.png 850637152.125.png
 
850637152.126.png 850637152.127.png 850637152.128.png
 
850637152.129.png 850637152.130.png 850637152.131.png
 
850637152.132.png 850637152.133.png 850637152.134.png
 
850637152.135.png 850637152.136.png 850637152.137.png
 
850637152.138.png 850637152.140.png 850637152.141.png
 
850637152.142.png 850637152.143.png 850637152.144.png 850637152.145.png 850637152.146.png 850637152.147.png 850637152.148.png
Zgłoś jeśli naruszono regulamin