Android Notes For Professionals. 1000+ pages of professional hints and tricks
✍ Scribed by GoalKicker.com
- Publisher
- GoalKicker.com
- Year
- 2018
- Tongue
- English
- Leaves
- 1329
- Category
- Library
No coin nor oath required. For personal study only.
✦ Table of Contents
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 dierent Textsize
Section 4.7: Theme and Style customization
Section 4.8: TextView customization
Section 4.9: Single TextView with two dierent 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: ItemOsetDecoration 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 Dierent Resolutions, Sizes
Section 31.1: Using configuration qualifiers
Section 31.2: Converting dp and sp to pixels
Section 31.3: Text size and dierent 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: Dierent 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 dierent 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 dierent 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 Dierent 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 dierent 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 Buer 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
Section 90.1: Creating a PorterDu ColorFilter
Section 90.2: Creating a PorterDu XferMode
Section 90.3: Apply a radial mask (vignette) to a bitmap using PorterDuXfermode
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 oine 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
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: Ecient 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:
Section 163.3: Basic AnimatedVectorDrawable
Section 163.4: Using Strokes
Section 163.5: Using
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 Buers
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
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 Oset
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 Eectively
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/
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
📜 SIMILAR VOLUMES