Contents
- Getting Started
- Layouts
- Gradle
- Gradle for Android
- A basic build.gradle file
- Define and use Build Configuration Fields
- Centralizing dependencies via dependencies.gradle file
- Sign APK without exposing keystore password
- Adding product flavor-specific dependencies
- Specifying different application IDs for build types and product flavors
- Versioning your builds via version.properties file
- Defining product flavors
- Changing output apk name and add version name
- Adding product flavor-specific resources
- Why are there two build.gradle files in an Android Studio project
- Directory structure for flavor-specific resources
- Enable Proguard using gradle
- Ignoring build variant
- Seeing dependency tree
- Enable experimental NDK plugin support for Gradle and AndroidStudio
- Display signing information
- Executing a shell script from gradle
- Show all gradle project tasks
- Delete unaligned apk automatically
- Disable image compression for a smaller APK file size
- Debugging your Gradle errors
- Use gradle.properties for central versionnumberbuildconfigurations
- Defining build types
- RecyclerView onClickListeners
- NavigationView
- Intent
- Intent
- Getting a result from another Activity
- Passing data between activities
- Open a URL in a browser
- Starter Pattern
- Clearing an activity stack
- Start an activity
- Open Google Play Store Listing for your app
- Pass data from Activity to Fragment using Bundle
- Sending emails
- CustomTabsIntent for Chrome Custom Tabs
- Intent URI
- Start the dialer
- Broadcasting Messages to Other Components
- Passing custom object between activities
- Share intent
- Passing different data through Intent in Activity
- Open Google map with specified latitude longitude
- Showing a File Chooser and Reading the Result
- Open Google Play Store with the list of all applications from your publisher account
- Sharing Multiple Files through Intent
- Start Unbound Service using an Intent
- Implicit and Explicit Intents
- Getting a result from Activity to Fragment
- JSON handling with org.json
- JSON in Android with org.json
- Creating a simple JSON object
- Create a JSON String with null value.
- Parsing JSON with Gson
- Add JSONArray to JSONObject
- Parse simple JSON object
- Parsing a ListString with Gson
- Check for the existence of fields on JSON
- Create nested JSON object
- Parsing JSON to Generic Class Object with Gson
- Parsing JSON property to enum with Gson
- Using JsonReader to read JSON from a stream
- Working with null-string when parsing json
- Handling dynamic key for JSON response
- Parsing json array to generic class using Gson
- Custom JSON Deserializer using Gson
- JSON SerializationDeserialization with AutoValue and Gson
- Updating the elements in the JSON
- Android Studio
- Android Studio
- Setup Android Studio
- View And Add Shortcuts in Android Studio
- Filter logs from UI
- Custom colors of logcat message based on message importance
- EnableDisable blank line copy
- Android Studio useful shortcuts
- Android Studio Improve performance tip
- Create filters configuration
- Gradle build project takes forever
- Create assets folder
- Resources
- Resources
- Define colors
- Color TransparencyAlpha Level
- Define strings
- Define String Plurals
- Define dimensions
- Define integer array
- Define a color state list
- Getting resources without deprecated warnings
- Patches
- String formatting in strings.xml
- Working with strings.xml file
- Define a menu resource and use it inside ActivityFragment
- Define integers
- Define string array
- Import array of objects defined in resources
- Translate a string
- Data Binding Library
- Data Binding Library
- Basic text field binding
- Built-in two-way Data Binding
- Custom event using lambda expression
- Default value in Data Binding
- Binding with an accessor method
- Databinding in Dialog
- Databinding in Fragment
- Data binding in RecyclerView Adapter
- Click listener with Binding
- Referencing classes
- DataBinding with custom variablesintboolean
- Pass widget as reference in BindingAdapter
- Exceptions
- Getting Calculated View Dimensions
- AsyncTask
- SharedPreferences
- SharedPreferences
- Implementing a Settings screen using SharedPreferences
- Commit vs. Apply
- Read and write values to SharedPreferences
- Retrieve all stored entries from a particular SharedPreferences file
- Reading and writing data to SharedPreferences with Singleton
- Store Retrieve Remove and Clear Data from SharedPreferences
- Listening for SharedPreferences changes
- getPreferencesint VS getSharedPreferencesString int
- Different ways of instantiating an object of SharedPreferences
- Supported data types in SharedPreferences
- Removing keys
- Add filter for EditTextPreference
- Support pre-Honeycomb with StringSet
- Emulator
- Material Design
- Material Design
- Adding a Toolbar
- Buttons styled with Material Design
- Adding a FloatingActionButton FAB
- RippleDrawable
- Adding a TabLayout
- Bottom Sheets in Design Support Library
- Apply an AppCompat theme
- Add a Snackbar
- Add a Navigation Drawer
- How to use TextInputLayout
- Adding Material Design AlertDialog to your app using Appcompat
- Lint Warnings
- Service
- Storing Files in Internal and External Storage
- WebView
- Project SDK versions
- RecyclerView
- RecyclerView
- Adding a RecyclerView
- Smoother loading of items
- RecyclerView with DataBinding
- Animate data change
- Popup menu with recyclerView
- Adding header view to recyclerview with gridlayout manager
- Filter items inside RecyclerView with a SearchView
- Using several ViewHolders with ItemViewType
- Add headerfooter to a RecyclerView
- Drag Drop and Swipe with RecyclerView
- Show default view till items load or when data is not available
- Endless Scrolling in Recycleview.
- Add divider to RecyclerView
- Add divider lines to RecyclerView items
- GridLayoutManager with dynamic span count
- Per-item margins with ItemDecoration
- Another way to implement Item Click Listener
- Simple list with LinearLayoutManager
- StaggeredGridLayoutManager
- Item Click Listeners
- Google Maps
- Google Maps API v2 for Android
- Custom Google Map Styles
- Default Google Map Activity
- Show Current Location in a Google Map
- Adding markers to a map
- MapView embedding a GoogleMap in an existing layout
- Obtaining the SH1-Fingerprint of your certificate keystore file
- Do not launch Google Maps when the map is clicked lite mode
- UISettings
- Get debug SHA1 fingerprint
- InfoWindow Click Listener
- Change Offset
- PorterDuff Mode
- 9-Patch images
- Android NDK
- RecyclerView Decorations
- Camera 2 API
- ViewPager
- CardView
- HttpURLConnection
- HttpURLConnection
- Creating an HttpURLConnection
- Sending an HTTP GET request
- Reading the body of an HTTP GET request
- Sending an HTTP POST request with parameters
- Use HttpURLConnection for multipartform-data
- Upload POST file using HttpURLConnection
- A multi-purpose HttpURLConnection class to handle all types of HTTP requests
- SQLite
- SQLite
- onUpgrade method
- Reading data from a Cursor
- Using the SQLiteOpenHelper class
- Insert data into database
- Bulk insert
- Create a Contract Helper and Provider for SQLite in Android
- Performing a Transaction
- Delete rows from the table
- Create Database from assets folder
- Updating a row in a table
- Store image into SQLite
- Exporting and importing a database
- ADB Android Debug Bridge
- ADB Android Debug Bridge
- Connect ADB to a device via WiFi
- Granting revoking API 23 permissions
- Send text key pressed and touch events to Android Device via ADB
- Direct ADB command to specific device in a multi-device setting
- List packages
- Taking a screenshot and video for kitkat only from a device display
- Recording the display
- Print verbose list of connected devices
- Pull push files from to the device
- View logcat
- Clear application data
- View and pull cache files of an app
- View available devices
- View an apps internal data datadatasample.package.id on a device
- Connect device by IP
- Sending broadcast
- Install and run an application
- Backup
- Open Developer Options
- Install ADB on Linux system
- Set DateTime via adb
- List all permissions that require runtime grant from users on Android 6.0
- Turn onoff Wifi
- View activity stack
- Read device information
- Startstop adb
- Changing file permissions using chmod command
- Uninstall an app
- Print application data
- Generating a Boot Complete broadcast
- Reboot device
- View externalsecondary storage content
- Install all apk file in directory
- Install an app
- ButterKnife
- Supporting different screen resolutions
- Glide
- Glide
- Loading an image
- Add Glide to your project
- Glide circle transformation Load image in a circular ImageView
- Default transformations
- Glide rounded corners image with custom Glide target
- Placeholder and Error handling
- Preloading images
- Handling Glide image load failed
- Load image in a circular ImageView without custom transformations
- Retrofit2
- Retrofit2
- A Simple GET Request
- Retrofit2 with RxJava
- Add logging to Retrofit2
- Debugging with Stetho
- A simple POST request with GSON
- Upload multiple file using Retrofit as multipart
- Download a file from Server using Retrofit2
- Retrofit with OkHttp interceptor
- Header and Body an Authentication Example
- Uploading a file via Multipart
- Retrofit 2 Custom Xml Converter
- Reading XML form URL with Retrofit 2
- Dialog
- Dialog
- Adding Material Design AlertDialog to your app using Appcompat
- A Basic Alert Dialog
- Alert Dialog
- Custom Alert Dialog with EditText
- DatePickerDialog
- DatePicker
- ListView in AlertDialog
- Alert Dialog with Multi-line Title
- Date Picker within DialogFragment
- Fullscreen Custom Dialog with no background and no title
- ACRA
- GreenDAO
- Formatting Strings
- Notifications
- Notifications
- Heads Up Notification with Ticker for older devices
- Creating a simple Notification
- Set custom notification - show full content text
- Dynamically getting the correct pixel size for the large icon
- Setting Different priorities in notification
- Scheduling notifications
- Set custom notification icon using Picasso library.
- Ongoing notification with Action button
- AlarmManager
- Fragments
- Handler
- Creating Custom Views
- BroadcastReceiver
- BroadcastReceiver
- Using LocalBroadcastManager
- BroadcastReceiver Basics
- Introduction to Broadcast receiver
- Sticky Broadcast
- Enabling and disabling a Broadcast Receiver programmatically
- Using ordered broadcasts
- BroadcastReceiver to handle BOOT COMPLETED events
- Example of a LocalBroadcastManager
- Communicate two activities through custom Broadcast receiver
- Bluetooth Broadcast receiver
- Android stopped state
- Activity
- Snackbar
- Runtime Permissions in API-23
- Runtime Permissions in API-23
- Android 6.0 multiple permissions
- Multiple Runtime Permissions From Same Permission Groups
- Enforcing Permissions in Broadcasts URI
- Using PermissionUtil
- Include all permission-related code to an abstract base class and extend the activity of this base class to achieve cleanerreusable code
- Logging and using Logcat
- VectorDrawable and AnimatedVectorDrawable
- Tools Attributes
- Toast
- Interfaces
- Animators
- Location
- Theme Style Attribute
- Theme Style Attribute
- Define primary primary dark and accent colors
- Multiple Themes in one App
- Navigation Bar Color API 21
- Use Custom Theme Per Activity
- Light Status Bar API 23
- Use Custom Theme Globally
- Overscroll Color API 21
- Translucent Navigation and Status Bars API 19
- Theme inheritance
- Theme and Style customization
- Ripple Color API 21
- The Manifest File
- Parcelable
- MediaPlayer
- Multidex and the Dex Method Limit
- Data Synchronization with Sync Adapter
- Menu
- Instant Run in Android Studio
- Picasso
- Picasso
- Adding Picasso Library to your Android Project
- Circular Avatars with Picasso
- Placeholder and Error Handling
- Re-sizing and Rotating
- Disable cache in Picasso
- Using Picasso as ImageGetter for Html.fromHtml
- Loading Image from external Storage
- Downloading image as Bitmap using Picasso
- Cancelling Image Requests using Picasso
- Try offline disk cache first then go online and fetch the image
- Bluetooth LE API
- RoboGuice
- Memory Leaks
- Memory Leaks
- Avoid leaking Activities with AsyncTask
- Common memory leaks and how to fix them
- Detect memory leaks with the LeakCanary library
- Anonymous callback in activities
- Activity Context in static classes
- Avoid leaking Activities with Listeners
- Avoid memory leaks with Anonymous Class Handler Timer Task Thread
- Universal Image Loader
- Volley
- Volley
- Using Volley for HTTP requests
- Basic StringRequest using GET method
- Adding custom design time attributes to NetworkImageView
- Request JSON
- Adding custom headers to your requests e.g. for basic auth
- Remote server authentication using StringRequest through POST method
- Cancel a request
- Helper Class for Handling Volley Errors
- Boolean variable response from server with json request in volley
- Use JSONArray as request body
- Widgets
- Date and Time Pickers
- Integrate Google Sign In
- In-app billing
- FloatingActionButton
- ContentProvider
- Dagger 2
- Realm
- Unit testing in Android with JUnit
- Android Versions
- Wi-Fi Connections
- SensorManager
- Localization with resources
- ProgressBar
- Custom Fonts
- Vibration
- Google Awarness APIs
- Google Awareness APIs
- Get changes for location within a certain range using Fence API
- Get current location using Snapshot API
- Get changes in user activity with Fence API
- Get headphone state with Snapshot API
- Get nearby places using Snapshot API
- Get current weather using Snapshot API
- Get current user activity using Snapshot API
- Text to Speech (TTS)
- UI Lifecycle
- Spinner
- Data Encryption / Decryption
- Testing UI with Espresso
- Writing UI tests
- GreenRobot EventBus
- OkHttp
- Enhancing Performance Using Icon Fonts
- Handling Depp Links
- Canvas drawing using SurfaceView
- Firebase
- Firebase
- Add Firebase to Your Android Project
- Updating a Firebase userss email
- Create a Firebase user
- Change Password
- How to report an error
- Firebase Cloud Messaging
- Firebase Storage Operations
- Re-Authenticate Firebase user
- Send Firebase password reset email
- Sign In Firebase user with email and password
- Firebase Realtime Database how to setget data
- Demo of FCM based notifications
- How to add Firebase Crash Reporting to your app
- Firebase Sign Out
- Crash Reporting Tools
- Check Internet Connectivity
- Facebook SDK
- Unzip File
- Android Places API
- Creating your own libraries
- Handling JSON with Gson
- Gson
- Parsing JSON with Gson
- Adding a custom Converter to Gson
- Parsing a ListString with Gson
- Adding Gson to your project
- Parsing JSON to Generic Class Object with Gson
- Parsing JSON property to enum with Gson
- JSON SerializationDeserialization with AutoValue and Gson
- Using Gson to load a JSON file from disk.
- Using Gson as serializer with Retrofit
- Custom JSON Deserializer using Gson
- Parsing json array to generic class using Gson
- Using Gson with inheritance
- Device Display Metrics
- TextView
- ListView
- Building Backwards Compatible Apps
- Loader
- ProGuard - Obfuscating and Shrinking your code
- Detect Shake Event
- Typedef Annotations
- Capturing Screenshots
- MVP Architecture
- Orientation Changes
- Xposed
- Security
- PackageManager
- ImageView
- Gesture Detection
- Doze Mode
- Android Sound and Media
- SearchView
- Camera and Gallery
- Callback URL
- Twitter APIs
- SqlCipher integration
- Drawables
- Colors
- ConstraintLayout
- RenderScript
- Fresco
- Swipe to Refresh
- AutoCompleteTextView
- Installing apps with ADB
- IntentService
- AdMob
- Implicit Intents
- Publish to Play Store
- Firebase Realtime Database
- Firebase Realtime DataBase
- Quick setup
- Firebase Realtime DataBase event handler
- Designing and understanding how to retrieve realtime data from the Firebase Database
- Denormalization Flat Database Structure
- Understanding firebase JSON database
- Retrieving data from firebase
- Listening for child updates
- Retrieving data with pagination
- Image Compression
- Email Validation
- Keyboard
- Button
- TextInputLayout
- Bottom Sheets
- CoordinatorLayout and Behaviors
- EditText
- Paypal Gateway Integration
- Firebase App Indexing
- Firebase Crash Reporting
- Displaying Google Ads
- Vk SDK
- Localized DateTime
- Count Down Timer
- Reading Barcode and QR codes
- Otto Event Bus
- TransitionDrawable
- Port Mapping using Cling
- Creating Overlay always-on-top Windows
- ExoPlayer
- Inter-app UI testing with UIAutomator
- MediaSession
- Speech to Text Conversion
- FileProvider
- Publish .aar file to Apache Archive with Gradle
- XMPP
- Authenticator
- RecyclerView and LayoutManagers
- AudioManager
- Job Scheduling
- Accounts and AccountManager
- OpenCV
- Split Screen Multi-Screen Activities
- Threads
- MediaStore
- Time Utils
- Touch Events
- Fingerprint API
- MVVM Architecture
- BottomNavigationView
- ORMLite
- YouTube API
- TabLayout
- Retrofit2 with RxJava
- DayNight Theme AppCompat
- ShortcutManager
- LruCache
- Using Jenkins CI
- Zip files
- Vector Drawables
- Fastlane
- Define step value for RangeSeekBar
- Getting started with OpenGL ES 2.0
- Check Data Connection
- Java Native Interface (JNI)
- FileIO
- Perfomance Optimization
- Robolectric
- Moshi
- Strick Mode Policy
- Internalization and localization
- Internationalization and localization I18N and L10N
- Planning for localization enable RTL support in Manifest
- Planning for localization Add RTL support in Layouts
- Planning for localization Test layouts for RTL
- Coding for Localization Creating default strings and resources
- Coding for localization Providing alternative strings
- Coding for localization Providing alternate layouts
- Retrolambda
- SparseArray
- Firebase Cloud Messaging
- Shared Element Transitions
- Android Things
- VideoView
- ViewFlipper
- Dependency Injection with Dagger 2
- Formatting phone numbers
- Storing password securely
- Android Kernel Optimization
- Paint
- AudioTrack
- ProGuard
- Create Android Custom ROMs
- Java on Android
- Pagination in RecyclerVi
- Genymotion for Android
- Handling touch and motion events
- Creating Splash screen
- ConstraintSet
- CleverTap
- Publish library to Maven repositories
- ADB shell
- adb shell
- Granting revoking API 23 permissions
- Send text key pressed and touch events to Android Device via ADB
- List packages
- Recording the display
- Set DateTime via adb
- Open Developer Options
- Changing file permissions using chmod command
- Generating a Boot Complete broadcast
- Print application data
- View externalsecondary storage content
- kill a process inside an Android device
- Ping ICMP
- AIDL
- Using Kotlin
- Autosizing TextView
- Signing apps for release
- Context
- Activity Recognition
- Secure SharedPreferences
- Secure SharedPreferences
- Bitmap Cache
- Android x86 in VirtualBox
- JCodec
- Design Patterns
- Okio
- Google SignIn integration
- TensorFlow
- Game developmen
- Notification Channel
- Bluetooth Low Energy (LE)
- Leak Canary
- FuseView
- SQLite using ContentValues
- Enhancing Alert Dialogs
- Hardware Button Events, Intents PTT
- SpannableString
- Looper
- Optimized VideoView
- Google Drive API
- Animated AlertDialog Box
- Annotation Processor
- SyncAdapter with periodically do sync of data
- Singleton Class for Toast Message
- Fastjson
- Android Architecture Components
- Jackson
- Play Store
- Loading Bitmaps Effectively
- Getting system font names
- Smartcard
- Convert vietnamese string to english
- Contributors