Yguard和Android混淆

Yguard和Android混淆,android,obfuscation,yguard,Android,Obfuscation,Yguard,我想知道如何使用yguard混淆和android库项目。我试过了,但每次生成空jar时 我还尝试了ProGuard,但它似乎没有混淆类文件中的字符串 这是我的build.xml <?xml version="1.0" encoding="UTF-8"?> <project name="project" default="yguard" basedir="."> <target name="init"> <property name

我想知道如何使用yguard混淆和android库项目。我试过了,但每次生成空jar时

我还尝试了ProGuard,但它似乎没有混淆类文件中的字符串

这是我的build.xml

<?xml version="1.0" encoding="UTF-8"?>
<project name="project" default="yguard" basedir=".">
    <target name="init">
        <property name="project_name" value="Utils"/>
        <property name="srcDir" value="src\com\example\utils"/>
        <property name="classDir" value="gen\com\example\utils"/>
        <property name="jar" value="${project_name}.jar"/>
        <property name="obfjar" value="${project_name}_obf.jar"/>
        <property name="renamelog" value="${project_name}_renamelog.xml"/>
        <property name="shrinklog" value="${project_name}_shrinklog.xml"/>
        <property name="mainclass" value="Utils"/>
        <mkdir dir="${classDir}" />
    </target>

    <target depends="jar" name="yguard">
        <taskdef name="yguard" classname="com.yworks.yguard.YGuardTask" classpath="libs/yguard.jar"/>
        <yguard>
            <inoutpair in="${jar}" out="${obfjar}"/>
            <attribute name="Deprecated"/>
            <shrink logfile="${shrinklog}">
              <keep>
                <method name="void CopyStream(InputStream is, OutputStream os)" class="${mainclass}" /> 
              </keep>
            </shrink>

            <rename mainclass="${mainclass}" logfile="${renamelog}">
                <keep>
                    <class classes="none" methods="public" fields="none">
                            <patternset>
                              <include name="com.example.utils.*"/>
                            </patternset>
                          </class>
                </keep>
            </rename>

        </yguard>

    </target>

    <!-- compile -->
    <target name="compile" depends="init">
        <javac srcdir="${srcDir}" includes="com/example/utils/*.java" destdir="${classDir}">
        </javac>
    </target>

    <!-- create .jar -->
    <target name="jar" depends="compile">
        <jar jarfile="${jar}" basedir="${classDir}" includes="com/example/utils/*"/>
    </target>

    <!-- run project -->
    <target name="run" depends="yguard">
        <java classname="${mainclass}" fork="true">
            <classpath>
                <pathelement location="${obfjar}"/>
            </classpath>
        </java>
    </target>

    <!-- removes all that has been built -->
    <target name="clean" depends="init">
        <delete dir="${classDir}" includeEmptyDirs="true" />
    </target>
</project>

你要回答的编程相关问题是什么?matheszabi你能详细说明一下,你想从我这里知道什么吗?你能详细说明你想问什么吗?对我来说,不清楚id没有任何问题我正在使用eclipse开发一个android应用程序,并且已经开发了一个带有一个类的实用程序(android库),上面给出了它的代码。这个实用程序类有一些我想用yguard观察的URL。我试过用yguard,但它给了我一个空白文件,没人帮我。这很令人惊讶。
package com.example.utils;
public class Utils {

    public static String url1 = "http://www/url1";
    public static String url2= "http://www/url2";

    public static void CopyStream(InputStream is, OutputStream os)
    {
        final int buffer_size=1024;
        try
        {
            byte[] bytes=new byte[buffer_size];
            for(;;)
            {
              int count=is.read(bytes, 0, buffer_size);
              if(count==-1)
                  break;
              os.write(bytes, 0, count);
            }
        }
        catch(Exception ex){}
    }

    public static InputStream downloadUrl(String urlString) throws IOException {
        URL url = new URL(urlString);
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setReadTimeout(10000 /* milliseconds */);
        conn.setConnectTimeout(15000 /* milliseconds */);
        conn.setRequestMethod("GET");
        conn.setDoInput(true);
        // Starts the query
        conn.connect();
        InputStream stream = conn.getInputStream();
        return stream;
    }

    public static String downloadStringfromUrl(String urlString) throws IOException
    {
        InputStream is = Utils.downloadUrl(urlString);
        BufferedReader reader = new BufferedReader(
                new InputStreamReader(is, "iso-8859-1"), 8);
        StringBuilder sb = new StringBuilder();
        String line = null;
        while ((line = reader.readLine()) != null)
            sb.append(line);
        is.close();

        return sb.toString();
    }
}