2013-08-15 27 views
20

Voglio generare un APK firmato in Android Studio e mi offre un'opzione per eseguire ProGuard. Mi chiede di dare il percorso del file di configurazione, ma non ho il file di configurazione. Come crearne uno? Dovrei usare ProGuard? È facile ed è facile decomprimere i file APK che non utilizzano ProGuard?Devo usare ProGuard?

MODIFICA: Grazie per le risposte, ma non riesco a trovare il file proguard.cfg da nessuna parte. Solo proprietà del file che ho in directory principale del progetto è local.properties di file e quando l'ho aperto in Android Studio ho ottenuto questo:

# This file is automatically generated by Android Studio. 
# Do not modify this file -- YOUR CHANGES WILL BE ERASED! 
# 
# This file must *NOT* be checked into Version Control Systems, 
# as it contains information specific to your local configuration. 

# Location of the SDK. This is only used by Gradle. 
# For customization when using a Version Control System, please read the 
# header note. 
sdk.dir=C:/.../... 

risposta

17

È abbastanza semplice eseguire il reverse engineering delle applicazioni Android, quindi se si desidera impedire che ciò accada, sì, è necessario utilizzare ProGuard per la sua funzione principale: offuscamento.

ProGuard ha anche altri due importanti funzioni: contrazione che elimina codice non utilizzato ed è ovviamente molto utile e anche ottimizzazione. L'ottimizzazione funziona con bytecode Java, tuttavia, e poiché Android viene eseguito su bytecode Dalvik che viene convertito da bytecode Java, alcune ottimizzazioni non funzioneranno molto bene. Quindi dovresti stare attento lì.

Ci sono instructions on how to use proguard sul sito Web Android. La cosa principale è necessario controllare è che avete la linea

proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 

nel file project.properties. Dato che dici di utilizzare Android Studio e non hai questo file, ma ti viene chiesto del file di configurazione, prova a selezionare quello che si trova nell'SDK di Android (tools/proguard/proguard-android.txt).

+0

Grazie per la spiegazione, ma non ho file project.properties né file proguard.cfg menzionati sul sito Web Android. Ho solo file local.properties. – user2687045

+0

@ user2687045 Ho aggiornato la risposta. Non ho usato io stesso l'Android Studio, quindi questa è solo una supposizione. – Malcolm

2

aver corso ProGuard è completamente facoltativo, ma altamente raccomandato.

Potete trovare tutto quello che vi serve qui: http://developer.android.com/tools/help/proguard.html

Inoltre è possibile rimuovere la riga seguente dal file default.properties nella cartella principale del progetto:

proguard.config = proguard.cfg

+0

Si dice "Quando si crea un progetto Android, un file proguard.cfg viene generato automaticamente nella directory radice del progetto.", Ma non ho il file proguard.cfg lì né altrove nelle directory del progetto. – user2687045

+0

@ user2687045 Inoltre è possibile rimuovere la seguente riga dal valore predefinito.file di proprietà nella cartella radice del progetto: proguard.config = proguard.cfg – Arseniy

12

È facoltativo utilizzare ProGuard e, sia che lo si usi o meno, è piuttosto semplice decomprimere l'apk e accedere alle risorse (grafica e altre risorse). Se non usi ProGuard, il codice dell'applicazione può anche essere ricostruito abbastanza facilmente, con ProGuard diventa molto difficile e complicato cercare di capire cosa succede dove (anche se non impossibile dato abbastanza tempo e sforzo).

Fate attenzione a testare accuratamente l'app dopo aver nascosto anche l'immagine, poiché si tratta di una modifica all'applicazione e, a volte, possono accadere cose indesiderate, specialmente se si sta usando molto il riflesso.

6

Un caso importante per eseguire l'offuscamento di ProGuard è che alcuni malintenzionati disimballano apk e iniettano/sostituiscono il modulo di acquisto sul loro. Non possiamo aspettarci che tutti gli utenti scarichino l'apk solo dal Play Store e gli utenti possono essere rubati dal loro account di acquisto.

+0

Wow, mai pensato alla sicurezza degli utenti in merito a proguard. Sicuramente un motivo in più per usarlo. Grazie. – HopefullyHelpful