मैंने अपने एंड्रॉइड एप्लिकेशन में ProGuard लागू किया है।प्रोजेगार्ड एंड्रॉइड में गतिविधि कक्षा क्यों रखता है?
मैं
android-studio/sdk/tools/proguard/proguard-android.txt
उपयोग कर रहा हूँ एक विन्यास फाइल के रूप में, कुछ भी नहीं बदल रहा है।
We want to keep methods in Activity that could be used in the XML attribute onClick
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
यह से कि क्रियाएँ वर्ग के नाम को ProGuard द्वारा obfusctated रहे हैं, जबकि कुछ तरीकों संरक्षित कर रहे हैं के रूप में वे इस प्रकार हैं:
इस फाइल में मैं केवल गतिविधि के बारे में बयान देख सकते हैं। यह समझ में आता है।
हालांकि, अपने आवेदन में मैं तो एक गतिविधि कक्षा एक स्ट्रिंग का उपयोग
Class.forName("my.app.MyActivity")
तो मैं इस गतिविधि शुरू से बना सकते हैं और यह ठीक शुरू होता है।
लेकिन इसका मतलब है कि गतिविधि-व्युत्पन्न कक्षाएं obfuscated नहीं हैं ??। क्योंकि ProGuard Activity
के लिए -keep class
निर्देश नहीं है यह विफल रहे हैं चाहिए, यह केवल -keepclassmembers.
है सकते हैं किसी को, कृपया, समझाने, अगर मैं व्यवहार मैं निरीक्षण पर भरोसा कर सकते? या क्या मैं -keepclassmembers
निर्देश को गलत समझता हूं?
आपको पूरी फाइल पोस्ट करनी चाहिए, क्योंकि अकेली पंक्ति यह समझाने के लिए पर्याप्त नहीं है कि यह गतिविधि का नाम क्यों रखती है – Raffaele