Distriggers l'ottimizzazione delle risorse di Android / image / png

Come prevenire il process di build di Android da ottimizzare le immagini .png?

Ho un progetto Android con le seguenti directory di risorse:

  • Come utilizzare un database di mbtiles con Android TileProvider?
  • Come rendere il Textview di ListItem per lavorare come Tweets di Twitter e get clic differenti di Linkify?
  • Come get la vista dal layout dell'intestazione del cassetto con il binding nell'attività?
  • Come posso modificare il colore dell'icona di hamburger ActionBar?
  • Come impostare il tema scuro di holo in un'applicazione Android?
  • Come migliorare le performance per il database SQLite per Android
  • - /res/ - /res/drawable - /res/drawable-hdpi - /res/drawable-hdpi-v5 - /res/drawable-ldpi - /res/drawable-ldpi-v5 - /res/drawable-mdpi - /res/drawable-mdpi-v5 

    Queste directory contengono molti file png . Ottimizzo PNGs con PNGOUTWin e la dimensione complessiva è ridotta di oltre il 20%. Quando creo un file .apk, le immagini vengono "ottimizzate" dal process di build e la dimensione complessiva è ora del 10% superiore alla dimensione iniziale , o 30% superiore alla dimensione ottimizzata di / PNGOUTWin.

    Il mio objective è ridurre la dimensione .apk, anche se influenzerà le performance finali, i requisiti di memory, ecc. Come impedire il "process di build" di ottimizzare le immagini .png?

    Targeting Android 2.2 e superiore.

    PS Attualmente sta costruendo il mio progetto Android da Eclipse, ma passerò più tardi alla build automatizzata (Ant?)

    Nota sulle immagini JPG: JPG non functionrà perché non hanno trasparenza.

  • Come spostare l'elemento specifico nell'elenco di matrici al primo elemento
  • Android AlarmManager non ha funzionato dopo le interruzioni di process
  • WebView restituisce bad window.innerHeight
  • Dove Android memorizza la versione del database di SQLite?
  • Android scaledrawable non sembra funzionare
  • Come get la miniatura di Android Contact
  • 5 Solutions collect form web for “Distriggers l'ottimizzazione delle risorse di Android / image / png”

    Come indicato nella documentazione Android: http://developer.android.com/guide/topics/graphics/2d-graphics.html#drawables

    Nota : Le risorse image poste in res / drawable / possono essere ottimizzate automaticamente con la compressione dell'image senza perdita dallo strumento aapt durante il process di generazione. Ad esempio, un PNG a colors a colors che non richiede più di 256 colors può essere convertito in un PNG a 8 bit con una tavolozza dei colors. Ciò provocherà un'image di uguale qualità ma richiede less memory. Quindi, tenere presente che i binari image posizionati in questa directory possono cambiare durante la build .

    Quindi, se vuoi ridurre la dimensione dell'applicazione dovresti ridurre la profondità di colore dei file PNG (questo aiuta molto) o passare a file .JPG ladwhere ansible.

    Infine c'è un modo ufficiale per distriggersre il cruncher PNG con Gradle che ancora non è stato menzionato qui:

    1. Modifica il build.gradle principale per richiedere la versione 1.1.3 di gradle (o più recente):

       buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:1.1.3' } } 
    2. Nel build.gradle delle singole applicazioni, sezione android {}, inserire:

       aaptOptions { cruncherEnabled = false } 

    Riferimento: https://code.google.com/p/android/issues/detail?id=65335

    La definizione di crunching PNG è ora una properties; BuildType ed è distriggersta per impostazione predefinita sulle build di debug:

     android { … buildTypes { release { crunchPngs false // or true } } } 

    Nota: è disponibile da Android Studio 3.0 Canary 5 .

    ANDROID STUDIO : Da Gradle Android plugin 1.0.0:

     android { ... aaptOptions { useNewCruncher false } .... } 

    ECLIPSE : Sovrascrivi l'attività di crunch che scrive questo nel tuo build.xml:

     <target name="-crunch"> <echo message="This will skip PNG optimization"/> </target> 

    Google ha recentemente introdotto un nuovo processre PNG in aapt 0.9.1 negli SDK Build Tools di Android che corregge questo numero di formati PNG aumentati dopo l'ottimizzazione di aapt.

    Con questo aggiornamento, ora è ansible che Android Studio & Gradle passare tra i processri PNG con la seguente modifica nel file di configuration build.gradle:

     android { .. .. aaptOptions.useAaptPngCruncher = false } 

    Aggiungendo questa linea, aapt utilizza il nuovo processre PNG in cui controlla se i file PNG "ottimizzati" sono più piccoli dei file PNG originali. Sono stato in grado di ridurre 4,8 MB nel mio APK compilato e non ho incontrato alcun problema / problemi con la nuova configuration di configuration.

    UPDATE: questo è stato deprecato nelle versioni successive di Android Studio. Fare riferimento alla risposta fornita da ChrisG.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.