2012-04-17 13 views
21

मैंने एक ज़िप फ़ाइल में encapsulated proguard डाउनलोड किया और इसे मेरी हार्ड डिस्क पर अनपॅक किया। मैंने को किसी भी तरह से इंस्टॉल नहीं किया (क्योंकि मुझे नहीं पता था)। मैंने अपनी परियोजना.प्रोपर्टीज फ़ाइल में proguard.config=proguard.cfg जोड़ा। मैंने फिर एक "निर्यात एंड्रॉइड एप्लिकेशन" पूरी तरह से ग्रहण करने की उम्मीद की थी कि यह नहीं पता था कि मेरा प्रोजेक्ट इंस्टॉलेशन कहां था, लेकिन कोई शिकायत नहीं थी। वास्तव में मेरे कीस्टोर में एक नई एपीके फ़ाइल दिखाई दी, और फ़ाइलों का एक सेट (dump.txt आदि) मेरे ऐप के प्रोजेवार्ड उपनिर्देशिका में दिखाई दिया। Mapping.txt मेरे लंबे परिवर्तनीय नामों से मैपिंग की एक अच्छी सूची की तरह दिखता है, एक और दो अक्षर चर। यह सब मजबूत सबूत होना चाहिए कि प्रोजेवार्ड ने किसी तरह काम किया है - मेरी एकमात्र चिंता यह है कि एपीके पहले से कहीं भी छोटा नहीं था। क्या यह जांचने का कोई तरीका है कि एपीके में प्रोगुआर्ड के अपवित्रता शामिल हैं?कैसे बताएं कि प्रोगुआर्ड ने अपना काम किया है

उत्तर

43

आम तौर पर आकार की जानकारी देगा कि ProGuard काम किया है, लेकिन आप कर सकते हैं: -

  1. उपयोग Dex2Jar एक जार फ़ाइल
  2. ओपन Jd-Gui साथ जिसके परिणामस्वरूप जार फ़ाइल कोड इसमें देखने पर करने के लिए apk कन्वर्ट करने के लिए
+2

यह शानदार ढंग से काम करता है - बहुत धन्यवाद! – Pete

+1

dex2jar का उपयोग कैसे करें? – Roel

+1

http://stackoverflow.com/questions/5257830/how-to-use-dextojar – Kuffs

1

@ कफ्स विधि का एक विकल्प आपके पुराने एपीके की तुलना पुराने रूप से करना होगा। उन्हें दोनों (7zip या अपने पसंदीदा टूल के साथ) खोलें और उनमें से प्रत्येक में class.dex फ़ाइलों के आकार की तुलना करें।

कुछ सरल कारणों से आप एक आकार की बचत की ज्यादा दिखाई दे रहे हैं:

  • सुलझे classes.dex कर रहा था समझ से परे एक से अधिक संकुचित करने की। यह कुछ हद तक हमेशा सच है।
  • आपने रिलीज बिल्ड नहीं किया था। प्रूगार्ड केवल रिलीज बिल्ड पर चला जाता है क्योंकि डिबगिंग ओबफस्केटेड कोड एक दुःस्वप्न है।
  • प्रोजेवार्ड सेटिंग्स जो आप उपयोग कर रहे हैं, वे आपकी परियोजना के लिए बहुत अच्छा नहीं कर रहे हैं (कम से कम कोड आकार के मामले में)। मैंने वास्तव में प्रोग्रार्ड के कोड इनलाइनिंग सेटिंग्स को पहले जार फ़ाइलों के आकार में वृद्धि देखी है!
+0

unobfuscated classes.exex को obfuscated एक से अधिक संपीड़ित करने में सक्षम था -> क्या इसका मतलब यह नहीं है कि unobfuscated classes। Dex obfuscated से कम आकार है? – Rendy

+2

@ रेन्डी मैं हमेशा obfuscated .dex के आकार को unobfuscated से छोटे होने की उम्मीद करता हूं। हालांकि, मैं यह भी उम्मीद करता हूं कि संपीड़न से पहले आकार अंतर संपीड़न से पहले आकार अंतर से बहुत छोटा होगा। ऐसा इसलिए है क्योंकि obfuscation कुछ वही काम करता है जो संपीड़न करता है - यानी लंबे तारों (वर्ग/विधि/फ़ील्ड नाम) को बहुत कम लोगों के साथ बदलना। – vaughandroid

+0

इसे मिला! धन्यवाद! – Rendy

संबंधित मुद्दे