User Tools

Site Tools


android_development

Android development

Documentation and Tutorials

Official

Misc

API

Discovering the Android API - Part 1 - Nice article about not widely known APIs like: Spell Checker, Text Recognizer, TimingLogger, Taking screenshots, PDF Creation.

Android Versionen Verteilung, Stand April 2020: 80% - ab Android 6

Tools

scrcpy

To start scrcpy with the device where it does not work:

scrcpy -m 1080

or

scrcpy -m 1800

or some other resolution

Google Play

Design Patterns

GPS, Maps, and OBDII

Developing Basic Features for Your Fleet Management Application

Geofencing API Tutorial for Android - Geofencing with Google Maps API. At the moment only round geofences supported (as of 28.10.2018).

How-to Guide for OBDII Reader App Development

AndrOBD - app and lib for OBDII

KMP (Kotlin Multiplatform)

Jetpack

AndroidX

AppBar

Room

UI

ConstraintLayout

RecyclerView

Loaders

UI Libraries and Elements

Animation

Introducing Motion Editor
Videos about MotionLayout

ShapeShifter - a very amazing tool to generate icon animations, more precise: to “morph” from one icon to another

An Introduction to Icon Animation Techniques by Alex Lockwood
Build awesome animations with 7 lines of code using ConstraintLayout
Good to great UI animation tips by Pablo Stanley
Android View Animations - demo app auf Github

Dark Mode

DayNight — Applying dark mode without recreating your app

Sharing

Accessibility, User-Friednlyness etc

Crash logging etc

    • Kevin Morales talking about Crashlytics (service by Firebase) and how to implement in your Android apps with Kotlin.
    • Measure is an open source tool to monitor mobile apps.
      • Capture Crashes and ANRs automatically
      • Monitor app health metrics such as launch times, crash rates and app sizes
      • Get screenshots with exception reports
      • View full event timelines of error sessions with auto-tracked user clicks, navigation events, http calls, cpu usage, memory usage and more for deeper context
      • Track custom events with additional business specific attributes
      • Self hosted and private. Your data stays in your servers

Misc

    • [ACTION REQUIRED] Ensure Your App Complies with Google Play’s Latest Policy by January 22 2025
    • Suggested solution:
      • By leveraging the system photo picker and ensuring the camera captures images directly to a file, you can remove the READ_MEDIA_IMAGES permission from your app and comply with Google Play's latest requirements. This not only keeps your app on the Play Store but also improves user privacy and security.

What Are Dynamic App Shortcuts?

Start Here: 5 Exercises to Prepare Your App for Large Screens - What to prioritize when building a responsive experience

Using vector assets in Android apps by Nick Butcher (Using androidx / appcompat etc.)

Resources for Getting Started with Modern Android Development by Rebecca Franks

How to create beautiful text stickers for Android
Working with the Layout Preview
Make your Android app look less shitty
Options for Viewing PDFs
Android Parcelables Made Easy
Identifying an Android Device – Available Identifiers
Quick Tip: UITableViewController Performance Tips (Route 85) -> YouTube Video
Target API 26 on November 2018
Exploring in-app updates on Android by Joe Birch

How can I run code on a background thread on Android? - Stackoverflow question with some links in it

Google's Training to multiple threads on Android - Sending Operations to Multiple Threads

Making ListView Scrolling Smooth - Google's Training

Endless Scrolling ListView in Android - Tip from Ben Cull

Vector Graphics on Android by Kyle Jablonski

Enabling dark theme in Android WebViews by Joe Birch

MediaPlayer: Simplified Video Playback on Android

13 Things to know for Android developers at Google I/O! (2022)

Exploring Hilt: Application Level Code Generation

Splash Screen API - Android Studio by Daniel Atitienei (video)

How To Bring An Old Project To Live (Step-By-Step) | Jetpack Compose - a video by Jov Mit

In-App Billing

Implementing In-App Billing (with Checkout library)

Solve These 5 Google Play’s Billing Issues to Improve Your Apps - with tips how to fix them, e.g. how to prevent usage of Lucky Patcher (a tool to patch apps to get paid products for free)

Google Pay API Tutorial

Android Auto and Android Automotive OS

Android Automotive

Android for Cars

Articles etc

Android Wear etc.

Android Wear 2.0

Documentation, Tutorials, Articles

Девайсы, на которые будет апдейт на Android Wear 2.0

  • Asus Zenwatch 2 und 3 (нет HR)
  • Casio Smart Outdoor Watch (WSD-F10) und Pro Trek Smart (WSD-F20) (нет HR)
  • Fossil Q Founder, Marshal und Wander (нет HR)
  • Huawei Watch (нет HR)
  • LG G Watch R, Watch Urbane und Watch Urbane 2nd Edition LTE
  • LG Watch Sport – running out of the box
  • LG Watch Style – running out of the box
  • Michael Kors Access Bradshaw Smartwatch (нет HR)
  • Michael Kors Access Dylan Smartwatch (нет HR)
  • Moto 360 (2nd Gen), for Women und Sport (есть HR)
  • New Balance RunIQ (нет HR?)
  • Nixon Mission
  • Polar M600 (есть HR)
  • Tag Heuer Connected
  • New Balance RunIQ

Интересные девайсы

TicWatch Pro - часы с двумя дисплеями, держат 4 дня, 250€

Libraries

Wearfaceutils - Helps to calculate a point on a generic Android Wear Watchface by using nothing more than a margin from the outer boundary and an angle. Especially useful for round faces with a chin.

Ant / Ant+

What do I need

  • Ant+ and(!) Bluetooth Smart

Hardware

Foot pod

Garmin foot pod - 58€ on Amazon

Timex ANT+ Foot Pod Sensor 98€ (is possible to buy for 50 €)

Cadence/Speed Sensors

Suunto Bike sensor - ca. 60€

Preferences

Doze Mode

Doze mode:

  • since Android 23+ (Android 6.0)
  • No network
  • system ignores wake locks
  • standard alarms are deferred
    • including sync adapters and job schedulers

Android Job-Scheduling - Job Scheduling and Doze Mode

Testing Your App on Doze Mode
Diving Into Doze Mode for Developers

Doze Mode Bug in Android M

Building Battery-Conscious Apps - ein Online-Kurs auf LinkedIn

Access location in the background

Since Oreo it is not more allowed to access location in the background all the time, only when the app is in the front or if the service is a foreground service of type “location”. Here are some articles and docs about it.

Asynchronous Loading and Sheduling Tasks

Things to consider before running background tasks - an overview about possibilities to run background tasks by Umesh Basnet.

Making loading data lifecycle aware by Ian Lake

How to load an image by URL in Android

Android Handler Internals by Jag Saund → very intereting article with multiple good tips for solving typical problems with Handlers (e.g. leaking Activity etc.).

StrictMode

Sheduling tasks in Android made easy - overview about all possibilities and introducing a smart-scheduler-android library

Preparing for O: The Death of Background Services :

  • Don't use AlarmManager, use JobScheduler instead
  • Convert IntentServices to JobServices
  • Use firebase-jobdispatcher (from Support library) for devices with Android less than 5.0
  • Service.startForeground() should be used for foreground services
  • Start foreground service from background with NotificationManager.startServiceInForeground()

Modern background execution in Android (October 2018):

  • Guaranteed execution of deferrable work → use WorkManager (in public preview at October 2018)
  • A task initiated in response to an external event → FCM + WorkManager
  • Continue user-initiated work that needs to run immediately even if the user leaves the app → Foreground service
  • Trigger actions that involve user interactions, like notifications at an exact time. → AlarmManager

WorkManager

Bluetooth

BLE unstable - a good question (with a good answer) from Stackoveflow

BLE sensors

Wahoo - производитель BLE сенсоров для фитнеса (МНОГО всякой всячины)
HRM Blue - сенсор пульса поддерживающий стандартный профиль BLE HRM
SportPlus Bluetooth 4.0 Geschwindigkeits- und Trittfrequenzsensor (nur BLE!) - 39€ bei Amazon
CRIVIT®PRO Geschwindigkeits- und Trittfrequenzsensor CBGT 4 A1 - bei Lidl für 19,99€ (nur BLE!)
Medisana Bluetooth Gurt - bei Lidl für 19,99€ (wahrscheinlich auch Ant+ kompatibel)

Fitness trackers

Performance

Android Keystore

Source Code Analyzing. Lint, Findbugs, PMD etc

Articles

Memory leaks in Android — identify, treat and avoid
You don’t have to use WeakReference to avoid memory leaks (an example of a possible solution for AsyncTask memory leak)
Leak detection: Android Studio vs LeakCanary

Activity Revival and the case of the Rotating Device
How to speed up your slow Gradle builds
Renaming Your Gradle Build Files
Gradle Tips and Tricks for Android - tricks for working with the Gradle build system, such as autocompletion, using build-time variables, and reducing build time
Getting started with feature modularization in Android Apps by Joe Birch

git rm --cached ./idea? an article about what to include in .gitignore file for Android projects

Memory Leaks in Android: A Guide for Android Developers by Rashik (Jun 9, 2025)

Backend

SlateKit - open source alternative to Firebase, GCM etc.

Firebase

AI on Android

Android Skills

Testing

Android Studio and Tools

Android debugging

Run apps on a hardware device - official docs

  • If there are problems with connection during WiFi debugging:
    • Important for debugging through Wi-Fi:
adb connect <deviceip>:<port>
 
# Where IP and port are displayed under Settings ->  Developer options-> Wireless Debugging 
# for example:
adb connect 192.168.178.82:41153

Also can be helpful:

Misc

    • 1. ADB Screen Recording Command
    • 2. Install and Uninstall Apps Using ADB
    • 3. Capture and Save Screenshots Using ADB
    • 4. Debugging Wi-Fi Connectivity with ADB
    • 5. Grant or Remove Permissions via ADB
    • 6. Network Configuration & Testing with ADB
    • 7. Starting and Stopping Services with ADB

Learning resources

Online courses

Android Books

RxJava

Gradle

Misc articles about Gradle

Maven

Android library development - Getting started - a post series by Jeroen Mols
Android library development - Modularization
Android library development - Dependencies - a post about libraries, dependencies, transitive and not.

Publishing

Misc

Android developer jobs etc

Scoped Storage

Android 14

Build process

Events, conferences etc

android_development.txt · Last modified: by kalaschnikow