smaller apk
Post on 13-Apr-2017
96 Views
Preview:
TRANSCRIPT
#Otimizando o APKMenor e melhor.
Qual o tamanho do seu aplicativo?
● Quanto espaço ele ocupa quando é instalado?
● Quantos dados ele consome?
● Quanto ele utiliza de memória?
O que é um APK?
O que é um APK?
classes.dex res/ resources.arsc
AndroidManifest.xml libs/ assets/
META-INF/
Comprimindo o APK do LoloAntes:
APK: 7.0MBEspaço em disco: 9.79MB
Depois:
APK: ~2.0MBEspaço em disco: ~2.5MB
Comprimindo o APK do Lolo1- Minify, Proguard*, ShrinkResources
2- Limpando dependências
3- Filtrando resources
4- Otimizando Imagens
5- Vector Drawables
Minify, Proguard*, ShrinkResources
Comprimindo o APK do Lolo
1- Minify, Proguard*,
ShrinkResources
APK: 3.4MBEspaço em disco: 4.21MB
APK: 7.0MBEspaço em disco: 9.79MB zipAlignEnabled true
minifyEnabled falsesigningConfig signingConfigs.release
Limpando Dependências
Comprimindo o APK do Lolo
2- Limpando dependências
APK: 3.3MBEspaço em disco: 4.00MB
APK: 3.4MBEspaço em disco: 4.21MB
Filtrando Resources
Comprimindo o APK do Lolo
3- Filtrando resources
APK: 3.2MBEspaço em disco: 3.98MB
APK: 3.3MBEspaço em disco: 4.0MB
shrinkResources trueresConfigs “en”, “fr”
* ArscBlamer https://github.com/google/android-arscblamer
Otimizando Imagens
Comprimindo o APK do Lolo
4- Otimizando Imagens
APK: 2.2MBEspaço em disco: 2.61MB
APK: 3.3MBEspaço em disco: 4.0MB
* Png Compresshttps://tinypng.com/
* Jpeg Mini http://www.jpegmini.com/
* Não usem o Zopfli para comprimir o APK!!
* Desativem Cruncher do AAPT
Vector Drawable
Comprimindo o APK do Lolo
5- Otimizando Imagens
APK: 1.98MBEspaço em disco: 2.42MB
APK: 2.2MBEspaço em disco: 2.71MB
* Habilitar no build.gradlevectorDrawables.useSupportLibrary = true
* Utilizar sempre appCompatapp:srcCompat
* Não esquecer de habilitar nos Fragment’s/Activity’sstatic {
AppCompatDelegate.setCompatVectorFromSourcesEnabled(true);}
* Sempre que utilizar em drawableLeft/Top/Right/Left<selector xmlns:android="...">
<item android:state_checked="true" android:drawable="@drawable/checked_icon" /><item android:drawable="@drawable/icon" />
</selector>
Splits
Redex
• Redex é um bytecode (dex) otimizador Android desenvolvido originalmente
no Facebook.
• Ele fornece um quadro de leitura, escrita e análise DEX arquivos, e um
conjunto de otimização passa que o uso dessa estrutura para melhorar a
bytecode.
• APK otimizado por Redex deve ser menor e mais rápido do que sua fonte.
• Melhora cerca de 25% melhor na inicialização.
https://github.com/facebook/redex
Agradecimentos/Link’s:
* Matheus Corregiari
* Wojtek Kalicinskihttps://medium.com/google-developers/smallerapk-part-1-anatomy-of-
an- apk-da83c25e7003#.u1v3o93vm
* Chris Baneshttps://medium.com/@chrisbanes/appcompat-v23-2-age-of-the-vectors-
91cbafa87c88#.jcqmhxgxw
www.concretesolutions.com.br
Rio de Janeiro – Rua São José, 90 – cj. 2121Centro – (21) 2240-2030
São Paulo - Rua Sansão Alves dos Santos, 433 4º andar - Brooklin - (11) 4119-0449
Ajudamos empresas a criar produtos digitais de sucesso
top related