Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Beginning Android 2
Nội dung xem thử
Mô tả chi tiết
Murphy Android 2 Beginning
Companion
eBook
Available
Beginning
Android 2
Trim: 7.5 x 9.25 spine = 0.78125" 416 page count
Begin the journey toward your own
successful Android 2 applications
Mark L. Murphy
COMPANION eBOOK SEE LAST PAGE FOR DETAILS ON $10 eBOOK VERSION
US $44.99
Shelve in
Mobile Computing
User level:
www.apress.com Beginner
SOURCE CODE ONLINE
BOOKS FOR PROFESSIONALS BY PROFESSIONALS®
ISBN 978-1-4302-2629-1
9 781430 226291
5 44 9 9
this print for content only—size & color not accurate
CYAN
MAGENTA
YELLOW
BLACK
PANTONE 123 C
SPOT MATTE
First, welcome to the world of Android! As you have probably noticed,
Android is rapidly growing; with the release of Android 2, many devices
from various manufacturers are dotting the landscape. With millions of devices in the wild, and millions more on the way, those who get into the
latest version of Android early will reap the benefits as the ecosystem continues to grow.
Second, welcome to the new edition of this book, which now covers Android
2! Its purpose is to start you on your way to building compelling Android 2 applications, and to help you master the learning curve. Android 2 is a rich framework, which means that there is a lot of cool stuff for you to pick up along your
journey in order to create the slickest, most useful apps you can imagine.
Android 2 is an important release of the framework, so it’s important to get
off to the best possible start when learning the ins and outs of Android 2
development. This book guides you on your journey to learning Android 2,
pointing out what is possible and showing you how to turn those concepts
into reality. From there, building practical and popular apps is a matter of
time and creativity.
Android 2
ISBN 978-1-4302-2629-1
9 781430 226291
5 44 9 9
i
Beginning Android 2
■ ■ ■
Mark L. Murphy
ii
Beginning Android 2
Copyright © 2010 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-2629-1
ISBN-13 (electronic): 978-1-4302-2630-7
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.
President and Publisher: Paul Manning
Lead Editor: Steve Anglin
Development Editor: Matthew Moodie
Editorial Board: Clay Andres, Steve Anglin, Mark Beckner, Ewan Buckingham, Gary Cornell,
Jonathan Gennick, Jonathan Hassell, Michelle Lowman, Matthew Moodie, Duncan
Parkes, Jeffrey Pepper, Frank Pohlmann, Douglas Pundick, Ben Renow-Clarke, Dominic
Shakeshaft, Matt Wade, Tom Welsh
Coordinating Editor: Fran Parnell
Copy Editor: Marilyn S. Smith
Compositor: MacPS, LLC
Indexer: John Collin
Artist: April Milne
Cover Designer: Anna Ishchenko
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[email protected], or visit www.springeronline.com.
For information on translations, please e-mail [email protected], or visit 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
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.
iii
iv
Contents at a Glance
■Contents at a Glance................................................................................................................................. iv
■Contents..................................................................................................................................................... v
■About the Author..................................................................................................................................... xiii
■Acknowledgments ...................................................................................................................................xiv
■Preface......................................................................................................................................................xv
■Chapter 1: The Big Picture......................................................................................................................... 1
■Chapter 2: Projects and Targets ................................................................................................................ 5
■Chapter 3: Creating a Skeleton Application............................................................................................. 17
■Chapter 4: Using XML-Based Layouts...................................................................................................... 23
■Chapter 5: Employing Basic Widgets....................................................................................................... 29
■Chapter 6: Working with Containers........................................................................................................ 39
■Chapter 7: Using Selection Widgets......................................................................................................... 59
■Chapter 8: Getting Fancy with Lists......................................................................................................... 75
■Chapter 9: Employing Fancy Widgets and Containers ............................................................................. 95
■Chapter 10: The Input Method Framework ............................................................................................ 117
■Chapter 11: Applying Menus.................................................................................................................. 125
■Chapter 12: Fonts................................................................................................................................... 137
■Chapter 13: Embedding the WebKit Browser......................................................................................... 141
■Chapter 14: Showing Pop-Up Messages................................................................................................ 149
■Chapter 15: Dealing with Threads ......................................................................................................... 155
■Chapter 16: Handling Activity Life Cycle Events .................................................................................... 167
■Chapter 17: Creating Intent Filters ........................................................................................................ 171
■Chapter 18: Launching Activities and Subactivities .............................................................................. 177
■Chapter 19: Handling Rotation............................................................................................................... 185
■Chapter 20: Working with Resources .................................................................................................... 197
■Chapter 21: Using Preferences .............................................................................................................. 213
■Chapter 22: Managing and Accessing Local Databases ........................................................................ 225
■Chapter 23: Accessing Files................................................................................................................... 237
■Chapter 24: Leveraging Java Libraries.................................................................................................. 245
■Chapter 25: Communicating via the Internet......................................................................................... 253
■Chapter 26: Using a Content Provider.................................................................................................... 259
■Chapter 27: Building a Content Provider ............................................................................................... 265
■Chapter 28: Requesting and Requiring Permissions ............................................................................. 275
■Chapter 29: Creating a Service .............................................................................................................. 279
■Chapter 30: Invoking a Service.............................................................................................................. 285
■Chapter 31: Alerting Users via Notifications.......................................................................................... 289
■Chapter 32: Accessing Location-Based Services................................................................................... 295
■Chapter 33: Mapping with MapView and MapActivity........................................................................... 301
■Chapter 34: Handling Telephone Calls ................................................................................................... 311
■Chapter 35: Development Tools ............................................................................................................. 315
■Chapter 36: Handling Multiple Screen Sizes.......................................................................................... 331
■Chapter 37: Dealing with Devices.......................................................................................................... 353
■Chapter 38: Handling Platform Changes................................................................................................ 359
■Chapter 39: Where Do We Go from Here? .............................................................................................. 367
■Index ...................................................................................................................................................... 369
v
Contents
■Contents at a Glance....................................................................................... iv
■Contents .......................................................................................................... v
■About the Author .......................................................................................... xiii
■Acknowledgments.........................................................................................xiv
■Preface ...........................................................................................................xv
■Chapter 1: The Big Picture............................................................................... 1
Challenges of Smartphone Programming...............................................................................................................1
What Androids Are Made Of....................................................................................................................................2
Stuff at Your Disposal .............................................................................................................................................3
■Chapter 2: Projects and Targets...................................................................... 5
Pieces and Parts .....................................................................................................................................................5
Creating a Project ...................................................................................................................................................6
Project Structure.....................................................................................................................................................6
Root Contents ....................................................................................................................................................6
The Sweat Off Your Brow...................................................................................................................................7
And Now, the Rest of the Story..........................................................................................................................7
What You Get Out of It........................................................................................................................................8
Inside the Manifest .................................................................................................................................................8
In the Beginning, There Was the Root, And It Was Good ...................................................................................9
Permissions, Instrumentations, and Applications (Oh My!) ...............................................................................9
Your Application Does Something, Right? .......................................................................................................10
Achieving the Minimum ...................................................................................................................................11
Version=Control ...............................................................................................................................................12
Emulators and Targets..........................................................................................................................................12
Virtually There..................................................................................................................................................12
Aiming at a Target ...........................................................................................................................................14
■ CONTENTS
vi
■Chapter 3: Creating a Skeleton Application................................................... 17
Begin at the Beginning..........................................................................................................................................17
Dissecting the Activity ..........................................................................................................................................18
Building and Running the Activity.........................................................................................................................20
■Chapter 4: Using XML-Based Layouts ........................................................... 23
What Is an XML-Based Layout? ............................................................................................................................23
Why Use XML-Based Layouts? .............................................................................................................................24
OK, So What Does It Look Like?............................................................................................................................24
What’s with the @ Signs?.....................................................................................................................................25
And How Do We Attach These to the Java?..........................................................................................................25
The Rest of the Story ............................................................................................................................................26
■Chapter 5: Employing Basic Widgets............................................................. 29
Assigning Labels...................................................................................................................................................29
Button, Button, Who’s Got the Button? .................................................................................................................30
Fleeting Images ....................................................................................................................................................31
Fields of Green. Or Other Colors. ..........................................................................................................................32
Just Another Box to Check....................................................................................................................................33
Turn the Radio Up .................................................................................................................................................35
It’s Quite a View....................................................................................................................................................37
Useful Properties .............................................................................................................................................37
Useful Methods................................................................................................................................................38
Colors...............................................................................................................................................................38
■Chapter 6: Working with Containers ............................................................. 39
Thinking Linearly ..................................................................................................................................................39
LinearLayout Concepts and Properties ............................................................................................................40
LinearLayout Example......................................................................................................................................42
All Things Are Relative..........................................................................................................................................46
RelativeLayout Concepts and Properties .........................................................................................................47
RelativeLayout Example...................................................................................................................................49
Tabula Rasa ..........................................................................................................................................................51
TableLayout Concepts and Properties .............................................................................................................52
TableLayout Example.......................................................................................................................................53
Scrollwork.............................................................................................................................................................54
■Chapter 7: Using Selection Widgets .............................................................. 59
Adapting to the Circumstances.............................................................................................................................59
Lists of Naughty and Nice.....................................................................................................................................60
Spin Control ..........................................................................................................................................................63
Grid Your Lions (or Something Like That...) ..........................................................................................................66
Fields: Now with 35% Less Typing!......................................................................................................................69
Galleries, Give or Take the Art ..............................................................................................................................72
■Chapter 8: Getting Fancy with Lists .............................................................. 75
Getting to First Base .............................................................................................................................................75
A Dynamic Presentation........................................................................................................................................77
Better. Stronger. Faster. .......................................................................................................................................80
Using convertView ...........................................................................................................................................80
Using the Holder Pattern..................................................................................................................................81
■ CONTENTS
vii
Making a List... .....................................................................................................................................................84
...And Checking It Twice .......................................................................................................................................89
Adapting Other Adapters.......................................................................................................................................94
■Chapter 9: Employing Fancy Widgets and Containers................................... 95
Pick and Choose ...................................................................................................................................................95
Time Keeps Flowing Like a River..........................................................................................................................99
Making Progress.................................................................................................................................................101
Seeking Resolution .............................................................................................................................................101
Put It on My Tab..................................................................................................................................................102
The Pieces .....................................................................................................................................................103
The Idiosyncrasies .........................................................................................................................................103
Wiring It Together ..........................................................................................................................................104
Adding Them Up.............................................................................................................................................106
Intents and Views ..........................................................................................................................................109
Flipping Them Off................................................................................................................................................109
Manual Flipping .............................................................................................................................................110
Adding Contents on the Fly............................................................................................................................112
Automatic Flipping.........................................................................................................................................113
Getting in Someone’s Drawer .............................................................................................................................114
Other Good Stuff .................................................................................................................................................116
■Chapter 10: The Input Method Framework.................................................. 117
Keyboards, Hard and Soft ...................................................................................................................................117
Tailored to Your Needs........................................................................................................................................118
Tell Android Where It Can Go ..............................................................................................................................121
Fitting In..............................................................................................................................................................123
Unleash Your Inner Dvorak .................................................................................................................................124
■Chapter 11: Applying Menus ....................................................................... 125
Menus of Options................................................................................................................................................125
Creating an Options Menu .............................................................................................................................125
Adding Menu Choices and Submenus ...........................................................................................................126
Menus in Context ................................................................................................................................................127
Taking a Peek .....................................................................................................................................................128
Yet More Inflation................................................................................................................................................133
Menu XML Structure ......................................................................................................................................133
Menu Options and XML..................................................................................................................................134
Inflating the Menu..........................................................................................................................................135
■Chapter 12: Fonts ........................................................................................ 137
Love the One You’re With....................................................................................................................................137
More Fonts..........................................................................................................................................................138
Here a Glyph, There a Glyph ...............................................................................................................................140
■Chapter 13: Embedding the WebKit Browser .............................................. 141
A Browser, Writ Small.........................................................................................................................................141
Loading It Up.......................................................................................................................................................143
Navigating the Waters.........................................................................................................................................144
Entertaining the Client ........................................................................................................................................145
Settings, Preferences, and Options (Oh My!) ......................................................................................................147
■ CONTENTS
viii
■Chapter 14: Showing Pop-Up Messages...................................................... 149
Raising Toasts.....................................................................................................................................................149
Alert! Alert!..........................................................................................................................................................150
Checking Them Out.............................................................................................................................................151
■Chapter 15: Dealing with Threads ............................................................... 155
Getting Through the Handlers.............................................................................................................................155
Messages.......................................................................................................................................................156
Runnables ......................................................................................................................................................158
Running in Place .................................................................................................................................................159
Where Oh Where Has My UI Thread Gone?.........................................................................................................159
Asyncing Feeling.................................................................................................................................................159
The Theory .....................................................................................................................................................159
AsyncTask, Generics, and Varargs.................................................................................................................160
The Stages of AsyncTask...............................................................................................................................160
A Sample Task ...............................................................................................................................................161
And Now, the Caveats.........................................................................................................................................164
■Chapter 16: Handling Activity Life Cycle Events.......................................... 167
Schroedinger’s Activity.......................................................................................................................................167
Life, Death, and Your Activity..............................................................................................................................168
onCreate() and onDestroy() ............................................................................................................................168
onStart(), onRestart(), and onStop() ...............................................................................................................169
onPause() and onResume() ............................................................................................................................169
The Grace of State ..............................................................................................................................................169
■Chapter 17: Creating Intent Filters .............................................................. 171
What’s Your Intent?.............................................................................................................................................171
Pieces of Intents ............................................................................................................................................172
Intent Routing ................................................................................................................................................172
Stating Your Intent(ions) .....................................................................................................................................173
Narrow Receivers ...............................................................................................................................................174
The Pause Caveat ...............................................................................................................................................175
■Chapter 18: Launching Activities and Subactivities.................................... 177
Peers and Subs...................................................................................................................................................177
Start ’Em Up........................................................................................................................................................178
Make an Intent...............................................................................................................................................178
Make the Call .................................................................................................................................................178
Tabbed Browsing, Sort Of...................................................................................................................................182
■Chapter 19: Handling Rotation .................................................................... 185
A Philosophy of Destruction................................................................................................................................185
It’s All the Same, Just Different ..........................................................................................................................185
Now with More Savings!.....................................................................................................................................189
DIY Rotation ........................................................................................................................................................191
Forcing the Issue ................................................................................................................................................193
Making Sense of It All .........................................................................................................................................195
■Chapter 20: Working with Resources.......................................................... 197
The Resource Lineup ..........................................................................................................................................197
String Theory ......................................................................................................................................................198
■ CONTENTS
ix
Plain Strings...................................................................................................................................................198
String Formats ...............................................................................................................................................198
Styled Text .....................................................................................................................................................199
Styled String Formats ....................................................................................................................................199
Got the Picture? ..................................................................................................................................................202
XML: The Resource Way .....................................................................................................................................204
Miscellaneous Values .........................................................................................................................................206
Dimensions ....................................................................................................................................................207
Colors.............................................................................................................................................................207
Arrays.............................................................................................................................................................208
Different Strokes for Different Folks...................................................................................................................208
■Chapter 21: Using Preferences.................................................................... 213
Getting What You Want .......................................................................................................................................213
Stating Your Preference......................................................................................................................................214
And Now, a Word from Our Framework..............................................................................................................214
Letting Users Have Their Say..............................................................................................................................215
Adding a Wee Bit o' Structure.............................................................................................................................219
The Kind of Pop-Ups You Like.............................................................................................................................221
■Chapter 22: Managing and Accessing Local Databases.............................. 225
The Database Example .......................................................................................................................................225
A Quick SQLite Primer.........................................................................................................................................227
Start at the Beginning.........................................................................................................................................227
Setting the Table.................................................................................................................................................230
Makin’ Data.........................................................................................................................................................230
What Goes Around Comes Around ......................................................................................................................232
Raw Queries...................................................................................................................................................232
Regular Queries .............................................................................................................................................232
Building with Builders....................................................................................................................................233
Using Cursors.................................................................................................................................................234
Data, Data, Everywhere ......................................................................................................................................235
■Chapter 23: Accessing Files ........................................................................ 237
You and the Horse You Rode in On .....................................................................................................................237
Readin’ ’n Writin’ ................................................................................................................................................240
■Chapter 24: Leveraging Java Libraries ....................................................... 245
The Outer Limits..................................................................................................................................................245
Ants and JARs.....................................................................................................................................................246
Following the Script............................................................................................................................................246
...And Not a Drop to Drink ...................................................................................................................................250
Reviewing the Script...........................................................................................................................................251
■Chapter 25: Communicating via the Internet .............................................. 253
REST and Relaxation...........................................................................................................................................253
HTTP Operations via Apache HttpClient ..............................................................................................................254
Parsing Responses .............................................................................................................................................255
Stuff to Consider .................................................................................................................................................257
■Chapter 26: Using a Content Provider ......................................................... 259
Pieces of Me .......................................................................................................................................................259
■ CONTENTS
x
Getting a Handle .................................................................................................................................................260
Makin’ Queries....................................................................................................................................................260
Adapting to the Circumstances...........................................................................................................................261
Give and Take .....................................................................................................................................................263
Beware of the BLOB!...........................................................................................................................................264
■Chapter 27: Building a Content Provider..................................................... 265
First, Some Dissection ........................................................................................................................................265
Next, Some Typing..............................................................................................................................................266
Creating Your Content Provider...........................................................................................................................267
Step 1: Create a Provider Class .....................................................................................................................267
Step 2: Supply a Uri .......................................................................................................................................272
Step 3: Declare the Properties.......................................................................................................................272
Step 4: Update the Manifest ..........................................................................................................................273
Notify-on-Change Support ..................................................................................................................................273
■Chapter 28: Requesting and Requiring Permissions................................... 275
Mother, May I?....................................................................................................................................................275
Halt! Who Goes There? .......................................................................................................................................276
Enforcing Permissions via the Manifest.........................................................................................................277
Enforcing Permissions Elsewhere .................................................................................................................278
May I See Your Documents?...............................................................................................................................278
■Chapter 29: Creating a Service.................................................................... 279
Service with Class ..............................................................................................................................................279
There Can Only Be One .......................................................................................................................................280
Manifest Destiny .................................................................................................................................................281
Lobbing One Over the Fence...............................................................................................................................282
Callbacks .......................................................................................................................................................283
Broadcast Intents...........................................................................................................................................283
Where’s the Remote? And the Rest of the Code? ...............................................................................................284
■Chapter 30: Invoking a Service ................................................................... 285
The Ties That Bind ..............................................................................................................................................286
Catching the Lob.................................................................................................................................................287
■Chapter 31: Alerting Users via Notifications ............................................... 289
Types of Pestering ..............................................................................................................................................289
Hardware Notifications ..................................................................................................................................290
Icons ..............................................................................................................................................................290
Seeing Pestering in Action..................................................................................................................................290
■Chapter 32: Accessing Location-Based Services ........................................ 295
Location Providers: They Know Where You’re Hiding.........................................................................................295
Finding Yourself..................................................................................................................................................296
On the Move........................................................................................................................................................297
Are We There Yet? Are We There Yet? Are We There Yet? .................................................................................298
Testing...Testing... ..............................................................................................................................................299
■Chapter 33: Mapping with MapView and MapActivity ................................ 301
Terms, Not of Endearment..................................................................................................................................301
Piling On..............................................................................................................................................................302
The Bare Bones...................................................................................................................................................302
■ CONTENTS
xi
Exercising Your Control.......................................................................................................................................303
Zoom..............................................................................................................................................................304
Center ............................................................................................................................................................304
Rugged Terrain ...................................................................................................................................................304
Layers upon Layers.............................................................................................................................................305
Overlay Classes..............................................................................................................................................305
Drawing the ItemizedOverlay.........................................................................................................................305
Handling Screen Taps....................................................................................................................................307
My, Myself, and MyLocationOverlay ...................................................................................................................307
The Key to It All...................................................................................................................................................308
■Chapter 34: Handling Telephone Calls......................................................... 311
Report to the Manager........................................................................................................................................311
You Make the Call!..............................................................................................................................................312
■Chapter 35: Development Tools................................................................... 315
Hierarchical Management...................................................................................................................................315
Delightful Dalvik Debugging Detailed, Demoed ..................................................................................................321
Logging ..........................................................................................................................................................322
File Push and Pull ..........................................................................................................................................323
Screenshots ...................................................................................................................................................324
Location Updates ...........................................................................................................................................325
Placing Calls and Messages ..........................................................................................................................326
Put It on My Card ................................................................................................................................................328
Creating a Card Image ...................................................................................................................................328
Inserting the Card ..........................................................................................................................................329
■Chapter 36: Handling Multiple Screen Sizes ............................................... 331
Taking the Default...............................................................................................................................................331
Whole in One.......................................................................................................................................................332
Think About Rules, Rather Than Positions.....................................................................................................332
Consider Physical Dimensions.......................................................................................................................333
Avoid Real Pixels............................................................................................................................................333
Choose Scalable Drawables ..........................................................................................................................334
Tailor-Made, Just for You (and You, and You, and...)..........................................................................................334
Add <supports-screens>...............................................................................................................................334
Resources and Resource Sets .......................................................................................................................335
Finding Your Size ...........................................................................................................................................336
Ain’t Nothing Like the Real Thing........................................................................................................................337
Density Differs ...............................................................................................................................................337
Adjusting the Density.....................................................................................................................................337
Accessing Actual Devices ..............................................................................................................................338
Ruthlessly Exploiting the Situation .....................................................................................................................339
Replace Menus with Buttons .........................................................................................................................339
Replace Tabs with a Simple Activity..............................................................................................................340
Consolidate Multiple Activities.......................................................................................................................340
Example: EU4You ................................................................................................................................................340
The First Cut...................................................................................................................................................340
Fixing the Fonts .............................................................................................................................................346
Fixing the Icons..............................................................................................................................................348
■ CONTENTS
xii
Using the Space.............................................................................................................................................348
What If It’s Not a Browser? ............................................................................................................................350
What Are a Few Bugs Among Friends?...............................................................................................................351
■Chapter 37: Dealing with Devices................................................................ 353
This App Contains Explicit Instructions...............................................................................................................353
Button, Button, Who’s Got the Button? ...............................................................................................................354
A Guaranteed Market..........................................................................................................................................355
The Down and Dirty Details ................................................................................................................................355
Archos 5 Android Internet Tablet ...................................................................................................................355
Motorola CLIQ/DEXT.......................................................................................................................................356
Motorola DROID/Milestone.............................................................................................................................356
Google/HTC Nexus One ..................................................................................................................................357
Motorola BACKFLIP ........................................................................................................................................357
■Chapter 38: Handling Platform Changes ..................................................... 359
Brand Management ............................................................................................................................................359
More Things That Make You Go Boom................................................................................................................360
View Hierarchy...............................................................................................................................................360
Changing Resources ......................................................................................................................................361
Handling API Changes.........................................................................................................................................362
Detecting the Version.....................................................................................................................................362
Wrapping the API ...........................................................................................................................................362
■Chapter 39: Where Do We Go from Here?.................................................... 367
Questions—Sometimes with Answers ...............................................................................................................367
Heading to the Source ........................................................................................................................................368
Getting Your News Fix.........................................................................................................................................368
■Index............................................................................................................ 369
xiii
About the Author
Mark Murphy is the founder of CommonsWare and the author of the Busy
Coder’s Guide to Android Development. A three-time entrepreneur, his
experience ranges from consulting on open source and collaborative
development for the Fortune 500 to application development on just about
anything smaller than a mainframe. He has been a software developer for
more than 25 years, from the TRS-80 to the latest crop of mobile devices. A
polished speaker, Mark has delivered conference presentations and training
sessions on a wide array of topics internationally.
Mark writes the Building ‘Droids column for AndroidGuys and the Android
Angle column for NetworkWorld.
Outside of CommonsWare, Mark has an avid interest in how the Internet will
play a role in citizen involvement with politics and government. He is also a contributor to the
Rebooting America essay collection.