36

Google ने एंड्रॉइड स्टूडियो 2.1 के साथ एंड्रॉइड डेवलपर्स के लिए अपने नए JACK compiler का एक परीक्षण संस्करण जारी किया है।जैक कंपाइलर के साथ खनन और obfuscation कैसे करें?

मेरा सवाल है, हम जेपी के साथ एपीके के लिए obfuscation कैसे सक्षम करते हैं? लेख के नीचे का कहना है कि जैक कहानियो देशी रूप करता है और Proguard की आवश्यकता समाप्त:

जबकि निम्न आलेख का कहना है कि जैक (यानी .pro फ़ाइल) Proguard विन्यास फाइल का उपयोग करता है obfuscation प्रदर्शन के लिए:

यह भी कहना है कि

इस प्रक्रिया के दौरान जैक भी किसी भी अनुरोध किया कोड minification (सिकुड़ और/या कहानियो) संभालती है।

इसका क्या अर्थ है? क्या हमें minifyEnabled विकल्प का उपयोग करना है और .pro फ़ाइल को प्रोग्यूर्ड विकल्प युक्त परिभाषित करना है?

सारांश में:

  • हम जैक के साथ कहानियो को सक्षम करने के बारे वास्तव में किस प्रकार होते हैं? क्या हम प्रोगुआर्ड के उपयोग को बाईपास कर सकते हैं, या प्रोग्रार्ड में एक वास्तविक तथ्य भूमिका निभाता है, भले ही हम जैक के साथ संकलित हों?

  • क्या जैक वर्तमान में obfuscation का समर्थन करता है या नहीं, और क्या यह एंड्रॉइड स्टूडियो के स्थिर (यानी गैर-बीटा/कैनरी) संस्करण में उपलब्ध है?

नोट:

आगे संदर्भ:

अद्यतन:

Matt Insko द्वारा answer उपयोगी है, लेकिन मैं और अधिक विस्तार, और एक और अधिक सटीक, विहित उत्तर चाहता है।

+0

यह [पोस्ट] (http://www.androidpolice.com/2014/11/30/jack-and-jill-are-googles-new-compilers-for-android-app-developers/) सहायक हो सकता है । यदि आप इसे देखते हैं [link] (http://tools.android.com/tech-docs/jackandjill) '--config-proguard' –

+0

जैसे प्रोग्रार्ड फ़ाइलों को पास करने का विकल्प है तो कमांड लाइन का उपयोग करना एकमात्र विकल्प है ? और कमांड लाइन से जैक का उपयोग करके हम वास्तव में कैसे निर्माण करते हैं? –

+0

हां, मैंने सीएलआई के साथ प्रयास किया। यह ठीक काम कर रहा है। इस जानकारी का उल्लेख किया गया है [यहां] (https://software.intel.com/en-us/android/articles/an-introduction-to-jack-and-jill-on-x86) और [यहां] (https: //gist.github.com/stefanhoth/593451dfb4576ec9a21c) –

उत्तर

9

जेए.सी.के. obfuscation नवीनतम रिलीज ग्रैडल प्लगइन (v2.1.0) में समर्थित नहीं प्रतीत होता है।

यदि आप नवीनतम v2.1.0 प्लगइन का उपयोग करते समय जैक को सक्षम करते हैं, तो यह आपको Jack requires Build Tools 24.0.0 or later बताएगा कि आप पूर्वावलोकन टूल का उपयोग करने की आवश्यकता रखते हैं।

एंड्रॉयड Gradle v2.2.0-alpha1 का उपयोग करना, निर्माण उपकरण-v24rc4, प्लेटफार्म उपकरण-v24rc3, और SDK टूल-v25.1.7rc1 मैं कहानियो को प्राप्त करने में सक्षम था जैक द्वारा किया जाना है।

जब defaultConfig अंदर सक्षम यह Minifying the variant used for tests is not supported when using Jack. शिकायत की, क्योंकि minifyEnabled truedebug निर्माण में कॉन्फ़िगर किया गया था।

तो, मैं एक कस्टम निर्माण प्रकार बनाया है और वहाँ यह सक्षम:

buildTypes { 
    ... 
    custom { 
     minifyEnabled true 
     proguardFiles 'proguard-android-JACK.txt-2.2.0-alpha1' 
     jackOptions { 
      enabled true 
     } 
    } 

जब proguardFiles getDefaultProguardFile('proguard-android.txt') का उपयोग कर रहे एक समस्या थी। यह इसके साथ त्रुटि हुई: com.android.jack.api.v01.ConfigurationException: Error while parsing ...,। इसलिए, मैंने बस उन पंक्तियों को हटा दिया जिनके बारे में शिकायत की गई और फिर मैन्युअल रूप से मेरी संशोधित कॉन्फ़िगरेशन फ़ाइल निर्दिष्ट की गई। https://source.android.com/source/jack.html

आधिकारिक दस्तावेज से::

+0

देख सकते हैं हाय, आप शिकायत करते हुए एएस के आसपास कैसे काम करते हैं कि वर्तमान कॉन्फ़िगरेशन (कस्टम) पर हस्ताक्षर नहीं है? – galaxigirl

2

आप यहाँ देख सकते हैं

(जैक), सिकुड़ते कहानियो, repackaging और multidex संभालती है। का उपयोग करके ProGuard जैसे अलग पैकेज अब आवश्यक नहीं हैं।

जैक सिकुड़ गया है कहानियो समर्थन और सिकुड़ते कहानियो सुविधाओं को सक्षम करने ProGuard विन्यास फाइल का उपयोग करता है:

विशेष रूप से खंड "में कमी कहानियो" जहां यह है कि उल्लेख किया गया है नोटिस करें।

और समर्थित और अनदेखा विकल्प भी प्रस्तुत किए जाते हैं।

+3

धन्यवाद, लेकिन आप यह नहीं समझाते कि हम इसके बारे में वास्तव में कैसे जाते हैं। मैंने भी उस लेख को पढ़ा है (और संदर्भित किया है), और इसकी सुंदर कृत्रिम और अस्पष्ट है कि वास्तव में कितना obfuscation किया जाता है। यदि आप इसे आज़मा सकते हैं, और कुछ और विवरण प्रदान कर सकते हैं (यदि यह काम करता है), तो मैं आभारी रहूंगा .... धन्यवाद :) –

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