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
ProGuard - O que é e porque utilizar
Search
Rodrigo Sicarelli
July 23, 2015
Technology
140
0
Share
ProGuard - O que é e porque utilizar
Com pouco esforço, melhore substancialmente o tamanho e a qualidade do seu aplicativo
Rodrigo Sicarelli
July 23, 2015
More Decks by Rodrigo Sicarelli
See All by Rodrigo Sicarelli
Melhores práticas para encontrar Crashes utilizando o CrashLytics
rsicarelli
2
170
Firebase para Desenvolvedores
rsicarelli
4
190
A importância de ter Lazy Clients - TDC 2016
rsicarelli
3
230
Acceptance test like a pro
rsicarelli
2
200
Erlang - Why?
rsicarelli
0
75
Android Support Library v23.2.0
rsicarelli
0
60
Other Decks in Technology
See All in Technology
サイボウズ、プラットフォームエンジニアリング始めるってよ ― プラットフォームチームの事業貢献と組織アラインメントの強化
ueokande
0
120
TypeScriptはどのようにどこまで推論できるのか ─ とにかく as は禁止で
ypresto
0
230
AIAgentと取り組むKaggle
508shuto
2
450
キャリア25年目にしてTypeScript に出会うまで - 「型」を通じて振り返るプログラミング言語遍歴 / Meeting TypeScript After 25 Years in Tech - Looking Back at My Programming Language Journey Through "Types"
bitkey
PRO
1
110
20260515 ログイン機能だけではないアカウント管理を全体で考える~サービス設計者向け~
oidfj
1
870
The Bag-of-Documents Model for Query Understanding and Retrieval
dtunkelang
0
170
Terragrunt x Snowflake + dbt で作るマルチテナントなデータ基盤構築プラットフォーム
gak_t12
0
510
[みん強]AIの価値を最大化するデータ基盤戦略:Self-Service型Data Meshへの転換とAgentic AI Meshに向けた取り組み with Snowflake他
y_matsubara
1
150
"うちにはまだ早い"は本当? ─ 小さく始めるPlatform Engineering入門
harukasakihara
7
650
GCASアップデート(202603-202605)
techniczna
0
230
Swift Sequence の便利 API 再発見
treastrain
1
290
【禁断】Obsidianの第二の脳に「知の巨人」と呼ばれた師匠の脳をロードしてみた
nagatsu
0
1.3k
Featured
See All Featured
Building Adaptive Systems
keathley
44
3k
Designing for humans not robots
tammielis
254
26k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
350
Odyssey Design
rkendrick25
PRO
2
620
Discover your Explorer Soul
emna__ayadi
2
1.1k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
200
Java REST API Framework Comparison - PWX 2021
mraible
34
9.3k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
230
Typedesign – Prime Four
hannesfritz
42
3k
Statistics for Hackers
jakevdp
799
230k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
180
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.8k
Transcript
O que é e por que utilizar ProGuard
Android Developer @EasyTaxi +RodrigoSicarelli2 github.com/sicachester/weather-guard
None
Otimizando sua aplicação com o ProGuard O que é o
ProGuard? Como funciona Shrinker, Optimizer & Obfuscator Como utilizar em seu projeto
O que é o ProGuard? Genérico Para Java bytecode Shrinker,
optimizer & obfuscator Existe desde 2002 2010 se tornou parte do Android SDK
Como funciona Processed Code Shrink Optimize Obfuscate Android Runtime Application
code Libraries Android Runtime
Android builds Android Asset Packaging Tool Assets XML Res Application
Java source Libraries Java bytecode Assets Compiled XML Res Dalvik bytecode Application Java source Application Java bytecode Libraries Java bytecode Proguard
Por que utilizar? Redução do tamanho de sua aplicação Performance
Remover código de Log, Debug ou códigos de teste Proteção
Shrinking
Shrinking Também chamado de tree shaking, minimizing, shrouding
Shrinking Classe Classe
None
Entry points
getDefaultProguardfile('proguard-android.txt'),'my-rules.pro' Android Play services
Remoção de código morto Propagação de constantes Métodos "inline" Merging
de classes Remoção de logs Otimizações peephole Desvirtualização de métodos ... Optimization
None
None
None
Obfuscating
None
Obfuscating Renomeação: classes/métodos/atributos Remoção de informação de debug: número de
linha, variáveis locais, etc.
None
tamanho das classes.dex tamanho do .apk final Original ProGuard Redução
Original ProGuard Redução ApiDemos 716 kb 482 kb 33 % 2.6 mb 2.5 mb 4 % GoogleIO 3.4 mb 905 kb 75 % 1.9 mb 906 kb 53 % EasyTaxi Driver 7.5 mb 3.7 mb ~ 50 % 5.9 mb 4.5 mb ~ 24 % EasyTaxi Passenger 7.9 mb 2.9 mb ~ 64 % 8 mb 6.2 mb ~ 23 % Redução da aplicação
Original ProGuard Sieve score 6.833 6.666 Loop score 14.831 15.473
Logic score 19.038 47.840 String score 7.694 7.717 Float score 6.425 6.488 Method score 4.850 5.229 Score total 8.794 10.436 + 18% Performance
Como habilitar
Just do it!
Android Developer @EasyTaxi +RodrigoSicarelli2 github.com/sicachester/weather-guard
[email protected]
Obrigado!