In Android, a client can bind to a Service
running in a different process and even a different APK, but how could the bound service know the remote client is killed by the system and release the resources?
New Bluetooth permissions in Android 12
In this article, I will discuss the new Bluetooth permissions introduced in Android 12.
[Read More]Understanding BLE throughput on Android
We have been told that the BLE can reach a throughput of 1 Mbps (or 2 Mbps with Bluetooth 5.0). But why do we always feel it’s extremely slow in practice? In this article, I will try to explain this, and how to improve throughput on Android.
[Read More]Getting started with Kotlin Multiplaform Mobile (KMM)
Kotlin Multiplatform Mobile (KMM) is a cross-platform framework to share code for Android and iOS apps.
[Read More]Model-View-Intent Design Pattern on Android
Model-View-Intent (MVI) is one of the latest design patterns for Android, which relies heavily on reactive and functional programming.
[Read More]Dependency Injection with Hilt
Hilt is a new Dagger-based library for Android apps, providing an easy way to incorporate dependency injection with less boilerplate code. In this article, we’ll discuss how to use it.
[Read More]Different ways Activities communicating with Services on Android
In this article, we present different ways Activities could use to communicate with Services on Android.
[Read More]How Android apps get handles to system services
We all have used Context.getSystemService() to get a handle to a system service. But have you ever wondered how it works behind the scene? In this article, we’ll dig into the code and try to find out.
[Read More]Loopers and Handlers in Android
Looper
and Handler
are one of the key low-level components of Android. For example, the UI thread is built with them. However, only a few developers use them directly nowadays. In this article, we’ll try to understand how they work.
What You Should Know About SharedPreferences
Shared preference is a built-in key-value store for primitive data types. It’s very easy to use, but there are some hidden mines that you may want to know.
[Read More]