ByteDance’s engineering team pulled off something that most mobile developers would consider extraordinary: they reduced TikTok’s native code size by 58 percent on Android devices. Not through some exotic rewrite. Not by gutting features. They did it by switching a compiler flag and embracing a different instruction set that Google has been quietly championing for years.
The results, published on the Android Developers Blog, reveal a case study in how one of the world’s most-installed apps managed to dramatically shrink its footprint — and why the rest of the Android development community should be paying close attention.
At the heart of the optimization is Thumb2, the 16-bit instruction encoding for ARM processors. Most Android apps compile their native C/C++ code using standard 32-bit ARM instructions. Thumb2 compresses many of those instructions into 16-bit equivalents, cutting binary size substantially while maintaining near-identical runtime performance. The concept isn’t new. ARM introduced Thumb instructions decades ago. But adoption across major Android apps has been uneven, and TikTok’s results put hard numbers on what the gains actually look like at scale.
Inside the 58% Reduction: What TikTok Actually Changed
TikTok is not a small app. It ships with extensive native libraries — video processing, real-time effects, audio manipulation, networking stacks — all written in C and C++ and compiled via the Android NDK. These native components account for a significant share of the app’s total download size, and they’ve been growing steadily as TikTok adds features like live streaming, e-commerce integration, and increasingly sophisticated AR filters.
According to the Android Developers Blog post, TikTok’s engineering team worked with Google’s Android team to migrate their native code compilation from the default ARM64 (aarch64) instruction set to Thumb2 mode where applicable. The migration wasn’t trivial — it required auditing performance-critical code paths, verifying that Thumb2 didn’t introduce regressions in latency-sensitive operations like video decoding, and ensuring compatibility across the fragmented universe of Android devices.
But the payoff was stark. A 58% reduction in native code size. For an app installed on billions of devices, that translates to meaningful savings in download time, storage consumption, and update bandwidth — particularly in emerging markets where TikTok is growing fastest and where device storage and network speeds remain constrained.
The performance impact? Minimal. TikTok reported no user-facing degradation in app responsiveness. Modern ARM processors handle Thumb2 instructions with negligible overhead, and in some cases, the smaller code footprint actually improves performance by reducing instruction cache pressure. Smaller binaries mean more of the hot code path fits in cache. Fewer cache misses. Faster execution.
That’s the counterintuitive part. Smaller code can be faster code.
Google has been nudging developers toward these kinds of optimizations for some time. The Android NDK has supported Thumb2 compilation for years, but the default build configurations don’t always enable it aggressively. Many development teams simply ship with whatever the toolchain gives them out of the box. TikTok’s results suggest that’s leaving significant size savings on the table.
And size matters more than many developers realize. Google Play’s own data has consistently shown that every 6 MB increase in APK size corresponds to a roughly 1% decrease in install conversion rate. For an app like TikTok, which is perpetually competing for installs against rivals like Instagram Reels and YouTube Shorts, shaving hundreds of megabytes of aggregate download traffic isn’t just an engineering exercise. It’s a business decision.
The Broader Implications for Android Development
TikTok’s optimization arrives at a moment when app size bloat has become an industry-wide concern. The average top-100 Android app has grown by more than 40% over the past three years, according to data compiled by Sensor Tower and other analytics firms. Much of that growth comes from native code — the compiled C/C++ libraries that handle everything from machine learning inference to media playback to cryptographic operations.
Google’s Android team has been attacking the problem from multiple angles. App Bundles, introduced in 2018, allow Google Play to deliver only the code and resources relevant to a specific device configuration. Baseline Profiles help apps start faster by pre-compiling critical code paths. And the push toward Thumb2 for native code represents another front in this ongoing campaign to keep Android apps lean.
But the TikTok case study is notable because of the sheer scale of the improvement. A 58% reduction isn’t incremental. It’s the kind of result that gets engineering leads to reconsider their entire build pipeline.
Other major apps are likely to follow. Meta has been optimizing native code size across its family of apps for years, employing custom linkers and aggressive dead-code elimination. Snap has invested heavily in reducing Snapchat’s install size to improve conversion in price-sensitive markets. Spotify has publicly discussed its efforts to minimize binary bloat. TikTok’s published results give these teams — and thousands of smaller development shops — a concrete benchmark to aim for.
There are caveats. Not all native code benefits equally from Thumb2 encoding. Highly vectorized code — the kind used in video codecs and neural network inference — often relies on wide NEON or SVE instructions that don’t compress as well. Performance-critical inner loops may need to remain in full 64-bit ARM to avoid even marginal slowdowns. The TikTok team acknowledged this, noting that they selectively applied the optimization and retained standard compilation for the most latency-sensitive components.
The tooling story also needs work. While the NDK supports Thumb2, the developer experience around profiling, debugging, and validating Thumb2 builds isn’t as polished as it could be. Crash symbolication can be trickier with mixed instruction sets. Build systems like CMake and ndk-build require manual configuration to enable Thumb mode for specific targets. Google’s post hints at upcoming improvements to make the process smoother, but for now, teams attempting this migration should expect some hands-on build engineering.
So why haven’t more apps done this already? Inertia, mostly. The default NDK configuration works. Apps ship. Users don’t complain about binary size until they do. And for many teams, native code optimization sits well below feature development and bug fixes on the priority list. TikTok’s published numbers change that calculus. When a peer app demonstrates a 58% reduction with no performance penalty, it becomes harder to justify ignoring the opportunity.
There’s also a competitive dimension. In markets like India, Indonesia, Brazil, and parts of Africa — where TikTok is aggressively expanding — device storage is a genuine constraint. Entry-level Android phones ship with 32 or 64 GB of storage, and users routinely uninstall apps to make room for new ones. A smaller TikTok is a TikTok that’s less likely to get deleted. Every megabyte saved is a marginal advantage in the fight for retention.
ByteDance’s willingness to publish these results through Google’s official developer blog is itself telling. The two companies have a complicated relationship — Google’s YouTube competes directly with TikTok for short-form video attention, and regulatory tensions around TikTok’s Chinese ownership have created periodic uncertainty about the app’s availability on the Play Store. But on the engineering level, cooperation like this benefits both parties. Google gets a flagship case study demonstrating the value of its platform optimizations. TikTok gets engineering support and credibility within the Android developer community.
What Comes Next
The Thumb2 migration is unlikely to be the last size optimization TikTok pursues. ByteDance operates one of the largest mobile engineering organizations in the world, with dedicated teams focused on binary size, startup performance, and runtime efficiency across both TikTok and its sibling app Douyin (the Chinese domestic version). Techniques like link-time optimization (LTO), profile-guided optimization (PGO), and aggressive symbol stripping are all part of the modern mobile performance toolkit, and TikTok almost certainly employs them in combination with the Thumb2 switch.
For the broader Android community, the message is clear. The default build configuration is not the optimal build configuration. Significant wins are available to teams willing to invest in understanding their toolchain. And as apps continue to grow in complexity — absorbing AI features, real-time communication, and richer media capabilities — the discipline of keeping binaries small will only become more important.
TikTok didn’t need a new framework. Didn’t need a rewrite. It needed its engineers to look carefully at what the compiler was actually producing and ask whether there was a better way. There was. And it was 58% better.


WebProNews is an iEntry Publication