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
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
200
Putting Your APKs on Diet
brijeshmasrani
0
63
What's new in Android N
brijeshmasrani
1
220
Other Decks in Technology
See All in Technology
大規模環境でどのように監視を実現する?
yuobayashi
1
150
Generative UI × A2UI で AI エージェントを作った話 AI-DLC も使ってみた!
kmiya84377
1
230
その英語学習、AWSで代替できませんか?
suzutatsu
1
260
なぜハノーバーメッセに行くべきなのか 〜初参加だから語れること〜
tanakaseiya
0
130
個人AIからチームAIへ:開発における品質と生産性の再設計
moongift
PRO
0
180
eBPF Can Do It! A 5-Minute Tour of 5 Real-World PHP Issues Solved with eBPF
egmc
0
280
TypeScript で Platform SDK を作る技術
toiroakr
1
320
Kiro CLI v2.0.0がやってきた!
kentapapa
0
180
Claude Codeですべての日常業務を爆速化しよう!
minorun365
PRO
16
14k
エンジニアは生成AIと どのように向き合うべきか? ことばの意味という観点から
verypluming
3
240
実践 TanStack Start ― 新規プロダクトを開発して確立した、サーバーとクライアント境界の設計パターン / Practical TanStack Start Server-Client Boundary Patterns
kaminashi
2
320
インフラが苦手でも大丈夫! 紙芝居 Kubernetes -WWGT 10周年編-
aoi1
1
210
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
528
40k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Mind Mapping
helmedeiros
PRO
1
210
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
220
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
150
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
180
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
180
How to train your dragon (web standard)
notwaldorf
97
6.6k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2k
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