Nov 4, 2021adb: the full storyMany Android developers use adb on a daily basis, sometimes even without knowing. In this article, I’m going to explain what adb is, what you can do with it and how it works. This article is based on my recent talk How to work with adb at Podlodka Droidcrew. …Adb15 min read
Apr 1, 2021I’m not going to use ktor as a network client anymore, here’s whyThere is a lot of hype around ktor: numerous posts on Twitter, Medium, podcasts, and more on how everyone should jump into using it. Let’s take a step back and try to understand the big picture. Software engineering is a game of tradeoffs: you win in one place but lose…Ktor7 min read
Feb 12, 2021Intro to project SM4200The room was dark and filled with a beam of light coming from a single window. The air, filled with the smell of old books, felt thick. Each step produced a small distant echo as Doug approached the only thing in the room — the desk and its occupant. “What…Short Story4 min read
Jan 13, 2021Android: am instrument proto test result architecture reviewI don’t know how code review is implemented in Google for the changes (f0c7198 and 50307d9) that will be reviewed here. I also can’t see the issue tracker for the particular problem that was being fixed. But since I’m affected by this change, I can only make this a public…Android5 min read
May 11, 2020Adam: a second birth to Android’s ddmlibIn this post, I’ll introduce you to adam: a kotlin-based replacement for developer-to-android-device interaction. Most of the current tools for interaction with ADB server use ddmlib: a Java-based library that is supposed to help tool developers. The following diagram illustrates the flow of interaction:Android6 min read
Mar 23, 2020How I restored a piano in 9 monthsIf we’re talking about a laptop, then leaving it alone for a couple of years would do little damage: your battery will be dead, but you can quickly charge it. Unfortunately, it doesn’t work the same for a musical instrument such as a piano. In August 2019, I found an…Piano23 min read
Oct 4, 2019Android: The Sad State of integration testing for Open Source projectsHello. It’s currently 2019 and testing open source Android projects is extremely hard. The reason for this is the state of Android Emulator and it’s dependencies. I am going to focus on the official Android Emulator images provided via the Android SDK Before Android 26 we had: x86 images, provided…Android4 min read
Jul 26, 2019Gradle build analyticsWorking with any build system is fun and games until you reach a point where almost every single person complains about the performance of builds. As with any problem, it requires tools in order to be solved. For the past week or so, I’ve tried to understand if it’s possible…Gradle7 min read
Published in ProAndroidDev·Mar 8, 2019Marathon, Chapter 2In this chapter, I’ll explain how Marathon test runner is implemented and what are the basic concepts that are used. For the previous chapter see Chapter 1. Helicopter view Marathon test runner is written in Kotlin with extensive use of coroutines. Test runner consists of several Gradle modules. …Android7 min read
Published in ProAndroidDev·Feb 25, 2019Marathon, Chapter 1So you’ve scaled up your mobile infrastructure to support the ever-growing number of tests for your application, and you think everything will be fast, right?… Wrong! In the next several minutes I’ll teach you why scaling infrastructure doesn’t necessarily lead to faster test execution and how you can address this. …Testing7 min read