android - एंड्रॉइड स्टूडियो और मटकाटॉक?




ant aspectj android-studio monkeytalk (5)

क्या एंड्रॉइड स्टूडियो के साथ किसी को सफलतापूर्वक स्थापित किया गया है?

इस बिंदु पर मेरी मुख्य समस्या यह है कि मुझे जावा कम्पाइलर को एएससीएजी सेट करने का एक तरीका दिखाई नहीं देता है

मेरा मानना ​​है कि custom_rules.xml में ऐसा करने का कोई तरीका है, लेकिन मैंने यह नहीं देखा कि अभी तक यह कैसे करना है I

यह शायद असंबंधित समस्या की ओर जाता है, लेकिन एंड्रॉइड स्टूडियो के नवीनतम संस्करण में मैं (0.1.1) का उपयोग कर रहा हूं, मुझे एंड्रॉइड स्टूडियो के अंदर की एटी बिल्ड चलाने का कोई तरीका नहीं है।

किसी भी सुझाव की सराहना की!


Answers

MonkeyTalk (संस्करण 2.0.1 के अनुसार) ने अब "इंस्ट्रूमेंट" को अपने पहले से बनाए गए नियमित एपीके को किसी भी आईडीई के स्वतंत्र से बंदर टॉक के साथ उपकरण जारी किया है। ओएस एक्स में इस इंस्ट्रूमेंटेशन प्रक्रिया को पूरा करने के लिए कदम:

1. डाउनलोड करें मटकाटोक 2.0.1 प्रो बीटा

2. "उदाहरण" नामक डेस्कटॉप पर एक नया खाली फ़ोल्डर बनाएं या जो भी आप चाहते हैं

3.Copy monkeytalkpro / agents / android / monkeytalk-agent-2.0.1.jar "उदाहरण" निर्देशिका में

4. "monkeytalkpro / ant / monkeytalkpro-ant-2.0.1.beta.jar" को "उदाहरण" निर्देशिका में कॉपी करें

5. अपने एपीके फ़ाइल को "उदाहरण" निर्देशिका में कॉपी करें (इस उदाहरण के लिए myapp.apk नामित)

6. "उदाहरण" निर्देशिका में build.xml नामक एक नई फ़ाइल बनाएं और इसे निम्नलिखित के साथ भरें:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:mt="antlib:com.gorillalogic.monkeytalk.ant">

    <target name="instru">
        <mt:instrument
            srcfile="myapp.apk"
            destfile="myapp-post-instrumented.apk"
            agent="monkeytalk-agent-2.0.1.jar"
            androidsdk="/path/to/your/sdk"
            androidtarget="android-17"
            log="log.txt"
            verbose="true" />
        </target>

</project>

7. ओपन टर्मिनल और सीडी आपकी "उदाहरण" निर्देशिका में

8. आईएसयूएस कमांड ant instru -lib monkeytalkpro-ant-2.0.1.beta.jar

9. कमांड को "मैप-पोस्ट-इंस्ट्रूमेंट.एपीक" शीर्षक से आपकी "उदाहरण" डायरेक्टरी में एक मकरटॉक संगत एपीके का उत्पादन करना चाहिए और फिर चलाना चाहिए।

चेतावनी: ऐसा एक ऐसा बग लगता है जहां इंस्ट्रूमेंटेशन प्रक्रिया "myapp-instrumented.apk" नामक आपकी "उदाहरण" निर्देशिका में एक और फ़ाइल भी रखेगी, लेकिन यह फ़ाइल रिक्त हो जाएगी। इसलिए सुनिश्चित करें कि आपकी गंतव्य फ़ाइल "build-up.xml" में आपके निर्माण फ़ाइल में "myapp-instrumented.apk" शीर्षक नहीं है या यह रिक्त फ़ाइल आपके मन्डरटॉक संगत फ़ाइल को अधिलेखित करेगी।


यदि आपकी एंड्रॉइड स्टूडियो प्रोजेक्ट मेवेन प्रकार है, तो आपको जो कुछ करना है, उससे कुछ पहलू निर्भरताएं, बंदर-टैक्-एजेंट निर्भरता जोड़ना और उन निर्भरताओं के लिए कॉन्फ़िगरेशन के साथ मेवेन प्रोफाइल बनाना है

सबसे पहले आपको पहले से डाउनलोड करने की आवश्यकता होगी ( यहां उपलब्ध) जार फाइल को एंड्रॉइड के लिए मकरटॉक-एजेंट के साथ स्थानीय मेवेन रेपो। अगर आपके पास मेवेन का उचित कॉन्फ़िगरेशन है, तो आप इसे निम्नलिखित कमांड के साथ कर सकते हैं:

mvn install:install-file -Dfile=monkeytalk-agent-2.0.4.jar -DgroupId="com.gorillalogic.monkeytalk" -DartifactId="monkeytalk-agent" -Dversion="2.0.4" -Dpackaging="jar" 

जब आप इस भाग को सफलतापूर्वक पूरा करते हैं, तो आप प्रोजेक्ट की मौजूदा पीओएम फ़ाइल को संपादित कर सकते हैं और अपनी परियोजना निर्भरता को जोड़ सकते हैं:

        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjrt</artifactId>
            <version>1.6.2</version>
        </dependency>

        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjtools</artifactId>
            <version>1.6.2</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>com.gorillalogic.monkeytalk</groupId>
            <artifactId>monkeytalk-agent</artifactId>
            <version>2.0.4</version>
        </dependency>

अगले चरण मेवेन प्रोफाइल बनाने के लिए है जो बिल्ड के दौरान मोनेकीटाक जोड़ सकता है:

<profile>
        <id>monkeytalk</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>aspectj-maven-plugin</artifactId>
                    <version>1.4</version>
                    <configuration>
                        <source>1.6</source>
                        <target>1.6</target>
                        <aspectLibraries>
                            <aspectLibrary>
                                <groupId>com.gorillalogic.monkeytalk</groupId>
                                <artifactId>monkeytalk-agent</artifactId>
                            </aspectLibrary>
                        </aspectLibraries>
                        <showWeaveInfo>true</showWeaveInfo>
                        <verbose>true</verbose>
                        <Xlint>ignore</Xlint>
                    </configuration>
                    <executions>
                        <execution>
                            <goals>
                                <goal>compile</goal>
                                <goal>test-compile</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>

अगला कदम आपके ऐप मैनिफेस्ट फ़ाइल को निम्नलिखित अनुमति देने के लिए संपादित करना है:

<!-- Monkeytalk permission -->
<uses-permission android:name="android.permission.GET_TASKS"/>

अब आप प्रोजेक्ट सेट और MonkeyTalk ऐप बिल्ड बनाने के लिए तैयार हैं। इस के लिए आपको सिर्फ परियोजना मेवेन निर्माण प्रक्रिया के दौरान अपने नए मन्दिरॉक प्रोफ़ाइल का उपयोग करने की आवश्यकता है। कमांड लाइन में उपयोग का उदाहरण:

clean install android:deploy android:run -Pmonkeytalk

अब आप यहां ऐप गर्त मटकाटोक आईडीई से जुड़ सकते हैं।


एंड्रॉइड स्टूडियो Intellij समुदाय संस्करण के बंद बनाया गया है, जो कि मेरे ज्ञान में ऐस्पेक्ज समर्थन में निर्मित नहीं है

आप Intellij AspectJ प्लगइन को जोड़ने का प्रयास कर सकते हैं - ऐसा लगता है कि एंड्रॉइड स्टूडियो में AspectJ सेटअप करना संभव है, हालांकि मैंने अभी तक इसके साथ काम करने वाले MonkeyTalk की कोशिश नहीं की है


एक ऐसा दृष्टिकोण जिसे मैंने पाया है, के लिए अच्छी तरह से काम करता है एंड्रॉइड- gradle-aspject-j प्लगइन का उपयोग यहां पाया जाता है https://github.com/uPhyca/gradle-android-aspectj-plugin

मैंने जो किया है वह एक नया बिल्ड टाइप (मन्दिटॉक) बना रहा है, इसमें केवल इस बिल्ड प्रकार के लिए कंपाइल निर्भरता के रूप में बंदर टॉक जार शामिल है और उपर्युक्त एएसटीजे प्लगइन को लागू किया है। यह सुनिश्चित करता है कि बंदर टॉक बनाने के प्रकार के लिए बंदर टॉक बुनाई होती है।

यहां एक स्निपेट है कि मेरा बिल्ड एक्सएमएल कैसा दिखता है

buildscript {
  repositories {
    mavenCentral()
  }
  dependencies {
    classpath 'com.uphyca.gradle:gradle-android-aspectj-plugin:0.9.5'
  }
}
apply plugin: 'com.android.application'
apply plugin: 'android-aspectj'

android {
  buildTypes {
    monkeytalk.initWith(buildTypes.debug)
    monkeytalk {
      applicationIdSuffix ".monkey"
    }
  }
}

dependencies {
  monkeytalkCompile(files("monkey-talk/monkeytalk-agent-2.0.5.jar"))
}

मैंने भी एक एंड्रॉइड मैनिफ़ेस्ट.एक्सएमएल फ़ाइल को बंदर टॉक बिल्ड प्रकार के लिए जोड़ा है जो आवश्यक अनुमतियों को जोड़ता है, अर्थात जीईटीईएसकेएस और इंटरनेट

एक पूर्ण नमूना ऐप के लिए, इस गिथूब रेपो पर एक नज़र डालें https://github.com/georgepapas/android-gradle-monkey-talk-demo/


पैकेज नाम का नाम बदलने के लिए मेरे द्वारा उपयोग किया जाने वाला दृष्टिकोण निम्नानुसार सरल है: -

चरण 1 : एंड्रॉइड स्टूडियो के बाएं मेनू से प्रोजेक्ट विकल्प का चयन करें

चरण 2 : जावा पर राइट क्लिक करें और एक नया पैकेज जोड़ें और वांछित पैकेज नाम सेट करें

चरण 3 : आपको नया पैकगेनाम दर्ज करें

चरण 4 : सभी फ़ाइलों को अपने पुराने पैकेज से कॉपी करें और नए पैकेज में पेस्ट करें

चरण 5 : मैनिफेस्ट फ़ाइल में पैकेज नाम का नाम बदलें

चरण 6 : build.gradle फ़ाइल में पैकेज नाम का नाम बदलें

चरण 7 : फिर पुराने पैकेज पर राइट क्लिक करें और इसे अपने सभी डेटा से हटा दें, और उस निर्देशिका को भी हटा दें

चरण 8 : फिर अपनी परियोजना को पुनर्निर्माण करें

चरण 9 : फिर आपको अपनी प्रोजेक्ट में पुराने आयात पैकजेनेम की कुछ त्रुटियां मिलेंगी, किसी भी फ़ाइल में पुराना पैकेज नाम चुनें और CTRL + Shift + R दबाएं , और प्रतिस्थापित बॉक्स में नया पैकेज नाम दर्ज करें, फिर ढूंढें

चरण 10 : फिर एक पॉपअप नीचे जैसा दिखाई देता है और इससे सभी फाइल विकल्प चुनें

चरण 11 : फिर से अपनी परियोजना को पुनर्निर्माण करें, बिंगो आपके प्रोजेक्ट पैकगेनेम को बदल दिया गया है :)





android ant aspectj android-studio monkeytalk