Android Development

In-depth technical materials on the Android platform: architecture, system components, UI, and runtime.

Draft
Android UI Under the Hood · Part 9

Compose Multiplatform: architecture and platform integration

How the shared Compose architecture adapts to Android, iOS, and Desktop: runtime structure, Skia backend usage on desktop, native layer integration on Android and iOS, UI code organization, and platform adaptation strategies.

Author avatar Osman Suleimanov 15 min read
Draft
Android Under the Hood: Beyond Testing APIs · Part 7

Compose Test Internals: Semantics Tree and Declarative UI Verification

A deep dive into how Compose testing works: the semantics tree, declarative UI test APIs, and the differences from traditional View tests. How Compose tests simplify UI verification but introduce new hidden challenges.

Author avatar Osman Suleimanov 20 min read
Draft
Android UI Under the Hood · Part 7

Vulkan in Android: modern low-level GPU access and control

What is Vulkan and why it matters for Android: differences from OpenGL, full pipeline control, performance and power efficiency improvements, usage scenarios, limitations, and integration architecture in Android graphics. Deep technical overview.

Author avatar Osman Suleimanov 16 min read
Draft
Android Under the Hood: Beyond Testing APIs · Part 6

Readable UI Tests with Kaspresso and Kakao: DSLs Beyond Espresso

Dissecting Kaspresso and Kakao: how Kotlin DSLs improve UI test readability, why Kaspresso enhances stability, and the real value of scenario-based structures. Technical internals and design philosophy behind these frameworks.

Author avatar Osman Suleimanov 20 min read
Draft
Android Under the Hood: Beyond Testing APIs · Part 5

Bytecode Manipulation and Control: MockK vs Mockito in Kotlin

Exploring the bytecode hacking magic behind MockK and Mockito: how they manipulate objects, handle static calls, and break Kotlin's final restrictions. A technical journey into runtime control and the philosophy of object mocking.

Author avatar Osman Suleimanov 20 min read
Draft
Android Under the Hood: Beyond Testing APIs · Part 4

Espresso Synchronization and UI Control: Inside Android's Test Framework

A deep analysis of Espresso's inner mechanics: thread synchronization, idling resources, and Looper interactions. How Espresso knows when your UI is 'idle', and the hidden challenges behind writing stable UI tests in Android.

Author avatar Osman Suleimanov 25 min read
Draft
Android UI Under the Hood · Part 6

Jetpack Compose Architecture: Slots, Modifiers, and Recomposition

Deep dive into Compose architecture: slot-based composition, modifier chains, recomposition optimization, and state management. Understanding how Compose transforms declarative UI into efficient rendering and state updates.

Author avatar Osman Suleimanov 22 min read
Draft
Android UI Under the Hood · Part 8

Cross-platform Frameworks: Android Architecture and Integration

How cross-platform frameworks integrate with Android: React Native, Flutter, and Xamarin architecture analysis. Understanding the bridge mechanisms, native module integration, and performance implications of cross-platform development.

Author avatar Osman Suleimanov 18 min read
Draft
Android UI Under the Hood · Part 5

Hardware Acceleration in Android: Principles and Limits

Deep dive into Android's hardware acceleration: GPU rendering pipeline, OpenGL ES integration, layer types, and performance optimization. Understanding when and why hardware acceleration fails, and how to optimize rendering performance.

Author avatar Osman Suleimanov 20 min read
Draft
Android UI Under the Hood · Part 7

Skia Rendering Engine: Android and Compose Integration

Deep dive into Skia rendering engine: how it powers Android graphics, Compose integration, vector graphics, and text rendering. Understanding the rendering pipeline from high-level APIs to GPU commands.

Author avatar Osman Suleimanov 19 min read
Draft
Android UI Under the Hood · Part 4

OpenGL Shaders in Android: Pipeline and Optimization

Understanding OpenGL ES in Android: shader compilation, rendering pipeline, texture management, and performance optimization. Deep dive into GPU programming for Android developers.

Author avatar Osman Suleimanov 18 min read
Draft
Android Under the Hood: Beyond Testing APIs · Part 3

Robolectric Internals: Shadow Worlds and JVM Illusions

Uncovering the secret world of Robolectric: how shadow classes replace Android SDK calls, how JVM illusions are created to simulate the environment, and why Robolectric tests aren't true Android tests. A technical and philosophical analysis of testing illusions.

Author avatar Osman Suleimanov 20 min read
Draft
Android UI Under the Hood · Part 3

Canvas in Android: architecture, drawing commands, and state management

Detailed analysis of Canvas as a core drawing API: internal state management, transformations, clip operations, batching of commands, interactions with Paint and Path. Breakdown of what actually happens inside onDraw(), and Canvas impact on UI performance and flexibility.

Author avatar Osman Suleimanov 16 min read
Draft
Android Under the Hood: Beyond Testing APIs · Part 2

Instrumented Tests Under the Hood: How Android Executes Your Code

Exploring the internals of Android instrumented tests: from AndroidJUnitRunner and TestInstrumentationRunner to ActivityTestRule and ActivityScenario. How instrumentation interacts with your app, and what really happens when you run tests on a device or emulator.

Author avatar Osman Suleimanov 25 min read
Draft
Android UI Under the Hood · Part 2

Android Render Architecture: RenderThread, SurfaceView, TextureView, Choreographer, DisplayList, and LayerType

How Android manages rendering threads and frame synchronization: RenderThread structure, Choreographer and VSync mechanisms, differences between SurfaceView and TextureView, internal DisplayList usage, and LayerType (hardware/software) concepts. In-depth overview of thread and buffer architecture.

Author avatar Osman Suleimanov 20 min read
Draft
Android UI Under the Hood · Part 1

View in Android: from XML and LayoutInflater to ViewRootImpl and frame lifecycle

Complete path of View creation and rendering: XML parsing, LayoutInflater, the role of Window and ViewRootImpl, measure/layout/draw phases, invalidate and requestLayout calls, and the full frame lifecycle call chain. Detailed breakdown of classic Android UI architecture.

Author avatar Osman Suleimanov 22 min read