ENGLISH

Android Notes For Professionals. 1000+ pages of professional hints and tricks

Book information

Publisher
GoalKicker.com
Year
2018
Language
english
Format
PDF
Filesize
12 MB (12482489 bytes)
Pages
\1329
Time added
2020-05-25 18:33:45

Description

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

Similar books