Android™ Notes for Professionals

Android™ Notes for Professionals

Android™ Notes for Professionals
Автор: GoalKicker.com
Дата выхода: 2018
Издательство: Independent publishing
Количество страниц: 1329
Размер файла: 10,8 МБ
Тип файла: PDF
Добавил: codelibs
 Проверить на вирусы

Content list
About
Chapter 1: Getting started with Android
Section 1.1: Creating a New Project
Section 1.2: Setting up Android Studio
Section 1.3: Android programming without an IDE
Section 1.4: Application Fundamentals
Section 1.5: Setting up an AVD (Android Virtual Device)
Chapter 2: Android Studio
Section 2.1: Setup Android Studio
Section 2.2: View And Add Shortcuts in Android Studio
Section 2.3: Android Studio useful shortcuts
Section 2.4: Android Studio Improve performance tip
Section 2.5: Gradle build project takes forever
Section 2.6: Enable/Disable blank line copy
Section 2.7: Custom colors of logcat message based on message importance
Section 2.8: Filter logs from UI
Section 2.9: Create filters configuration
Section 2.10: Create assets folder
Chapter 3: Instant Run in Android Studio
Section 3.1: Enabling or disabling Instant Run
Section 3.2: Types of code Swaps in Instant Run
Section 3.3: Unsupported code changes when using Instant Run
Chapter 4: TextView
Section 4.1: Spannable TextView
Section 4.2: Strikethrough TextView
Section 4.3: TextView with image
Section 4.4: Make RelativeSizeSpan align to top
Section 4.5: Pinchzoom on TextView
Section 4.6: Textview with dierent Textsize
Section 4.7: Theme and Style customization
Section 4.8: TextView customization
Section 4.9: Single TextView with two dierent colors
Chapter 5: AutoCompleteTextView
Section 5.1: AutoComplete with CustomAdapter, ClickListener and Filter
Section 5.2: Simple, hard-coded AutoCompleteTextView
Chapter 6: Autosizing TextViews
Section 6.1: Granularity
Section 6.2: Preset Sizes
Chapter 7: ListView
Section 7.1: Custom ArrayAdapter
Section 7.2: A basic ListView with an ArrayAdapter
Section 7.3: Filtering with CursorAdapter
Chapter 8: Layouts
Section 8.1: LayoutParams
Section 8.2: Gravity and layout gravity
Section 8.3: CoordinatorLayout Scrolling Behavior
Section 8.4: Percent Layouts
Section 8.5: View Weight
Section 8.6: Creating LinearLayout programmatically
Section 8.7: LinearLayout
Section 8.8: RelativeLayout
Section 8.9: FrameLayout
Section 8.10: GridLayout
Section 8.11: CoordinatorLayout
Chapter 9: ConstraintLayout
Section 9.1: Adding ConstraintLayout to your project
Section 9.2: Chains
Chapter 10: TextInputLayout
Section 10.1: Basic usage
Section 10.2: Password Visibility Toggles
Section 10.3: Adding Character Counting
Section 10.4: Handling Errors
Section 10.5: Customizing the appearance of the TextInputLayout
Section 10.6: TextInputEditText
Chapter 11: CoordinatorLayout and Behaviors
Section 11.1: Creating a simple Behavior
Section 11.2: Using the SwipeDismissBehavior
Section 11.3: Create dependencies between Views
Chapter 12: TabLayout
Section 12.1: Using a TabLayout without a ViewPager
Chapter 13: ViewPager
Section 13.1: ViewPager with a dots indicator
Section 13.2: Basic ViewPager usage with fragments
Section 13.3: ViewPager with PreferenceFragment
Section 13.4: Adding a ViewPager
Section 13.5: Setup OnPageChangeListener
Section 13.6: ViewPager with TabLayout
Chapter 14: CardView
Section 14.1: Getting Started with CardView
Section 14.2: Adding Ripple animation
Section 14.3: Customizing the CardView
Section 14.4: Using Images as Background in CardView (Pre-Lollipop device issues)
Section 14.5: Animate CardView background color with TransitionDrawable
Chapter 15: NavigationView
Section 15.1: How to add the NavigationView
Section 15.2: Add underline in menu elements
Section 15.3: Add seperators to menu
Section 15.4: Add menu Divider using default DividerItemDecoration
Chapter 16: RecyclerView
Section 16.1: Adding a RecyclerView
Section 16.2: Smoother loading of items
Section 16.3: RecyclerView with DataBinding
Section 16.4: Animate data change
Section 16.5: Popup menu with recyclerView
Section 16.6: Using several ViewHolders with ItemViewType
Section 16.7: Filter items inside RecyclerView with a SearchView
Section 16.8: Drag&Drop and Swipe with RecyclerView
Section 16.9: Show default view till items load or when data is not available
Section 16.10: Add header/footer to a RecyclerView
Section 16.11: Endless Scrolling in Recycleview
Section 16.12: Add divider lines to RecyclerView items
Chapter 17: RecyclerView Decorations
Section 17.1: Add divider to RecyclerView
Section 17.2: Drawing a Separator
Section 17.3: How to add dividers using and DividerItemDecoration
Section 17.4: Per-item margins with ItemDecoration
Section 17.5: ItemOsetDecoration for GridLayoutManager in RecycleView
Chapter 18: RecyclerView onClickListeners
Section 18.1: Kotlin and RxJava example
Section 18.2: RecyclerView Click listener
Section 18.3: Another way to implement Item Click Listener
Section 18.4: New Example
Section 18.5: Easy OnLongClick and OnClick Example
Section 18.6: Item Click Listeners
Chapter 19: RecyclerView and LayoutManagers
Section 19.1: Adding header view to recyclerview with gridlayout manager
Section 19.2: GridLayoutManager with dynamic span count
Section 19.3: Simple list with LinearLayoutManager
Section 19.4: StaggeredGridLayoutManager
Chapter 20: Pagination in RecyclerView
Section 20.1: MainActivity.java
Chapter 21: ImageView
Section 21.1: Set tint
Section 21.2: Set alpha
Section 21.3: Set Scale Type
Section 21.4: ImageView ScaleType - Center
Section 21.5: ImageView ScaleType - CenterCrop
Section 21.6: ImageView ScaleType - CenterInside
Section 21.7: ImageView ScaleType - FitStart and FitEnd
Section 21.8: ImageView ScaleType - FitCenter
Section 21.9: Set Image Resource
Section 21.10: ImageView ScaleType - FitXy
Section 21.11: MLRoundedImageView.java
Chapter 22: VideoView
Section 22.1: Play video from URL with using VideoView
Section 22.2: VideoView Create
Chapter 23: Optimized VideoView
Section 23.1: Optimized VideoView in ListView
Chapter 24: WebView
Section 24.1: Troubleshooting WebView by printing console messages or by remote debugging
Section 24.2: Communication from Javascript to Java (Android)
Section 24.3: Communication from Java to Javascript
Section 24.4: Open dialer example
Section 24.5: Open Local File / Create dynamic content in Webview
Section 24.6: JavaScript alert dialogs in WebView - How to make them work
Chapter 25: SearchView
Section 25.1: Setting Theme for SearchView
Section 25.2: SearchView in Toolbar with Fragment
Section 25.3: Appcompat SearchView with RxBindings watcher
Chapter 26: BottomNavigationView
Section 26.1: Basic implemetation
Section 26.2: Customization of BottomNavigationView
Section 26.3: Handling Enabled / Disabled states
Section 26.4: Allowing more than 3 menus
Chapter 27: Canvas drawing using SurfaceView
Section 27.1: SurfaceView with drawing thread
Chapter 28: Creating Custom Views
Section 28.1: Creating Custom Views
Section 28.2: Adding attributes to views
Section 28.3: CustomView performance tips
Section 28.4: Creating a compound view
Section 28.5: Compound view for SVG/VectorDrawable as drawableRight
Section 28.6: Responding to Touch Events
Chapter 29: Getting Calculated View Dimensions
Section 29.1: Calculating initial View dimensions in an Activity
Chapter 30: Adding a FuseView to an Android Project
Section 30.1: hikr app, just another android.view.View
Chapter 31: Supporting Screens With Dierent Resolutions, Sizes
Section 31.1: Using configuration qualifiers
Section 31.2: Converting dp and sp to pixels
Section 31.3: Text size and dierent android screen sizes
Chapter 32: ViewFlipper
Section 32.1: ViewFlipper with image sliding
Chapter 33: Design Patterns
Section 33.1: Observer pattern
Section 33.2: Singleton Class Example
Chapter 34: Activity
Section 34.1: Activity launchMode
Section 34.2: Exclude an activity from back-stack history
Section 34.3: Android Activity LifeCycle Explained
Section 34.4: End Application with exclude from Recents
Section 34.5: Presenting UI with setContentView
Section 34.6: Up Navigation for Activities
Section 34.7: Clear your current Activity stack and launch a new Activity
Chapter 35: Activity Recognition
Section 35.1: Google Play ActivityRecognitionAPI
Section 35.2: PathSense Activity Recognition
Chapter 36: Split Screen / Multi-Screen Activities
Section 36.1: Split Screen introduced in Android Nougat implemented
Chapter 37: Material Design
Section 37.1: Adding a Toolbar
Section 37.2: Buttons styled with Material Design
Section 37.3: Adding a FloatingActionButton (FAB)
Section 37.4: RippleDrawable
Section 37.5: Adding a TabLayout
Section 37.6: Bottom Sheets in Design Support Library
Section 37.7: Apply an AppCompat theme
Section 37.8: Add a Snackbar
Section 37.9: Add a Navigation Drawer
Section 37.10: How to use TextInputLayout
Chapter 38: Resources
Section 38.1: Define colors
Section 38.2: Color Transparency(Alpha) Level
Section 38.3: Define String Plurals
Section 38.4: Define strings
Section 38.5: Define dimensions
Section 38.6: String formatting in strings.xml
Section 38.7: Define integer array
Section 38.8: Define a color state list
Section 38.9: 9 Patches
Section 38.10: Getting resources without "deprecated" warnings
Section 38.11: Working with strings.xml file
Section 38.12: Define string array
Section 38.13: Define integers
Section 38.14: Define a menu resource and use it inside Activity/Fragment
Chapter 39: Data Binding Library
Section 39.1: Basic text field binding
Section 39.2: Built-in two-way Data Binding
Section 39.3: Custom event using lambda expression
Section 39.4: Default value in Data Binding
Section 39.5: Databinding in Dialog
Section 39.6: Binding with an accessor method
Section 39.7: Pass widget as reference in BindingAdapter
Section 39.8: Click listener with Binding
Section 39.9: Data binding in RecyclerView Adapter
Section 39.10: Databinding in Fragment
Section 39.11: DataBinding with custom variables(int,boolean)
Section 39.12: Referencing classes
Chapter 40: SharedPreferences
Section 40.1: Implementing a Settings screen using SharedPreferences
Section 40.2: Commit vs. Apply
Section 40.3: Read and write values to SharedPreferences
Section 40.4: Retrieve all stored entries from a particular SharedPreferences file
Section 40.5: Reading and writing data to SharedPreferences with Singleton
Section 40.6: getPreferences(int) VS getSharedPreferences(String, int)
Section 40.7: Listening for SharedPreferences changes
Section 40.8: Store, Retrieve, Remove and Clear Data from SharedPreferences
Section 40.9: Add filter for EditTextPreference
Section 40.10: Supported data types in SharedPreferences
Section 40.11: Dierent ways of instantiating an object of SharedPreferences
Section 40.12: Removing keys
Section 40.13: Support pre-Honeycomb with StringSet
Chapter 41: Intent
Section 41.1: Getting a result from another Activity
Section 41.2: Passing data between activities
Section 41.3: Open a URL in a browser
Section 41.4: Starter Pattern
Section 41.5: Clearing an activity stack
Section 41.6: Start an activity
Section 41.7: Sending emails
Section 41.8: CustomTabsIntent for Chrome Custom Tabs
Section 41.9: Intent URI
Section 41.10: Start the dialer
Section 41.11: Broadcasting Messages to Other Components
Section 41.12: Passing custom object between activities
Section 41.13: Open Google map with specified latitude, longitude
Section 41.14: Passing dierent data through Intent in Activity
Section 41.15: Share intent
Section 41.16: Showing a File Chooser and Reading the Result
Section 41.17: Sharing Multiple Files through Intent
Section 41.18: Start Unbound Service using an Intent
Section 41.19: Getting a result from Activity to Fragment
Chapter 42: Fragments
Section 42.1: Pass data from Activity to Fragment using Bundle
Section 42.2: The newInstance() pattern
Section 42.3: Navigation between fragments using backstack and static fabric pattern
Section 42.4: Sending events back to an activity with callback interface
Section 42.5: Animate the transition between fragments
Section 42.6: Communication between Fragments
Chapter 43: Button
Section 43.1: Using the same click event for one or more Views in the XML
Section 43.2: Defining external Listener
Section 43.3: inline onClickListener
Section 43.4: Customizing Button style
Section 43.5: Custom Click Listener to prevent multiple fast clicks
Section 43.6: Using the layout to define a click action
Section 43.7: Listening to the long click events
Chapter 44: Emulator
Section 44.1: Taking screenshots
Section 44.2: Simulate call
Section 44.3: Open the AVD Manager
Section 44.4: Resolving Errors while starting emulator
Chapter 45: Service
Section 45.1: Lifecycle of a Service
Section 45.2: Defining the process of a service
Section 45.3: Creating an unbound service
Section 45.4: Starting a Service
Section 45.5: Creating Bound Service with help of Binder
Section 45.6: Creating Remote Service (via AIDL)
Chapter 46: The Manifest File
Section 46.1: Declaring Components
Section 46.2: Declaring permissions in your manifest file
Chapter 47: Gradle for Android
Section 47.1: A basic build.gradle file
Section 47.2: Define and use Build Configuration Fields
Section 47.3: Centralizing dependencies via "dependencies.gradle" file
Section 47.4: Sign APK without exposing keystore password
Section 47.5: Adding product flavor-specific dependencies
Section 47.6: Specifying dierent application IDs for build types and product flavors
Section 47.7: Versioning your builds via "version.properties" file
Section 47.8: Defining product flavors
Section 47.9: Changing output apk name and add version name:
Section 47.10: Adding product flavor-specific resources
Section 47.11: Why are there two build.gradle files in an Android Studio project?
Section 47.12: Directory structure for flavor-specific resources
Section 47.13: Enable Proguard using gradle
Section 47.14: Ignoring build variant
Section 47.15: Enable experimental NDK plugin support for Gradle and AndroidStudio
Section 47.16: Display signing information
Section 47.17: Seeing dependency tree
Section 47.18: Disable image compression for a smaller APK file size
Section 47.19: Delete "unaligned" apk automatically
Section 47.20: Executing a shell script from gradle
Section 47.21: Show all gradle project tasks
Section 47.22: Debugging your Gradle errors
Section 47.23: Use gradle.properties for central versionnumber/buildconfigurations
Section 47.24: Defining build types
Chapter 48: FileIO with Android
Section 48.1: Obtaining the working folder
Section 48.2: Writing raw array of bytes
Section 48.3: Serializing the object
Section 48.4: Writing to external storage (SD card)
Section 48.5: Solving "Invisible MTP files" problem
Section 48.6: Working with big files
Chapter 49: FileProvider
Section 49.1: Sharing a file
Chapter 50: Storing Files in Internal & External Storage
Section 50.1: Android: Internal and External Storage - Terminology Clarification
Section 50.2: Using External Storage
Section 50.3: Using Internal Storage
Section 50.4: Fetch Device Directory :
Section 50.5: Save Database on SD Card (Backup DB on SD)
Chapter 51: Zip file in android
Section 51.1: Zip file on android
Chapter 52: Unzip File in Android
Section 52.1: Unzip file
Chapter 53: Camera and Gallery
Section 53.1: Take photo
Section 53.2: Taking full-sized photo from camera
Section 53.3: Decode bitmap correctly rotated from the uri fetched with the intent
Section 53.4: Set camera resolution
Section 53.5: How to start camera or gallery and save camera result to storage
Chapter 54: Camera 2 API
Section 54.1: Preview the main camera in a TextureView
Chapter 55: Fingerprint API in android
Section 55.1: How to use Android Fingerprint API to save user passwords
Section 55.2: Adding the Fingerprint Scanner in Android application
Chapter 56: Bluetooth and Bluetooth LE API
Section 56.1: Permissions
Section 56.2: Check if bluetooth is enabled
Section 56.3: Find nearby Bluetooth Low Energy devices
Section 56.4: Make device discoverable
Section 56.5: Connect to Bluetooth device
Section 56.6: Find nearby bluetooth devices
Chapter 57: Runtime Permissions in API-23 +
Section 57.1: Android 6.0 multiple permissions
Section 57.2: Multiple Runtime Permissions From Same Permission Groups
Section 57.3: Using PermissionUtil
Section 57.4: Include all permission-related code to an abstract base class and extend the activity of this base class to achieve cleaner/reusable code
Section 57.5: Enforcing Permissions in Broadcasts, URI
Chapter 58: Android Places API
Section 58.1: Getting Current Places by Using Places API
Section 58.2: Place Autocomplete Integration
Section 58.3: Place Picker Usage Example
Section 58.4: Setting place type filters for PlaceAutocomplete
Section 58.5: Adding more than one google auto complete activity
Chapter 59: Android NDK
Section 59.1: How to log in ndk
Section 59.2: Building native executables for Android
Section 59.3: How to clean the build
Section 59.4: How to use a makefile other than Android.mk
Chapter 60: DayNight Theme (AppCompat v23.2 / API 14+)
Section 60.1: Adding the DayNight theme to an app
Chapter 61: Glide
Section 61.1: Loading an image
Section 61.2: Add Glide to your project
Section 61.3: Glide circle transformation (Load image in a circular ImageView)
Section 61.4: Default transformations
Section 61.5: Glide rounded corners image with custom Glide target
Section 61.6: Placeholder and Error handling
Section 61.7: Preloading images
Section 61.8: Handling Glide image load failed
Section 61.9: Load image in a circular ImageView without custom transformations
Chapter 62: Dialog
Section 62.1: Adding Material Design AlertDialog to your app using Appcompat
Section 62.2: A Basic Alert Dialog
Section 62.3: ListView in AlertDialog
Section 62.4: Custom Alert Dialog with EditText
Section 62.5: DatePickerDialog
Section 62.6: DatePicker
Section 62.7: Alert Dialog
Section 62.8: Alert Dialog with Multi-line Title
Section 62.9: Date Picker within DialogFragment
Section 62.10: Fullscreen Custom Dialog with no background and no title
Chapter 63: Enhancing Alert Dialogs
Section 63.1: Alert dialog containing a clickable link
Chapter 64: Animated AlertDialog Box
Section 64.1: Put Below code for Animated dialog..
Chapter 65: GreenDAO
Section 65.1: Helper methods for SELECT, INSERT, DELETE, UPDATE queries
Section 65.2: Creating an Entity with GreenDAO 3.X that has a Composite Primary Key
Section 65.3: Getting started with GreenDao v3.X
Chapter 66: Tools Attributes
Section 66.1: Designtime Layout Attributes
Chapter 67: Formatting Strings
Section 67.1: Format a string resource
Section 67.2: Formatting data types to String and vise versa
Section 67.3: Format a timestamp to string
Chapter 68: SpannableString
Section 68.1: Add styles to a TextView
Section 68.2: Multi string , with multi color
Chapter 69: Notifications
Section 69.1: Heads Up Notification with Ticker for older devices
Section 69.2: Creating a simple Notification
Section 69.3: Set custom notification - show full content text
Section 69.4: Dynamically getting the correct pixel size for the large icon
Section 69.5: Ongoing notification with Action button
Section 69.6: Setting Dierent priorities in notification
Section 69.7: Set custom notification icon using `Picasso` library
Section 69.8: Scheduling notifications
Chapter 70: AlarmManager
Section 70.1: How to Cancel an Alarm
Section 70.2: Creating exact alarms on all Android versions
Section 70.3: API23+ Doze mode interferes with AlarmManager
Section 70.4: Run an intent at a later time
Chapter 71: Handler
Section 71.1: HandlerThreads and communication between Threads
Section 71.2: Use Handler to create a Timer (similar to javax.swing.Timer)
Section 71.3: Using a Handler to execute code after a delayed amount of time
Section 71.4: Stop handler from execution
Chapter 72: BroadcastReceiver
Section 72.1: Using LocalBroadcastManager
Section 72.2: BroadcastReceiver Basics
Section 72.3: Introduction to Broadcast receiver
Section 72.4: Using ordered broadcasts
Section 72.5: Sticky Broadcast
Section 72.6: Enabling and disabling a Broadcast Receiver programmatically
Section 72.7: Example of a LocalBroadcastManager
Section 72.8: Android stopped state
Section 72.9: Communicate two activities through custom Broadcast receiver
Section 72.10: BroadcastReceiver to handle BOOT_COMPLETED events
Section 72.11: Bluetooth Broadcast receiver
Chapter 73: UI Lifecycle
Section 73.1: Saving data on memory trimming
Chapter 74: HttpURLConnection
Section 74.1: Creating an HttpURLConnection
Section 74.2: Sending an HTTP GET request
Section 74.3: Reading the body of an HTTP GET request
Section 74.4: Sending an HTTP POST request with parameters
Section 74.5: A multi-purpose HttpURLConnection class to handle all types of HTTP requests
Section 74.6: Use HttpURLConnection for multipart/form-data
Section 74.7: Upload (POST) file using HttpURLConnection
Chapter 75: Callback URL
Section 75.1: Callback URL example with Instagram OAuth
Chapter 76: Snackbar
Section 76.1: Creating a simple Snackbar
Section 76.2: Custom Snack Bar
Section 76.3: Custom Snackbar (no need view)
Section 76.4: Snackbar with Callback
Section 76.5: Snackbar vs Toasts: Which one should I use?
Section 76.6: Custom Snackbar
Chapter 77: Widgets
Section 77.1: Manifest Declaration -
Section 77.2: Metadata
Section 77.3: AppWidgetProvider Class
Section 77.4: Create/Integrate Basic Widget using Android Studio
Section 77.5: Two widgets with dierent layouts declaration
Chapter 78: Toast
Section 78.1: Creating a custom Toast
Section 78.2: Set position of a Toast
Section 78.3: Showing a Toast Message
Section 78.4: Show Toast Message Above Soft Keyboard
Section 78.5: Thread safe way of displaying Toast (Application Wide)
Section 78.6: Thread safe way of displaying a Toast Message (For AsyncTask)
Chapter 79: Create Singleton Class for Toast Message
Section 79.1: Create own singleton class for toast massages
Chapter 80: Interfaces
Section 80.1: Custom Listener
Section 80.2: Basic Listener
Chapter 81: Animators
Section 81.1: TransitionDrawable animation
Section 81.2: Fade in/out animation
Section 81.3: ValueAnimator
Section 81.4: Expand and Collapse animation of View
Section 81.5: ObjectAnimator
Section 81.6: ViewPropertyAnimator
Section 81.7: Shake animation of an ImageView
Chapter 82: Location
Section 82.1: Fused location API
Section 82.2: Get Address From Location using Geocoder
Section 82.3: Requesting location updates using LocationManager
Section 82.4: Requesting location updates on a separate thread using LocationManager
Section 82.5: Getting location updates in a BroadcastReceiver
Section 82.6: Register geofence
Chapter 83: Theme, Style, Attribute
Section 83.1: Define primary, primary dark, and accent colors
Section 83.2: Multiple Themes in one App
Section 83.3: Navigation Bar Color (API 21+)
Section 83.4: Use Custom Theme Per Activity
Section 83.5: Light Status Bar (API 23+)
Section 83.6: Use Custom Theme Globally
Section 83.7: Overscroll Color (API 21+)
Section 83.8: Ripple Color (API 21+)
Section 83.9: Translucent Navigation and Status Bars (API 19+)
Section 83.10: Theme inheritance
Chapter 84: MediaPlayer
Section 84.1: Basic creation and playing
Section 84.2: Media Player with Buer progress and play position
Section 84.3: Getting system ringtones
Section 84.4: Asynchronous prepare
Section 84.5: Import audio into androidstudio and play it
Section 84.6: Getting and setting system volume
Chapter 85: Android Sound and Media
Section 85.1: How to pick image and video for api >19
Section 85.2: Play sounds via SoundPool
Chapter 86: MediaSession
Section 86.1: Receiving and handling button events
Chapter 87: MediaStore
Section 87.1: Fetch Audio/MP3 files from specific folder of device or fetch all files
Chapter 88: Multidex and the Dex Method Limit
Section 88.1: Enabling Multidex
Section 88.2: Multidex by extending Application
Section 88.3: Multidex by extending MultiDexApplication
Section 88.4: Multidex by using MultiDexApplication directly
Section 88.5: Counting Method References On Every Build (Dexcount Gradle Plugin)
Chapter 89: Data Synchronization with Sync Adapter
Section 89.1: Dummy Sync Adapter with Stub Provider
Chapter 90: PorterDu Mode
Chapter 91: Menu
Section 91.1: Options menu with dividers
Section 91.2: Apply custom font to Menu
Section 91.3: Creating a Menu in an Activity
Chapter 92: Picasso
Section 92.1: Adding Picasso Library to your Android Project
Section 92.2: Circular Avatars with Picasso
Section 92.3: Placeholder and Error Handling
Section 92.4: Re-sizing and Rotating
Section 92.5: Disable cache in Picasso
Section 92.6: Using Picasso as ImageGetter for Html.fromHtml
Section 92.7: Cancelling Image Requests using Picasso
Section 92.8: Loading Image from external Storage
Section 92.9: Downloading image as Bitmap using Picasso
Section 92.10: Try oine disk cache first, then go online and fetch the image
Chapter 93: RoboGuice
Section 93.1: Simple example
Section 93.2: Installation for Gradle Projects
Section 93.3: @ContentView annotation
Section 93.4: @InjectResource annotation
Section 93.5: @InjectView annotation
Section 93.6: Introduction to RoboGuice
Chapter 94: ACRA
Section 94.1: ACRAHandler
Section 94.2: Example manifest
Section 94.3: Installation
Chapter 95: Parcelable
Section 95.1: Making a custom object Parcelable
Section 95.2: Parcelable object containing another Parcelable object
Section 95.3: Using Enums with Parcelable
Chapter 96: Retrofit2
Section 96.1: A Simple GET Request
Section 96.2: Debugging with Stetho
Section 96.3: Add logging to Retrofit2
Section 96.4: A simple POST request with GSON
Section 96.5: Download a file from Server using Retrofit2
Section 96.6: Upload multiple file using Retrofit as multipart
Section 96.7: Retrofit with OkHttp interceptor
Section 96.8: Header and Body: an Authentication Example
Section 96.9: Uploading a file via Multipart
Section 96.10: Retrofit 2 Custom Xml Converter
Section 96.11: Reading XML form URL with Retrofit 2
Chapter 97: ButterKnife
Section 97.1: Configuring ButterKnife in your project
Section 97.2: Unbinding views in ButterKnife
Section 97.3: Binding Listeners using ButterKnife
Section 97.4: Android Studio ButterKnife Plugin
Section 97.5: Binding Views using ButterKnife
Chapter 98: Volley
Section 98.1: Using Volley for HTTP requests
Section 98.2: Basic StringRequest using GET method
Section 98.3: Adding custom design time attributes to NetworkImageView
Section 98.4: Adding custom headers to your requests [e.g. for basic auth]
Section 98.5: Remote server authentication using StringRequest through POST method
Section 98.6: Cancel a request
Section 98.7: Request JSON
Section 98.8: Use JSONArray as request body
Section 98.9: Boolean variable response from server with json request in volley
Section 98.10: Helper Class for Handling Volley Errors
Chapter 99: Date and Time Pickers
Section 99.1: Date Picker Dialog
Section 99.2: Material DatePicker
Chapter 100: Localized Date/Time in Android
Section 100.1: Custom localized date format with DateUtils.formatDateTime()
Section 100.2: Standard date/time formatting in Android
Section 100.3: Fully customized date/time
Chapter 101: Time Utils
Section 101.1: To check within a period
Section 101.2: Convert Date Format into Milliseconds
Section 101.3: GetCurrentRealTime
Chapter 102: In-app Billing
Section 102.1: Consumable In-app Purchases
Section 102.2: (Third party) In-App v3 Library
Chapter 103: FloatingActionButton
Section 103.1: How to add the FAB to the layout
Section 103.2: Show and Hide FloatingActionButton on Swipe
Section 103.3: Show and Hide FloatingActionButton on Scroll
Section 103.4: Setting behaviour of FloatingActionButton
Chapter 104: Touch Events
Section 104.1: How to vary between child and parent view group touch events
Chapter 105: Handling touch and motion events
Section 105.1: Buttons
Section 105.2: Surface
Section 105.3: Handling multitouch in a surface
Chapter 106: Detect Shake Event in Android
Section 106.1: Shake Detector in Android Example
Section 106.2: Using Seismic shake detection
Chapter 107: Hardware Button Events/Intents (PTT, LWP, etc.)
Section 107.1: Sonim Devices
Section 107.2: RugGear Devices
Chapter 108: GreenRobot EventBus
Section 108.1: Passing a Simple Event
Section 108.2: Receiving Events
Section 108.3: Sending Events
Chapter 109: Otto Event Bus
Section 109.1: Passing an event
Section 109.2: Receiving an event
Chapter 110: Vibration
Section 110.1: Getting Started with Vibration
Section 110.2: Vibrate Indefinitely
Section 110.3: Vibration Patterns
Section 110.4: Stop Vibrate
Section 110.5: Vibrate for one time
Chapter 111: ContentProvider
Section 111.1: Implementing a basic content provider class
Chapter 112: Dagger 2
Section 112.1: Component setup for Application and Activity injection
Section 112.2: Custom Scopes
Section 112.3: Using @Subcomponent instead of @Component(dependencies={...})
Section 112.4: Creating a component from multiple modules
Section 112.5: How to add Dagger 2 in build.gradle
Section 112.6: Constructor Injection
Chapter 113: Realm
Section 113.1: Sorted queries
Section 113.2: Using Realm with RxJava
Section 113.3: Basic Usage
Section 113.4: List of primitives (RealmList<Integer/String/...>)
Section 113.5: Async queries
Section 113.6: Adding Realm to your project
Section 113.7: Realm Models
Section 113.8: try-with-resources
Chapter 114: Android Versions
Section 114.1: Checking the Android Version on device at runtime
Chapter 115: Wi-Fi Connections
Section 115.1: Connect with WEP encryption
Section 115.2: Connect with WPA2 encryption
Section 115.3: Scan for access points
Chapter 116: SensorManager
Section 116.1: Decide if your device is static or not, using the accelerometer
Section 116.2: Retrieving sensor events
Section 116.3: Sensor transformation to world coordinate system
Chapter 117: ProgressBar
Section 117.1: Material Linear ProgressBar
Section 117.2: Tinting ProgressBar
Section 117.3: Customized progressbar
Section 117.4: Creating Custom Progress Dialog
Section 117.5: Indeterminate ProgressBar
Section 117.6: Determinate ProgressBar
Chapter 118: Custom Fonts
Section 118.1: Custom font in canvas text
Section 118.2: Working with fonts in Android O
Section 118.3: Custom font to whole activity
Section 118.4: Putting a custom font in your app
Section 118.5: Initializing a font
Section 118.6: Using a custom font in a TextView
Section 118.7: Apply font on TextView by xml (Not required Java code)
Section 118.8: Ecient Typeface loading
Chapter 119: Getting system font names and using the fonts
Section 119.1: Getting system font names
Section 119.2: Applying a system font to a TextView
Chapter 120: Text to Speech(TTS)
Section 120.1: Text to Speech Base
Section 120.2: TextToSpeech implementation across the APIs
Chapter 121: Spinner
Section 121.1: Basic Spinner Example
Section 121.2: Adding a spinner to your activity
Chapter 122: Data Encryption/Decryption
Section 122.1: AES encryption of data using password in a secure way
Chapter 123: OkHttp
Section 123.1: Basic usage example
Section 123.2: Setting up OkHttp
Section 123.3: Logging interceptor
Section 123.4: Synchronous Get Call
Section 123.5: Asynchronous Get Call
Section 123.6: Posting form parameters
Section 123.7: Posting a multipart request
Section 123.8: Rewriting Responses
Chapter 124: Handling Deep Links
Section 124.1: Retrieving query parameters
Section 124.2: Simple deep link
Section 124.3: Multiple paths on a single domain
Section 124.4: Multiple domains and multiple paths
Section 124.5: Both http and https for the same domain
Section 124.6: Using pathPrefix
Chapter 125: Crash Reporting Tools
Section 125.1: Fabric - Crashlytics
Section 125.2: Capture crashes using Sherlock
Section 125.3: Force a Test Crash With Fabric
Section 125.4: Crash Reporting with ACRA
Chapter 126: Check Internet Connectivity
Section 126.1: Check if device has internet connectivity
Section 126.2: How to check network strength in android?
Section 126.3: How to check network strength
Chapter 127: Creating your own libraries for Android applications
Section 127.1: Create a library available on Jitpack.io
Section 127.2: Creating library project
Section 127.3: Using library in project as a module
Chapter 128: Device Display Metrics
Section 128.1: Get the screens pixel dimensions
Section 128.2: Get screen density
Section 128.3: Formula px to dp, dp to px conversation
Chapter 129: Building Backwards Compatible Apps
Section 129.1: How to handle deprecated API
Chapter 130: Loader
Section 130.1: Basic AsyncTaskLoader
Section 130.2: AsyncTaskLoader with cache
Section 130.3: Reloading
Section 130.4: Pass parameters using a Bundle
Chapter 131: ProGuard - Obfuscating and Shrinking your code
Section 131.1: Rules for some of the widely used Libraries
Section 131.2: Remove trace logging (and other) statements at build time
Section 131.3: Protecting your code from hackers
Section 131.4: Enable ProGuard for your build
Section 131.5: Enabling ProGuard with a custom obfuscation configuration file
Chapter 132: Typedef Annotations: @IntDef, @StringDef
Section 132.1: IntDef Annotations
Section 132.2: Combining constants with flags
Chapter 133: Capturing Screenshots
Section 133.1: Taking a screenshot of a particular view
Section 133.2: Capturing Screenshot via Android Studio
Section 133.3: Capturing Screenshot via ADB and saving directly in your PC
Section 133.4: Capturing Screenshot via Android Device Monitor
Section 133.5: Capturing Screenshot via ADB
Chapter 134: MVP Architecture
Section 134.1: Login example in the Model View Presenter (MVP) pattern
Section 134.2: Simple Login Example in MVP
Chapter 135: Orientation Changes
Section 135.1: Saving and Restoring Activity State
Section 135.2: Retaining Fragments
Section 135.3: Manually Managing Configuration Changes
Section 135.4: Handling AsyncTask
Section 135.5: Lock Screen's rotation programmatically
Section 135.6: Saving and Restoring Fragment State
Chapter 136: Xposed
Section 136.1: Creating a Xposed Module
Section 136.2: Hooking a method
Chapter 137: PackageManager
Section 137.1: Retrieve application version
Section 137.2: Version name and version code
Section 137.3: Install time and update time
Section 137.4: Utility method using PackageManager
Chapter 138: Gesture Detection
Section 138.1: Swipe Detection
Section 138.2: Basic Gesture Detection
Chapter 139: Doze Mode
Section 139.1: Whitelisting an Android application programmatically
Section 139.2: Exclude app from using doze mode
Chapter 140: Colors
Section 140.1: Color Manipulation
Chapter 141: Keyboard
Section 141.1: Register a callback for keyboard open and close
Section 141.2: Hide keyboard when user taps anywhere else on the screen
Chapter 142: RenderScript
Section 142.1: Getting Started
Section 142.2: Blur a View
Section 142.3: Blur an image
Chapter 143: Fresco
Section 143.1: Getting Started with Fresco
Section 143.2: Using OkHttp 3 with Fresco
Section 143.3: JPEG Streaming with Fresco using DraweeController
Chapter 144: Swipe to Refresh
Section 144.1: How to add Swipe-to-Refresh To your app
Section 144.2: Swipe To Refresh with RecyclerView
Chapter 145: Creating Splash screen
Section 145.1: Splash screen with animation
Section 145.2: A basic splash screen
Chapter 146: IntentService
Section 146.1: Creating an IntentService
Section 146.2: Basic IntentService Example
Section 146.3: Sample Intent Service
Chapter 147: Implicit Intents
Section 147.1: Implicit and Explicit Intents
Section 147.2: Implicit Intents
Chapter 148: Publish to Play Store
Section 148.1: Minimal app submission guide
Chapter 149: Universal Image Loader
Section 149.1: Basic usage
Section 149.2: Initialize Universal Image Loader
Chapter 150: Image Compression
Section 150.1: How to compress image without size change
Chapter 151: 9-Patch Images
Section 151.1: Basic rounded corners
Section 151.2: Optional padding lines
Section 151.3: Basic spinner
Chapter 152: Email Validation
Section 152.1: Email address validation
Section 152.2: Email Address validation with using Patterns
Chapter 153: Bottom Sheets
Section 153.1: Quick Setup
Section 153.2: BottomSheetBehavior like Google maps
Section 153.3: Modal bottom sheets with BottomSheetDialog
Section 153.4: Modal bottom sheets with BottomSheetDialogFragment
Section 153.5: Persistent Bottom Sheets
Section 153.6: Open BottomSheet DialogFragment in Expanded mode by default
Chapter 154: EditText
Section 154.1: Working with EditTexts
Section 154.2: Customizing the InputType
Section 154.3: Icon or button inside Custom Edit Text and its action and click listeners
Section 154.4: Hiding SoftKeyboard
Section 154.5: `inputype` attribute
Chapter 155: Speech to Text Conversion
Section 155.1: Speech to Text With Default Google Prompt Dialog
Section 155.2: Speech to Text without Dialog
Chapter 156: Installing apps with ADB
Section 156.1: Uninstall an app
Section 156.2: Install all apk file in directory
Section 156.3: Install an app
Chapter 157: Count Down Timer
Section 157.1: Creating a simple countdown timer
Section 157.2: A More Complex Example
Chapter 158: Barcode and QR code reading
Section 158.1: Using QRCodeReaderView (based on Zxing)
Chapter 159: Android PayPal Gateway Integration
Section 159.1: Setup PayPal in your android code
Chapter 160: Drawables
Section 160.1: Custom Drawable
Section 160.2: Tint a drawable
Section 160.3: Circular View
Section 160.4: Make View with rounded corners
Chapter 161: TransitionDrawable
Section 161.1: Animate views background color (switch-color) with TransitionDrawable
Section 161.2: Add transition or Cross-fade between two images
Chapter 162: Vector Drawables
Section 162.1: Importing SVG file as VectorDrawable
Section 162.2: VectorDrawable Usage Example
Section 162.3: VectorDrawable xml example
Chapter 163: VectorDrawable and AnimatedVectorDrawable
Section 163.1: Basic VectorDrawable
Section 163.2: <group> tags
Section 163.3: Basic AnimatedVectorDrawable
Section 163.4: Using Strokes
Section 163.5: Using <clip-path>
Section 163.6: Vector compatibility through AppCompat
Chapter 164: Port Mapping using Cling library in Android
Section 164.1: Mapping a NAT port
Section 164.2: Adding Cling Support to your Android Project
Chapter 165: Creating Overlay (always-on-top) Windows
Section 165.1: Popup overlay
Section 165.2: Granting SYSTEM_ALERT_WINDOW Permission on android 6.0 and above
Chapter 166: ExoPlayer
Section 166.1: Add ExoPlayer to the project
Section 166.2: Using ExoPlayer
Section 166.3: Main steps to play video & audio using the standard TrackRenderer implementations
Chapter 167: XMPP register login and chat simple example
Section 167.1: XMPP register login and chat basic example
Chapter 168: Android Authenticator
Section 168.1: Basic Account Authenticator Service
Chapter 169: AudioManager
Section 169.1: Requesting Transient Audio Focus
Section 169.2: Requesting Audio Focus
Chapter 170: AudioTrack
Section 170.1: Generate tone of a specific frequency
Chapter 171: Job Scheduling
Section 171.1: Basic usage
Chapter 172: Accounts and AccountManager
Section 172.1: Understanding custom accounts/authentication
Chapter 173: Integrate OpenCV into Android Studio
Section 173.1: Instructions
Chapter 174: MVVM (Architecture)
Section 174.1: MVVM Example using DataBinding Library
Chapter 175: ORMLite in android
Section 175.1: Android OrmLite over SQLite example
Chapter 176: Retrofit2 with RxJava
Section 176.1: Retrofit2 with RxJava
Section 176.2: Nested requests example: multiple requests, combine results
Section 176.3: Retrofit with RxJava to fetch data asyncronously
Chapter 177: ShortcutManager
Section 177.1: Dynamic Launcher Shortcuts
Chapter 178: LruCache
Section 178.1: Adding a Bitmap(Resource) to the cache
Section 178.2: Initialising the cache
Section 178.3: Getting a Bitmap(Resouce) from the cache
Chapter 179: Jenkins CI setup for Android Projects
Section 179.1: Step by step approach to set up Jenkins for Android
Chapter 180: fastlane
Section 180.1: Fastfile lane to build and install all flavors for given build type to a device
Section 180.2: Fastfile to build and upload multiple flavors to Beta by Crashlytics
Chapter 181: Define step value (increment) for custom RangeSeekBar
Section 181.1: Define a step value of 7
Chapter 182: Getting started with OpenGL ES 2.0+
Section 182.1: Setting up GLSurfaceView and OpenGL ES 2.0+
Section 182.2: Compiling and Linking GLSL-ES Shaders from asset file
Chapter 183: Check Data Connection
Section 183.1: Check data connection
Section 183.2: Check connection using ConnectivityManager
Section 183.3: Use network intents to perform tasks while data is allowed
Chapter 184: Java on Android
Section 184.1: Java 8 features subset with Retrolambda
Chapter 185: Android Java Native Interface (JNI)
Section 185.1: How to call functions in a native library via the JNI interface
Section 185.2: How to call a Java method from native code
Section 185.3: Utility method in JNI layer
Chapter 186: Notification Channel Android O
Section 186.1: Notification Channel
Chapter 187: Robolectric
Section 187.1: Robolectric test
Section 187.2: Configuration
Chapter 188: Moshi
Section 188.1: JSON into Java
Section 188.2: serialize Java objects as JSON
Section 188.3: Built in Type Adapters
Chapter 189: Strict Mode Policy : A tool to catch the bug in the Compile Time.
Section 189.1: The below Code Snippet is to setup the StrictMode for Thread Policies. This Code is to be set at the entry points to our application
Section 189.2: The below code deals with leaks of memory, like it detects when in SQLLite finalize is called or not
Chapter 190: Internationalization and localization (I18N and L10N)
Section 190.1: Planning for localization : enable RTL support in Manifest
Section 190.2: Planning for localization : Add RTL support in Layouts
Section 190.3: Planning for localization : Test layouts for RTL
Section 190.4: Coding for Localization : Creating default strings and resources
Section 190.5: Coding for localization : Providing alternative strings
Section 190.6: Coding for localization : Providing alternate layouts
Chapter 191: Fast way to setup Retrolambda on an android project.
Section 191.1: Setup and example how to use:
Chapter 192: How to use SparseArray
Section 192.1: Basic example using SparseArray
Chapter 193: Shared Element Transitions
Section 193.1: Shared Element Transition between two Fragments
Chapter 194: Android Things
Section 194.1: Controlling a Servo Motor
Chapter 195: Library Dagger 2: Dependency Injection in Applications
Section 195.1: Create @Module Class and @Singleton annotation for Object
Section 195.2: Request Dependencies in Dependent Objects
Section 195.3: Connecting @Modules with @Inject
Section 195.4: Using @Component Interface to Obtain Objects
Chapter 196: JCodec
Section 196.1: Getting Started
Section 196.2: Getting frame from movie
Chapter 197: Formatting phone numbers with pattern.
Section 197.1: Patterns + 1 (786) 1234 5678
Chapter 198: Paint
Section 198.1: Creating a Paint
Section 198.2: Setting up Paint for text
Section 198.3: Setting up Paint for drawing shapes
Section 198.4: Setting flags
Chapter 199: What is ProGuard? What is use in Android?
Section 199.1: Shrink your code and resources with proguard
Chapter 200: Create Android Custom ROMs
Section 200.1: Making Your Machine Ready for Building!
Chapter 201: Genymotion for android
Section 201.1: Installing Genymotion, the free version
Section 201.2: Google framework on Genymotion
Chapter 202: ConstraintSet
Section 202.1: ConstraintSet with ContraintLayout Programmatically
Chapter 203: CleverTap
Section 203.1: Setting the debug level
Section 203.2: Get an instance of the SDK to record events
Chapter 204: Publish a library to Maven Repositories
Section 204.1: Publish .aar file to Maven
Chapter 205: adb shell
Section 205.1: Granting & revoking API 23+ permissions
Section 205.2: Send text, key pressed and touch events to Android Device via ADB
Section 205.3: List packages
Section 205.4: Recording the display
Section 205.5: Open Developer Options
Section 205.6: Set Date/Time via adb
Section 205.7: Generating a "Boot Complete" broadcast
Section 205.8: Print application data
Section 205.9: Changing file permissions using chmod command
Section 205.10: View external/secondary storage content
Section 205.11: kill a process inside an Android device
Chapter 206: Ping ICMP
Section 206.1: Performs a single Ping
Chapter 207: AIDL
Section 207.1: AIDL Service
Chapter 208: Android game development
Section 208.1: Game using Canvas and SurfaceView
Chapter 209: Android programming with Kotlin
Section 209.1: Installing the Kotlin plugin
Section 209.2: Configuring an existing Gradle project with Kotlin
Section 209.3: Creating a new Kotlin Activity
Section 209.4: Converting existing Java code to Kotlin
Section 209.5: Starting a new Activity
Chapter 210: Android-x86 in VirtualBox
Section 210.1: Virtual hard drive Setup for SDCARD Support
Section 210.2: Installation in partition
Section 210.3: Virtual Machine setup
Chapter 211: Leakcanary
Section 211.1: Implementing a Leak Canary in Android Application
Chapter 212: Okio
Section 212.1: Download / Implement
Section 212.2: PNG decoder
Section 212.3: ByteStrings and Buers
Chapter 213: Bluetooth Low Energy
Section 213.1: Finding BLE Devices
Section 213.2: Connecting to a GATT Server
Section 213.3: Writing and Reading from Characteristics
Section 213.4: Subscribing to Notifications from the Gatt Server
Section 213.5: Advertising a BLE Device
Section 213.6: Using a Gatt Server
Chapter 214: Looper
Section 214.1: Create a simple LooperThread
Section 214.2: Run a loop with a HandlerThread
Chapter 215: Annotation Processor
Section 215.1: @NonNull Annotation
Section 215.2: Types of Annotations
Section 215.3: Creating and Using Custom Annotations
Chapter 216: SyncAdapter with periodically do sync of data
Section 216.1: Sync adapter with every min requesting value from server
Chapter 217: Fastjson
Section 217.1: Parsing JSON with Fastjson
Section 217.2: Convert the data of type Map to JSON String
Chapter 218: JSON in Android with org.json
Section 218.1: Creating a simple JSON object
Section 218.2: Create a JSON String with null value
Section 218.3: Add JSONArray to JSONObject
Section 218.4: Parse simple JSON object
Section 218.5: Check for the existence of fields on JSON
Section 218.6: Create nested JSON object
Section 218.7: Updating the elements in the JSON
Section 218.8: Using JsonReader to read JSON from a stream
Section 218.9: Working with null-string when parsing json
Section 218.10: Handling dynamic key for JSON response
Chapter 219: Gson
Section 219.1: Parsing JSON with Gson
Section 219.2: Adding a custom Converter to Gson
Section 219.3: Parsing a List<String> with Gson
Section 219.4: Adding Gson to your project
Section 219.5: Parsing JSON to Generic Class Object with Gson
Section 219.6: Using Gson with inheritance
Section 219.7: Parsing JSON property to enum with Gson
Section 219.8: Using Gson to load a JSON file from disk
Section 219.9: Using Gson as serializer with Retrofit
Section 219.10: Parsing json array to generic class using Gson
Section 219.11: Custom JSON Deserializer using Gson
Section 219.12: JSON Serialization/Deserialization with AutoValue and Gson
Chapter 220: Android Architecture Components
Section 220.1: Using Lifecycle in AppCompatActivity
Section 220.2: Add Architecture Components
Section 220.3: ViewModel with LiveData transformations
Section 220.4: Room peristence
Section 220.5: Custom LiveData
Section 220.6: Custom Lifecycle-aware component
Chapter 221: Jackson
Section 221.1: Full Data Binding Example
Chapter 222: Smartcard
Section 222.1: Smart card send and receive
Chapter 223: Security
Section 223.1: Verifying App Signature - Tamper Detection
Chapter 224: How to store passwords securely
Section 224.1: Using AES for salted password encryption
Chapter 225: Secure SharedPreferences
Section 225.1: Securing a Shared Preference
Chapter 226: Secure SharedPreferences
Section 226.1: Securing a Shared Preference
Chapter 227: SQLite
Section 227.1: onUpgrade() method
Section 227.2: Reading data from a Cursor
Section 227.3: Using the SQLiteOpenHelper class
Section 227.4: Insert data into database
Section 227.5: Bulk insert
Section 227.6: Create a Contract, Helper and Provider for SQLite in Android
Section 227.7: Delete row(s) from the table
Section 227.8: Updating a row in a table
Section 227.9: Performing a Transaction
Section 227.10: Create Database from assets folder
Section 227.11: Store image into SQLite
Section 227.12: Exporting and importing a database
Chapter 228: Accessing SQLite databases using the ContentValues class
Section 228.1: Inserting and updating rows in a SQLite database
Chapter 229: Firebase
Section 229.1: Add Firebase to Your Android Project
Section 229.2: Updating a Firebase users's email
Section 229.3: Create a Firebase user
Section 229.4: Change Password
Section 229.5: Firebase Cloud Messaging
Section 229.6: Firebase Storage Operations
Section 229.7: Firebase Realtime Database: how to set/get data
Section 229.8: Demo of FCM based notifications
Section 229.9: Sign In Firebase user with email and password
Section 229.10: Send Firebase password reset email
Section 229.11: Re-Authenticate Firebase user
Section 229.12: Firebase Sign Out
Chapter 230: Firebase Cloud Messaging
Section 230.1: Set Up a Firebase Cloud Messaging Client App on Android
Section 230.2: Receive Messages
Section 230.3: This code that i have implemnted in my app for pushing image,message and also link for opening in your webView
Section 230.4: Registration token
Section 230.5: Subscribe to a topic
Chapter 231: Firebase Realtime DataBase
Section 231.1: Quick setup
Section 231.2: Firebase Realtime DataBase event handler
Section 231.3: Understanding firebase JSON database
Section 231.4: Retrieving data from firebase
Section 231.5: Listening for child updates
Section 231.6: Retrieving data with pagination
Section 231.7: Denormalization: Flat Database Structure
Section 231.8: Designing and understanding how to retrieve realtime data from the Firebase Database
Chapter 232: Firebase App Indexing
Section 232.1: Supporting Http URLs
Section 232.2: Add AppIndexing API
Chapter 233: Firebase Crash Reporting
Section 233.1: How to report an error
Section 233.2: How to add Firebase Crash Reporting to your app
Chapter 234: Twitter APIs
Section 234.1: Creating login with twitter button and attach a callback to it
Chapter 235: Youtube-API
Section 235.1: Activity extending YouTubeBaseActivity
Section 235.2: Consuming YouTube Data API on Android
Section 235.3: Launching StandAlonePlayerActivity
Section 235.4: YoutubePlayerFragment in portrait Activty
Section 235.5: YouTube Player API
Chapter 236: Integrate Google Sign In
Section 236.1: Google Sign In with Helper class
Chapter 237: Google signin integration on android
Section 237.1: Integration of google Auth in your project. (Get a configuration file)
Section 237.2: Code Implementation Google SignIn
Chapter 238: Google Awareness APIs
Section 238.1: Get changes for location within a certain range using Fence API
Section 238.2: Get current location using Snapshot API
Section 238.3: Get changes in user activity with Fence API
Section 238.4: Get current user activity using Snapshot API
Section 238.5: Get headphone state with Snapshot API
Section 238.6: Get nearby places using Snapshot API
Section 238.7: Get current weather using Snapshot API
Chapter 239: Google Maps API v2 for Android
Section 239.1: Custom Google Map Styles
Section 239.2: Default Google Map Activity
Section 239.3: Show Current Location in a Google Map
Section 239.4: Change Oset
Section 239.5: MapView: embedding a GoogleMap in an existing layout
Section 239.6: Get debug SHA1 fingerprint
Section 239.7: Adding markers to a map
Section 239.8: UISettings
Section 239.9: InfoWindow Click Listener
Section 239.10: Obtaining the SH1-Fingerprint of your certificate keystore file
Section 239.11: Do not launch Google Maps when the map is clicked (lite mode)
Chapter 240: Google Drive API
Section 240.1: Integrate Google Drive in Android
Section 240.2: Create a File on Google Drive
Chapter 241: Displaying Google Ads
Section 241.1: Adding Interstitial Ad
Section 241.2: Basic Ad Setup
Chapter 242: AdMob
Section 242.1: Implementing
Chapter 243: Google Play Store
Section 243.1: Open Google Play Store Listing for your app
Section 243.2: Open Google Play Store with the list of all applications from your publisher account
Chapter 244: Sign your Android App for Release
Section 244.1: Sign your App
Section 244.2: Configure the build.gradle with signing configuration
Chapter 245: TensorFlow
Section 245.1: How to use
Chapter 246: Android Vk Sdk
Section 246.1: Initialization and login
Chapter 247: Project SDK versions
Section 247.1: Defining project SDK versions
Chapter 248: Facebook SDK for Android
Section 248.1: How to add Facebook Login in Android
Section 248.2: Create your own custom button for Facebook login
Section 248.3: A minimalistic guide to Facebook login/signup implementation
Section 248.4: Setting permissions to access data from the Facebook profile
Section 248.5: Logging out of Facebook
Chapter 249: Thread
Section 249.1: Thread Example with its description
Section 249.2: Updating the UI from a Background Thread
Chapter 250: AsyncTask
Section 250.1: Basic Usage
Section 250.2: Pass Activity as WeakReference to avoid memory leaks
Section 250.3: Download Image using AsyncTask in Android
Section 250.4: Canceling AsyncTask
Section 250.5: AsyncTask: Serial Execution and Parallel Execution of Task
Section 250.6: Order of execution
Section 250.7: Publishing progress
Chapter 251: Testing UI with Espresso
Section 251.1: Overall Espresso
Section 251.2: Espresso simple UI test
Section 251.3: Open Close DrawerLayout
Section 251.4: Set Up Espresso
Section 251.5: Performing an action on a view
Section 251.6: Finding a view with onView
Section 251.7: Create Espresso Test Class
Section 251.8: Up Navigation
Section 251.9: Group a collection of test classes in a test suite
Section 251.10: Espresso custom matchers
Chapter 252: Writing UI tests - Android
Section 252.1: MockWebServer example
Section 252.2: IdlingResource
Chapter 253: Unit testing in Android with JUnit
Section 253.1: Moving Business Logic Out of Android Componenets
Section 253.2: Creating Local unit tests
Section 253.3: Getting started with JUnit
Section 253.4: Exceptions
Section 253.5: Static import
Chapter 254: Inter-app UI testing with UIAutomator
Section 254.1: Prepare your project and write the first UIAutomator test
Section 254.2: Writing more complex tests using the UIAutomatorViewer
Section 254.3: Creating a test suite of UIAutomator tests
Chapter 255: Lint Warnings
Section 255.1: Using tools:ignore in xml files
Section 255.2: Configure LintOptions with gradle
Section 255.3: Configuring lint checking in Java and XML source files
Section 255.4: How to configure the lint.xml file
Section 255.5: Mark Suppress Warnings
Section 255.6: Importing resources without "Deprecated" error
Chapter 256: Performance Optimization
Section 256.1: Save View lookups with the ViewHolder pattern
Chapter 257: Android Kernel Optimization
Section 257.1: Low RAM Configuration
Section 257.2: How to add a CPU Governor
Section 257.3: I/O Schedulers
Chapter 258: Memory Leaks
Section 258.1: Avoid leaking Activities with AsyncTask
Section 258.2: Common memory leaks and how to fix them
Section 258.3: Detect memory leaks with the LeakCanary library
Section 258.4: Anonymous callback in activities
Section 258.5: Activity Context in static classes
Section 258.6: Avoid leaking Activities with Listeners
Section 258.7: Avoid memory leaks with Anonymous Class, Handler, Timer Task, Thread
Chapter 259: Enhancing Android Performance Using Icon Fonts
Section 259.1: How to integrate Icon fonts
Section 259.2: TabLayout with icon fonts
Chapter 260: Bitmap Cache
Section 260.1: Bitmap Cache Using LRU Cache
Chapter 261: Loading Bitmaps Eectively
Section 261.1: Load the Image from Resource from Android Device. Using Intents
Chapter 262: Exceptions
Section 262.1: ActivityNotFoundException
Section 262.2: OutOfMemoryError
Section 262.3: Registering own Handler for unexpected exceptions
Section 262.4: UncaughtException
Section 262.5: NetworkOnMainThreadException
Section 262.6: DexException
Chapter 263: Logging and using Logcat
Section 263.1: Filtering the logcat output
Section 263.2: Logging
Section 263.3: Using the Logcat
Section 263.4: Log with link to source directly from Logcat
Section 263.5: Clear logs
Section 263.6: Android Studio usage
Section 263.7: Generating Logging code
Chapter 264: ADB (Android Debug Bridge)
Section 264.1: Connect ADB to a device via WiFi
Section 264.2: Direct ADB command to specific device in a multi-device setting
Section 264.3: Taking a screenshot and video (for kitkat only) from a device display
Section 264.4: Pull (push) files from (to) the device
Section 264.5: Print verbose list of connected devices
Section 264.6: View logcat
Section 264.7: View and pull cache files of an app
Section 264.8: Clear application data
Section 264.9: View an app's internal data (data/data/<sample.package.id>) on a device
Section 264.10: Install and run an application
Section 264.11: Sending broadcast
Section 264.12: Backup
Section 264.13: View available devices
Section 264.14: Connect device by IP
Section 264.15: Install ADB on Linux system
Section 264.16: View activity stack
Section 264.17: Reboot device
Section 264.18: Read device information
Section 264.19: List all permissions that require runtime grant from users on Android 6.0
Section 264.20: Turn on/o Wifi
Section 264.21: Start/stop adb
Chapter 265: Localization with resources in Android
Section 265.1: Configuration types and qualifier names for each folder under the "res" directory
Section 265.2: Adding translation to your Android app
Section 265.3: Type of resource directories under the "res" folder
Section 265.4: Change locale of android application programmatically
Section 265.5: Currency
Chapter 266: Convert vietnamese string to english string Android
Section 266.1: example:
Section 266.2: Chuyển chuỗi Tiếng Việt thành chuỗi không dấu
Credits
You may also like

The Android Notes for Professionals book is compiled from Stack Overflow Documentation, the content is written by the beautiful people at Stack Overflow.

This open book is licensed under a Creative Commons License (CC BY-SA).


Похожее:

Список отзывов:

Нет отзывов к книге.