Hashimi / Komatineni / MacLean | Pro Android 2 | E-Book | www2.sack.de
E-Book

E-Book, Englisch, 736 Seiten

Hashimi / Komatineni / MacLean Pro Android 2


1. ed
ISBN: 978-1-4302-2660-4
Verlag: Apress
Format: PDF
Kopierschutz: 1 - PDF Watermark

E-Book, Englisch, 736 Seiten

ISBN: 978-1-4302-2660-4
Verlag: Apress
Format: PDF
Kopierschutz: 1 - PDF Watermark



Pro Android 2 shows how to build real-world and fun mobile applications using Google's latest Android software development kit. This new edition is updated for Android 2, covering everything from the fundamentals of building applications for embedded devices to advanced concepts such as custom 3D components, OpenGL, and touchscreens including gestures. While other Android development guides simply discuss topics, Pro Android 2 offers the combination of expert insight and real sample applications that work. Discover the design and architecture of the Android SDK through practical examples, and how to build mobile applications using the Android SDK. Explore and use the Android APIs, including those for media and Wi-Fi. Learn about Android 2's integrated local and web search, handwriting gesture UI, Google Translate, and text-to-speech features. Pro Android 2 dives deep, providing you with all the knowledge and techniques you need to build mobile applications ranging from games to Google apps, including add-ons to Google Docs. You'll be able to extend and run the new Google Chrome APIs on the G1, the G2, and other next-generation Google phones and Android-enabled devices.

Sayed Y. Hashimi is the author of Pro Android, as well as a consultant and trainer in Jacksonville, Florida. Sayed has worked for startups and Fortune 100 companies. He has developed large-scale distributed applications with a variety of programming languages and platforms, including C++, Java, and .NET. Sayed has published in major software journals on topics ranging from low-level programming techniques to high-level architecture concepts.

Hashimi / Komatineni / MacLean Pro Android 2 jetzt bestellen!

Weitere Infos & Material


1;Table of Contents;6
2;About the Authors;14
3;About the Technical Reviewer;15
4;Acknowledgments;16
5;Foreword;17
6;Chapter 1 Introducing the Android Computing Platform;18
6.1;A New Platform for a New Personal Computer;18
6.2;History of Android;20
6.3;Delving into the Dalvik VM;22
6.4;Comparing Android and Java ME;24
6.5;Understanding the Android Software Stack;27
6.6;Developing an End-User Application with the Android SDK;28
6.6.1;Android Emulator;28
6.6.2;The Android UI;29
6.6.3;The Android Foundational Components;30
6.6.4;Advanced UI Concepts;31
6.6.5;Android Service Components;33
6.6.6;Android Media and Telephony Components;33
6.6.7;Android Java Packages;35
6.7;Taking Advantage of Android Source Code;40
6.8;Summary;41
7;Chapter 2 Getting Your Feet Wet;42
7.1;Setting Up Your Environment;42
7.1.1;Downloading JDK 6;43
7.1.2;Downloading Eclipse 3.5;43
7.1.3;Downloading the Android SDK;44
7.1.4;Installing Android Development Tools (ADT);45
7.2;Learning the Fundamental Components;48
7.2.1;View;48
7.2.2;Activity;48
7.2.3;Intent;48
7.2.4;Content Provider;49
7.2.5;Service;49
7.2.6;AndroidManifest.xml;49
7.2.7;Android Virtual Devices;49
7.3;Hello World!;50
7.4;Android Virtual Devices;55
7.5;Exploring the Structure of an Android Application;57
7.6;Analyzing the Notepad Application;59
7.6.1;Loading and Running the Notepad Application;60
7.6.2;Dissecting the Application;61
7.7;Examining the Application Lifecycle;68
7.8;Debugging Your App;71
7.9;Summary;72
8;Chapter 3 Using Resources, Content Providers, and Intents;73
8.1;Understanding Resources;74
8.1.1;String Resources;75
8.1.2;Layout Resources;76
8.1.3;Resource-Reference Syntax;78
8.1.4;Defining Your Own Resource IDs for Later Use;79
8.1.5;Compiled and Noncompiled Android Resources;80
8.1.6;Enumerating Key Android Resources;81
8.1.6.1;Color Resources;83
8.1.6.2;More on String Resources;84
8.1.6.3;Dimension Resources;85
8.1.6.4;Image Resources;86
8.1.6.5;Color-Drawable Resources;87
8.1.7;Working with Arbitrary XML Resource Files;89
8.1.8;Working with Raw Resources;90
8.1.9;Working with Assets;91
8.1.10;Reviewing the Resources Directory Structure;91
8.2;Understanding Content Providers;92
8.2.1;Exploring Android’s Built-in Providers;93
8.2.1.1;Exploring Databases on the Emulator and Available Devices;93
8.2.1.2;Quick SQLite Primer;98
8.2.2;Architecture of Content Providers;99
8.2.2.1;Structure of Android Content URIs;100
8.2.2.2;Structure of Android MIME Types;101
8.2.2.3;Reading Data Using URIs;103
8.2.2.4;Using the Cursor;105
8.2.2.5;Working with the where Clause;107
8.2.2.5.1;Passing a where Clause Through a URI;107
8.2.2.5.2;Using Explicit WHERE Clauses;108
8.2.2.6;Inserting Records;109
8.2.2.7;Adding a File to a Content Provider;110
8.2.2.8;Updates and Deletes;110
8.2.3;Implementing Content Providers;111
8.2.3.1;Planning a Database;111
8.2.3.2;Extending ContentProvider;113
8.2.3.3;Fulfilling MIME-Type Contracts;115
8.2.3.4;Implementing the Query Method;116
8.2.3.5;Implementing an Insert Method;117
8.2.3.6;Implementing an Update Method;118
8.2.3.7;Implementing a Delete Method;119
8.2.3.8;Using UriMatcher to Figure Out the URIs;120
8.2.3.9;Using Projection Maps;121
8.2.3.10;Registering the Provider;122
8.3;Understanding Intents;122
8.3.1;Available Intents in Android;123
8.3.2;Intents and Data URIs;125
8.3.3;Generic Actions;126
8.3.4;Using Extra Information;127
8.3.5;Using Components to Directly Invoke an Activity;129
8.3.6;Best Practice for Component Designers;130
8.3.7;Understanding Intent Categories;130
8.3.8;The Rules for Resolving Intents to Their Components;133
8.3.9;Exercising the ACTION_PICK;133
8.3.10;Exercising the GET_CONTENT Action;135
8.4;Further Resources for This Chapter;137
8.5;Summary;137
9;Chapter 4 Building User Interfaces and Using Controls;139
9.1;UI Development in Android;139
9.2;Understanding Android’s Common Controls;145
9.2.1;Text Controls;145
9.2.1.1;TextView;145
9.2.1.2;EditText;146
9.2.1.3;AutoCompleteTextView;147
9.2.1.4;MultiAutoCompleteTextView;148
9.2.2;Button Controls;149
9.2.2.1;The Button Control;149
9.2.2.2;The ImageButton Control;150
9.2.2.3;The ToggleButton Control;151
9.2.2.4;The CheckBox Control;151
9.2.2.5;The RadioButton Control;152
9.2.3;List Controls;155
9.2.4;Grid Controls;159
9.2.5;Date and Time Controls;161
9.2.5.1;The DatePicker and TimePicker Controls;161
9.2.5.2;The AnalogClock and DigitalClock Controls;163
9.3;Other Interesting Controls in Android;163
9.3.1;The MapView Control;164
9.3.2;The Gallery Control;164
9.3.3;The Spinner Control;164
9.4;Understanding Layout Managers;165
9.4.1;The LinearLayout Layout Manager;165
9.4.1.1;Understanding Weight and Gravity;166
9.4.1.2;android:gravity vs. android:layout_gravity;168
9.4.2;The TableLayout Layout Manager;169
9.4.3;The RelativeLayout Layout Manager;173
9.4.4;The FrameLayout Layout Manager;175
9.4.5;Customizing Layout for Various Device Configurations;178
9.5;Understanding Adapters;180
9.5.1;Getting to Know SimpleCursorAdapter;181
9.5.2;Getting to Know ArrayAdapter;181
9.5.3;Creating Custom Adapters;182
9.6;Debugging and Optimizing Layouts with the Hierarchy Viewer;183
9.7;Summary;186
10;Chapter 5 Working with Menus and Dialogs;187
10.1;Understanding Android Menus;187
10.1.1;Creating a Menu;189
10.1.2;Working with Menu Groups;190
10.1.3;Responding to Menu Items;191
10.1.3.1;Responding to Menu Items Through onOptionsItemSelected;191
10.1.3.2;Responding to Menu Items Through Listeners;191
10.1.3.3;Using an Intent to Respond to Menu Items;192
10.1.4;Creating a Test Harness for Testing Menus;192
10.1.4.1;Creating an XML Layout;194
10.1.4.2;Creating an Activity;194
10.1.4.3;Setting Up the Menu;195
10.1.4.4;Adding Regular Menu Items;195
10.1.4.5;Adding Secondary Menu Items;196
10.1.4.6;Responding to Menu-Item Clicks;196
10.1.4.7;Tweaking the AndroidManifest.xml File;198
10.2;Working with Other Menu Types;199
10.2.1;Expanded Menus;199
10.2.2;Working with Icon Menus;199
10.2.3;Working with Submenus;200
10.2.4;Provisioning for System Menus;201
10.2.5;Working with Context Menus;201
10.2.5.1;Registering a View for a Context Menu;203
10.2.5.2;Populating a Context Menu;203
10.2.5.3;Responding to Context Menu Items;204
10.2.6;Working with Alternative Menus;204
10.2.7;Working with Menus in Response to Changing Data;208
10.3;Loading Menus Through XML Files;208
10.3.1;Structure of an XML Menu Resource File;209
10.3.2;Inflating XML Menu Resource Files;209
10.3.3;Responding to XML-Based Menu Items;210
10.3.4;A Brief Introduction to Additional XML Menu Tags;211
10.3.4.1;Group Category Tag;211
10.3.4.2;Checkable Behavior Tags;211
10.3.4.3;Tags to Simulate a Submenu;211
10.3.4.4;Menu Icon Tag;211
10.3.4.5;Menu Enabling/Disabling Tag;212
10.3.4.6;Menu Item Shortcuts;212
10.3.4.7;Menu Visibility;212
10.4;Using Dialogs in Android;212
10.4.1;Designing an Alert Dialog;213
10.4.2;Designing a Prompt Dialog;215
10.4.2.1;XML Layout File for the Prompt Dialog;216
10.4.2.2;Setting Up an Alert-Dialog Builder with a User View;216
10.4.2.3;Setting Up Buttons and Listeners;217
10.4.2.4;Creating and Showing the Prompt Dialog;217
10.4.2.5;Prompt Dialog Listener;218
10.4.2.6;Putting It All Together;218
10.4.3;The Nature of Dialogs in Android;220
10.4.4;Rearchitecting the Prompt Dialog;221
10.5;Working with Managed Dialogs;222
10.5.1;Understanding the Managed-Dialog Protocol;222
10.5.2;Recasting the Non-Managed Dialog As a Managed Dialog;222
10.5.3;Simplifying the Managed-Dialog Protocol;224
10.5.3.1;IDialogProtocol;226
10.5.3.2;ManagedActivityDialog;227
10.5.3.3;DialogRegistry;227
10.5.3.4;ManagedDialogsActivity;228
10.5.3.5;IDialogFinishedCallBack;229
10.5.3.6;GenericManagedAlertDialog;229
10.5.3.7;GenericPromptDialog;230
10.6;Summary;231
11;Chapter 6 Unveiling 2D Animation;233
11.1;Frame-by-Frame Animation;234
11.1.1;Planning for Frame-by-Frame Animation;234
11.1.2;Creating the Activity;235
11.1.3;Adding Animation to the Activity;236
11.2;Layout Animation;239
11.2.1;Basic Tweening Animation Types;240
11.2.2;Planning the Layout-Animation Test Harness;241
11.2.3;Creating the Activity and the ListView;242
11.2.4;Animating the ListView;244
11.2.5;Using Interpolators;247
11.3;View Animation;249
11.3.1;Understanding View Animation;249
11.3.2;Adding Animation;252
11.3.3;Using Camera to Provide Depth Perception in 2D;255
11.3.4;Exploring the AnimationListener Class;256
11.3.5;Some Notes on Transformation Matrices;257
11.4;Summary;258
12;Chapter 7 Exploring Security and Location-Based Services;259
12.1;Understanding the Android Security Model;259
12.1.1;Overview of Security Concepts;260
12.1.2;Signing Applications for Deployment;260
12.1.2.1;Generating a Self-Signed Certificate Using the Keytool;261
12.1.2.2;Using the Jarsigner Tool to Sign the .apk File;262
12.1.2.3;Aligning Your Application with zipalign;263
12.1.2.4;Installing Updates to an Application and Signing;265
12.2;Performing Runtime Security Checks;265
12.2.1;Understanding Security at the Process Boundary;265
12.2.2;Declaring and Using Permissions;266
12.2.3;Understanding and Using Custom Permissions;268
12.2.4;Understanding and Using URI Permissions;274
12.3;Working with Location-Based Services;274
12.3.1;Understanding the Mapping Package;275
12.3.1.1;Obtaining a map-api Key from Google;275
12.3.1.2;Understanding MapView and MapActivity;277
12.3.1.3;Using Overlays;282
12.3.2;Understanding the Location Package;286
12.3.2.1;Geocoding with Android;286
12.3.2.2;Geocoding with Background Threads;290
12.3.2.3;Understanding the LocationManager Service;293
12.3.2.4;Using MyLocationOverlay;298
12.4;Summary;303
13;Chapter 8 Building and Consuming Services;304
13.1;Consuming HTTP Services;304
13.1.1;Using the HttpClient for HTTP GET Requests;305
13.1.2;Using the HttpClient for HTTP POST Requests;306
13.1.3;Dealing with Exceptions;310
13.1.4;Addressing Multithreading Issues;312
13.2;Doing Interprocess Communication;316
13.2.1;Creating a Simple Service;316
13.2.2;Understanding Services in Android;317
13.2.3;Understanding Local Services;318
13.2.4;Understanding AIDL Services;322
13.2.5;Defining a Service Interface in AIDL;323
13.2.6;Implementing an AIDL Interface;325
13.2.7;Calling the Service from a Client Application;327
13.2.8;Passing Complex Types to Services;331
13.3;Summary;341
14;Chapter 9 Using the MediaFramework and Telephony APIs;342
14.1;Using the Media APIs;342
14.1.1;Understanding and Using SD Cards;343
14.1.2;Playing Audio Content;346
14.1.3;Understanding the setDataSource Method;350
14.1.4;Playing Video Content;351
14.1.5;Understanding the MediaPlayer Oddities;353
14.1.6;Exploring Audio Recording;354
14.1.7;Exploring Video Recording;358
14.1.8;Exploring the MediaStore Class;363
14.1.9;Adding Media Content to the Media Store;367
14.2;Using the Telephony APIs;369
14.2.1;Working with SMS;369
14.2.1.1;Sending SMS Messages;369
14.2.1.2;Monitoring Incoming SMS Messages;372
14.2.1.3;Working with SMS Folders;374
14.2.1.4;Sending E-mail;375
14.2.2;Working with the Telephony Manager;376
14.3;Summary;377
15;Chapter 10 Programming 3D Graphics with OpenGL;378
15.1;Understanding the History and Background of OpenGL;379
15.1.1;OpenGL ES;380
15.1.2;OpenGL ES and Java ME;381
15.1.3;M3G: Another Java ME 3D Graphics Standard;382
15.2;Fundamentals of OpenGL;382
15.2.1;Essential Drawing with OpenGL ES;383
15.2.1.1;glVertexPointer and Specifying Drawing Vertices;384
15.2.1.2;glDrawElements;386
15.2.1.3;glClear;388
15.2.1.4;glColor;388
15.2.2;Understanding OpenGL Camera and Coordinates;389
15.2.2.1;gluLookAt and the Camera Symbolism;389
15.2.2.2;glFrustum and the Viewing Volume;391
15.2.2.3;glViewport and Screen Size;392
15.3;Interfacing OpenGL ES with Android;393
15.3.1;Using GLSurfaceView and Related Classes;394
15.3.2;Simple Test Harness That Draws a Triangle;395
15.3.3;Changing Camera Settings;399
15.3.4;Using Indices to Add Another Triangle;401
15.3.5;Animating the Simple OpenGL Triangle;402
15.3.5.1;AnimatedTriangleActivity.java;403
15.3.5.2;AnimatedSimpleTriangleRenderer;404
15.4;Braving OpenGL: Shapes and Textures;405
15.4.1;A Simple Menu Trick for Your Demos;406
15.4.2;Drawing a Rectangle;410
15.4.3;Working with Shapes;412
15.4.3.1;A Regular Polygon As a Shape;412
15.4.3.2;Implementing the RegularPolygon Shape;413
15.4.3.3;Rendering a Square Using RegularPolygon;420
15.4.3.4;Animating RegularPolygons;422
15.4.4;Working with Textures;425
15.4.4.1;Understanding Textures;425
15.4.4.2;Normalized Texture Coordinates;425
15.4.4.3;Abstracting Common Texture Handling;426
15.4.4.4;Drawing Using Textures;429
15.4.5;Drawing Multiple Figures;430
15.4.6;OpenGL Resources;434
15.5;Summary;434
16;Chapter 11 Managing and Organizing Preferences;435
16.1;Exploring the Preferences Framework;435
16.1.1;Understanding ListPreference;436
16.1.2;Manipulating Preferences Programmatically;443
16.1.3;Understanding CheckBoxPreference;444
16.1.4;Understanding EditTextPreference;446
16.1.5;Understanding RingtonePreference;447
16.2;Organizing Preferences;449
16.3;Summary;452
17;Chapter 12 Exploring Live Folders;453
17.1;Exploring Live Folders;453
17.1.1;How a User Experiences Live Folders;454
17.1.2;Building a Live Folder;459
17.1.2.1;AndroidManifest.xml;460
17.1.2.2;AllContactsLiveFolderCreatorActivity.java;461
17.1.2.3;MyContactsProvider.java;463
17.1.2.4;MyCursor.java;468
17.1.2.5;BetterCursorWrapper.java;468
17.1.2.6;SimpleActivity.java;469
17.1.2.7;Exercising Live Folders;470
17.2;Summary;470
18;Chapter 13 Home Screen Widgets;471
18.1;Architecture of Home Screen Widgets;472
18.1.1;What Are Home Screen Widgets?;472
18.1.2;User Experience with Home Screen Widgets;473
18.1.2.1;Creating a Widget Instance on the Home Screen;473
18.1.2.2;Understanding Widget Configurator;475
18.1.3;Lifecycle of a Widget;476
18.1.3.1;Widget Definition Phase;476
18.1.3.2;Widget Instance Creation Phase;478
18.1.3.3;onUpdate Phase;480
18.1.3.4;Widget View Mouse Click Event Callbacks Phase;481
18.1.3.5;Deleting a Widget Instance;482
18.1.3.6;Uninstalling Widget Packages;482
18.2;A Sample Widget Application;482
18.2.1;Defining the Widget Provider;484
18.2.2;Defining Widget Size;485
18.2.3;Widget Layout-Related Files;486
18.2.3.1;Widget Layout File;486
18.2.3.2;Widget Background Shape File;487
18.2.4;Implementing a Widget Provider;488
18.2.5;Implementing Widget Models;490
18.2.5.1;Interface for a Widget Model;490
18.2.5.2;Abstract Implementation of a Widget Model;491
18.2.5.3;Implementation of a Widget Model for Birthday Widget;494
18.2.5.4;A Few Date-Related Utilities;496
18.2.6;Implementing Widget Configuration Activity;497
18.3;Widget Limitations and Extensions;501
18.4;Resources;502
18.5;Summary;503
19;Chapter 14 Android Search;504
19.1;Android Search Experience;505
19.1.1;Exploring Android Global Search;505
19.1.2;Enabling Suggestion Providers for Global Search;510
19.1.3;QSB and Suggestions Provider Interaction;513
19.2;Activities and Search Key Interaction;515
19.2.1;Behavior of Search Key on a Regular Activity;516
19.2.2;Behavior of an Activity That Disables Search;523
19.2.3;Invoking Search Through a Menu;524
19.2.4;Understanding Local Search and Related Activities;527
19.2.5;Enabling Type-to-Search;532
19.3;Implementing a Simple Suggestion Provider;533
19.3.1;Planning the Simple Suggestions Provider;533
19.3.2;Simple Suggestions Provider Implementation Files;534
19.3.3;Implementing the SimpleSuggestionProvider class;534
19.3.3.1;Responsibilities of a Simple Suggestion Provider;535
19.3.3.2;Complete Source Code of SimpleSuggestionProvider;535
19.3.3.3;Understanding SearchRecentSuggestionsProvider Database Modes;535
19.3.3.4;Declaring the Suggestion Provider in the Manifest File;537
19.3.4;Understanding Simple Suggestions Provider Search Activity;538
19.3.4.1;Responsibilities of a Simple Search Activity;538
19.3.4.2;Complete Source Code of a Search Activity;538
19.3.4.3;Checking the Action and Retrieving the Query;540
19.3.4.4;Understanding onCreate() and onNewIntent();540
19.3.4.5;How to Test for onNewIntent();540
19.3.4.6;Saving the Query Using SearchRecentSuggestionsProvider;541
19.3.4.7;Search Metadata;541
19.3.5;Search Invoker Activity;542
19.3.6;Simple Suggestion Provider User Experience;544
19.4;Implementing a Custom Suggestion Provider;548
19.4.1;Planning the Custom Suggestion Provider;548
19.4.2;SuggestURLProvider Project Implementation Files;549
19.4.3;Implementing the SuggestUrlProvider Class;549
19.4.3.1;Responsibilities of a Suggestion Provider;550
19.4.3.2;Overall Source Code for SuggestUrlProvider;550
19.4.3.3;Understanding Suggestion Provider URIs;553
19.4.3.4;Implementing getType() and Specifying MIME Types;554
19.4.3.5;Passing Query to the Suggestion Provider: The Selection Argument;554
19.4.3.6;Exploring Search Metadata for Custom Suggestion Providers;555
19.4.3.7;Suggestion Cursor Columns;556
19.4.3.8;Populating and Returning the List of Columns;557
19.4.4;Implementing a Search Activity for a Custom Suggestion Provider;558
19.4.4.1;Responsibilities of a Search Activity;558
19.4.4.1.1;Source Code of SearchActivity for a Custom Suggestion Provider;559
19.4.4.1.2;Details of SearchActivity Invocation;561
19.4.4.1.3;Responding to ACTION_SEARCH and ACTION_VIEW;561
19.4.4.1.4;Search Activity Layout;562
19.4.4.1.5;Corresponding strings.xml;563
19.4.4.1.6;Responding to onCreate() and onNewIntent();563
19.4.4.1.7;Notes on Finishing a Search Activity;563
19.4.4.2;Custom Suggestions Provider Manifest File;564
19.4.4.3;Custom Suggestion User Experience;565
19.5;Using Action Keys and Application-Specific Search Data;569
19.5.1;Using Action Keys in Android Search;570
19.5.2;Working with Application-Specific Search Context;572
19.6;Resources;574
19.7;Summary;575
20;Chapter 15 Exploring Text to Speech and Translate APIs;576
20.1;The Basics of Text to Speech in Android;576
20.2;Using Utterances to Keep Track of Our Speech;581
20.3;Using Audio Files for Your Voice;582
20.4;Advanced Features of the TTS Engine;589
20.4.1;Setting Audio Streams;589
20.4.2;Using Earcons;590
20.4.3;Playing Silence;590
20.4.4;Using Language Methods;591
20.5;Translating Text to a Different Language;592
20.6;Summary;601
21;Chapter 16 Touchscreens;603
21.1;Understanding MotionEvents;603
21.1.1;Using VelocityTracker;615
21.1.2;Exploring Drag and Drop;617
21.2;Multi-Touch;620
21.3;Touches with Maps;627
21.4;Gestures;630
21.5;Summary;637
22;Chapter 17 Titanium Mobile: A WebKit-Based Approach to Android Development;638
22.1;Titanium Mobile Overview;639
22.1.1;Architecture;640
22.1.1.1;Nature of a Titanium Project;642
22.1.1.2;Components of the Titanium Developer IDE;642
22.1.1.3;Building and Deploying Projects through Titanium IDE;642
22.1.2;The Titanium Ecosystem;643
22.1.3;Downloading and Installing Titanium Developer;644
22.2;Getting to Know the Ropes: The First Project;651
22.2.1;Creating a Titanium Mobile Project;651
22.2.2;Crafting “Hello World”;653
22.2.3;Provisioning the Application for Debugging;655
22.2.4;Packaging the Application;658
22.2.5;Installing the .apk File on Your Own Emulator;660
22.3;Planning for Real-World Applications;661
22.3.1;Essential Primer on JQuery;662
22.3.2;Essential Primer on Advanced JavaScript;664
22.3.3;Understanding the Microtemplating Engine;667
22.3.4;Additional Titanium Mobile APIs;670
22.4;Summary;671
23;Chapter 18 Working with Android Market;672
23.1;Becoming a Publisher;672
23.1.1;Following the Rules;673
23.1.2;Developer Console;676
23.2;Preparing Your Application for Sale;677
23.2.1;Testing for Different Devices;677
23.2.2;Supporting Different Screen Sizes;677
23.2.3;Preparing AndroidManifest.xml for Uploading;678
23.2.4;Localizing Your Application;678
23.2.5;Preparing Your Application Icon;679
23.2.6;Considerations for Paid Apps;679
23.2.7;Directing Users Back to the Market;680
23.2.8;Preparing Your .apk File for Uploading;680
23.3;Uploading Your Application;681
23.4;User Experience on Android Market;683
23.5;Summary;685
24;Chapter 19 Outlook and Resources;686
24.1;Current State of Android;686
24.1.1;Android Based Mobile Device Manufacturers;687
24.1.1.1;Motorola Droid;687
24.1.1.2;T-Mobile G1;688
24.1.1.3;Nexus One;688
24.1.2;Android Application Stores;688
24.2;Outlook For Android;690
24.2.1;Quick Summary of Mobile Operating Systems;690
24.2.2;Contrasting Android with other Mobile OSs;692
24.2.3;Support for HTML 5 and What it Reveals;693
24.3;Android Resources;694
24.3.1;Core Android Resources;694
24.3.2;Android News Related Resources;695
24.4;Summary;696
25;Index;697



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.