Android Notes for Professionals book

    Amazing collection of free programming books

    5.0
    免費
    Amazing collection of free programming books

    The Notes for Professionals book is compiled from Stack Overflow Documentation, the content is written by the beautiful people at Stack Overflow. Text content is released under Creative Commons BY-SA. See credits at the end of this book whom contributed to the various chapters. Images may be copyright of their respective owners unless otherwise specified

    Book created for educational purposes and is not affiliated with group(s), company(s) nor Stack Overflow. All trademarks belong to their respective company owners

    https://goalkicker.com/

    章節目錄

    • 1-1
      Content list
    • 1-2
      About
    • 1-3
      Chapter 1: Getting started with Android
    • 1-4
      Section 1.1: Creating a New Project
    • 1-5
      Section 1.2: Setting up Android Studio
    • 1-6
      Section 1.3: Android programming without an IDE
    • 1-7
      Section 1.4: Application Fundamentals
    • 1-8
      Section 1.5: Setting up an AVD (Android Virtual Device)
    • 1-9
      Chapter 2: Android Studio
    • 1-10
      Section 2.1: Setup Android Studio
    • 1-11
      Section 2.2: View And Add Shortcuts in Android Studio
    • 1-12
      Section 2.3: Android Studio useful shortcuts
    • 1-13
      Section 2.4: Android Studio Improve performance tip
    • 1-14
      Section 2.5: Gradle build project takes forever
    • 1-15
      Section 2.6: Enable/Disable blank line copy
    • 1-16
      Section 2.7: Custom colors of logcat message based on message importance
    • 1-17
      Section 2.8: Filter logs from UI
    • 1-18
      Section 2.9: Create filters configuration
    • 1-19
      Section 2.10: Create assets folder
    • 1-20
      Chapter 3: Instant Run in Android Studio
    • 1-21
      Section 3.1: Enabling or disabling Instant Run
    • 1-22
      Section 3.2: Types of code Swaps in Instant Run
    • 1-23
      Section 3.3: Unsupported code changes when using Instant Run
    • 1-24
      Chapter 4: TextView
    • 1-25
      Section 4.1: Spannable TextView
    • 1-26
      Section 4.2: Strikethrough TextView
    • 1-27
      Section 4.3: TextView with image
    • 1-28
      Section 4.4: Make RelativeSizeSpan align to top
    • 1-29
      Section 4.5: Pinchzoom on TextView
    • 1-30
      Section 4.6: Textview with dierent Textsize
    • 1-31
      Section 4.7: Theme and Style customization
    • 1-32
      Section 4.8: TextView customization
    • 1-33
      Section 4.9: Single TextView with two dierent colors
    • 1-34
      Chapter 5: AutoCompleteTextView
    • 1-35
      Section 5.1: AutoComplete with CustomAdapter, ClickListener and Filter
    • 1-36
      Section 5.2: Simple, hard-coded AutoCompleteTextView
    • 1-37
      Chapter 6: Autosizing TextViews
    • 1-38
      Section 6.1: Granularity
    • 1-39
      Section 6.2: Preset Sizes
    • 1-40
      Chapter 7: ListView
    • 1-41
      Section 7.1: Custom ArrayAdapter
    • 1-42
      Section 7.2: A basic ListView with an ArrayAdapter
    • 1-43
      Section 7.3: Filtering with CursorAdapter
    • 1-44
      Chapter 8: Layouts
    • 1-45
      Section 8.1: LayoutParams
    • 1-46
      Section 8.2: Gravity and layout gravity
    • 1-47
      Section 8.3: CoordinatorLayout Scrolling Behavior
    • 1-48
      Section 8.4: Percent Layouts
    • 1-49
      Section 8.5: View Weight
    • 1-50
      Section 8.6: Creating LinearLayout programmatically
    • 1-51
      Section 8.7: LinearLayout
    • 1-52
      Section 8.8: RelativeLayout
    • 1-53
      Section 8.9: FrameLayout
    • 1-54
      Section 8.10: GridLayout
    • 1-55
      Section 8.11: CoordinatorLayout
    • 1-56
      Chapter 9: ConstraintLayout
    • 1-57
      Section 9.1: Adding ConstraintLayout to your project
    • 1-58
      Section 9.2: Chains
    • 1-59
      Chapter 10: TextInputLayout
    • 1-60
      Section 10.1: Basic usage
    • 1-61
      Section 10.2: Password Visibility Toggles
    • 1-62
      Section 10.3: Adding Character Counting
    • 1-63
      Section 10.4: Handling Errors
    • 1-64
      Section 10.5: Customizing the appearance of the TextInputLayout
    • 1-65
      Section 10.6: TextInputEditText
    • 1-66
      Chapter 11: CoordinatorLayout and Behaviors
    • 1-67
      Section 11.1: Creating a simple Behavior
    • 1-68
      Section 11.2: Using the SwipeDismissBehavior
    • 1-69
      Section 11.3: Create dependencies between Views
    • 1-70
      Chapter 12: TabLayout
    • 1-71
      Section 12.1: Using a TabLayout without a ViewPager
    • 1-72
      Chapter 13: ViewPager
    • 1-73
      Section 13.1: ViewPager with a dots indicator
    • 1-74
      Section 13.2: Basic ViewPager usage with fragments
    • 1-75
      Section 13.3: ViewPager with PreferenceFragment
    • 1-76
      Section 13.4: Adding a ViewPager
    • 1-77
      Section 13.5: Setup OnPageChangeListener
    • 1-78
      Section 13.6: ViewPager with TabLayout
    • 1-79
      Chapter 14: CardView
    • 1-80
      Section 14.1: Getting Started with CardView
    • 1-81
      Section 14.2: Adding Ripple animation
    • 1-82
      Section 14.3: Customizing the CardView
    • 1-83
      Section 14.4: Using Images as Background in CardView (Pre-Lollipop device issues)
    • 1-84
      Section 14.5: Animate CardView background color with TransitionDrawable
    • 1-85
      Chapter 15: NavigationView
    • 1-86
      Section 15.1: How to add the NavigationView
    • 1-87
      Section 15.2: Add underline in menu elements
    • 1-88
      Section 15.3: Add seperators to menu
    • 1-89
      Section 15.4: Add menu Divider using default DividerItemDecoration
    • 1-90
      Chapter 16: RecyclerView
    • 1-91
      Section 16.1: Adding a RecyclerView
    • 1-92
      Section 16.2: Smoother loading of items
    • 1-93
      Section 16.3: RecyclerView with DataBinding
    • 1-94
      Section 16.4: Animate data change
    • 1-95
      Section 16.5: Popup menu with recyclerView
    • 1-96
      Section 16.6: Using several ViewHolders with ItemViewType
    • 1-97
      Section 16.7: Filter items inside RecyclerView with a SearchView
    • 1-98
      Section 16.8: Drag&Drop and Swipe with RecyclerView
    • 1-99
      Section 16.9: Show default view till items load or when data is not available
    • 1-100
      Section 16.10: Add header/footer to a RecyclerView
    • 1-101
      Section 16.11: Endless Scrolling in Recycleview
    • 1-102
      Section 16.12: Add divider lines to RecyclerView items
    • 1-103
      Chapter 17: RecyclerView Decorations
    • 1-104
      Section 17.1: Add divider to RecyclerView
    • 1-105
      Section 17.2: Drawing a Separator
    • 1-106
      Section 17.3: How to add dividers using and DividerItemDecoration
    • 1-107
      Section 17.4: Per-item margins with ItemDecoration
    • 1-108
      Section 17.5: ItemOsetDecoration for GridLayoutManager in RecycleView
    • 1-109
      Chapter 18: RecyclerView onClickListeners
    • 1-110
      Section 18.1: Kotlin and RxJava example
    • 1-111
      Section 18.2: RecyclerView Click listener
    • 1-112
      Section 18.3: Another way to implement Item Click Listener
    • 1-113
      Section 18.4: New Example
    • 1-114
      Section 18.5: Easy OnLongClick and OnClick Example
    • 1-115
      Section 18.6: Item Click Listeners
    • 1-116
      Chapter 19: RecyclerView and LayoutManagers
    • 1-117
      Section 19.1: Adding header view to recyclerview with gridlayout manager
    • 1-118
      Section 19.2: GridLayoutManager with dynamic span count
    • 1-119
      Section 19.3: Simple list with LinearLayoutManager
    • 1-120
      Section 19.4: StaggeredGridLayoutManager
    • 1-121
      Chapter 20: Pagination in RecyclerView
    • 1-122
      Section 20.1: MainActivity.java
    • 1-123
      Chapter 21: ImageView
    • 1-124
      Section 21.1: Set tint
    • 1-125
      Section 21.2: Set alpha
    • 1-126
      Section 21.3: Set Scale Type
    • 1-127
      Section 21.4: ImageView ScaleType - Center
    • 1-128
      Section 21.5: ImageView ScaleType - CenterCrop
    • 1-129
      Section 21.6: ImageView ScaleType - CenterInside
    • 1-130
      Section 21.7: ImageView ScaleType - FitStart and FitEnd
    • 1-131
      Section 21.8: ImageView ScaleType - FitCenter
    • 1-132
      Section 21.9: Set Image Resource
    • 1-133
      Section 21.10: ImageView ScaleType - FitXy
    • 1-134
      Section 21.11: MLRoundedImageView.java
    • 1-135
      Chapter 22: VideoView
    • 1-136
      Section 22.1: Play video from URL with using VideoView
    • 1-137
      Section 22.2: VideoView Create
    • 1-138
      Chapter 23: Optimized VideoView
    • 1-139
      Section 23.1: Optimized VideoView in ListView
    • 1-140
      Chapter 24: WebView
    • 1-141
      Section 24.1: Troubleshooting WebView by printing console messages or by remote debugging
    • 1-142
      Section 24.2: Communication from Javascript to Java (Android)
    • 1-143
      Section 24.3: Communication from Java to Javascript
    • 1-144
      Section 24.4: Open dialer example
    • 1-145
      Section 24.5: Open Local File / Create dynamic content in Webview
    • 1-146
      Section 24.6: JavaScript alert dialogs in WebView - How to make them work
    • 1-147
      Chapter 25: SearchView
    • 1-148
      Section 25.1: Setting Theme for SearchView
    • 1-149
      Section 25.2: SearchView in Toolbar with Fragment
    • 1-150
      Section 25.3: Appcompat SearchView with RxBindings watcher
    • 1-151
      Chapter 26: BottomNavigationView
    • 1-152
      Section 26.1: Basic implemetation
    • 1-153
      Section 26.2: Customization of BottomNavigationView
    • 1-154
      Section 26.3: Handling Enabled / Disabled states
    • 1-155
      Section 26.4: Allowing more than 3 menus
    • 1-156
      Chapter 27: Canvas drawing using SurfaceView
    • 1-157
      Section 27.1: SurfaceView with drawing thread
    • 1-158
      Chapter 28: Creating Custom Views
    • 1-159
      Section 28.1: Creating Custom Views
    • 1-160
      Section 28.2: Adding attributes to views
    • 1-161
      Section 28.3: CustomView performance tips
    • 1-162
      Section 28.4: Creating a compound view
    • 1-163
      Section 28.5: Compound view for SVG/VectorDrawable as drawableRight
    • 1-164
      Section 28.6: Responding to Touch Events
    • 1-165
      Chapter 29: Getting Calculated View Dimensions
    • 1-166
      Section 29.1: Calculating initial View dimensions in an Activity
    • 1-167
      Chapter 30: Adding a FuseView to an Android Project
    • 1-168
      Section 30.1: hikr app, just another android.view.View
    • 1-169
      Chapter 31: Supporting Screens With Dierent Resolutions, Sizes
    • 1-170
      Section 31.1: Using configuration qualifiers
    • 1-171
      Section 31.2: Converting dp and sp to pixels
    • 1-172
      Section 31.3: Text size and dierent android screen sizes
    • 1-173
      Chapter 32: ViewFlipper
    • 1-174
      Section 32.1: ViewFlipper with image sliding
    • 1-175
      Chapter 33: Design Patterns
    • 1-176
      Section 33.1: Observer pattern
    • 1-177
      Section 33.2: Singleton Class Example
    • 1-178
      Chapter 34: Activity
    • 1-179
      Section 34.1: Activity launchMode
    • 1-180
      Section 34.2: Exclude an activity from back-stack history
    • 1-181
      Section 34.3: Android Activity LifeCycle Explained
    • 1-182
      Section 34.4: End Application with exclude from Recents
    • 1-183
      Section 34.5: Presenting UI with setContentView
    • 1-184
      Section 34.6: Up Navigation for Activities
    • 1-185
      Section 34.7: Clear your current Activity stack and launch a new Activity
    • 1-186
      Chapter 35: Activity Recognition
    • 1-187
      Section 35.1: Google Play ActivityRecognitionAPI
    • 1-188
      Section 35.2: PathSense Activity Recognition
    • 1-189
      Chapter 36: Split Screen / Multi-Screen Activities
    • 1-190
      Section 36.1: Split Screen introduced in Android Nougat implemented
    • 1-191
      Chapter 37: Material Design
    • 1-192
      Section 37.1: Adding a Toolbar
    • 1-193
      Section 37.2: Buttons styled with Material Design
    • 1-194
      Section 37.3: Adding a FloatingActionButton (FAB)
    • 1-195
      Section 37.4: RippleDrawable
    • 1-196
      Section 37.5: Adding a TabLayout
    • 1-197
      Section 37.6: Bottom Sheets in Design Support Library
    • 1-198
      Section 37.7: Apply an AppCompat theme
    • 1-199
      Section 37.8: Add a Snackbar
    • 1-200
      Section 37.9: Add a Navigation Drawer
    • 1-201
      Section 37.10: How to use TextInputLayout
    • 1-202
      Chapter 38: Resources
    • 1-203
      Section 38.1: Define colors
    • 1-204
      Section 38.2: Color Transparency(Alpha) Level
    • 1-205
      Section 38.3: Define String Plurals
    • 1-206
      Section 38.4: Define strings
    • 1-207
      Section 38.5: Define dimensions
    • 1-208
      Section 38.6: String formatting in strings.xml
    • 1-209
      Section 38.7: Define integer array
    • 1-210
      Section 38.8: Define a color state list
    • 1-211
      Section 38.9: 9 Patches
    • 1-212
      Section 38.10: Getting resources without "deprecated" warnings
    • 1-213
      Section 38.11: Working with strings.xml file
    • 1-214
      Section 38.12: Define string array
    • 1-215
      Section 38.13: Define integers
    • 1-216
      Section 38.14: Define a menu resource and use it inside Activity/Fragment
    • 1-217
      Chapter 39: Data Binding Library
    • 1-218
      Section 39.1: Basic text field binding
    • 1-219
      Section 39.2: Built-in two-way Data Binding
    • 1-220
      Section 39.3: Custom event using lambda expression
    • 1-221
      Section 39.4: Default value in Data Binding
    • 1-222
      Section 39.5: Databinding in Dialog
    • 1-223
      Section 39.6: Binding with an accessor method
    • 1-224
      Section 39.7: Pass widget as reference in BindingAdapter
    • 1-225
      Section 39.8: Click listener with Binding
    • 1-226
      Section 39.9: Data binding in RecyclerView Adapter
    • 1-227
      Section 39.10: Databinding in Fragment
    • 1-228
      Section 39.11: DataBinding with custom variables(int,boolean)
    • 1-229
      Section 39.12: Referencing classes
    • 1-230
      Chapter 40: SharedPreferences
    • 1-231
      Section 40.1: Implementing a Settings screen using SharedPreferences
    • 1-232
      Section 40.2: Commit vs. Apply
    • 1-233
      Section 40.3: Read and write values to SharedPreferences
    • 1-234
      Section 40.4: Retrieve all stored entries from a particular SharedPreferences file
    • 1-235
      Section 40.5: Reading and writing data to SharedPreferences with Singleton
    • 1-236
      Section 40.6: getPreferences(int) VS getSharedPreferences(String, int)
    • 1-237
      Section 40.7: Listening for SharedPreferences changes
    • 1-238
      Section 40.8: Store, Retrieve, Remove and Clear Data from SharedPreferences
    • 1-239
      Section 40.9: Add filter for EditTextPreference
    • 1-240
      Section 40.10: Supported data types in SharedPreferences
    • 1-241
      Section 40.11: Dierent ways of instantiating an object of SharedPreferences
    • 1-242
      Section 40.12: Removing keys
    • 1-243
      Section 40.13: Support pre-Honeycomb with StringSet
    • 1-244
      Chapter 41: Intent
    • 1-245
      Section 41.1: Getting a result from another Activity
    • 1-246
      Section 41.2: Passing data between activities
    • 1-247
      Section 41.3: Open a URL in a browser
    • 1-248
      Section 41.4: Starter Pattern
    • 1-249
      Section 41.5: Clearing an activity stack
    • 1-250
      Section 41.6: Start an activity
    • 1-251
      Section 41.7: Sending emails
    • 1-252
      Section 41.8: CustomTabsIntent for Chrome Custom Tabs
    • 1-253
      Section 41.9: Intent URI
    • 1-254
      Section 41.10: Start the dialer
    • 1-255
      Section 41.11: Broadcasting Messages to Other Components
    • 1-256
      Section 41.12: Passing custom object between activities
    • 1-257
      Section 41.13: Open Google map with specified latitude, longitude
    • 1-258
      Section 41.14: Passing dierent data through Intent in Activity
    • 1-259
      Section 41.15: Share intent
    • 1-260
      Section 41.16: Showing a File Chooser and Reading the Result
    • 1-261
      Section 41.17: Sharing Multiple Files through Intent
    • 1-262
      Section 41.18: Start Unbound Service using an Intent
    • 1-263
      Section 41.19: Getting a result from Activity to Fragment
    • 1-264
      Chapter 42: Fragments
    • 1-265
      Section 42.1: Pass data from Activity to Fragment using Bundle
    • 1-266
      Section 42.2: The newInstance() pattern
    • 1-267
      Section 42.3: Navigation between fragments using backstack and static fabric pattern
    • 1-268
      Section 42.4: Sending events back to an activity with callback interface
    • 1-269
      Section 42.5: Animate the transition between fragments
    • 1-270
      Section 42.6: Communication between Fragments
    • 1-271
      Chapter 43: Button
    • 1-272
      Section 43.1: Using the same click event for one or more Views in the XML
    • 1-273
      Section 43.2: Defining external Listener
    • 1-274
      Section 43.3: inline onClickListener
    • 1-275
      Section 43.4: Customizing Button style
    • 1-276
      Section 43.5: Custom Click Listener to prevent multiple fast clicks
    • 1-277
      Section 43.6: Using the layout to define a click action
    • 1-278
      Section 43.7: Listening to the long click events
    • 1-279
      Chapter 44: Emulator
    • 1-280
      Section 44.1: Taking screenshots
    • 1-281
      Section 44.2: Simulate call
    • 1-282
      Section 44.3: Open the AVD Manager
    • 1-283
      Section 44.4: Resolving Errors while starting emulator
    • 1-284
      Chapter 45: Service
    • 1-285
      Section 45.1: Lifecycle of a Service
    • 1-286
      Section 45.2: Defining the process of a service
    • 1-287
      Section 45.3: Creating an unbound service
    • 1-288
      Section 45.4: Starting a Service
    • 1-289
      Section 45.5: Creating Bound Service with help of Binder
    • 1-290
      Section 45.6: Creating Remote Service (via AIDL)
    • 1-291
      Chapter 46: The Manifest File
    • 1-292
      Section 46.1: Declaring Components
    • 1-293
      Section 46.2: Declaring permissions in your manifest file
    • 1-294
      Chapter 47: Gradle for Android
    • 1-295
      Section 47.1: A basic build.gradle file
    • 1-296
      Section 47.2: Define and use Build Configuration Fields
    • 1-297
      Section 47.3: Centralizing dependencies via "dependencies.gradle" file
    • 1-298
      Section 47.4: Sign APK without exposing keystore password
    • 1-299
      Section 47.5: Adding product flavor-specific dependencies
    • 1-300
      Section 47.6: Specifying dierent application IDs for build types and product flavors
    • 1-301
      Section 47.7: Versioning your builds via "version.properties" file
    • 1-302
      Section 47.8: Defining product flavors
    • 1-303
      Section 47.9: Changing output apk name and add version name:
    • 1-304
      Section 47.10: Adding product flavor-specific resources
    • 1-305
      Section 47.11: Why are there two build.gradle files in an Android Studio project?
    • 1-306
      Section 47.12: Directory structure for flavor-specific resources
    • 1-307
      Section 47.13: Enable Proguard using gradle
    • 1-308
      Section 47.14: Ignoring build variant
    • 1-309
      Section 47.15: Enable experimental NDK plugin support for Gradle and AndroidStudio
    • 1-310
      Section 47.16: Display signing information
    • 1-311
      Section 47.17: Seeing dependency tree
    • 1-312
      Section 47.18: Disable image compression for a smaller APK file size
    • 1-313
      Section 47.19: Delete "unaligned" apk automatically
    • 1-314
      Section 47.20: Executing a shell script from gradle
    • 1-315
      Section 47.21: Show all gradle project tasks
    • 1-316
      Section 47.22: Debugging your Gradle errors
    • 1-317
      Section 47.23: Use gradle.properties for central versionnumber/buildconfigurations
    • 1-318
      Section 47.24: Defining build types
    • 1-319
      Chapter 48: FileIO with Android
    • 1-320
      Section 48.1: Obtaining the working folder
    • 1-321
      Section 48.2: Writing raw array of bytes
    • 1-322
      Section 48.3: Serializing the object
    • 1-323
      Section 48.4: Writing to external storage (SD card)
    • 1-324
      Section 48.5: Solving "Invisible MTP files" problem
    • 1-325
      Section 48.6: Working with big files
    • 1-326
      Chapter 49: FileProvider
    • 1-327
      Section 49.1: Sharing a file
    • 1-328
      Chapter 50: Storing Files in Internal & External Storage
    • 1-329
      Section 50.1: Android: Internal and External Storage - Terminology Clarification
    • 1-330
      Section 50.2: Using External Storage
    • 1-331
      Section 50.3: Using Internal Storage
    • 1-332
      Section 50.4: Fetch Device Directory :
    • 1-333
      Section 50.5: Save Database on SD Card (Backup DB on SD)
    • 1-334
      Chapter 51: Zip file in android
    • 1-335
      Section 51.1: Zip file on android
    • 1-336
      Chapter 52: Unzip File in Android
    • 1-337
      Section 52.1: Unzip file
    • 1-338
      Chapter 53: Camera and Gallery
    • 1-339
      Section 53.1: Take photo
    • 1-340
      Section 53.2: Taking full-sized photo from camera
    • 1-341
      Section 53.3: Decode bitmap correctly rotated from the uri fetched with the intent
    • 1-342
      Section 53.4: Set camera resolution
    • 1-343
      Section 53.5: How to start camera or gallery and save camera result to storage
    • 1-344
      Chapter 54: Camera 2 API
    • 1-345
      Section 54.1: Preview the main camera in a TextureView
    • 1-346
      Chapter 55: Fingerprint API in android
    • 1-347
      Section 55.1: How to use Android Fingerprint API to save user passwords
    • 1-348
      Section 55.2: Adding the Fingerprint Scanner in Android application
    • 1-349
      Chapter 56: Bluetooth and Bluetooth LE API
    • 1-350
      Section 56.1: Permissions
    • 1-351
      Section 56.2: Check if bluetooth is enabled
    • 1-352
      Section 56.3: Find nearby Bluetooth Low Energy devices
    • 1-353
      Section 56.4: Make device discoverable
    • 1-354
      Section 56.5: Connect to Bluetooth device
    • 1-355
      Section 56.6: Find nearby bluetooth devices
    • 1-356
      Chapter 57: Runtime Permissions in API-23 +
    • 1-357
      Section 57.1: Android 6.0 multiple permissions
    • 1-358
      Section 57.2: Multiple Runtime Permissions From Same Permission Groups
    • 1-359
      Section 57.3: Using PermissionUtil
    • 1-360
      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
    • 1-361
      Section 57.5: Enforcing Permissions in Broadcasts, URI
    • 1-362
      Chapter 58: Android Places API
    • 1-363
      Section 58.1: Getting Current Places by Using Places API
    • 1-364
      Section 58.2: Place Autocomplete Integration
    • 1-365
      Section 58.3: Place Picker Usage Example
    • 1-366
      Section 58.4: Setting place type filters for PlaceAutocomplete
    • 1-367
      Section 58.5: Adding more than one google auto complete activity
    • 1-368
      Chapter 59: Android NDK
    • 1-369
      Section 59.1: How to log in ndk
    • 1-370
      Section 59.2: Building native executables for Android
    • 1-371
      Section 59.3: How to clean the build
    • 1-372
      Section 59.4: How to use a makefile other than Android.mk
    • 1-373
      Chapter 60: DayNight Theme (AppCompat v23.2 / API 14+)
    • 1-374
      Section 60.1: Adding the DayNight theme to an app
    • 1-375
      Chapter 61: Glide
    • 1-376
      Section 61.1: Loading an image
    • 1-377
      Section 61.2: Add Glide to your project
    • 1-378
      Section 61.3: Glide circle transformation (Load image in a circular ImageView)
    • 1-379
      Section 61.4: Default transformations
    • 1-380
      Section 61.5: Glide rounded corners image with custom Glide target
    • 1-381
      Section 61.6: Placeholder and Error handling
    • 1-382
      Section 61.7: Preloading images
    • 1-383
      Section 61.8: Handling Glide image load failed
    • 1-384
      Section 61.9: Load image in a circular ImageView without custom transformations
    • 1-385
      Chapter 62: Dialog
    • 1-386
      Section 62.1: Adding Material Design AlertDialog to your app using Appcompat
    • 1-387
      Section 62.2: A Basic Alert Dialog
    • 1-388
      Section 62.3: ListView in AlertDialog
    • 1-389
      Section 62.4: Custom Alert Dialog with EditText
    • 1-390
      Section 62.5: DatePickerDialog
    • 1-391
      Section 62.6: DatePicker
    • 1-392
      Section 62.7: Alert Dialog
    • 1-393
      Section 62.8: Alert Dialog with Multi-line Title
    • 1-394
      Section 62.9: Date Picker within DialogFragment
    • 1-395
      Section 62.10: Fullscreen Custom Dialog with no background and no title
    • 1-396
      Chapter 63: Enhancing Alert Dialogs
    • 1-397
      Section 63.1: Alert dialog containing a clickable link
    • 1-398
      Chapter 64: Animated AlertDialog Box
    • 1-399
      Section 64.1: Put Below code for Animated dialog..
    • 1-400
      Chapter 65: GreenDAO
    • 1-401
      Section 65.1: Helper methods for SELECT, INSERT, DELETE, UPDATE queries
    • 1-402
      Section 65.2: Creating an Entity with GreenDAO 3.X that has a Composite Primary Key
    • 1-403
      Section 65.3: Getting started with GreenDao v3.X
    • 1-404
      Chapter 66: Tools Attributes
    • 1-405
      Section 66.1: Designtime Layout Attributes
    • 1-406
      Chapter 67: Formatting Strings
    • 1-407
      Section 67.1: Format a string resource
    • 1-408
      Section 67.2: Formatting data types to String and vise versa
    • 1-409
      Section 67.3: Format a timestamp to string
    • 1-410
      Chapter 68: SpannableString
    • 1-411
      Section 68.1: Add styles to a TextView
    • 1-412
      Section 68.2: Multi string , with multi color
    • 1-413
      Chapter 69: Notifications
    • 1-414
      Section 69.1: Heads Up Notification with Ticker for older devices
    • 1-415
      Section 69.2: Creating a simple Notification
    • 1-416
      Section 69.3: Set custom notification - show full content text
    • 1-417
      Section 69.4: Dynamically getting the correct pixel size for the large icon
    • 1-418
      Section 69.5: Ongoing notification with Action button
    • 1-419
      Section 69.6: Setting Dierent priorities in notification
    • 1-420
      Section 69.7: Set custom notification icon using `Picasso` library
    • 1-421
      Section 69.8: Scheduling notifications
    • 1-422
      Chapter 70: AlarmManager
    • 1-423
      Section 70.1: How to Cancel an Alarm
    • 1-424
      Section 70.2: Creating exact alarms on all Android versions
    • 1-425
      Section 70.3: API23+ Doze mode interferes with AlarmManager
    • 1-426
      Section 70.4: Run an intent at a later time
    • 1-427
      Chapter 71: Handler
    • 1-428
      Section 71.1: HandlerThreads and communication between Threads
    • 1-429
      Section 71.2: Use Handler to create a Timer (similar to javax.swing.Timer)
    • 1-430
      Section 71.3: Using a Handler to execute code after a delayed amount of time
    • 1-431
      Section 71.4: Stop handler from execution
    • 1-432
      Chapter 72: BroadcastReceiver
    • 1-433
      Section 72.1: Using LocalBroadcastManager
    • 1-434
      Section 72.2: BroadcastReceiver Basics
    • 1-435
      Section 72.3: Introduction to Broadcast receiver
    • 1-436
      Section 72.4: Using ordered broadcasts
    • 1-437
      Section 72.5: Sticky Broadcast
    • 1-438
      Section 72.6: Enabling and disabling a Broadcast Receiver programmatically
    • 1-439
      Section 72.7: Example of a LocalBroadcastManager
    • 1-440
      Section 72.8: Android stopped state
    • 1-441
      Section 72.9: Communicate two activities through custom Broadcast receiver
    • 1-442
      Section 72.10: BroadcastReceiver to handle BOOT_COMPLETED events
    • 1-443
      Section 72.11: Bluetooth Broadcast receiver
    • 1-444
      Chapter 73: UI Lifecycle
    • 1-445
      Section 73.1: Saving data on memory trimming
    • 1-446
      Chapter 74: HttpURLConnection
    • 1-447
      Section 74.1: Creating an HttpURLConnection
    • 1-448
      Section 74.2: Sending an HTTP GET request
    • 1-449
      Section 74.3: Reading the body of an HTTP GET request
    • 1-450
      Section 74.4: Sending an HTTP POST request with parameters
    • 1-451
      Section 74.5: A multi-purpose HttpURLConnection class to handle all types of HTTP requests
    • 1-452
      Section 74.6: Use HttpURLConnection for multipart/form-data
    • 1-453
      Section 74.7: Upload (POST) file using HttpURLConnection
    • 1-454
      Chapter 75: Callback URL
    • 1-455
      Section 75.1: Callback URL example with Instagram OAuth
    • 1-456
      Chapter 76: Snackbar
    • 1-457
      Section 76.1: Creating a simple Snackbar
    • 1-458
      Section 76.2: Custom Snack Bar
    • 1-459
      Section 76.3: Custom Snackbar (no need view)
    • 1-460
      Section 76.4: Snackbar with Callback
    • 1-461
      Section 76.5: Snackbar vs Toasts: Which one should I use?
    • 1-462
      Section 76.6: Custom Snackbar
    • 1-463
      Chapter 77: Widgets
    • 1-464
      Section 77.1: Manifest Declaration -
    • 1-465
      Section 77.2: Metadata
    • 1-466
      Section 77.3: AppWidgetProvider Class
    • 1-467
      Section 77.4: Create/Integrate Basic Widget using Android Studio
    • 1-468
      Section 77.5: Two widgets with dierent layouts declaration
    • 1-469
      Chapter 78: Toast
    • 1-470
      Section 78.1: Creating a custom Toast
    • 1-471
      Section 78.2: Set position of a Toast
    • 1-472
      Section 78.3: Showing a Toast Message
    • 1-473
      Section 78.4: Show Toast Message Above Soft Keyboard
    • 1-474
      Section 78.5: Thread safe way of displaying Toast (Application Wide)
    • 1-475
      Section 78.6: Thread safe way of displaying a Toast Message (For AsyncTask)
    • 1-476
      Chapter 79: Create Singleton Class for Toast Message
    • 1-477
      Section 79.1: Create own singleton class for toast massages
    • 1-478
      Chapter 80: Interfaces
    • 1-479
      Section 80.1: Custom Listener
    • 1-480
      Section 80.2: Basic Listener
    • 1-481
      Chapter 81: Animators
    • 1-482
      Section 81.1: TransitionDrawable animation
    • 1-483
      Section 81.2: Fade in/out animation
    • 1-484
      Section 81.3: ValueAnimator
    • 1-485
      Section 81.4: Expand and Collapse animation of View
    • 1-486
      Section 81.5: ObjectAnimator
    • 1-487
      Section 81.6: ViewPropertyAnimator
    • 1-488
      Section 81.7: Shake animation of an ImageView
    • 1-489
      Chapter 82: Location
    • 1-490
      Section 82.1: Fused location API
    • 1-491
      Section 82.2: Get Address From Location using Geocoder
    • 1-492
      Section 82.3: Requesting location updates using LocationManager
    • 1-493
      Section 82.4: Requesting location updates on a separate thread using LocationManager
    • 1-494
      Section 82.5: Getting location updates in a BroadcastReceiver
    • 1-495
      Section 82.6: Register geofence
    • 1-496
      Chapter 83: Theme, Style, Attribute
    • 1-497
      Section 83.1: Define primary, primary dark, and accent colors
    • 1-498
      Section 83.2: Multiple Themes in one App
    • 1-499
      Section 83.3: Navigation Bar Color (API 21+)
    • 1-500
      Section 83.4: Use Custom Theme Per Activity
    • 1-501
      Section 83.5: Light Status Bar (API 23+)
    • 1-502
      Section 83.6: Use Custom Theme Globally
    • 1-503
      Section 83.7: Overscroll Color (API 21+)
    • 1-504
      Section 83.8: Ripple Color (API 21+)
    • 1-505
      Section 83.9: Translucent Navigation and Status Bars (API 19+)
    • 1-506
      Section 83.10: Theme inheritance
    • 1-507
      Chapter 84: MediaPlayer
    • 1-508
      Section 84.1: Basic creation and playing
    • 1-509
      Section 84.2: Media Player with Buer progress and play position
    • 1-510
      Section 84.3: Getting system ringtones
    • 1-511
      Section 84.4: Asynchronous prepare
    • 1-512
      Section 84.5: Import audio into androidstudio and play it
    • 1-513
      Section 84.6: Getting and setting system volume
    • 1-514
      Chapter 85: Android Sound and Media
    • 1-515
      Section 85.1: How to pick image and video for api >19
    • 1-516
      Section 85.2: Play sounds via SoundPool
    • 1-517
      Chapter 86: MediaSession
    • 1-518
      Section 86.1: Receiving and handling button events
    • 1-519
      Chapter 87: MediaStore
    • 1-520
      Section 87.1: Fetch Audio/MP3 files from specific folder of device or fetch all files
    • 1-521
      Chapter 88: Multidex and the Dex Method Limit
    • 1-522
      Section 88.1: Enabling Multidex
    • 1-523
      Section 88.2: Multidex by extending Application
    • 1-524
      Section 88.3: Multidex by extending MultiDexApplication
    • 1-525
      Section 88.4: Multidex by using MultiDexApplication directly
    • 1-526
      Section 88.5: Counting Method References On Every Build (Dexcount Gradle Plugin)
    • 1-527
      Chapter 89: Data Synchronization with Sync Adapter
    • 1-528
      Section 89.1: Dummy Sync Adapter with Stub Provider
    • 1-529
      Chapter 90: PorterDu Mode
    • 1-530
      Section 90.1: Creating a PorterDu ColorFilter
    • 1-531
      Section 90.2: Creating a PorterDu XferMode
    • 1-532
      Section 90.3: Apply a radial mask (vignette) to a bitmap using PorterDuXfermode
    • 1-533
      Chapter 91: Menu
    • 1-534
      Section 91.1: Options menu with dividers
    • 1-535
      Section 91.2: Apply custom font to Menu
    • 1-536
      Section 91.3: Creating a Menu in an Activity
    • 1-537
      Chapter 92: Picasso
    • 1-538
      Section 92.1: Adding Picasso Library to your Android Project
    • 1-539
      Section 92.2: Circular Avatars with Picasso
    • 1-540
      Section 92.3: Placeholder and Error Handling
    • 1-541
      Section 92.4: Re-sizing and Rotating
    • 1-542
      Section 92.5: Disable cache in Picasso
    • 1-543
      Section 92.6: Using Picasso as ImageGetter for Html.fromHtml
    • 1-544
      Section 92.7: Cancelling Image Requests using Picasso
    • 1-545
      Section 92.8: Loading Image from external Storage
    • 1-546
      Section 92.9: Downloading image as Bitmap using Picasso
    • 1-547
      Section 92.10: Try oine disk cache first, then go online and fetch the image
    • 1-548
      Chapter 93: RoboGuice
    • 1-549
      Section 93.1: Simple example
    • 1-550
      Section 93.2: Installation for Gradle Projects
    • 1-551
      Section 93.3: @ContentView annotation
    • 1-552
      Section 93.4: @InjectResource annotation
    • 1-553
      Section 93.5: @InjectView annotation
    • 1-554
      Section 93.6: Introduction to RoboGuice
    • 1-555
      Chapter 94: ACRA
    • 1-556
      Section 94.1: ACRAHandler
    • 1-557
      Section 94.2: Example manifest
    • 1-558
      Section 94.3: Installation
    • 1-559
      Chapter 95: Parcelable
    • 1-560
      Section 95.1: Making a custom object Parcelable
    • 1-561
      Section 95.2: Parcelable object containing another Parcelable object
    • 1-562
      Section 95.3: Using Enums with Parcelable
    • 1-563
      Chapter 96: Retrofit2
    • 1-564
      Section 96.1: A Simple GET Request
    • 1-565
      Section 96.2: Debugging with Stetho
    • 1-566
      Section 96.3: Add logging to Retrofit2
    • 1-567
      Section 96.4: A simple POST request with GSON
    • 1-568
      Section 96.5: Download a file from Server using Retrofit2
    • 1-569
      Section 96.6: Upload multiple file using Retrofit as multipart
    • 1-570
      Section 96.7: Retrofit with OkHttp interceptor
    • 1-571
      Section 96.8: Header and Body: an Authentication Example
    • 1-572
      Section 96.9: Uploading a file via Multipart
    • 1-573
      Section 96.10: Retrofit 2 Custom Xml Converter
    • 1-574
      Section 96.11: Reading XML form URL with Retrofit 2
    • 1-575
      Chapter 97: ButterKnife
    • 1-576
      Section 97.1: Configuring ButterKnife in your project
    • 1-577
      Section 97.2: Unbinding views in ButterKnife
    • 1-578
      Section 97.3: Binding Listeners using ButterKnife
    • 1-579
      Section 97.4: Android Studio ButterKnife Plugin
    • 1-580
      Section 97.5: Binding Views using ButterKnife
    • 1-581
      Chapter 98: Volley
    • 1-582
      Section 98.1: Using Volley for HTTP requests
    • 1-583
      Section 98.2: Basic StringRequest using GET method
    • 1-584
      Section 98.3: Adding custom design time attributes to NetworkImageView
    • 1-585
      Section 98.4: Adding custom headers to your requests [e.g. for basic auth]
    • 1-586
      Section 98.5: Remote server authentication using StringRequest through POST method
    • 1-587
      Section 98.6: Cancel a request
    • 1-588
      Section 98.7: Request JSON
    • 1-589
      Section 98.8: Use JSONArray as request body
    • 1-590
      Section 98.9: Boolean variable response from server with json request in volley
    • 1-591
      Section 98.10: Helper Class for Handling Volley Errors
    • 1-592
      Chapter 99: Date and Time Pickers
    • 1-593
      Section 99.1: Date Picker Dialog
    • 1-594
      Section 99.2: Material DatePicker
    • 1-595
      Chapter 100: Localized Date/Time in Android
    • 1-596
      Section 100.1: Custom localized date format with DateUtils.formatDateTime()
    • 1-597
      Section 100.2: Standard date/time formatting in Android
    • 1-598
      Section 100.3: Fully customized date/time
    • 1-599
      Chapter 101: Time Utils
    • 1-600
      Section 101.1: To check within a period
    • 1-601
      Section 101.2: Convert Date Format into Milliseconds
    • 1-602
      Section 101.3: GetCurrentRealTime
    • 1-603
      Chapter 102: In-app Billing
    • 1-604
      Section 102.1: Consumable In-app Purchases
    • 1-605
      Section 102.2: (Third party) In-App v3 Library
    • 1-606
      Chapter 103: FloatingActionButton
    • 1-607
      Section 103.1: How to add the FAB to the layout
    • 1-608
      Section 103.2: Show and Hide FloatingActionButton on Swipe
    • 1-609
      Section 103.3: Show and Hide FloatingActionButton on Scroll
    • 1-610
      Section 103.4: Setting behaviour of FloatingActionButton
    • 1-611
      Chapter 104: Touch Events
    • 1-612
      Section 104.1: How to vary between child and parent view group touch events
    • 1-613
      Chapter 105: Handling touch and motion events
    • 1-614
      Section 105.1: Buttons
    • 1-615
      Section 105.2: Surface
    • 1-616
      Section 105.3: Handling multitouch in a surface
    • 1-617
      Chapter 106: Detect Shake Event in Android
    • 1-618
      Section 106.1: Shake Detector in Android Example
    • 1-619
      Section 106.2: Using Seismic shake detection
    • 1-620
      Chapter 107: Hardware Button Events/Intents (PTT, LWP, etc.)
    • 1-621
      Section 107.1: Sonim Devices
    • 1-622
      Section 107.2: RugGear Devices
    • 1-623
      Chapter 108: GreenRobot EventBus
    • 1-624
      Section 108.1: Passing a Simple Event
    • 1-625
      Section 108.2: Receiving Events
    • 1-626
      Section 108.3: Sending Events
    • 1-627
      Chapter 109: Otto Event Bus
    • 1-628
      Section 109.1: Passing an event
    • 1-629
      Section 109.2: Receiving an event
    • 1-630
      Chapter 110: Vibration
    • 1-631
      Section 110.1: Getting Started with Vibration
    • 1-632
      Section 110.2: Vibrate Indefinitely
    • 1-633
      Section 110.3: Vibration Patterns
    • 1-634
      Section 110.4: Stop Vibrate
    • 1-635
      Section 110.5: Vibrate for one time
    • 1-636
      Chapter 111: ContentProvider
    • 1-637
      Section 111.1: Implementing a basic content provider class
    • 1-638
      Chapter 112: Dagger 2
    • 1-639
      Section 112.1: Component setup for Application and Activity injection
    • 1-640
      Section 112.2: Custom Scopes
    • 1-641
      Section 112.3: Using @Subcomponent instead of @Component(dependencies={...})
    • 1-642
      Section 112.4: Creating a component from multiple modules
    • 1-643
      Section 112.5: How to add Dagger 2 in build.gradle
    • 1-644
      Section 112.6: Constructor Injection
    • 1-645
      Chapter 113: Realm
    • 1-646
      Section 113.1: Sorted queries
    • 1-647
      Section 113.2: Using Realm with RxJava
    • 1-648
      Section 113.3: Basic Usage
    • 1-649
      Section 113.4: List of primitives (RealmList<Integer/String/...>)
    • 1-650
      Section 113.5: Async queries
    • 1-651
      Section 113.6: Adding Realm to your project
    • 1-652
      Section 113.7: Realm Models
    • 1-653
      Section 113.8: try-with-resources
    • 1-654
      Chapter 114: Android Versions
    • 1-655
      Section 114.1: Checking the Android Version on device at runtime
    • 1-656
      Chapter 115: Wi-Fi Connections
    • 1-657
      Section 115.1: Connect with WEP encryption
    • 1-658
      Section 115.2: Connect with WPA2 encryption
    • 1-659
      Section 115.3: Scan for access points
    • 1-660
      Chapter 116: SensorManager
    • 1-661
      Section 116.1: Decide if your device is static or not, using the accelerometer
    • 1-662
      Section 116.2: Retrieving sensor events
    • 1-663
      Section 116.3: Sensor transformation to world coordinate system
    • 1-664
      Chapter 117: ProgressBar
    • 1-665
      Section 117.1: Material Linear ProgressBar
    • 1-666
      Section 117.2: Tinting ProgressBar
    • 1-667
      Section 117.3: Customized progressbar
    • 1-668
      Section 117.4: Creating Custom Progress Dialog
    • 1-669
      Section 117.5: Indeterminate ProgressBar
    • 1-670
      Section 117.6: Determinate ProgressBar
    • 1-671
      Chapter 118: Custom Fonts
    • 1-672
      Section 118.1: Custom font in canvas text
    • 1-673
      Section 118.2: Working with fonts in Android O
    • 1-674
      Section 118.3: Custom font to whole activity
    • 1-675
      Section 118.4: Putting a custom font in your app
    • 1-676
      Section 118.5: Initializing a font
    • 1-677
      Section 118.6: Using a custom font in a TextView
    • 1-678
      Section 118.7: Apply font on TextView by xml (Not required Java code)
    • 1-679
      Section 118.8: Ecient Typeface loading
    • 1-680
      Chapter 119: Getting system font names and using the fonts
    • 1-681
      Section 119.1: Getting system font names
    • 1-682
      Section 119.2: Applying a system font to a TextView
    • 1-683
      Chapter 120: Text to Speech(TTS)
    • 1-684
      Section 120.1: Text to Speech Base
    • 1-685
      Section 120.2: TextToSpeech implementation across the APIs
    • 1-686
      Chapter 121: Spinner
    • 1-687
      Section 121.1: Basic Spinner Example
    • 1-688
      Section 121.2: Adding a spinner to your activity
    • 1-689
      Chapter 122: Data Encryption/Decryption
    • 1-690
      Section 122.1: AES encryption of data using password in a secure way
    • 1-691
      Chapter 123: OkHttp
    • 1-692
      Section 123.1: Basic usage example
    • 1-693
      Section 123.2: Setting up OkHttp
    • 1-694
      Section 123.3: Logging interceptor
    • 1-695
      Section 123.4: Synchronous Get Call
    • 1-696
      Section 123.5: Asynchronous Get Call
    • 1-697
      Section 123.6: Posting form parameters
    • 1-698
      Section 123.7: Posting a multipart request
    • 1-699
      Section 123.8: Rewriting Responses
    • 1-700
      Chapter 124: Handling Deep Links
    • 1-701
      Section 124.1: Retrieving query parameters
    • 1-702
      Section 124.2: Simple deep link
    • 1-703
      Section 124.3: Multiple paths on a single domain
    • 1-704
      Section 124.4: Multiple domains and multiple paths
    • 1-705
      Section 124.5: Both http and https for the same domain
    • 1-706
      Section 124.6: Using pathPrefix
    • 1-707
      Chapter 125: Crash Reporting Tools
    • 1-708
      Section 125.1: Fabric - Crashlytics
    • 1-709
      Section 125.2: Capture crashes using Sherlock
    • 1-710
      Section 125.3: Force a Test Crash With Fabric
    • 1-711
      Section 125.4: Crash Reporting with ACRA
    • 1-712
      Chapter 126: Check Internet Connectivity
    • 1-713
      Section 126.1: Check if device has internet connectivity
    • 1-714
      Section 126.2: How to check network strength in android?
    • 1-715
      Section 126.3: How to check network strength
    • 1-716
      Chapter 127: Creating your own libraries for Android applications
    • 1-717
      Section 127.1: Create a library available on Jitpack.io
    • 1-718
      Section 127.2: Creating library project
    • 1-719
      Section 127.3: Using library in project as a module
    • 1-720
      Chapter 128: Device Display Metrics
    • 1-721
      Section 128.1: Get the screens pixel dimensions
    • 1-722
      Section 128.2: Get screen density
    • 1-723
      Section 128.3: Formula px to dp, dp to px conversation
    • 1-724
      Chapter 129: Building Backwards Compatible Apps
    • 1-725
      Section 129.1: How to handle deprecated API
    • 1-726
      Chapter 130: Loader
    • 1-727
      Section 130.1: Basic AsyncTaskLoader
    • 1-728
      Section 130.2: AsyncTaskLoader with cache
    • 1-729
      Section 130.3: Reloading
    • 1-730
      Section 130.4: Pass parameters using a Bundle
    • 1-731
      Chapter 131: ProGuard - Obfuscating and Shrinking your code
    • 1-732
      Section 131.1: Rules for some of the widely used Libraries
    • 1-733
      Section 131.2: Remove trace logging (and other) statements at build time
    • 1-734
      Section 131.3: Protecting your code from hackers
    • 1-735
      Section 131.4: Enable ProGuard for your build
    • 1-736
      Section 131.5: Enabling ProGuard with a custom obfuscation configuration file
    • 1-737
      Chapter 132: Typedef Annotations: @IntDef, @StringDef
    • 1-738
      Section 132.1: IntDef Annotations
    • 1-739
      Section 132.2: Combining constants with flags
    • 1-740
      Chapter 133: Capturing Screenshots
    • 1-741
      Section 133.1: Taking a screenshot of a particular view
    • 1-742
      Section 133.2: Capturing Screenshot via Android Studio
    • 1-743
      Section 133.3: Capturing Screenshot via ADB and saving directly in your PC
    • 1-744
      Section 133.4: Capturing Screenshot via Android Device Monitor
    • 1-745
      Section 133.5: Capturing Screenshot via ADB
    • 1-746
      Chapter 134: MVP Architecture
    • 1-747
      Section 134.1: Login example in the Model View Presenter (MVP) pattern
    • 1-748
      Section 134.2: Simple Login Example in MVP
    • 1-749
      Chapter 135: Orientation Changes
    • 1-750
      Section 135.1: Saving and Restoring Activity State
    • 1-751
      Section 135.2: Retaining Fragments
    • 1-752
      Section 135.3: Manually Managing Configuration Changes
    • 1-753
      Section 135.4: Handling AsyncTask
    • 1-754
      Section 135.5: Lock Screen's rotation programmatically
    • 1-755
      Section 135.6: Saving and Restoring Fragment State
    • 1-756
      Chapter 136: Xposed
    • 1-757
      Section 136.1: Creating a Xposed Module
    • 1-758
      Section 136.2: Hooking a method
    • 1-759
      Chapter 137: PackageManager
    • 1-760
      Section 137.1: Retrieve application version
    • 1-761
      Section 137.2: Version name and version code
    • 1-762
      Section 137.3: Install time and update time
    • 1-763
      Section 137.4: Utility method using PackageManager
    • 1-764
      Chapter 138: Gesture Detection
    • 1-765
      Section 138.1: Swipe Detection
    • 1-766
      Section 138.2: Basic Gesture Detection
    • 1-767
      Chapter 139: Doze Mode
    • 1-768
      Section 139.1: Whitelisting an Android application programmatically
    • 1-769
      Section 139.2: Exclude app from using doze mode
    • 1-770
      Chapter 140: Colors
    • 1-771
      Section 140.1: Color Manipulation
    • 1-772
      Chapter 141: Keyboard
    • 1-773
      Section 141.1: Register a callback for keyboard open and close
    • 1-774
      Section 141.2: Hide keyboard when user taps anywhere else on the screen
    • 1-775
      Chapter 142: RenderScript
    • 1-776
      Section 142.1: Getting Started
    • 1-777
      Section 142.2: Blur a View
    • 1-778
      Section 142.3: Blur an image
    • 1-779
      Chapter 143: Fresco
    • 1-780
      Section 143.1: Getting Started with Fresco
    • 1-781
      Section 143.2: Using OkHttp 3 with Fresco
    • 1-782
      Section 143.3: JPEG Streaming with Fresco using DraweeController
    • 1-783
      Chapter 144: Swipe to Refresh
    • 1-784
      Section 144.1: How to add Swipe-to-Refresh To your app
    • 1-785
      Section 144.2: Swipe To Refresh with RecyclerView
    • 1-786
      Chapter 145: Creating Splash screen
    • 1-787
      Section 145.1: Splash screen with animation
    • 1-788
      Section 145.2: A basic splash screen
    • 1-789
      Chapter 146: IntentService
    • 1-790
      Section 146.1: Creating an IntentService
    • 1-791
      Section 146.2: Basic IntentService Example
    • 1-792
      Section 146.3: Sample Intent Service
    • 1-793
      Chapter 147: Implicit Intents
    • 1-794
      Section 147.1: Implicit and Explicit Intents
    • 1-795
      Section 147.2: Implicit Intents
    • 1-796
      Chapter 148: Publish to Play Store
    • 1-797
      Section 148.1: Minimal app submission guide
    • 1-798
      Chapter 149: Universal Image Loader
    • 1-799
      Section 149.1: Basic usage
    • 1-800
      Section 149.2: Initialize Universal Image Loader
    • 1-801
      Chapter 150: Image Compression
    • 1-802
      Section 150.1: How to compress image without size change
    • 1-803
      Chapter 151: 9-Patch Images
    • 1-804
      Section 151.1: Basic rounded corners
    • 1-805
      Section 151.2: Optional padding lines
    • 1-806
      Section 151.3: Basic spinner
    • 1-807
      Chapter 152: Email Validation
    • 1-808
      Section 152.1: Email address validation
    • 1-809
      Section 152.2: Email Address validation with using Patterns
    • 1-810
      Chapter 153: Bottom Sheets
    • 1-811
      Section 153.1: Quick Setup
    • 1-812
      Section 153.2: BottomSheetBehavior like Google maps
    • 1-813
      Section 153.3: Modal bottom sheets with BottomSheetDialog
    • 1-814
      Section 153.4: Modal bottom sheets with BottomSheetDialogFragment
    • 1-815
      Section 153.5: Persistent Bottom Sheets
    • 1-816
      Section 153.6: Open BottomSheet DialogFragment in Expanded mode by default
    • 1-817
      Chapter 154: EditText
    • 1-818
      Section 154.1: Working with EditTexts
    • 1-819
      Section 154.2: Customizing the InputType
    • 1-820
      Section 154.3: Icon or button inside Custom Edit Text and its action and click listeners
    • 1-821
      Section 154.4: Hiding SoftKeyboard
    • 1-822
      Section 154.5: `inputype` attribute
    • 1-823
      Chapter 155: Speech to Text Conversion
    • 1-824
      Section 155.1: Speech to Text With Default Google Prompt Dialog
    • 1-825
      Section 155.2: Speech to Text without Dialog
    • 1-826
      Chapter 156: Installing apps with ADB
    • 1-827
      Section 156.1: Uninstall an app
    • 1-828
      Section 156.2: Install all apk file in directory
    • 1-829
      Section 156.3: Install an app
    • 1-830
      Chapter 157: Count Down Timer
    • 1-831
      Section 157.1: Creating a simple countdown timer
    • 1-832
      Section 157.2: A More Complex Example
    • 1-833
      Chapter 158: Barcode and QR code reading
    • 1-834
      Section 158.1: Using QRCodeReaderView (based on Zxing)
    • 1-835
      Chapter 159: Android PayPal Gateway Integration
    • 1-836
      Section 159.1: Setup PayPal in your android code
    • 1-837
      Chapter 160: Drawables
    • 1-838
      Section 160.1: Custom Drawable
    • 1-839
      Section 160.2: Tint a drawable
    • 1-840
      Section 160.3: Circular View
    • 1-841
      Section 160.4: Make View with rounded corners
    • 1-842
      Chapter 161: TransitionDrawable
    • 1-843
      Section 161.1: Animate views background color (switch-color) with TransitionDrawable
    • 1-844
      Section 161.2: Add transition or Cross-fade between two images
    • 1-845
      Chapter 162: Vector Drawables
    • 1-846
      Section 162.1: Importing SVG file as VectorDrawable
    • 1-847
      Section 162.2: VectorDrawable Usage Example
    • 1-848
      Section 162.3: VectorDrawable xml example
    • 1-849
      Chapter 163: VectorDrawable and AnimatedVectorDrawable
    • 1-850
      Section 163.1: Basic VectorDrawable
    • 1-851
      Section 163.2: <group> tags
    • 1-852
      Section 163.3: Basic AnimatedVectorDrawable
    • 1-853
      Section 163.4: Using Strokes
    • 1-854
      Section 163.5: Using <clip-path>
    • 1-855
      Section 163.6: Vector compatibility through AppCompat
    • 1-856
      Chapter 164: Port Mapping using Cling library in Android
    • 1-857
      Section 164.1: Mapping a NAT port
    • 1-858
      Section 164.2: Adding Cling Support to your Android Project
    • 1-859
      Chapter 165: Creating Overlay (always-on-top) Windows
    • 1-860
      Section 165.1: Popup overlay
    • 1-861
      Section 165.2: Granting SYSTEM_ALERT_WINDOW Permission on android 6.0 and above
    • 1-862
      Chapter 166: ExoPlayer
    • 1-863
      Section 166.1: Add ExoPlayer to the project
    • 1-864
      Section 166.2: Using ExoPlayer
    • 1-865
      Section 166.3: Main steps to play video & audio using the standard TrackRenderer implementations
    • 1-866
      Chapter 167: XMPP register login and chat simple example
    • 1-867
      Section 167.1: XMPP register login and chat basic example
    • 1-868
      Chapter 168: Android Authenticator
    • 1-869
      Section 168.1: Basic Account Authenticator Service
    • 1-870
      Chapter 169: AudioManager
    • 1-871
      Section 169.1: Requesting Transient Audio Focus
    • 1-872
      Section 169.2: Requesting Audio Focus
    • 1-873
      Chapter 170: AudioTrack
    • 1-874
      Section 170.1: Generate tone of a specific frequency
    • 1-875
      Chapter 171: Job Scheduling
    • 1-876
      Section 171.1: Basic usage
    • 1-877
      Chapter 172: Accounts and AccountManager
    • 1-878
      Section 172.1: Understanding custom accounts/authentication
    • 1-879
      Chapter 173: Integrate OpenCV into Android Studio
    • 1-880
      Section 173.1: Instructions
    • 1-881
      Chapter 174: MVVM (Architecture)
    • 1-882
      Section 174.1: MVVM Example using DataBinding Library
    • 1-883
      Chapter 175: ORMLite in android
    • 1-884
      Section 175.1: Android OrmLite over SQLite example
    • 1-885
      Chapter 176: Retrofit2 with RxJava
    • 1-886
      Section 176.1: Retrofit2 with RxJava
    • 1-887
      Section 176.2: Nested requests example: multiple requests, combine results
    • 1-888
      Section 176.3: Retrofit with RxJava to fetch data asyncronously
    • 1-889
      Chapter 177: ShortcutManager
    • 1-890
      Section 177.1: Dynamic Launcher Shortcuts
    • 1-891
      Chapter 178: LruCache
    • 1-892
      Section 178.1: Adding a Bitmap(Resource) to the cache
    • 1-893
      Section 178.2: Initialising the cache
    • 1-894
      Section 178.3: Getting a Bitmap(Resouce) from the cache
    • 1-895
      Chapter 179: Jenkins CI setup for Android Projects
    • 1-896
      Section 179.1: Step by step approach to set up Jenkins for Android
    • 1-897
      Chapter 180: fastlane
    • 1-898
      Section 180.1: Fastfile lane to build and install all flavors for given build type to a device
    • 1-899
      Section 180.2: Fastfile to build and upload multiple flavors to Beta by Crashlytics
    • 1-900
      Chapter 181: Define step value (increment) for custom RangeSeekBar
    • 1-901
      Section 181.1: Define a step value of 7
    • 1-902
      Chapter 182: Getting started with OpenGL ES 2.0+
    • 1-903
      Section 182.1: Setting up GLSurfaceView and OpenGL ES 2.0+
    • 1-904
      Section 182.2: Compiling and Linking GLSL-ES Shaders from asset file
    • 1-905
      Chapter 183: Check Data Connection
    • 1-906
      Section 183.1: Check data connection
    • 1-907
      Section 183.2: Check connection using ConnectivityManager
    • 1-908
      Section 183.3: Use network intents to perform tasks while data is allowed
    • 1-909
      Chapter 184: Java on Android
    • 1-910
      Section 184.1: Java 8 features subset with Retrolambda
    • 1-911
      Chapter 185: Android Java Native Interface (JNI)
    • 1-912
      Section 185.1: How to call functions in a native library via the JNI interface
    • 1-913
      Section 185.2: How to call a Java method from native code
    • 1-914
      Section 185.3: Utility method in JNI layer
    • 1-915
      Chapter 186: Notification Channel Android O
    • 1-916
      Section 186.1: Notification Channel
    • 1-917
      Chapter 187: Robolectric
    • 1-918
      Section 187.1: Robolectric test
    • 1-919
      Section 187.2: Configuration
    • 1-920
      Chapter 188: Moshi
    • 1-921
      Section 188.1: JSON into Java
    • 1-922
      Section 188.2: serialize Java objects as JSON
    • 1-923
      Section 188.3: Built in Type Adapters
    • 1-924
      Chapter 189: Strict Mode Policy : A tool to catch the bug in the Compile Time.
    • 1-925
      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
    • 1-926
      Section 189.2: The below code deals with leaks of memory, like it detects when in SQLLite finalize is called or not
    • 1-927
      Chapter 190: Internationalization and localization (I18N and L10N)
    • 1-928
      Section 190.1: Planning for localization : enable RTL support in Manifest
    • 1-929
      Section 190.2: Planning for localization : Add RTL support in Layouts
    • 1-930
      Section 190.3: Planning for localization : Test layouts for RTL
    • 1-931
      Section 190.4: Coding for Localization : Creating default strings and resources
    • 1-932
      Section 190.5: Coding for localization : Providing alternative strings
    • 1-933
      Section 190.6: Coding for localization : Providing alternate layouts
    • 1-934
      Chapter 191: Fast way to setup Retrolambda on an android project.
    • 1-935
      Section 191.1: Setup and example how to use:
    • 1-936
      Chapter 192: How to use SparseArray
    • 1-937
      Section 192.1: Basic example using SparseArray
    • 1-938
      Chapter 193: Shared Element Transitions
    • 1-939
      Section 193.1: Shared Element Transition between two Fragments
    • 1-940
      Chapter 194: Android Things
    • 1-941
      Section 194.1: Controlling a Servo Motor
    • 1-942
      Chapter 195: Library Dagger 2: Dependency Injection in Applications
    • 1-943
      Section 195.1: Create @Module Class and @Singleton annotation for Object
    • 1-944
      Section 195.2: Request Dependencies in Dependent Objects
    • 1-945
      Section 195.3: Connecting @Modules with @Inject
    • 1-946
      Section 195.4: Using @Component Interface to Obtain Objects
    • 1-947
      Chapter 196: JCodec
    • 1-948
      Section 196.1: Getting Started
    • 1-949
      Section 196.2: Getting frame from movie
    • 1-950
      Chapter 197: Formatting phone numbers with pattern.
    • 1-951
      Section 197.1: Patterns + 1 (786) 1234 5678
    • 1-952
      Chapter 198: Paint
    • 1-953
      Section 198.1: Creating a Paint
    • 1-954
      Section 198.2: Setting up Paint for text
    • 1-955
      Section 198.3: Setting up Paint for drawing shapes
    • 1-956
      Section 198.4: Setting flags
    • 1-957
      Chapter 199: What is ProGuard? What is use in Android?
    • 1-958
      Section 199.1: Shrink your code and resources with proguard
    • 1-959
      Chapter 200: Create Android Custom ROMs
    • 1-960
      Section 200.1: Making Your Machine Ready for Building!
    • 1-961
      Chapter 201: Genymotion for android
    • 1-962
      Section 201.1: Installing Genymotion, the free version
    • 1-963
      Section 201.2: Google framework on Genymotion
    • 1-964
      Chapter 202: ConstraintSet
    • 1-965
      Section 202.1: ConstraintSet with ContraintLayout Programmatically
    • 1-966
      Chapter 203: CleverTap
    • 1-967
      Section 203.1: Setting the debug level
    • 1-968
      Section 203.2: Get an instance of the SDK to record events
    • 1-969
      Chapter 204: Publish a library to Maven Repositories
    • 1-970
      Section 204.1: Publish .aar file to Maven
    • 1-971
      Chapter 205: adb shell
    • 1-972
      Section 205.1: Granting & revoking API 23+ permissions
    • 1-973
      Section 205.2: Send text, key pressed and touch events to Android Device via ADB
    • 1-974
      Section 205.3: List packages
    • 1-975
      Section 205.4: Recording the display
    • 1-976
      Section 205.5: Open Developer Options
    • 1-977
      Section 205.6: Set Date/Time via adb
    • 1-978
      Section 205.7: Generating a "Boot Complete" broadcast
    • 1-979
      Section 205.8: Print application data
    • 1-980
      Section 205.9: Changing file permissions using chmod command
    • 1-981
      Section 205.10: View external/secondary storage content
    • 1-982
      Section 205.11: kill a process inside an Android device
    • 1-983
      Chapter 206: Ping ICMP
    • 1-984
      Section 206.1: Performs a single Ping
    • 1-985
      Chapter 207: AIDL
    • 1-986
      Section 207.1: AIDL Service
    • 1-987
      Chapter 208: Android game development
    • 1-988
      Section 208.1: Game using Canvas and SurfaceView
    • 1-989
      Chapter 209: Android programming with Kotlin
    • 1-990
      Section 209.1: Installing the Kotlin plugin
    • 1-991
      Section 209.2: Configuring an existing Gradle project with Kotlin
    • 1-992
      Section 209.3: Creating a new Kotlin Activity
    • 1-993
      Section 209.4: Converting existing Java code to Kotlin
    • 1-994
      Section 209.5: Starting a new Activity
    • 1-995
      Chapter 210: Android-x86 in VirtualBox
    • 1-996
      Section 210.1: Virtual hard drive Setup for SDCARD Support
    • 1-997
      Section 210.2: Installation in partition
    • 1-998
      Section 210.3: Virtual Machine setup
    • 1-999
      Chapter 211: Leakcanary
    • 1-1000
      Section 211.1: Implementing a Leak Canary in Android Application
    • 1-1001
      Chapter 212: Okio
    • 1-1002
      Section 212.1: Download / Implement
    • 1-1003
      Section 212.2: PNG decoder
    • 1-1004
      Section 212.3: ByteStrings and Buers
    • 1-1005
      Chapter 213: Bluetooth Low Energy
    • 1-1006
      Section 213.1: Finding BLE Devices
    • 1-1007
      Section 213.2: Connecting to a GATT Server
    • 1-1008
      Section 213.3: Writing and Reading from Characteristics
    • 1-1009
      Section 213.4: Subscribing to Notifications from the Gatt Server
    • 1-1010
      Section 213.5: Advertising a BLE Device
    • 1-1011
      Section 213.6: Using a Gatt Server
    • 1-1012
      Chapter 214: Looper
    • 1-1013
      Section 214.1: Create a simple LooperThread
    • 1-1014
      Section 214.2: Run a loop with a HandlerThread
    • 1-1015
      Chapter 215: Annotation Processor
    • 1-1016
      Section 215.1: @NonNull Annotation
    • 1-1017
      Section 215.2: Types of Annotations
    • 1-1018
      Section 215.3: Creating and Using Custom Annotations
    • 1-1019
      Chapter 216: SyncAdapter with periodically do sync of data
    • 1-1020
      Section 216.1: Sync adapter with every min requesting value from server
    • 1-1021
      Chapter 217: Fastjson
    • 1-1022
      Section 217.1: Parsing JSON with Fastjson
    • 1-1023
      Section 217.2: Convert the data of type Map to JSON String
    • 1-1024
      Chapter 218: JSON in Android with org.json
    • 1-1025
      Section 218.1: Creating a simple JSON object
    • 1-1026
      Section 218.2: Create a JSON String with null value
    • 1-1027
      Section 218.3: Add JSONArray to JSONObject
    • 1-1028
      Section 218.4: Parse simple JSON object
    • 1-1029
      Section 218.5: Check for the existence of fields on JSON
    • 1-1030
      Section 218.6: Create nested JSON object
    • 1-1031
      Section 218.7: Updating the elements in the JSON
    • 1-1032
      Section 218.8: Using JsonReader to read JSON from a stream
    • 1-1033
      Section 218.9: Working with null-string when parsing json
    • 1-1034
      Section 218.10: Handling dynamic key for JSON response
    • 1-1035
      Chapter 219: Gson
    • 1-1036
      Section 219.1: Parsing JSON with Gson
    • 1-1037
      Section 219.2: Adding a custom Converter to Gson
    • 1-1038
      Section 219.3: Parsing a List<String> with Gson
    • 1-1039
      Section 219.4: Adding Gson to your project
    • 1-1040
      Section 219.5: Parsing JSON to Generic Class Object with Gson
    • 1-1041
      Section 219.6: Using Gson with inheritance
    • 1-1042
      Section 219.7: Parsing JSON property to enum with Gson
    • 1-1043
      Section 219.8: Using Gson to load a JSON file from disk
    • 1-1044
      Section 219.9: Using Gson as serializer with Retrofit
    • 1-1045
      Section 219.10: Parsing json array to generic class using Gson
    • 1-1046
      Section 219.11: Custom JSON Deserializer using Gson
    • 1-1047
      Section 219.12: JSON Serialization/Deserialization with AutoValue and Gson
    • 1-1048
      Chapter 220: Android Architecture Components
    • 1-1049
      Section 220.1: Using Lifecycle in AppCompatActivity
    • 1-1050
      Section 220.2: Add Architecture Components
    • 1-1051
      Section 220.3: ViewModel with LiveData transformations
    • 1-1052
      Section 220.4: Room peristence
    • 1-1053
      Section 220.5: Custom LiveData
    • 1-1054
      Section 220.6: Custom Lifecycle-aware component
    • 1-1055
      Chapter 221: Jackson
    • 1-1056
      Section 221.1: Full Data Binding Example
    • 1-1057
      Chapter 222: Smartcard
    • 1-1058
      Section 222.1: Smart card send and receive
    • 1-1059
      Chapter 223: Security
    • 1-1060
      Section 223.1: Verifying App Signature - Tamper Detection
    • 1-1061
      Chapter 224: How to store passwords securely
    • 1-1062
      Section 224.1: Using AES for salted password encryption
    • 1-1063
      Chapter 225: Secure SharedPreferences
    • 1-1064
      Section 225.1: Securing a Shared Preference
    • 1-1065
      Chapter 226: Secure SharedPreferences
    • 1-1066
      Section 226.1: Securing a Shared Preference
    • 1-1067
      Chapter 227: SQLite
    • 1-1068
      Section 227.1: onUpgrade() method
    • 1-1069
      Section 227.2: Reading data from a Cursor
    • 1-1070
      Section 227.3: Using the SQLiteOpenHelper class
    • 1-1071
      Section 227.4: Insert data into database
    • 1-1072
      Section 227.5: Bulk insert
    • 1-1073
      Section 227.6: Create a Contract, Helper and Provider for SQLite in Android
    • 1-1074
      Section 227.7: Delete row(s) from the table
    • 1-1075
      Section 227.8: Updating a row in a table
    • 1-1076
      Section 227.9: Performing a Transaction
    • 1-1077
      Section 227.10: Create Database from assets folder
    • 1-1078
      Section 227.11: Store image into SQLite
    • 1-1079
      Section 227.12: Exporting and importing a database
    • 1-1080
      Chapter 228: Accessing SQLite databases using the ContentValues class
    • 1-1081
      Section 228.1: Inserting and updating rows in a SQLite database
    • 1-1082
      Chapter 229: Firebase
    • 1-1083
      Section 229.1: Add Firebase to Your Android Project
    • 1-1084
      Section 229.2: Updating a Firebase users's email
    • 1-1085
      Section 229.3: Create a Firebase user
    • 1-1086
      Section 229.4: Change Password
    • 1-1087
      Section 229.5: Firebase Cloud Messaging
    • 1-1088
      Section 229.6: Firebase Storage Operations
    • 1-1089
      Section 229.7: Firebase Realtime Database: how to set/get data
    • 1-1090
      Section 229.8: Demo of FCM based notifications
    • 1-1091
      Section 229.9: Sign In Firebase user with email and password
    • 1-1092
      Section 229.10: Send Firebase password reset email
    • 1-1093
      Section 229.11: Re-Authenticate Firebase user
    • 1-1094
      Section 229.12: Firebase Sign Out
    • 1-1095
      Chapter 230: Firebase Cloud Messaging
    • 1-1096
      Section 230.1: Set Up a Firebase Cloud Messaging Client App on Android
    • 1-1097
      Section 230.2: Receive Messages
    • 1-1098
      Section 230.3: This code that i have implemnted in my app for pushing image,message and also link for opening in your webView
    • 1-1099
      Section 230.4: Registration token
    • 1-1100
      Section 230.5: Subscribe to a topic
    • 1-1101
      Chapter 231: Firebase Realtime DataBase
    • 1-1102
      Section 231.1: Quick setup
    • 1-1103
      Section 231.2: Firebase Realtime DataBase event handler
    • 1-1104
      Section 231.3: Understanding firebase JSON database
    • 1-1105
      Section 231.4: Retrieving data from firebase
    • 1-1106
      Section 231.5: Listening for child updates
    • 1-1107
      Section 231.6: Retrieving data with pagination
    • 1-1108
      Section 231.7: Denormalization: Flat Database Structure
    • 1-1109
      Section 231.8: Designing and understanding how to retrieve realtime data from the Firebase Database
    • 1-1110
      Chapter 232: Firebase App Indexing
    • 1-1111
      Section 232.1: Supporting Http URLs
    • 1-1112
      Section 232.2: Add AppIndexing API
    • 1-1113
      Chapter 233: Firebase Crash Reporting
    • 1-1114
      Section 233.1: How to report an error
    • 1-1115
      Section 233.2: How to add Firebase Crash Reporting to your app
    • 1-1116
      Chapter 234: Twitter APIs
    • 1-1117
      Section 234.1: Creating login with twitter button and attach a callback to it
    • 1-1118
      Chapter 235: Youtube-API
    • 1-1119
      Section 235.1: Activity extending YouTubeBaseActivity
    • 1-1120
      Section 235.2: Consuming YouTube Data API on Android
    • 1-1121
      Section 235.3: Launching StandAlonePlayerActivity
    • 1-1122
      Section 235.4: YoutubePlayerFragment in portrait Activty
    • 1-1123
      Section 235.5: YouTube Player API
    • 1-1124
      Chapter 236: Integrate Google Sign In
    • 1-1125
      Section 236.1: Google Sign In with Helper class
    • 1-1126
      Chapter 237: Google signin integration on android
    • 1-1127
      Section 237.1: Integration of google Auth in your project. (Get a configuration file)
    • 1-1128
      Section 237.2: Code Implementation Google SignIn
    • 1-1129
      Chapter 238: Google Awareness APIs
    • 1-1130
      Section 238.1: Get changes for location within a certain range using Fence API
    • 1-1131
      Section 238.2: Get current location using Snapshot API
    • 1-1132
      Section 238.3: Get changes in user activity with Fence API
    • 1-1133
      Section 238.4: Get current user activity using Snapshot API
    • 1-1134
      Section 238.5: Get headphone state with Snapshot API
    • 1-1135
      Section 238.6: Get nearby places using Snapshot API
    • 1-1136
      Section 238.7: Get current weather using Snapshot API
    • 1-1137
      Chapter 239: Google Maps API v2 for Android
    • 1-1138
      Section 239.1: Custom Google Map Styles
    • 1-1139
      Section 239.2: Default Google Map Activity
    • 1-1140
      Section 239.3: Show Current Location in a Google Map
    • 1-1141
      Section 239.4: Change Oset
    • 1-1142
      Section 239.5: MapView: embedding a GoogleMap in an existing layout
    • 1-1143
      Section 239.6: Get debug SHA1 fingerprint
    • 1-1144
      Section 239.7: Adding markers to a map
    • 1-1145
      Section 239.8: UISettings
    • 1-1146
      Section 239.9: InfoWindow Click Listener
    • 1-1147
      Section 239.10: Obtaining the SH1-Fingerprint of your certificate keystore file
    • 1-1148
      Section 239.11: Do not launch Google Maps when the map is clicked (lite mode)
    • 1-1149
      Chapter 240: Google Drive API
    • 1-1150
      Section 240.1: Integrate Google Drive in Android
    • 1-1151
      Section 240.2: Create a File on Google Drive
    • 1-1152
      Chapter 241: Displaying Google Ads
    • 1-1153
      Section 241.1: Adding Interstitial Ad
    • 1-1154
      Section 241.2: Basic Ad Setup
    • 1-1155
      Chapter 242: AdMob
    • 1-1156
      Section 242.1: Implementing
    • 1-1157
      Chapter 243: Google Play Store
    • 1-1158
      Section 243.1: Open Google Play Store Listing for your app
    • 1-1159
      Section 243.2: Open Google Play Store with the list of all applications from your publisher account
    • 1-1160
      Chapter 244: Sign your Android App for Release
    • 1-1161
      Section 244.1: Sign your App
    • 1-1162
      Section 244.2: Configure the build.gradle with signing configuration
    • 1-1163
      Chapter 245: TensorFlow
    • 1-1164
      Section 245.1: How to use
    • 1-1165
      Chapter 246: Android Vk Sdk
    • 1-1166
      Section 246.1: Initialization and login
    • 1-1167
      Chapter 247: Project SDK versions
    • 1-1168
      Section 247.1: Defining project SDK versions
    • 1-1169
      Chapter 248: Facebook SDK for Android
    • 1-1170
      Section 248.1: How to add Facebook Login in Android
    • 1-1171
      Section 248.2: Create your own custom button for Facebook login
    • 1-1172
      Section 248.3: A minimalistic guide to Facebook login/signup implementation
    • 1-1173
      Section 248.4: Setting permissions to access data from the Facebook profile
    • 1-1174
      Section 248.5: Logging out of Facebook
    • 1-1175
      Chapter 249: Thread
    • 1-1176
      Section 249.1: Thread Example with its description
    • 1-1177
      Section 249.2: Updating the UI from a Background Thread
    • 1-1178
      Chapter 250: AsyncTask
    • 1-1179
      Section 250.1: Basic Usage
    • 1-1180
      Section 250.2: Pass Activity as WeakReference to avoid memory leaks
    • 1-1181
      Section 250.3: Download Image using AsyncTask in Android
    • 1-1182
      Section 250.4: Canceling AsyncTask
    • 1-1183
      Section 250.5: AsyncTask: Serial Execution and Parallel Execution of Task
    • 1-1184
      Section 250.6: Order of execution
    • 1-1185
      Section 250.7: Publishing progress
    • 1-1186
      Chapter 251: Testing UI with Espresso
    • 1-1187
      Section 251.1: Overall Espresso
    • 1-1188
      Section 251.2: Espresso simple UI test
    • 1-1189
      Section 251.3: Open Close DrawerLayout
    • 1-1190
      Section 251.4: Set Up Espresso
    • 1-1191
      Section 251.5: Performing an action on a view
    • 1-1192
      Section 251.6: Finding a view with onView
    • 1-1193
      Section 251.7: Create Espresso Test Class
    • 1-1194
      Section 251.8: Up Navigation
    • 1-1195
      Section 251.9: Group a collection of test classes in a test suite
    • 1-1196
      Section 251.10: Espresso custom matchers
    • 1-1197
      Chapter 252: Writing UI tests - Android
    • 1-1198
      Section 252.1: MockWebServer example
    • 1-1199
      Section 252.2: IdlingResource
    • 1-1200
      Chapter 253: Unit testing in Android with JUnit
    • 1-1201
      Section 253.1: Moving Business Logic Out of Android Componenets
    • 1-1202
      Section 253.2: Creating Local unit tests
    • 1-1203
      Section 253.3: Getting started with JUnit
    • 1-1204
      Section 253.4: Exceptions
    • 1-1205
      Section 253.5: Static import
    • 1-1206
      Chapter 254: Inter-app UI testing with UIAutomator
    • 1-1207
      Section 254.1: Prepare your project and write the first UIAutomator test
    • 1-1208
      Section 254.2: Writing more complex tests using the UIAutomatorViewer
    • 1-1209
      Section 254.3: Creating a test suite of UIAutomator tests
    • 1-1210
      Chapter 255: Lint Warnings
    • 1-1211
      Section 255.1: Using tools:ignore in xml files
    • 1-1212
      Section 255.2: Configure LintOptions with gradle
    • 1-1213
      Section 255.3: Configuring lint checking in Java and XML source files
    • 1-1214
      Section 255.4: How to configure the lint.xml file
    • 1-1215
      Section 255.5: Mark Suppress Warnings
    • 1-1216
      Section 255.6: Importing resources without "Deprecated" error
    • 1-1217
      Chapter 256: Performance Optimization
    • 1-1218
      Section 256.1: Save View lookups with the ViewHolder pattern
    • 1-1219
      Chapter 257: Android Kernel Optimization
    • 1-1220
      Section 257.1: Low RAM Configuration
    • 1-1221
      Section 257.2: How to add a CPU Governor
    • 1-1222
      Section 257.3: I/O Schedulers
    • 1-1223
      Chapter 258: Memory Leaks
    • 1-1224
      Section 258.1: Avoid leaking Activities with AsyncTask
    • 1-1225
      Section 258.2: Common memory leaks and how to fix them
    • 1-1226
      Section 258.3: Detect memory leaks with the LeakCanary library
    • 1-1227
      Section 258.4: Anonymous callback in activities
    • 1-1228
      Section 258.5: Activity Context in static classes
    • 1-1229
      Section 258.6: Avoid leaking Activities with Listeners
    • 1-1230
      Section 258.7: Avoid memory leaks with Anonymous Class, Handler, Timer Task, Thread
    • 1-1231
      Chapter 259: Enhancing Android Performance Using Icon Fonts
    • 1-1232
      Section 259.1: How to integrate Icon fonts
    • 1-1233
      Section 259.2: TabLayout with icon fonts
    • 1-1234
      Chapter 260: Bitmap Cache
    • 1-1235
      Section 260.1: Bitmap Cache Using LRU Cache
    • 1-1236
      Chapter 261: Loading Bitmaps Eectively
    • 1-1237
      Section 261.1: Load the Image from Resource from Android Device. Using Intents
    • 1-1238
      Chapter 262: Exceptions
    • 1-1239
      Section 262.1: ActivityNotFoundException
    • 1-1240
      Section 262.2: OutOfMemoryError
    • 1-1241
      Section 262.3: Registering own Handler for unexpected exceptions
    • 1-1242
      Section 262.4: UncaughtException
    • 1-1243
      Section 262.5: NetworkOnMainThreadException
    • 1-1244
      Section 262.6: DexException
    • 1-1245
      Chapter 263: Logging and using Logcat
    • 1-1246
      Section 263.1: Filtering the logcat output
    • 1-1247
      Section 263.2: Logging
    • 1-1248
      Section 263.3: Using the Logcat
    • 1-1249
      Section 263.4: Log with link to source directly from Logcat
    • 1-1250
      Section 263.5: Clear logs
    • 1-1251
      Section 263.6: Android Studio usage
    • 1-1252
      Section 263.7: Generating Logging code
    • 1-1253
      Chapter 264: ADB (Android Debug Bridge)
    • 1-1254
      Section 264.1: Connect ADB to a device via WiFi
    • 1-1255
      Section 264.2: Direct ADB command to specific device in a multi-device setting
    • 1-1256
      Section 264.3: Taking a screenshot and video (for kitkat only) from a device display
    • 1-1257
      Section 264.4: Pull (push) files from (to) the device
    • 1-1258
      Section 264.5: Print verbose list of connected devices
    • 1-1259
      Section 264.6: View logcat
    • 1-1260
      Section 264.7: View and pull cache files of an app
    • 1-1261
      Section 264.8: Clear application data
    • 1-1262
      Section 264.9: View an app's internal data (data/data/<sample.package.id>) on a device
    • 1-1263
      Section 264.10: Install and run an application
    • 1-1264
      Section 264.11: Sending broadcast
    • 1-1265
      Section 264.12: Backup
    • 1-1266
      Section 264.13: View available devices
    • 1-1267
      Section 264.14: Connect device by IP
    • 1-1268
      Section 264.15: Install ADB on Linux system
    • 1-1269
      Section 264.16: View activity stack
    • 1-1270
      Section 264.17: Reboot device
    • 1-1271
      Section 264.18: Read device information
    • 1-1272
      Section 264.19: List all permissions that require runtime grant from users on Android 6.0
    • 1-1273
      Section 264.20: Turn on/o Wifi
    • 1-1274
      Section 264.21: Start/stop adb
    • 1-1275
      Chapter 265: Localization with resources in Android
    • 1-1276
      Section 265.1: Configuration types and qualifier names for each folder under the "res" directory
    • 1-1277
      Section 265.2: Adding translation to your Android app
    • 1-1278
      Section 265.3: Type of resource directories under the "res" folder
    • 1-1279
      Section 265.4: Change locale of android application programmatically
    • 1-1280
      Section 265.5: Currency
    • 1-1281
      Chapter 266: Convert vietnamese string to english string Android
    • 1-1282
      Section 266.1: example:
    • 1-1283
      Section 266.2: Chuyển chuỗi Tiếng Việt thành chuỗi không dấu
    • 1-1284
      Credits
    • 1-1285
      You may also like

    常見問答

    您可以透過手機、平板或是電腦登入 HiSKIO 平台,在【我的學習】>【我的書籍】頁面,選擇想看的電子書。

    猜你喜歡

    銷售方案