
Android Cookbook
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
More details
Other editions
Additional editions

Content
- Cover
- Copyright
- Table of Contents
- Preface
- Conventions Used in This Book
- Getting and Using the Code Examples
- O'Reilly Online Learning
- How to Contact Us
- Acknowledgments
- Chapter 1. Getting Started
- 1.1 Understanding the Android Application Architecture
- Problem
- Discussion
- 1.2 Understanding the Android Activity Life Cycle
- Problem
- Solution
- Discussion
- 1.3 Learning About Android Releases
- Problem
- Discussion
- 1.4 Learning the Java Language
- Problem
- Solution
- Discussion
- See Also
- 1.5 Setting Up Android Studio
- Problem
- Solution
- Discussion
- See Also
- 1.6 Installing Platform Editions and Keeping the SDK Updated
- Problem
- Solution
- Discussion
- See Also
- 1.7 Creating a "Hello, World" App Using Android Studio
- Problem
- Solution
- Discussion
- 1.8 Using the Kotlin Language in Building Android Apps
- Problem
- Solution
- Discussion
- 1.9 Converting an Eclipse ADT Project to Android Studio
- Problem
- Solution
- Discussion
- 1.10 Preserving History While Converting from Eclipse to Android Studio
- Problem
- Solution
- Discussion
- 1.11 Controlling Emulators/Devices Using Command-Line ADB
- Problem
- Solution
- Discussion
- 1.12 Referencing Libraries to Implement External Functionality
- Problem
- Solution
- Discussion
- 1.13 Using New Features on Old Devices via the Compatibility Libraries
- Problem
- Solution
- Discussion
- 1.14 Using SDK Samples to Help Avoid Head Scratching
- Problem
- Solution
- Discussion
- See Also
- 1.15 Taking a Screenshot/Video from the Emulator/Android Device
- Problem
- Solution
- Discussion
- See Also
- 1.16 Program: A Simple CountDownTimer Example
- Problem
- Solution
- Discussion
- Source Download URL
- 1.17 Program: Tipster, a Tip Calculator for the Android OS
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- Chapter 2. Designing a Successful Application
- 2.1 Exception Handling
- Problem
- Solution
- Discussion
- See Also
- 2.2 Requesting Android Permissions at Runtime
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 2.3 Accessing Android's Application Object as a "Singleton"
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 2.4 Keeping Data When the User Rotates the Device
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 2.5 Monitoring the Battery Level of an Android Device
- Problem
- Solution
- Discussion
- 2.6 Creating Splash Screens in Android
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 2.7 Designing a Conference/Camp/Hackathon/Institution App
- Problem
- Solution
- Discussion
- See Also
- 2.8 Using Google Analytics in an Android Application
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 2.9 Setting First-Run Preferences
- Problem
- Solution
- Discussion
- 2.10 Formatting Numbers
- Problem
- Solution
- Discussion
- See Also
- 2.11 Formatting with Correct Plurals
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 2.12 Formatting the Time and Date for Display
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 2.13 Simplifying Date/Time Calculations with the Java 8 java.time API
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 2.14 Controlling Input with KeyListeners
- Problem
- Solution
- Discussion
- See Also
- 2.15 Backing Up Android Application Data
- Problem
- Solution
- Discussion
- 2.16 Using Hints Instead of Tool Tips
- Problem
- Solution
- Discussion
- Chapter 3. Application Testing
- 3.1 Setting Up an Android Virtual Device (AVD) for App Testing
- Problem
- Solution
- Discussion
- See Also
- 3.2 Testing on a Wide Range of Devices with Cloud-Based Testing
- Problem
- Solution
- Discussion
- 3.3 Testing with Android Studio and JUnit
- Problem
- Solution
- Discussion
- Source Download URL
- See Also
- 3.4 Testing with Robolectric and JUnit 4
- Problem
- Solution
- Discussion
- See Also
- 3.5 Testing with ATSL, Espresso, and JUnit 4
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 3.6 Troubleshooting Application Crashes
- Problem
- Solution
- Discussion
- See Also
- 3.7 Debugging Using Log.d() and LogCat
- Problem
- Solution
- Discussion
- 3.8 Getting Bug Reports Automatically with Crash Reporting
- Problem
- Solution
- Discussion
- See Also
- 3.9 Using a Local Runtime Application Log for Analysis of Field Errors or Situations
- Problem
- Solution
- Discussion
- See Also
- 3.10 Reproducing Activity Life-Cycle Scenarios for Testing
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 3.11 Keeping Your App Snappy with StrictMode
- Problem
- Solution
- Discussion
- See Also
- 3.12 Static Code Testing with Android Lint
- Problem
- Solution
- Discussion
- See Also
- 3.13 Dynamic Testing with the Monkey Program
- Problem
- Solution
- Discussion
- See Also
- 3.14 Sending Text Messages and Placing Calls Between AVDs
- Problem
- Solution
- Discussion
- See Also
- Chapter 4. Inter-/Intra-Process Communication
- 4.1 Opening a Web Page, Phone Number, or Anything Else with an Intent
- Problem
- Solution
- Discussion
- Source Download URL
- 4.2 Emailing Text from a View
- Problem
- Solution
- Discussion
- Source Download URL
- 4.3 Sending an Email with Attachments
- Problem
- Solution
- Discussion
- Source Download URL
- 4.4 Pushing String Values Using Intent.putExtra()
- Problem
- Solution
- Discussion
- See Also
- 4.5 Retrieving Data from a Subactivity Back to Your Main Activity
- Problem
- Solution
- Discussion
- See Also
- 4.6 Keeping a Background Service Running While Other Apps Are on Display
- Problem
- Solution
- Discussion
- 4.7 Sending/Receiving a Broadcast Message
- Problem
- Solution
- Discussion
- 4.8 Starting a Service After Device Reboot
- Problem
- Solution
- Discussion
- 4.9 Creating a Responsive Application Using Threads
- Problem
- Solution
- Discussion
- 4.10 Using AsyncTask to Do Background Processing
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 4.11 Sending Messages Between Threads Using an Activity Thread Queue and Handler
- Problem
- Solution
- Discussion
- 4.12 Creating an Android Epoch HTML/JavaScript Calendar
- Problem
- Solution
- Discussion
- Source Download URL
- Chapter 5. Graphics
- 5.1 Using a Custom Font
- Problem
- Solution
- Discussion
- Source Download URL
- 5.2 Drawing a Spinning Cube with OpenGL ES
- Problem
- Solution
- Discussion
- See Also
- 5.3 Adding Controls to the OpenGL Spinning Cube
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 5.4 Freehand Drawing Smooth Curves
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 5.5 Taking a Picture Using an Intent
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 5.6 Taking a Picture Using android.media.Camera
- Problem
- Solution
- Discussion
- See Also
- 5.7 Scanning a Barcode or QR Code with the Google ZXing Barcode Scanner
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 5.8 Using AndroidPlot to Display Charts and Graphs
- Problem
- Solution
- Discussion
- Source Download URL
- 5.9 Using Inkscape to Create an Android Launcher Icon from OpenClipArt.org
- Problem
- Solution
- Discussion
- See Also
- 5.10 Using Paint.NET to Create Launcher Icons from OpenClipArt.org
- Problem
- Solution
- Discussion
- See Also
- 5.11 Using Nine Patch Files
- Problem
- Solution
- Discussion
- See Also
- 5.12 Creating HTML5 Charts with Android RGraph
- Problem
- Solution
- Discussion
- Source Download URL
- 5.13 Adding a Simple Raster Animation
- Problem
- Solution
- Discussion
- See Also
- 5.14 Using Pinch to Zoom
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- Chapter 6. Graphical User Interface
- 6.1 Understanding and Following User Interface Guidelines
- Problem
- Solution
- Discussion
- 6.2 Looking Good with Material Design
- Problem
- Solution
- Discussion
- See Also
- 6.3 Choosing a Layout Manager (a.k.a. ViewGroup) and Arranging Components
- Problem
- Solution
- Discussion
- 6.4 Handling Configuration Changes by Decoupling the View from the Model
- Problem
- Solution
- Discussion
- 6.5 Controlling the Action Bar
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 6.6 Adding a Share Action to Your Action Bar
- Problem
- Solution
- Discussion
- 6.7 Building Modern UIs with the Fragment API
- Problem
- Solution
- Discussion
- Source Download URL
- 6.8 Creating a Button and Its Click Event Listener
- Problem
- Solution
- Discussion
- 6.9 Enhancing UI Design Using Image Buttons
- Problem
- Solution
- Discussion
- Source Download URL
- 6.10 Using a FloatingActionButton
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 6.11 Wiring Up an Event Listener in Many Different Ways
- Problem
- Solution
- Discussion
- 6.12 Using CheckBoxes and RadioButtons
- Problem
- Solution
- Discussion
- 6.13 Using Card Widgets
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 6.14 Offering a Drop-Down Chooser via the Spinner Class
- Problem
- Solution
- Discussion
- Source Download URL
- 6.15 Handling Long-Press/Long-Click Events
- Problem
- Solution
- Discussion
- 6.16 Displaying Text Fields with TextView and EditText
- Problem
- Solution
- Discussion
- 6.17 Constraining EditText Values with Attributes and the TextWatcher Interface
- Problem
- Solution
- Discussion
- See Also
- 6.18 Implementing AutoCompleteTextView
- Problem
- Solution
- Discussion
- Source Download URL
- 6.19 Feeding AutoCompleteTextView Using a SQLite Database Query
- Problem
- Solution
- Discussion
- 6.20 Turning Edit Fields into Password Fields
- Problem
- Solution
- Discussion
- 6.21 Changing the Enter Key to "Next" on the Soft Keyboard
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 6.22 Processing Key-Press Events in an Activity
- Problem
- Solution
- Discussion
- Source Download URL
- 6.23 Let Them See Stars: Using RatingBar
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 6.24 Making a View Shake
- Problem
- Solution
- Discussion
- 6.25 Providing Haptic Feedback
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 6.26 Navigating Different Activities Within a TabView
- Problem
- Solution
- Discussion
- 6.27 Creating a Loading Screen that Will Appear Between Two Activities
- Problem
- Solution
- Discussion
- 6.28 Adding a Border with Rounded Corners to a Layout
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 6.29 Detecting Gestures in Android
- Problem
- Solution
- Discussion
- See Also
- 6.30 Creating a Simple App Widget
- Problem
- Solution
- Discussion
- Source Download URL
- Chapter 7. GUI Alerts: Menus, Dialogs, Toasts, Snackbars, and Notifications
- 7.1 Alerting the User with Toast and Snackbar
- Problem
- Solution
- Discussion
- 7.2 Customizing the Appearance of a Toast
- Problem
- Solution
- Discussion
- Source Download URL
- 7.3 Creating and Displaying a Menu
- Problem
- Solution
- Discussion
- 7.4 Handling Choice Selection in a Menu
- Problem
- Solution
- Discussion
- Source Download URL
- 7.5 Creating a Submenu
- Problem
- Solution
- Discussion
- Source Download URL
- 7.6 Creating a Pop-up/Alert Dialog
- Problem
- Solution
- Discussion
- 7.7 Using a Timepicker Widget
- Problem
- Solution
- Discussion
- 7.8 Creating an iPhone-like WheelPicker for Selection
- Problem
- Solution
- Discussion
- Source Download URL
- 7.9 Creating a Tabbed Dialog
- Problem
- Solution
- Discussion
- Source Download URL
- 7.10 Creating a ProgressDialog
- Problem
- Solution
- Discussion
- Source Download URL
- 7.11 Creating a Custom Dialog with Buttons, Images, and Text
- Problem
- Solution
- Discussion
- 7.12 Creating a Reusable "About Box" Class
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 7.13 Creating a Notification in the Status Bar
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- Chapter 8. Other GUI Elements: Lists and Views
- 8.1 Building List-Based Applications with RecyclerView
- Problem
- Solution
- Discussion
- See Also
- 8.2 Building List-Based Applications with ListView
- Problem
- Solution
- Discussion
- 8.3 Creating a "No Data" View for ListViews
- Problem
- Solution
- Discussion
- 8.4 Creating an Advanced ListView with Images and Text
- Problem
- Solution
- Discussion
- Source Download URL
- 8.5 Using Section Headers in ListViews
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 8.6 Keeping the ListView with the User's Focus
- Problem
- Solution
- Discussion
- 8.7 Writing a Custom List Adapter
- Problem
- Solution
- Discussion
- 8.8 Using a SearchView to Search Through Data in a ListView
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 8.9 Handling Orientation Changes: From ListView Data Values to Landscape Charting
- Problem
- Solution
- Discussion
- Source Download URL
- Chapter 9. Multimedia
- 9.1 Playing a YouTube Video
- Problem
- Solution
- Discussion
- 9.2 Capturing Video Using MediaRecorder
- Problem
- Solution
- Discussion
- Source Download URL
- 9.3 Using Android's Face Detection Capability
- Problem
- Solution
- Discussion
- Source Download URL
- 9.4 Playing Audio from a File
- Problem
- Solution
- Discussion
- Source Download URL
- 9.5 Playing Audio Without Interaction
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 9.6 Using Speech to Text
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 9.7 Making the Device Speak with Text-to-Speech
- Problem
- Solution
- Discussion
- Source Download URL
- Chapter 10. Data Persistence
- 10.1 Reading and Writing Files in Internal and External Storage
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 10.2 Getting File and Directory Information
- Problem
- Solution
- Discussion
- See Also
- 10.3 Reading a File Shipped with the App Rather than in the Filesystem
- Problem
- Solution
- Discussion
- Source Download URL
- 10.4 Getting Space Information About the SD Card
- Problem
- Solution
- Discussion
- 10.5 Providing a Preference Activity
- Problem
- Solution
- Discussion
- 10.6 Checking the Consistency of Default Shared Preferences
- Problem
- Solution
- Discussion
- 10.7 Using a SQLite Database in an Android Application
- Problem
- Solution
- Discussion
- 10.8 Performing Advanced Text Searches on a SQLite Database
- Problem
- Solution
- Discussion
- See Also
- 10.9 Working with Dates in SQLite
- Problem
- Solution
- Discussion
- See Also
- 10.10 Exposing Non-SQL Data as a SQL Cursor
- Problem
- Solution
- Discussion
- 10.11 Displaying Data with a CursorLoader
- Problem
- Solution
- Discussion
- Source Download URL
- 10.12 Parsing JSON Using JSONObject
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 10.13 Parsing an XML Document Using the DOM API
- Problem
- Solution
- Discussion
- See Also
- 10.14 Storing and Retrieving Data via a Content Provider
- Problem
- Solution
- Discussion
- 10.15 Writing a Content Provider
- Problem
- Solution
- Discussion
- Source Download URL
- 10.16 Adding a Contact Through the Contacts Content Provider
- Problem
- Solution
- Discussion
- Source Download URL
- 10.17 Reading Contact Data Using a Content Provider
- Problem
- Solution
- Discussion
- Source Download URL
- 10.18 Implementing Drag and Drop
- Problem
- Solution
- Discussion
- 10.19 Sharing Files via a FileProvider
- Problem
- Solution
- Discussion
- See Also
- 10.20 Backing Up Your SQLite Data to the Cloud with a SyncAdapter
- Problem
- Solution
- Discussion
- See Also
- Sample Code
- 10.21 Storing Data in the Cloud with Google Firebase
- Problem
- Solution
- Discussion
- See Also
- Chapter 11. Telephone Applications
- 11.1 Doing Something When the Phone Rings
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 11.2 Processing Outgoing Phone Calls
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 11.3 Dialing the Phone
- Problem
- Solution
- Discussion
- Source Download URL
- 11.4 Sending Single-part or Multipart SMS Messages
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 11.5 Receiving an SMS Message
- Problem
- Solution
- Discussion
- Source Download URL
- 11.6 Using Emulator Controls to Send SMS Messages to the Emulator
- Problem
- Solution
- Discussion
- 11.7 Using Android's TelephonyManager to Obtain Device Information
- Problem
- Solution
- Discussion
- Source Download URL
- Chapter 12. Networked Applications
- 12.1 Consuming a RESTful Web Service Using a URLConnection
- Problem
- Solution
- Discussion
- See Also
- 12.2 Consuming a RESTful Web Service with Volley
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 12.3 Notifying Your App with Google Cloud Messaging "Push Messaging"
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 12.4 Extracting Information from Unstructured Text Using Regular Expressions
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 12.5 Parsing RSS/Atom Feeds Using ROME
- Problem
- Solution
- Discussion
- Source Download URL
- 12.6 Using MD5 to Digest Clear Text
- Problem
- Solution
- Discussion
- 12.7 Converting Text into Hyperlinks
- Problem
- Solution
- Discussion
- 12.8 Accessing a Web Page Using a WebView
- Problem
- Solution
- Discussion
- Source Download URL
- 12.9 Customizing a WebView
- Problem
- Solution
- Discussion
- 12.10 Writing an Inter-Process Communication Service
- Problem
- Solution
- Discussion
- Source Download URL
- Chapter 13. Gaming and Animation
- 13.1 Building an Android Game Using flixel-gdx
- Problem
- Solution
- Discussion
- Source Download URL
- 13.2 Building an Android Game Using AndEngine
- Problem
- Solution
- Discussion
- Source Download URL
- 13.3 Processing Timed Keyboard Input
- Problem
- Solution
- Discussion
- Chapter 14. Social Networking
- 14.1 Authenticating Users with OAUTH2
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 14.2 Integrating Social Networking Using HTTP
- Problem
- Solution
- Discussion
- 14.3 Loading a User's Twitter Timeline Using HTML or JSON
- Problem
- Solution
- Discussion
- Chapter 15. Location and Map Applications
- 15.1 Getting Location Information
- Problem
- Solution
- Discussion
- Source Download URL
- 15.2 Accessing GPS Information in Your Application
- Problem
- Solution
- Discussion
- 15.3 Mocking GPS Coordinates on a Device
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 15.4 Using Geocoding and Reverse Geocoding
- Problem
- Solution
- Discussion
- 15.5 Getting Ready for Google Maps API V2 Development
- Problem
- Solution
- Discussion
- Source Download URL
- 15.6 Using the Google Maps API V2
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 15.7 Displaying Map Data Using OpenStreetMap
- Problem
- Solution
- Discussion
- Source Download URL
- 15.8 Creating Overlays in OpenStreetMap Maps
- Problem
- Solution
- Discussion
- Source Download URL
- 15.9 Using a Scale on an OpenStreetMap Map
- Problem
- Solution
- Discussion
- 15.10 Handling Touch Events on an OpenStreetMap Overlay
- Problem
- Solution
- Discussion
- Source Download URL
- 15.11 Getting Location Updates with OpenStreetMap Maps
- Problem
- Solution
- Discussion
- Source Download URL
- Chapter 16. Accelerometer
- 16.1 Checking for the Presence or Absence of a Sensor
- Problem
- Solution
- Discussion
- 16.2 Using the Accelerometer to Detect Shaking
- Problem
- Solution
- Discussion
- Source Download URL
- 16.3 Checking Whether a Device Is Facing Up or Down
- Problem
- Solution
- Discussion
- Source Download URL
- 16.4 Reading the Temperature Sensor
- Problem
- Solution
- Discussion
- See Also
- Chapter 17. Bluetooth
- 17.1 Enabling Bluetooth and Making the Device Discoverable
- Problem
- Solution
- Discussion
- 17.2 Connecting to a Bluetooth-Enabled Device
- Problem
- Solution
- Discussion
- See Also
- 17.3 Accepting Connections from a Bluetooth Device
- Problem
- Solution
- Discussion
- 17.4 Implementing Bluetooth Device Discovery
- Problem
- Solution
- Discussion
- Source Download URL
- Chapter 18. System and Device Control
- 18.1 Accessing Phone Network/Connectivity Information
- Problem
- Solution
- Discussion
- See Also
- 18.2 Obtaining Information from the Manifest File
- Problem
- Solution
- Discussion
- 18.3 Changing Incoming Call Notification to Silent, Vibrate, or Normal
- Problem
- Solution
- Discussion
- 18.4 Copying Text and Getting Text from the Clipboard
- Problem
- Solution
- Discussion
- 18.5 Using LED-Based Notifications
- Problem
- Solution
- Discussion
- 18.6 Making the Device Vibrate
- Problem
- Solution
- Discussion
- Source Download URL
- 18.7 Determining Whether a Given Application Is Running
- Problem
- Solution
- Discussion
- Chapter 19. All the World's Not Java: Other Programming Languages and Frameworks
- 19.1 Learning About Cross-Platform Solutions
- Problem
- Discussion
- 19.2 Running Shell Commands from Your Application
- Problem
- Solution
- Discussion
- Source Download URL
- 19.3 Running Native C/C++ Code with JNI on the NDK
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 19.4 Getting Started with SL4A, the Scripting Layer for Android
- Problem
- Solution
- Discussion
- 19.5 Creating Alerts in SL4A
- Problem
- Solution
- Discussion
- 19.6 Fetching Your Google Documents and Displaying Them in a ListView Using SL4A
- Problem
- Solution
- Discussion
- 19.7 Sharing SL4A Scripts in QR Codes
- Problem
- Solution
- Discussion
- 19.8 Using Native Handset Functionality from a WebView via JavaScript
- Problem
- Solution
- Discussion
- 19.9 Building a Cross-Platform App with Xamarin
- Problem
- Solution
- Discussion
- 19.10 Creating a Cross-Platform App Using PhoneGap/Cordova
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 19.11 Creating a Cross-Platform App Using Flutter
- Problem
- Solution
- See Also
- Chapter 20. All the World's Not English: Strings and Internationalization
- 20.1 Internationalizing Application Text
- Problem
- Solution
- Discussion
- See Also
- 20.2 Finding and Translating Strings
- Problem
- Solution
- Discussion
- 20.3 Handling the Nuances of strings.xml
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- Chapter 21. Packaging, Deploying, and Distributing/Selling Your App
- 21.1 Creating a Signing Certificate and Using It to Sign Your Application
- Problem
- Solution
- Discussion
- See Also
- 21.2 Distributing Your Application via the Google Play Store
- Problem
- Solution
- Discussion
- 21.3 Distributing Your Application via Other App Stores
- Problem
- Discussion
- See Also
- 21.4 Monetizing Your App with AdMob
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- 21.5 Obfuscating and Optimizing with ProGuard
- Problem
- Solution
- Discussion
- See Also
- 21.6 Hosting Your App on Your Own Server
- Problem
- Solution
- Discussion
- 21.7 Creating a "Self-Updating" App
- Problem
- Solution
- Discussion
- See Also
- 21.8 Providing a Link to Other Published Apps in the Google Play Store
- Problem
- Solution
- Discussion
- See Also
- Source Download URL
- Index
- About the Author
System requirements
File format: PDF
Copy-Protection: Adobe-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Install the free reader Adobe Digital Editions prior to download (see eBook Help).
- Tablet/smartphone (Android; iOS): Install the free app Adobe Digital Editions or the app PocketBook before downloading (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (only limited: Kindle).
The file format PDF always displays a book page identically on any hardware. This makes PDF suitable for complex layouts such as those used in textbooks and reference books (images, tables, columns, footnotes). Unfortunately, on the small screens of e-readers or smartphones, PDFs are rather annoying, requiring too much scrolling.
This eBook uses Adobe-DRM, a „hard” copy protection. If the necessary requirements are not met, unfortunately you will not be able to open the eBook. You will therefore need to prepare your reading hardware before downloading.
Please note: We strongly recommend that you authorise using your personal Adobe ID after installation of any reading software.
For more information, see our eBook Help page.