Rahul Ravikumar :verified:

Android Toolkit @ Google

* Baseline Profiles
* Macrobenchmarks
* WorkManager
* App Startup (androidx.startup)
* KMP and Benchmarking

Rahul Ravikumar :verified:rahulrav@androiddev.social
2024-06-29

@botteaap Thanks so much. I am happy and surprised at the amount of interest. Also happy to help everyone buy more hardware 😉

Rahul Ravikumar :verified:rahulrav@androiddev.social
2024-06-29

Here is the repo that includes the source code + the slides for my talk at KotlinConf 24 (Hacking Sony Cameras' for fun and profit).

GitHub Repo: github.com/tikurahul/alpha-sho

Slides: github.com/tikurahul/alpha-sho

Rahul Ravikumar :verified:rahulrav@androiddev.social
2024-05-23

I have a lightning session at KotlinConf today that talks about reverse engineering the BLE protocol on Sony Cameras. If you are interested, tune in at kotlinconf.com

Rahul Ravikumar :verified: boosted:

Hello LeakCanary friends! I have a message that could use some reposting 😅

so, eeeer, 2 years ago I messed up and referenced a WorkManager internal class (`SettableFuture`) in LeakCanary. No idea why I did that. Here's my dumb mistake in all its glory: github.com/square/leakcanary/p

Anyway, the WorkManager team is planning to delete this internal class, at which point LeakCanary releases from 2.8 to 2.13 will crash at runtime.

To avoid a nasty surprise, update to 2.14 ASAP! square.github.io/leakcanary/ch

Rahul Ravikumar :verified: boosted:
Jake Whartonjw@jakewharton.com
2024-04-11

I'll be at KotlinConf next month talking about how I got Compose UI running on a light switch which uses embedded Linux.

kotlinconf.com/speakers/3eabdd

Rahul Ravikumar :verified: boosted:
Paul Lammertsma :google:officesunshine@androiddev.social
2024-02-03

In 2016 I began a (mostly) accidental journey to building a game with 3M installs. This is the story of how it came to be.

medium.com/@paul-lammertsma/oo

Rahul Ravikumar :verified: boosted:
@gurupangujigurupanguji
2024-01-29

"Only Apple can protect us" is a bad position for these people to be in.

gurupanguji.com/2024/01/28/los

Rahul Ravikumar :verified: boosted:
Adrian Holovatyadrian@holovaty.com
2024-01-26

I'm so excited that iOS will finally allow alternate browser engines!

But, man, Apple's press release is just dripping with spite and utter lack of grace. Not a good look.

apple.com/newsroom/2024/01/app

Rahul Ravikumar :verified: boosted:
Jonty Wareingjonty@chaos.social
2024-01-21

This paper starts out amazing and just keeps getting better

arxiv.org/abs/2401.06133

A screenshot of a paper on arxiv, it reads:

The possibility of making $138,000 from shredded banknote pieces using computer vision

Every country must dispose of old banknotes. At the Hong Kong Monetary Authority visitor center, visitors can buy a paperweight souvenir full of shredded banknotes. Even though the shredded banknotes are small, by using computer vision, it is possible to reconstruct the whole banknote like a jigsaw puzzle. Each paperweight souvenir costs $100 HKD, and it is claimed to contain shredded banknotes equivalent to 138 complete $1000 HKD banknotes. In theory, $138,000 HKD can be recovered by using computer vision. This paper discusses the technique of collecting shredded banknote pieces and applying a computer vision program.A screenshot from the paper, it reads "The shredded banknotes were then collected. Surprisingly, three paperweight cylinders were opened, and two of them had stones in them". Three pictures follow.Screenshot from the paper, it reads: "This cylinder only contained 82.57/138 = 60% of the shredded banknote pieces that the label had claimed. Although this issue is not the focus of this paper, it appears that the Hong Kong Monetary Authority has broken the law."Screenshot from the paper, it reads: "The idea for this paper was discussed with the staff during my visit to the Hong Kong Monetary Authority visitor center. The paperweight souvenir is currently no longer available."
Rahul Ravikumar :verified: boosted:

@romainguy Actually, on that one, @jessewilson convinced me a while ago that LinkedHashMap is absolutely the better default choice, precisely for that reason.

This makes debugging code that involves a HashMap a lot easier, as you can consistently reproduce iteration order.

Also, remember when Java updated the hash implementation and everybody's tests started breaking because they relied on undefined (but consistent until then) iteration order.

Rahul Ravikumar :verified: boosted:
2024-01-08

kotlin-explorer 0.7 has a cleaned up UI based on JetBrain's Jewel library, and the new jump indicator in the dex bytecode disassembly.

github.com/romainguy/kotlin-ex

Rahul Ravikumar :verified: boosted:
Aurimas Liutikas :google:Aurimas@androiddev.social
2023-12-23

I wrote a post on how @rahulrav and I sped up downloading our large remote cache entries by 45x for the AndroidX build

liutikas.net/2023/12/21/One-Bi

#gradle

Rahul Ravikumar :verified: boosted:
2023-11-17

My team at Google is hiring in London!

We're looking for mid-level Android developers who want to work in the 'UI Architecture' layer of Jetpack - libraries like Paging, Fragments, Lifecycle, Activity, Navigation and SavedState.

Much of our focus is on ensuring that our libraries and guidance work great with Jetpack Compose and Kotlin Multiplatform.

Apply here: goo.gle/49yr6q0

Rahul Ravikumar :verified:rahulrav@androiddev.social
2023-11-10

I live streamed with the CWTI crew and showed off how Baseline Profiles have evolved with the advent of Dex Layout Optimizations (powered by the same kind of profile guided information that ART uses under the hood).

youtu.be/7bLTmPpUIno?si=GxOWLb

Rahul Ravikumar :verified: boosted:
2023-07-20

PSA: The benchmarking library version 1.2.0-beta01 has been released. This means Baseline Profiles have reached API stability. developer.android.com/jetpack/

Rahul Ravikumar :verified:rahulrav@androiddev.social
2023-07-08

@dankim Ubiquity is amazing. Been super happy. Their new update enabled ad-blocking.

Rahul Ravikumar :verified:rahulrav@androiddev.social
2023-06-29

@iboalali Yes, we want to eventually make it a part of the library in some way.

Rahul Ravikumar :verified:rahulrav@androiddev.social
2023-06-23

For those using Jetpack Macrobenchmarks, if you want to compare results with past runs, I recently wrote this:

cs.android.com/androidx/platfo

Here is what it looks like (more details in the README.md)

Rahul Ravikumar :verified:rahulrav@androiddev.social
2023-06-12

@cb AndroidX uses this (github.com/androidx/gcp-gradle)

It has been extremely painless, and just relies on GCPs Cloud Storage API under the hood.

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst