मैं भी ऐसा करना चाहता था चींटी या आदेश का उपयोग कर के बिना लाइन दृष्टिकोण। यहां बताया गया है (केवल पर ग्रहण + Windows) काम किया है:।
(आप Proguard डाउनलोड करने की आवश्यकता स्क्रिप्ट यह यहाँ मिल जाने की उम्मीद: C: \ android-sdk_r04-windows \ ProGuard \ lib \ proguard.jar)।
एक Windows बैच फ़ाइल बनाएँ, "C: \ android-sdk_r04-windows \ obfusc.bat":
DEL /S /Q obfuscated
MKDIR obfuscated
java -jar C:\android-sdk_r04-windows\proguard\lib\proguard.jar @android.pro
DEL /S /Q bin\com\
DEL /S /Q bin\org\
ROBOCOPY obfuscated\com bin\com /S
ग्रहण में, अपने Android के गुणों पृष्ठ लाने प्रोजेक्ट, "बिल्डर्स" फलक का चयन करें और "प्रोग्राम" प्रकार का एक नया निर्माता जोड़ें। मुख्य टैब के "स्थान" फ़ील्ड में पिछले चरण में स्क्रिप्ट का पूर्ण पथ डाल दिया गया था। "कार्य निर्देशिका" फ़ील्ड में वेरिएबल $ {build_project} डाल दिया गया है। "बिल्ड विकल्प" टैब में "रन बिल्डर" के अंतर्गत "क्लीन के बाद" चुनें।
सुनिश्चित करें कि यह बिल्ड उपकरण एंड्रॉइड पैकेज निर्माता से ठीक पहले, आखिरी के बगल में आता है।
एंड्रॉइड प्रोजेक्ट के रूट फ़ोल्डर में एक प्रोजेर्ड कॉन्फ़िगरेशन फ़ाइल बनाएं। मैं इन्हें थोड़ा सा अनुकूलित करता हूं और उन्हें संशोधन नियंत्रण में शामिल करता हूं, लेकिन यह आपके ऊपर है। फ़ाइल का उपयोग मैं के रूप में स्क्रिप्ट में नाम कहा जाता है "android.pro,", और देव ब्लॉग में config के समान है लेकिन उदाहरण के लिए, injar, outjar, और libraryjar बयानों के साथ एक शीर्ष लेख में शामिल हैं:
-injars bin(!.svn/**)
-outjars obfuscated
-libraryjars C:\android-sdk_r04-windows\android-sdk-windows\platforms\android-1.6\android.jar
-libraryjars C:\GoogleAnalyticsAndroid_0.7\libGoogleAnalytics.jar
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-printmapping proguard.map
-keepattributes SourceFile,LineNumberTable
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class com.android.vending.licensing.ILicensingService
-keepclasseswithmembernames class * {
native ;
}
-keepclasseswithmembernames class * {
public (android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembernames class * {
public (android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
- आप इस बिल्डर को अधिकांश समय से बंद रखना चाहते हैं। जब यह एक obfuscated एपीके का परीक्षण या निर्यात करने का समय है, तो इसे चालू करें और फिर ग्रहण से "प्रोजेक्ट> क्लीन" करें, जिसमें परियोजना और किसी पुस्तकालय परियोजनाओं पर निर्भर करता है।
मुझे लगता है कि यह इसके बारे में है।
स्रोत
2010-09-22 19:40:39
जवाब http://stackoverflow.com/a/11351168/2291 में परिवर्तन है कि एसडीके में परिवर्तन का सम्मान करने के लिए अद्यतन किया गया है का वर्णन करता है uncomment। –