> (closing bracket), 133
… (ellipses), 175
•A•
AbsoluteLayout class, 53
abstract class, 185
access control, 230
access point, Wi-Fi, 258
accessibility, 109
Account activity, 48
AccountFragment element, 70–72
ACL (Android Compatibility Language), 66
Action Bar
placing menu item on, 62
Active activity state, 77
activity
affinity, 87
basic description of, 20–21, 46–47
coordinating, 80
declaring in AndroidManifest.xml file, 49–50
differentiating by theme use, 181
handling user interaction in, 58–59
implementing, 50
invocation message, 50
layout, embedding fragment in, 68–73
map, 253
menu linked to, 60
persistent activity state, 79, 83
stacked, 86
state, 77
step implemented by, 21
switching between, 21
task to manage behavior of, 85–87
view, 116
Activity base class, 50
Activity Manager, 18
Address class, 265
ADT (Android Development Tools) plug-in
affinity, 87
AIDL-supporting service, 87
alpha channel, 160
Amazon Appstore for Android
cloud-based service, 339
legal relationship with, 338–339
sign-up process, 338
Amazon SNS (Amazon Simple Notifications Service), 339
Amazon S3 (Amazon Simple Storage), 339
Amazon SQS (Simple Queue Service), 339
Amazon Web Service (AWS), 339
Android application. See application
Android Application Framework. See also framework
application, 20
Android Application Model
App Widget, 20
content provider, 22
context object, 24
file, 22
fragment, 21
how this book is organized, 3–5
incorporating design into, 197
intent and intent filter, 23
resource, 23
services, 20
Shared Preferences, 22
task, 24
views, 21
Android Compatibility Language (ACL), 66
Android Developer Guide, 314
Android Developers home page, 346–347
Android Development Tools (ADT) plug-in
Android Market. See also marketing
browsing the, 329
Developer Distribution agreement, 335–336
distribution of platforms, 106
preparing application for, 321–328
registration fee, 331
uploading application, 337–338
website, 328
Android 1.5 (Cupcake) version, 108
Android 1.6 (Donut) version, 108–109
Android platform
cost, 12
reusable capabilities, 12
Android runtime
basic description of, 15
system architecture, 18
Android SDK and AVD Manager, 304, 306
Android SDK Components. See also SDK
download and installation, 31–32
widget, 50
Android SDK Starter Package, 31–32. See also SDK
Android security model, 232–237
Android system architecture. See system architecture
Android 3.0 (Honeycomb) version, 111
Android 2.0 (Eclair) version, 109
Android 2.2 (Froyo) version, 110
Android 2.3 (Gingerbread) version, 110–111
AndroidManifest.xml file
basic description of, 45
android.view package, 50
Angry Birds application (Rovio Mobile Ltd.), 355–357
API (Application Programming Interface)
deprecated method/class, 112
testing framework, 319
APK (application package), 326
app. See application
App Widget
defined, 46
versus generic widget, 20
AppAlarm LITE application (episode6), 361–362
AppBrain marketplace, 321, 339
application
Android 1.6 version, 109
Android 2.0 version, 109
Android 2.2 version, 110
Android 2.3 version, 110
Android 3.0 version, 111
core, 4
defined, 46
development guideline, 154–155
driving customer to, 341
ease of use, 115
familiarity with, 43
fee versus free, 340
forward compatible, 108
incorporating web page into, 262
launching browser from, 244–246
with limited capabilities, 325–326
object-oriented design, 186
runtime, 15
unauthorized, 233
uploading to Android Market, 337–338
application framework, 15
application model. See Android Application Model
application package (APK), 326
Application Programming Interface. See API
assert statement, 313
assets element, 45
attribute
height, 128
preference, 64
View class, 175
width, 128
audio
capturing and playing, 273–279
filename, 278
loading, 273
SDK components, 294
service, 277
Start Audio button, 274
state, 278
Stop Audio button, 274
Audio activity, 90
audioFileURI file, 275
audit trail, 230
authentication, 230
AWS (Amazon Web Service), 339
•B•
backup, 240
backward compatible SDK, 113
base class, 119
Bentley, Jon
rules for writing efficient programs, 215
“bind” variable, 238
Bluetooth technology, 228, 245
bottom constant, 129
bound service, 87
branding restriction, 337
broadcast, 233
browser
embedding in application, 246–248
launching from application, 244–246
Bundle class, 84
Burd, Barry
Java For Dummies, 5th Edition, 3
button
code-based GUI control, 163–166
color, 160
drawable resource, 161
hint attribute, 163
with image, 161
size, 160
text font and type face, 161
View class hierarchy, 117
width, 160
Button class
button specification, 53
image, 161
methods, 121
size and color, 160
text, 119
•C•
C library, 15
C++ library, 15
calculator layout, 139
camcorder application, 282
camera application, 284
Camera class, 294
Canvas class, 172
caption, 153
Cardio Trainer (WorkSmart Labs, Inc.), 364–365
cell tower, 258
cellphone ownership level, 9
center constant, 129
center_horizontal constant, 129
center_vertical constant, 129
channeling the outside world, 243
checkLogin() method, 95
Checkout Merchant agreement (Google), 336–337
child controls, 123
Christensen, Clayton
disruptive innovation theory, 341
class
AbsoluteLayout, 53
abstract, 185
Activity, 50
Address, 265
assigning responsibilities to, 192
base, 119
Bundle, 84
Camera, 294
Canvas, 172
concrete, 185
ConnectivityManager, 261
Criteria, 265
DatabaseHelper, 94
extracting and defining, 187, 192
GeoPoint, 262
GLSurfaceView, 157
helper, 119
instance, 124
layout, 119
LayoutParams, 128
LinearLayout, 52, 125, 127–128, 137–139
Location, 264
MapClass, 249
MapController, 263
MarginLayoutParams, 128
MediaRecorder, 294
MediaStore, 294
object of the, 192
object-oriented design, 185
PowerManager, 226
PreferenceManager, 65
R, 53
RSSurfaceView, 157
scenarios to discover, 193–194
SensorEvent, 295
SMS Manager, 271
subclass, 185
View, 50, 53, 55–57, 116–122, 175
class attribute, 69
CLI (command line interface), 27
clip_horizontal constant, 129
clip_vertical constant, 129
closing bracket (>), 133
cloud-based service, 339
cmd (Windows), 27
code example, 2
Code site directory (Google), 349–350
collaborator
object-oriented design, 186
scenarios to discover, 192–194
color
alpha channel, 160
button, 160
gradient, 171
style, 178
transparency, 160
Columns string array, 97
combo box, 159
command line interface (CLI), 27
communication
Android 1.5 version, 108
Android 1.6 version, 109
Android 2.0 version, 109
Android 2.2 version, 110
Android 2.3 version, 110
Android 3.0 version, 111
computation, 219
concrete class, 185
connectivity
Internet, 260
location-based service, 260–261
ConnectivityManager class, 261
Console window (Eclipse IDE), 306–307
contact display layout, 125–126
Contacts element, 60
content provider
Android Application Model, 22
basic description of, 18
sharing data across applications through, 95–98
context object, 24
context-based service, 249
copy protection, 337
core application, 4
cost, Android platform, 12
Created activity state, 77
Criteria class, 265
Cupcake (Android 1.5) version, 108
cursor, 96
CVS version control system, 299
•D•
D (Debug) priority message, 308
Dalvik Debug Monitor Server (DDMS) perspective, 309–310
Dalvik Virtual Machine, 18
data entry
Android 1.5 version, 108
Android 2.0 version, 109
Android 2.2 version, 110
masked, 240
data integrity, 230
data service, minimizing, 220–221
data storage, 213
DatabaseHelper class, 94
DDMS (Dalvik Debug Monitor Server) perspective, 309–310
Debug (D) priority message, 308
debugging
Debugging perspective (Eclipse IDE), 303–304
decompiled source code, 231
default.properties file, 45
deleting resource, 134
density independent pixel (dp), 105
density, screen, 104
deprecated method/class, 112
design
incorporating into Android Application Model, 197
inversion of control, 189
pattern, 188
Singleton pattern, 203
software framework, 189
support data structure, 202–206
Design Patterns: Elements of Reusable Object-Oriented Software (Gamma, Helm, Johnson, Vlissides), 188
detection security role, 231
developer
framework-based guidance for, 12
resource, 345
developer account (Android Market), 330–331
Developer Console (Android Market), 333–334
Developer Distribution agreement (Android Market), 335–336
development environment
development guideline, 154–155
development resource
how to get started, 354
Device Choose dialog box, 40
Devices view (Eclipse tool), 215–217
display characteristic, 104–105
disruptive innovation theory (Christensen), 341
distance computation, 265
Donut (Android 1.6) version, 108–109
dp (density independent pixel), 105
drawable resource, 161
•E•
E (Error) priority message, 308
Eclair (Android 2.0) version, 109
Eclipse IDE
adding resource within, 134
Android SDK and AVD Manager, 304, 306
customization, 304
Debug priority message, 308
Debugging perspective, 303–304
Error priority message, 308
Fatal priority message, 308
Hello World Android test program, 35–36
Info priority message, 308
Install directory, 29
Java Browsing perspective, 302
Java perspective, 302
Java Type Hierarchy perspective, 303
message priority, 308
as most used IDE, 299
project, 300
Resource perspective, 30, 301, 304
resource relationship, 300
Silent priority message, 308
support, 300
Traceview profiler, 217
Verbose priority message, 308
Warning priority message, 308
workspace, 300
EditText element, 52
ellipses (…), 175
client, 268
SMS text message, 270–271, 273, 293–294
embedded map, 327
emulator
sensor on, 288
encapsulation, 185
Enterprise Java (J2EE) project, 301
environmental distraction, mobile device security, 229
error code, 195
Error (E) priority message, 308
event
Evernote application (Evernote Corporation), 363–364
Exit element, 60
Export Android Application Wizard, 327
Extensible Messaging and Presence Protocol (XMPP) Manager, 19
external service, 87
F (Fatal) priority message, 308
fast application. See optimization
fee versus free application, 340
file
internal storage, 92
saving persistent data with, 92–93
fill constant, 129
fill_horizontal constant, 129
fill_vertical constant, 129
finish() method, 79
fl oating menu, 61
footprint, 239
forward compatible application, 108
fragment
basic description of, 21
class attribute, 69
embedding in activity layout, 68–73
incorporating into activity behavior, 74–76
life cycle, 67
multi-pane user interface, 66
reference to the view of, 74
reuse, 67
user interface representation, 65–66
fragment manager
basic description of, 18
getFragmentManager() method, 76
FrameLayout class, 53, 152–153
framework
Android system architecture, 18–19
software, 189
framework-based guidance, 13–15
FreeType library, 17
Froyo (Android 2.2) version, 110
•G•
GameOptions activity, 48
Gamma, Erich
Design Patterns: Elements of Reusable Object-Oriented Software, 188
garbage collector, 285
gen element, 44
GeoLocation class, 221, 254, 258
GeoPoint class, 262
getBoolean() method, 65
getFragmentManager() method, 76
getIntent() method, 80
GetJar marketplace, 321, 339–340
getString() method, 65
getter method, 214
Gingerbread (Android 2.3) version, 110–111
Gizmodo blog, 353
globalizing application, 324–325
GLSurfaceView class, 157
Android Developers home page, 346–347
Android Market ownership, 322
API library, 250
Checkout Merchant agreement, 336–337
Search page, 354
ToS (Terms of Service), 334
GPS location-finding service, 257–258
gradient, 171
graphics, 214
gravity and weight, 128
guideline, development, 154
•H•
hardware, 16
hash table, 291
height
attribute, 128
unit specification, 127
Hello World Android test program, 35–36
Helm, Richard
Design Patterns: Elements of Reusable Object-Oriented Software, 188
Help element
identifier, 60
stacked activity, 86
helper class, 119
Java Security Solutions, 239
Helton, Rich
Java Security Solutions, 239
hierarchy
sample program, 37
Home application
basic description of, 20
Home screen, 46
Home screen widget, 46
Honeycomb (Android 3.0) version, 111
horizontal orientation
application development guideline, 154
LinearLayout class, 128
HorizontalScrollView element, 53
HTTP (Hypertext Transfer Protocol), 245
•I•
I (Info) priority message, 308
icon, how this book is organized, 5
id attribute, 133
IDE (integrated development environment)
basic description of, 27
Java, 299
if statement, 75
image
adding to background view, 133–134
button with, 161
displaying and capturing, 282–285
image-handling functionality, 283
implementation
nonfunctional requirements, 212
indentation, 133
inflater class, 74
Info (I) priority message, 308
injection attack, SQLite database, 237–238
inner class, 94
Install directory (Eclipse IDE), 29
installation
Android SDK Starter Package, 31–32
instance, 192
integrated development environment (IDE)
basic description of, 27
Java, 299
intent
basic description of, 23
getIntent() method, 80
security, 240
send e-mail, 23
target component and action, 81–82
intent filter
basic description of, 23
security, 240
<intent-filter> element, 50
interactive component, 50
internal file storage, 92
internationalization, 115
Internet connection, 260
inversion of control, 189
“is a” test, 187
isFinishing() method, 79
•J•
jarsigner Java tool, 327
Java
Android platform benefits, 12
code-based GUI control, 163–166
jarsigner tool, 327
keytool tool, 327
version, 28
zipalign tool, 327
Java All-in-One For Dummies, 3rd Edition (Lowe), 3
Java Browsing perspective (Eclipse IDE), 302
Java Development Kit (JDK), 28–29
Java For Dummies, 5th Edition (Burd), 3
Java IDE, 299
Java JUnit framework, 311
Java perspective (Eclipse IDE), 302
Java Runtime Engine, 18
Java Runtime Environment (JRE), 28
Java Security Solutions (Helton), 239
Java Swing toolkit, 117
Java Type Hierarchy perspective (Eclipse IDE), 303
Java virtual machine (JVM), 215
JavaScript Object Notation (JSON) transfer, 255–256
JDK (Java Development Kit), 28–29
Johnson, Ralph
Design Patterns: Elements of Reusable Object-Oriented Software, 188
JRE (Java Runtime Environment), 28
JSON (JavaScript Object Notation) format, 255–256
J2EE (Enterprise Java) project, 301
JVM (Java virtual machine), 215
•K•
kernel, Linux, 14
keytool Java tool, 327
•L•
LAN (local-area network), 245
layout
AbsoluteLayout class, 53
calculator, 139
child controls, 123
classes, 119
effective use of, 124
height specification, 127
layoutopt command-line tool, 154
LinearLayout class, 125, 127–128, 137–139
LinearLayout.LayoutParams class, 128–130, 132
MarginLayoutParams class, 128
width specification, 127
layout component, 45
layoutopt command-line tool, 154
LayoutParams class, 128
least privilege principle, 239
left constant, 129
level, API
backward compatibility, 113
deprecated element, 112
identifier, 107
minimum-level, 112
libc native library, 17
library
basic description of, 15
C, 15
C++, 15
FreeType, 17
Google API, 250
libc native, 17
Media Framework, 17
OpenGL/ES, 17
SGL, 17
SSL, 17
system architecture, 17
library-implemented code, 215
license agreement
branding restriction, 337
Developer Distribution agreement, 335–336
Google Checkout Merchant agreement, 336–337
importance of, 334
Terms of Service, 334
life cycle
fragment, 67
service, 295
layout height and width, 127
layouts, 139
orientation tag, 128
sequential set of widgets, 125
LinearLayout.LayoutParams class, 128–130, 132
Linux kernel, 14
Linux shell, 27
local service
basic description of, 87
implementation, 88
local-area network (LAN), 245
Location class, 264
Location Manager, 18
location-based service. See also map
accuracy, 258
cell tower, 258
components, 249
location update register, 258–259
service change, 259
Wi-Fi access point, 258
LocationManager class, 264–265
log file, 240
logging framework, 318
Login activity
checkLogin() method, 95
user behavior, 48
long pause behavior, 155
Lowe, Doug (Java All-in-One For Dummies, 3rd Edition), 3
•M•
Mac OS X operating system, 27
main thread, 225
malware, 228
map. See also location-based service
activity, 253
address, 265
distance computation, 265
embedded, 327
geocoding web service and navigation, 254–256
GeoPoint class, 262
Google API library, 250
installing development components for writing, 250
latitude and longitude, 255, 262, 264–265
markers and overlays, 264
microdegrees, 255
REST-based web service, 255
route, 264
street and satellite view, 263
tile, 263
timestamp, 264
zoom level, 255
MapClass class, 249
MapController class, 263
MarginLayoutParams class, 128
Market app (Android Market), 328–329
market share, 321
marketing. See also Android Market
Amazon Appstore for Android, 338–339
AppBrain marketplace, 321, 339
fee versus free application, 340
GetJar marketplace, 321, 339–340
name, 324
responsiveness to customer request technique, 341
versioning application for, 323
masked data entry, 240
match_parent constant, 127
Media Framework library, 17
MediaPlayer class, 89, 278–279, 294
MediaRecorder class, 294
MediaStore class, 294
menu
Android Application Model, 21–22
fl oating, 61
launching, 61
linked to activity, 60
overloaded, 154
placing on Action Bar, 62
menu component, 45
merchant account (Android Market), 332–333
message priority (Eclipse IDE), 308
method
Button class, 121
delayed callback to, 224
getter, 214
microdegrees, 255
minimizing computation, 219
mitigation security role, 231
mobile application, 1
mobile device
device unavailability, 11
written application issues, 10–11
model-view-controller (MVC) design pattern, 188, 197
Moore, Geoffrey
project start-up success, 341
motion event, 314
multimedia
Android 1.5 version, 108
Android 1.6 version, 109
Android 2.0 version, 109
Android 2.3 version, 111
multi-pane user interface, 66
MVC (model-view-controller) design pattern, 188, 19
•N•
name
marketing, 324
name attribute, 49
name-value pair of preference, 64, 91
network
basics, 245
local-area network, 245
protocol, 245
unreliability, 11
wide-area network, 245
NFR (nonfunctional requirements), 211–212
noise, sensor, 290
non-repudiation, 230
Notification Manager, 18
noun
better fit of defining, 186–187
candidate object and class, 190
merge, remove, and refine into class, 191
•O•
object-oriented design
abstract and concrete class, 185
application element, 186
class, 185
collaborator, 186
extracting and defining objects, 186–187
idea behind, 184
object, 185
requirements analysis, 186
subclass, 185
type, 185
unnecessary object avoidance, 214
write-up, 186
older device compatibility, 180–181
onAccuracyChange() method, 295
onContextItemSelected() method, 60
onCreateContextMenu() method, 60
onCreateOptionsMenu() method, 60
onCreateView() method, 74
onDestroy() method, 79
onOptionsItemSelected() method, 60
onPause() method, 79
onRestart() method, 79
onRestoreInstanceState() method, 83–84
onResume() method, 77
onSaveInstanceState() method, 83–85
onSensoryChange() method, 295
onStart() method, 77
onStop() method, 79
ontouchEvent method, 57
open platform, 12
OpenGL/ES library, 17
operating system. See OS
optimization
application performance, 213–215
application responsiveness, 222–225
library-implemented code, 215
minimizing computation, 219
minimizing data service, 220–221
minimizing location service, 221–222
multiple level design, 212–213
nonfunctional requirements, 211–212
power management concept, 226
programming language, 213
requirements-driven architectural decisions, 213–214
thread model and components, 225–226
orientation tag, 128
OS (operating system)
Mac OS X, 27
privilege-separated, 231
Windows, 27
•P•
Package Manager, 19
padding, 152
Pandora application (Pandora Internet Radio), 358–360
Paused activity state, 77
permission
approving and rejecting, 233–235
enforcing, 233
self-signing certificate, 233
permissions request, 326
persistent activity state, 79, 83
persistent data
Shared Preferences to save, 91–92
sharing data across applications, 95–98
writing to file to save, 92–93
perspective, Eclipse IDE, 301–303
phishing, 228
Places application (Google Inc.), 368–369
power management concepts, 226
PowerManager class, 226
PreferenceManager class, 65
preferences
attribute, 64
default value, 64
description, 64
display form, 64
methods to read, 65
private class, 94
privilege model, 232
privilege-separated operating system, 231
programming language, 213
project
Eclipse IDE, 300
nature, 301
project start-up success (Moore), 341
protocol, 245
publishing on Android Market, 328–330
•R•
R class, 53
random delay, 224
range, sensor, 290
RDBMS relational database, 93
record
requesting from cursor, 96
recovery security role, 231
refactoring tools (Eclipse IDE), 135–136
region code, 325
registration fee (Android Market), 331
RelativeLayout class
horizontal and vertical alignment, 150–152
tutorial example, 148
remote service
application performance, 214
basic description of, 87
implementation, 88
starting and terminating, 89
reordering resource, 134
representational state transfer (REST-based) web service, 255
requirements analysis, 186
requirements-drive architectural decisions, 213–214
res element, 45
resistance security role, 230
resolution
screen, 105
sensor, 290
resource. See also developer resource
adding, 134
adding within Eclipse IDE, 134
Android Application Model, 23
defined, 45
deleting, 134
Eclipse IDE, 300
reordering, 134
Resource perspective (Eclipse IDE), 30, 301, 304
responsibilities, 192
responsiveness to customer request technique, 341
REST-based (representational state transfer) web service, 255
reuse
Android platform benefits, 12
fragment, 67
intermediate results in variables, 214
right constant, 129
route, map, 264
RPC service, 87
RSSurfaceView class, 157
rule for writing efficient programs (Bentley), 215
RunKeeper application (FitnessKeeper Inc.), 365–366
runtime
Android system architecture, 18
basic description of, 15
•S•
S (Silent) priority message, 308
sales tax, 337
sample program
hierarchy of, 37
sandbox, 232
satellite view, 263
scaled pixel unit, 168
screen
density, 104
display characteristic, 104–105
limited screen size, 229
resolution, 105
size, 104
scroll bounds, 120
scrolled text, 120
scrolling, 154
Scrollview element, 52
SDK (Software Development Kit)
API levels, 103, 106–107, 112–113
backward compatible, 113
hardware capability, 267
location-based service and map components, 261–265
media components, 294
service components, 295
XML relationship, 128
search, Android 1.6 version, 109
Search page (Google), 354
security
access control, 230
Android security model, 232–237
audit trail, 230
authentication, 230
backup, 240
data integrity, 230
decompiled source code, 231
detection role, 231
footprint, 239
intent and intent filter, 240
least privilege principle, 239
log file, 240
mitigation role, 231
non-repudiation, 230
password protection, 229
privilege model, 232
recovery role, 231
resistance role, 230
self-signing certificate, 233
sensitive information, 239
special password, 239
theft, 227
unauthorized and malicious software, 232
unauthorized invocation, 233
Wi-Fitechnology, 228
self-signing certificate, 233
send e-mail intent, 23
sensor
debug log, 289
defined, 286
on emulator, 288
listing and monitoring, 286–288
modality, 291
noise, 290
range, 290
receiving sensed values, 289–292
resolution, 290
sensor manager, 289
SensorEvent class, 295
SensorEventListener interface, 295
SensorManager class, 287, 294–295
Sensors.java file, 286
service
AIDL-supporting, 87
audio, 277
basic description of, 20
context-based, 249
defined, 46
life cycle, 295
SDK components, 295
starting, 89
versus thread, 89
Session Initiation Protocol (SIP), 294
Settings element, 60
settings.xml file, 65
setup
development environment, 27–34
SGL library, 17
shared data
through content provider, 95–98
uses for, 95
Shared Preferences
Android Application Model, 22
using to save persistent data, 91–92
sidebar information, 2
signature
input parameter and output result, 187
Silent (S) priority message, 308
Simple Queue Service (Amazon SQS), 339
Singleton pattern, 203
SIP (Session Initiation Protocol), 294
size
button, 160
screen, 104
small keyboard, 10
small screen, 154
smartphone
current ownership level, 9
writing applications on, 10
SMS Manager class, 271
SMS text message, 270–271, 273, 293–294
Software Development Kit. See SDK
software framework, 189
Speckboy Design Magazine, 348–349
SplashScreen activity, 48
spyware, 228
SQLite database
basic description of, 17
saving persistent data with, 93–96
src element, 44
SSL library, 17
stacked activity, 86
Start Audio button, 274
StartService() method, 89
state
audio, 278
static constant, 215
static variable, 219
Stop Audio button, 274
Stopped activity state, 77
storage
application performance, 213
written application issues, 11
street view, 263
stretched column, 146–147, 178
string, 135
String variable, 85
style
adding inheritance to, 177–178
color, 178
subclass, 185
Sudoku Free application (Genina.com), 357–358
support data structure, 202–206
Surface Manager window manager, 17
SVN version control system, 299
symbol, 195
system and performance
Android 2.0 version, 109
Android 2.2 version, 110
Android 3.0 version, 111
system architecture
hardware, 16
native library, 17
runtime, 18
•T•
table
non table row element, 142
TalkAndroid site, 353
tap, 155
task
basic description of, 24
TCP/IP protocol, 245
teardown() method, 313
telephone call, 272–273, 293–294
Telephony Manager, 19
Terminal application (Mac OS X), 27
Terms of Service (ToS), 334
testing
user interface operations, 314–315
testing framework
API, 319
assert statement, 313
base testing class, 319
Java JUnit framework, 311
link, 319
motion event, 314
special considerations, 319
test method, 311
test project creation, 311–312
test target class, 313
testPrecondition() method, 303, 312
testUIThreadTest() method, 312–315
text
font, 161
scrolled, 120
size, 136
TextView class
hierarchy, 117
string description, 52
theft, 227
theme
differentiating activity by using, 181
older device compatibility, 180–181
thread
application responsiveness, 223–224
location-based service connection, 261
main, 225
versus service, 89
user interface, 225
Tic-Tac-Toe application example
design decisions and compromises made in, 206–207
support data structure, 202–206
tile, map, 263
timestamp, 264
top constant, 129
ToS (Terms of Service), 334
touchscreen data entry issues, 10
Traceview profiler, 217
transient state, activity, 83–85
transparency, 160
type, 185
typeface, 161
•U•
unauthorized application, 233
unauthorized invocation, 233
unit testing. See testing framework
URI (Uniform Resource Identifier), 81, 97, 246
URL (Uniform Resource Locator), 2, 244, 246
user interface
Android 1.5 version, 108
Android 1.6 version, 109
Android 2.0 version, 109
Android 2.2 version, 110
Android 2.3 version, 111
Android 3.0 version, 111
thread, 225
user interface management, 19
•V•
V (Verbose) priority message, 308
values component, 45
verb
better fit of defining, 186–187
candidate responsibilities, 190
merge, remove, and refine into class, 190
Verbose (V) priority message, 308
version
Java, 28
versioning application, 323–324
vertical orientation
application development guideline, 154
LinearLayout class, 128
camcorder application, 282
camera application, 284
loading, 273
recording and playing, 279–282
SDK components, 294
starting and stopping, 282
view
basic description of, 21
defined, 116
functionality, 116
View class
activity user interface implementation, 50
attribute, 175
as framework and support for complex process, 116
terminal UI components, 53
user interface implementation, 55–57
weak cohesion, 116
view group, 21
View System, 19
ViewGroup class
activity user interface implementation, 50
for UI components, 53
virtual device, 34
virtual machine, 18
virus, 228
Vlissides, John
Design Patterns: Elements of Reusable Object-Oriented Software, 188
Voice Recorder application (Mamoru Tokashiki), 360–361
•W•
W (Warning) priority message, 308
WAN (wide-area network), 245
weak cohesion, 116
web page, 262
web service
Amazon Web Service, 339
geocoding and navigation, 254–256
REST-based, 255
WebKit web browser engine, 17
weight and gravity, 128
WHERE clause, 98
wide-area network (WAN), 245
widget
Android SDK, 50
generic, 20
Home screen, 46
selection, 159
width
attributes, 128
button, 160
column, 143
unit specification, 127
Wi-Fitechnology
access point, 258
security, 228
Window Manager, 19
Windows operating system, 27
workspace, Eclipse IDE, 300
wrap_content constant, 127
•X•
XML and SDK relationship, 128
XML block (element), 49
XMPP (Extensible Messaging and Presence Protocol) Manager, 19
•Y•
Yelp application (Yelp.com), 366–368
•Z•
zipalign Java tool, 327
3.22.71.220