Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Controlling APK Size When Using Native Library
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Brijesh Masrani
July 02, 2017
Technology
140
0
Share
Controlling APK Size When Using Native Library
Brijesh Masrani
July 02, 2017
More Decks by Brijesh Masrani
See All by Brijesh Masrani
Let's Stream that Video - an ExoPlayer Starters Guide
brijeshmasrani
0
180
Putting Your APKs on Diet
brijeshmasrani
0
60
What's new in Android N
brijeshmasrani
1
220
Other Decks in Technology
See All in Technology
【関西電力KOI×VOLTMIND 生成AIハッカソン】空間AIブレイン ~⼤阪おばちゃんフィジカルAIに続く道~
tanakaseiya
0
180
Oracle AI Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
4
2.2k
Kubernetes基盤における開発者体験 とセキュリティの両⽴ / Balancing developer experience and security in a Kubernetes-based environment
chmikata
0
220
すごいぞManaged Kubernetes
harukasakihara
1
370
Oracle AI Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
6
1.3k
2026-04-02 IBM Bobオンボーディング入門
yutanonaka
0
260
暗黙知について一歩踏み込んで考える - 暗黙知の4タイプと暗黙考・暗黙動へ
masayamoriofficial
0
680
3つのボトルネックを解消し、リリースエンジニアリングを再定義した話
nealle
0
310
Hello UUID
mimifuwacc
0
130
建設的な現実逃避のしかた / How to practice constructive escapism
pauli
4
300
Oracle Cloud Infrastructure(OCI):Onboarding Session(はじめてのOCI/Oracle Supportご利⽤ガイド)
oracle4engineer
PRO
2
17k
スクラムを支える内部品質の話
iij_pr
0
340
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
23k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.7k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
240
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
450
Leo the Paperboy
mayatellez
6
1.6k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
30 Presentation Tips
portentint
PRO
1
270
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
120
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
95
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.5k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4k
Transcript
Controlling APK Size When Using Native Library
I am Brijesh Masrani @
Outline • What are the major components in APK? •
APK Splitting • What is ABI and how it works? • Understanding ABI in detail • Problems with ABI split • Solving Issues with abiFilters
What are the major components in APK? • Class files
• Resources • Manifest file • Native libraries
APK Splitting Density and Application Binary Interface (ABI)
Application Binary Interface • The ABI defines, with great precision,
how an application’s machine code is supposed to interact with the system at runtime. • You must specify an ABI for each CPU architecture you want your app to work with. • mips, mips64, X86, X86–64, arm64-v8a, armeabi, armeabi-v7a
Analysis of the APK file
APK details after adding Realm
None
Realm distribution for different CPU architecture
Realm adds .so file for 5 CPU architectures mips, X86,
X86–64, armeabi-v7a, and arm64-v8a this increases the apk size by 4.8 MB; remaining ~130KB is increased in dex size.
ABI split
None
Multiple APK files generated after enabling split
None
Amazing right! We went from 74KB to 5MB and came
back to 1.3 MB. But But But….
NDK abiFilters
APK with “armeabi-v7a” and “x86” libs
TL;DR — Detail about CPU Architecture
Google Maps with ABI filters
None
Thank You You can find me at @brijeshmasrani