Rahul Ravikumar's Avatar

Rahul Ravikumar

@rahulrav.com

Software Engineer at Google working on the Android Toolkit team.

376
Followers
137
Following
82
Posts
22.11.2024
Joined
Posts Following

Latest posts by Rahul Ravikumar @rahulrav.com

Post image

Want to actually understand what your app is doing at runtime?

In the next episode we explore:
โšก Android Profiler
๐Ÿ”Ž Perfetto
๐Ÿงต Tracing 2.0
๐Ÿ“ฑ Performance in Compose

With Rahul Ravikumar.

Join us live โ†’ cwti.link/twitch

#AndroidDev #Performance #JetpackCompose

04.03.2026 12:46 ๐Ÿ‘ 2 ๐Ÿ” 2 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 1

What about magic move though?

11.02.2026 08:10 ๐Ÿ‘ 3 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

In general, anything downloaded from the Snap store does not seem to use Wayland. ๐Ÿ˜ญ

02.02.2026 00:32 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 1

While you are doing that, also ensure that the version of Visual Studio Code installed, is not a snap. That version hard codes the display server to X11 as well!

Use the official distribution from Microsoft, and again your eyes will thank you.

01.02.2026 23:30 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Preview
Wayland Support Preview In 2024.2 | The JetBrains Platform Blog We are delighted to announce that, starting with the 2024.2 Early Access Program (EAP), IntelliJ-based IDEs will offer preliminary support for the Wayland display server protocol on Linux, including W

PSA: Switch the display server for IntelliJ from X11 to Wayland. Your eyes will thank you. What an incredible difference!

It's glorious now !

blog.jetbrains.com/platform/202...

01.02.2026 23:05 ๐Ÿ‘ 6 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Whatโ€™s new:
โœ… Multi-platform: Android + JVM targets!
โœ… Automatic Coroutine context propagation.
โœ… Pluggable backends and Sinks.

28.01.2026 21:25 ๐Ÿ‘ 7 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

The new major version of androidx.tracing is now available on Google Maven. Weโ€™ve spent the last year optimizing it, so it's extremely low overhead.

The documentation is available at: developer.android.com/topic/perfor...

Happy Tracing!

28.01.2026 21:25 ๐Ÿ‘ 21 ๐Ÿ” 2 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 1

A huge thank you to all the colleagues Iโ€™ve had the privilege of working with over the last 10 years. Iโ€™m incredibly grateful for everything youโ€™ve taught me. Who I am, is a direct result of the brilliant people I was lucky enough to call teammates. ๐Ÿ™

26.01.2026 07:58 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
10 Years at Google

Two blog posts back to back! โœ๏ธ

I just published a summary of my decade-long journey at Google. It covers the projects and the growth, but more importantly, a reflection on some of the things Iโ€™ve learned along the way.

You can read the full post here: rahulrav.com/blog/10_year...

26.01.2026 07:58 ๐Ÿ‘ 11 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Kotlin Intrinsics on Android

I broke down how R8 strips away Intrinsics overhead and leverages ART intrinsics to make your apps fasterโ€”without you changing a single line of code (starting with AGP 9.0).

rahulrav.com/blog/kotlin_...

26.01.2026 07:42 ๐Ÿ‘ 10 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Gemini please rewrite this Python to Kotlin ๐Ÿ™‚. Let our AI overlords do the work.

26.01.2026 02:23 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Let me write one !

23.01.2026 20:09 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

2 Months from now you will be closer to AGP 10 ๐Ÿ˜…

22.01.2026 15:12 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Same. Berkeley Mono is ๐Ÿ˜

22.01.2026 08:35 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Preview
Add the ability for the JVM Backend to emit a simplified error messagโ€ฆ by tikurahul ยท Pull Request #5552 ยท JetBrains/kotlin Add the ability for the JVM Backend to emit a simplified error message when performing a downcast. This is especially important on Android, given we can significantly reduce the number of strings i...

I also tried to upstream the change into the Kotlin Compiler itself but it ended up being easier to do this.

github.com/JetBrains/ko...

22.01.2026 08:15 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Post image

There is a pretty visible shift in frame durations after this change. Here is an example with one of the Compose Hero benchmarks.

22.01.2026 08:07 ๐Ÿ‘ 6 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Gerrit Code Review

The actual change in R8 that describes this in more detail is: r8-review.git.corp.google.com/c/r8/+/112940

22.01.2026 08:02 ๐Ÿ‘ 3 ๐Ÿ” 0 ๐Ÿ’ฌ 2 ๐Ÿ“Œ 0

Code that used to look like:

invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V

turns into a simpler:

invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;

If p1 was null, calling getClass() on it throws the NPE

22.01.2026 08:02 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Preview
Compiler Explorer - Android Kotlin (r8 latest) // Type your code here, or load an example. // // dex2oat profile-guided compilation: // Add "profile.prof.txt" to "Included files" and click the refresh button at // the bottom of the compiler output...

Here is an example: godbolt.org/z/Eeve5q1dz

Effectively what ends up happening is that you are using a new proguard directive: `-processkotlinnullchecks`.

22.01.2026 08:02 ๐Ÿ‘ 3 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

PSA: Starting Android Gradle Plugin 9.0 (or the latest stable version of R8): R8 will automatically optimize all Intrinsics.check* APIs in Kotlin automatically !

This should greatly help improve app performance (especially Compose given the large Kotlin library API surface).

22.01.2026 00:00 ๐Ÿ‘ 27 ๐Ÿ” 8 ๐Ÿ’ฌ 4 ๐Ÿ“Œ 0

Thank you for putting the podcast together. I've been an avid listener even before I joined Google and found it really inspiring to hear about all the amazing stuff you folks shipped !

17.01.2026 03:41 ๐Ÿ‘ 6 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Ooh a tiling Window Manager. Before I go all in, I should dip my toes with using one on Ubuntu and make sure I am able to work with it.

03.01.2026 00:41 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

I might have a knack for picking good languages to learn. Python (for free App Engine quotas), TypeScript to end the loosely typed tyranny and Kotlin pre 1.0. I have a good feeling about Zig. The obsession about performance and safety makes it a great choice. The other interesting language is Mojo.

02.01.2026 08:07 ๐Ÿ‘ 3 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

That would certainly make for an extremely interesting timeline ๐Ÿ™‚

02.01.2026 08:01 ๐Ÿ‘ 3 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

I have a feeling that with the current RAM crisis for the foreseeable future we will see a big change in our general attitude about performance and memory. At least I hope we really do.

02.01.2026 07:30 ๐Ÿ‘ 5 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Given the state of Windows 11 + Copilot ๐Ÿคฎ; 2026 might actually be the year of Linux on the Desktop. Framework 16+ Ubuntu has been a breath of fresh air.

02.01.2026 04:23 ๐Ÿ‘ 9 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Preview
UniFi Travel Router - Ubiquiti Store An ultra-slim travel router that instantly extends your UniFi Network wherever you are, bringing secure, familiar connectivity to remote locations.

Happy UniFi Travel Router day to those who celebrate it ๐ŸŽ‰
store.ui.com/us/en/catego...

29.12.2025 16:36 ๐Ÿ‘ 3 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Yes, there should be one. Hopefully it becomes available soon.

17.12.2025 11:43 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Excited to see all the enthusiasm for Performance related content, given how relevant it is for India. Met so many developers and exchanged ideas on what we can do better.

Thanks for being an amazing community and happy tracing !!

17.12.2025 05:36 ๐Ÿ‘ 4 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

I presented an updated version of "A Busy (Android) Developers guide to Perfetto" at Droidcon India this past week. The session was packed and was standing room only !

There were so many other wonderful Performance talks !

17.12.2025 05:36 ๐Ÿ‘ 15 ๐Ÿ” 1 ๐Ÿ’ฌ 2 ๐Ÿ“Œ 0