Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Cover
Table of Contents
Introduction
1 Hello, Android
ANDROID APPLICATION DEVELOPMENT
A LITTLE BACKGROUND
THE ANDROID ECOSYSTEM
PRE-INSTALLED ANDROID APPLICATIONS
ANDROID SDK FEATURES
WHAT DOES ANDROID RUN ON?
WHY DEVELOP FOR MOBILE?
WHY DEVELOP FOR ANDROID?
INTRODUCING THE DEVELOPMENT FRAMEWORK
2 Getting Started
GETTING STARTED DEVELOPING ANDROID APPS
DEVELOPING FOR ANDROID
DEVELOPING FOR MOBILE AND EMBEDDED DEVICES
ANDROID DEVELOPMENT TOOLS
3 Applications and Activities and Fragments, Oh My!
APPLICATIONS, ACTIVITIES, AND FRAGMENTS
THE COMPONENTS OF AN ANDROID APPLICATION
THE ANDROID APPLICATION LIFE CYCLE, PRIORITY, AND PROCESS STATES
INTRODUCING THE ANDROID APPLICATION CLASS
A CLOSER LOOK AT ANDROID ACTIVITIES
INTRODUCING FRAGMENTS
BUILDING AN EARTHQUAKE VIEWER APPLICATION
4 Defining the Android Manifest and Gradle Build Files, and Externalizing Resources
THE MANIFEST, BUILD FILES, AND RESOURCES
INTRODUCING THE ANDROID MANIFEST
CONFIGURING THE GRADLE BUILD
EXTERNALIZING RESOURCES
5 Building User Interfaces
FUNDAMENTAL ANDROID DESIGN
DENSITY-INDEPENDENT DESIGN
ANDROID USER INTERFACE FUNDAMENTALS
INTRODUCING LAYOUTS
THE ANDROID WIDGET TOOLBOX
WORKING WITH LISTS AND GRIDS
INTRODUCING DATA BINDING
CREATING NEW VIEWS
6 Intents and Broadcast Receivers
USING INTENTS AND BROADCAST RECEIVERS
USING INTENTS TO LAUNCH ACTIVITIES
CREATING INTENT FILTERS TO RECEIVE IMPLICIT INTENTS
INTRODUCING LINKIFY
USING INTENTS TO BROADCAST EVENTS
INTRODUCING THE LOCAL BROADCAST MANAGER
INTRODUCING PENDING INTENTS
7 Using Internet Resources
CONNECTING TO THE INTERNET
CONNECTING, DOWNLOADING, AND PARSING INTERNET RESOURCES
USING THE DOWNLOAD MANAGER
BEST PRACTICES FOR DOWNLOADING DATA WITHOUT DRAINING THE BATTERY
AN INTRODUCTION TO INTERNET SERVICES AND CLOUD COMPUTING
8 Files, Saving State, and User Preferences
SAVING FILES, STATES, AND PREFERENCES
SAVING AND RESTORING ACTIVITY AND FRAGMENT INSTANCE STATE USING THE LIFECYCLE HANDLERS
RETAINING INSTANCE STATE WITH HEADLESS FRAGMENTS AND VIEW MODELS
CREATING AND SAVING SHARED PREFERENCES
RETRIEVING SHARED PREFERENCES
INTRODUCING ON SHARED PREFERENCE CHANGE LISTENERS
CONFIGURING AUTO BACKUP OF APPLICATION FILES AND SHARED PREFERENCES
BUILDING A PREFERENCE UI
CREATING A SETTINGS ACTIVITY FOR THE EARTHQUAKE MONITOR
INCLUDING STATIC FILES AS RESOURCES
WORKING WITH THE FILESYSTEM
SHARING FILES USING FILE PROVIDER
ACCESSING FILES FROM OTHER APPLICATIONS USING THE STORAGE ACCESS FRAMEWORK
USING URI-BASED PERMISSIONS
9 Creating and Using Databases
INTRODUCING STRUCTURED DATA STORAGE IN ANDROID
STORING DATA USING THE ROOM PERSISTENCE LIBRARY
PERSISTING EARTHQUAKES TO A DATABASE WITH ROOM
WORKING WITH SQLITE DATABASES
INTRODUCING THE FIREBASE REALTIME DATABASE
10 Content Providers and Search
INTRODUCING CONTENT PROVIDERS
WHY SHOULD I USE CONTENT PROVIDERS?
CREATING CONTENT PROVIDERS
ACCESSING CONTENT PROVIDERS WITH CONTENT RESOLVERS
USING NATIVE ANDROID CONTENT PROVIDERS
ADDING SEARCH TO YOUR APPLICATION
11 Working in the Background
WORKING IN THE BACKGROUND
USING BACKGROUND THREADS
SCHEDULING BACKGROUND JOBS
USING NOTIFICATIONS TO NOTIFY USERS
USING FIREBASE CLOUD MESSAGING
USING ALARMS
INTRODUCING SERVICES
12 Implementing the Android Design Philosophy
INTRODUCING THE ANDROID DESIGN PHILOSOPHY
DESIGNING FOR EVERY SCREEN
INTRODUCING MATERIAL DESIGN
MATERIAL DESIGN UI ELEMENTS
13 Implementing a Modern Android User Experience
THE MODERN ANDROID UI
CREATING CONSISTENT, MODERN USER INTERFACES USING APPCOMPAT
ADDING A MENU AND ACTIONS TO THE APP BAR
GOING BEYOND THE DEFAULT APP BAR
IMPROVING THE EARTHQUAKE MONITOR’S APP BAR
APP NAVIGATION PATTERNS
ADDING TABS TO THE EARTHQUAKE MONITOR
CHOOSING THE RIGHT LEVEL OF INTERRUPTION
14 Advanced Customization of Your User Interface
EXPANDING THE USER EXPERIENCE
SUPPORTING ACCESSIBILITY
INTRODUCING ANDROID TEXT-TO-SPEECH
USING SPEECH RECOGNITION
CONTROLLING DEVICE VIBRATION
GOING FULL SCREEN
WORKING WITH PROPERTY ANIMATIONS
ENHANCING YOUR VIEWS
ADVANCED CANVAS DRAWING
COMPOSITE DRAWABLE RESOURCES
COPY, PASTE, AND THE CLIPBOARD
15 Location, Contextual Awareness, and Mapping
ADDING LOCATION, MAPS, AND CONTEXTUAL AWARENESS TO YOUR APPLICATIONS
INTRODUCING GOOGLE PLAY SERVICES
FINDING DEVICE LOCATION USING GOOGLE LOCATION SERVICES
SETTING AND MANAGING GEOFENCES
USING THE LEGACY PLATFORM LOCATION-BASED SERVICES
USING THE GEOCODER
CREATING MAP-BASED ACTIVITIES
MAPPING THE EARTHQUAKE EXAMPLE
ADDING CONTEXTUAL AWARENESS
16 Hardware Sensors
INTRODUCING ANDROID SENSORS
TESTING SENSORS WITH THE ANDROID VIRTUAL DEVICE AND EMULATOR
BEST PRACTICES FOR WORKING WITH SENSORS
MONITORING A DEVICE’S MOVEMENT AND ORIENTATION
USING THE ENVIRONMENTAL SENSORS
USING BODY SENSORS
USER ACTIVITY RECOGNITION
17 Audio, Video, and Using the Camera
PLAYING AUDIO AND VIDEO, AND USING THE CAMERA
PLAYING AUDIO AND VIDEO
USING THE MEDIA ROUTER AND CAST APPLICATION FRAMEWORK
BACKGROUND AUDIO PLAYBACK
USING THE MEDIA RECORDER TO RECORD AUDIO
USING THE CAMERA FOR TAKING PICTURES
RECORDING VIDEO
ADDING MEDIA TO THE MEDIA STORE
18 Communicating with Bluetooth, NFC, and Wi-Fi Peer-to-Peer
NETWORKING AND PEER-TO-PEER COMMUNICATION
TRANSFERRING DATA USING BLUETOOTH
TRANSFERRING DATA USING WI-FI PEER-TO-PEER
USING NEAR FIELD COMMUNICATION
USING ANDROID BEAM
19 Invading the Home Screen
CUSTOMIZING THE HOME SCREEN
INTRODUCING HOME SCREEN WIDGETS
CREATING AN EARTHQUAKE WIDGET
INTRODUCING COLLECTION VIEW WIDGETS
CREATING LIVE WALLPAPER
CREATING APP SHORTCUTS
20 Advanced Android Development
ADVANCED ANDROID
PARANOID ANDROID
DEALING WITH DIFFERENT HARDWARE AND SOFTWARE AVAILABILITY
OPTIMIZING UI PERFORMANCE WITH STRICT MODE
TELEPHONY AND SMS
21 Releasing, Distributing, and Monitoring Applications
PREPARING FOR RELEASE
UPDATING APPLICATION METADATA IN YOUR APPLICATION MANIFEST
SIGNING PRODUCTION BUILDS OF YOUR APPLICATION
DISTRIBUTING YOUR APPLICATION ON THE GOOGLE PLAY STORE
AN INTRODUCTION TO MONETIZING APPLICATIONS
APPLICATION MARKETING, PROMOTION, AND DISTRIBUTION STRATEGIES
USING FIREBASE TO MONITOR YOUR APPLICATION
Index
End User License Agreement
← Prev
Back
Next →
← Prev
Back
Next →