Giter Site home page Giter Site logo

proguard's Introduction

ProGuard

ProGuard is a free Java class file shrinker, optimizer, obfuscator, and preverifier. It detects and removes unused classes, fields, methods, and attributes. It optimizes bytecode and removes unused instructions. It renames the remaining classes, fields, and methods using short meaningless names. Finally, it preverifies the processed code for Java 6 or for Java Micro Edition.

ProGuard is useful for making code more compact and more efficient, on the desktop, on tablets, on smartphones, and on embedded devices. It also makes code more difficult to reverse engineer.

This is a fork of ProGuard, You can find upstream here: http://sourceforge.net/p/proguard/

Contributing

We're not adding any features into ProGuard, so pull requests should be focused on making ProGuard itself faster while still having identical output.

Building

ant -f buildscripts/build.xml proguard

Then, you can use lib/proguard.jar as a drop in replacement for the proguard.jar shipped with the Android SDK or used by your build tool.

Contributor License Agreement ("CLA")

In order to accept your pull request, we need you to submit a CLA. You only need to do this once, so if you've done this for another Facebook open source project, you're good to go. If you are submitting a pull request for the first time, just let us know that you have completed the CLA and we can cross-check with your GitHub username.

Complete your CLA here: https://code.facebook.com/cla

License

GPLv2

proguard's People

Contributors

alsutton avatar daniel15 avatar drewhannay avatar rowillia avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

proguard's Issues

Add some docs to configure using the fork with Gradle

Up to now, the only way I could find to use this fork instead of stock proguard when using gradle is to replace the proguard jar inside gradle's cache.

But I am sure there is a cleaner way. Can you publish some instructions to using this fork with gradle ?

Please Provider the Benchmark Testcase

Thanks your work for improving proguard speed, it really slow...

But I use your lastest source code, it only saves me a few seconds. I use the android optimized proguard.cfg.

fb/proguard seems worse than vanilla

Ran this fork on an android project to compare proguard run time and apk size using the exact same code and proguard rules

Vanilla 5.3.1 - 1m25.93s, 3680 kb
fb/proguard based off 5.3.1 - 1m28.98s, 3696 kb

Do you have any benchmarks to claim this fork is actually better? Seems like the latest vanilla version of proguard is actually superior, but I may not have some data that you may be using to still keep this fork alive. Would be great to understand that :)

Upgrading to 4.12 to avoid bug

How come you forked at 4.11 and is their a possibility of moving to 4.12 or 5.0?

I ask because of a serious bug with Proguard & Android (when using Google Play Services) that affects 4.11 & is fixed in 4.12.

http://sourceforge.net/p/proguard/bugs/505/

In any android project with the 'Google Play Service' library to use AdMob or any other,
Proguard 4.11 spit out below error. 4.10 is ok with same proguard script.

Does not work with Multi-dex

If I add the package to my solution and check the Multi-dex box the build still fails. If I replace the Android SDK's proguard.jar with the one from this nuget package it then works.

On publishing to jcenter or maven

Any thoughts on publishing this to jcenter or maven? It would be really great if the output, that being the proguard.jar file, were publicly resolvable to be used in build-scripts/plugins/etc. I know they provide it through sourceforce, and I could probably hack together something something to make that resolvable, but it would be much cleaner if we had it in the "proper" place.

Thoughts?

How to use it

Hello there,

i have installed the package on my vs2015 and i created an apk file but it looks the same.

Do you know how to use it please?I am using devextreme phonegap.

Proguard error

I'm using xamarin for android, and I wanted to build my app with proguard.

after I installed it and build my app, I always have this error:

Error Unable to access jarfile C:\Users\samih pc\Documents\Visual Studio
2015\Projects\App Name
\packages\name.atsushieno.proguard.facebook.5.3.2.2\build..lib\proguard.jar
App Name C:\Users\samih pc\Documents\Visual Studio
2015\Projects\App Name\App Name\PROGUARD
I search online and I use the mklink /j , but I still got this error no matter what.

How can i fix that?

Do i need to change the proguard path to with the path of the mklink?

Thanks a lot.

Regards, Sam.

the generated jar could not be scanned by class loader

the generated jar could not be scanned by class loader
i tried to use this proguard ,the generated jar is almost the same to the original jar after decompilation, however the classes in jar could not be scanned by class loader ,i use spring,the sourse code is PathMatchingResourcePatternResolver.java---getClassLoader().getResources("org/demo/config/").
the getResourses method return no jar囧,while when i replace it to the original jar it returned the jar, so strange........can anyone help me...

How can I solve this problem,please?

Warning: my_class$9$1: can't find referenced method 'java.lang.String access$900()' in program class my_class

I am searching for a long time on net. But no use. Please help or try to give some ideas how to achieve this

Thanks in advance

Upgrade base source to 5.3.1

ProGuard 5.3.1 is available now. This update implements a performance improvement for recent JREs. More specifically, it avoids extensive use of String#substring, which nowadays copies the underlying char[] array instead of sharing it, thus causing a lot of churn for the garbage collector

Unable to find method proguard.KeepClassSpecification

After upgrading to Android Studio 1.0, Gradle 2.12, and the gradle plugin 1.0.0, our build is failing with the following error: https://www.dropbox.com/s/c5hjt4swp9h6asx/Screenshot%202014-12-23%2015.57.49.png?dl=0

This is fixes by removing the "classpath ':proguard:' line from our top level build.gradle, but this means that we would be using the official version of proguard and not facebook's fork. I've copied our top level build.gradle below:

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        flatDir dirs: 'tools/localMavenRepo/' // for using a local version of proguard
        mavenCentral()
    }
    dependencies {
        classpath ':proguard:' // for using a local version of proguard
        classpath 'com.android.tools.build:gradle:1.0.0'
    }
}

What is proguard.jar path?

This might not be the correct place to ask that question but I'm going to try. I'd like to use facebook cersion of proguard but I can't find out which one my ide is using. I found one in my android sdk tools/proguard/lib/proguard.jar but removing it doesn't change anything. I'm using Android studio, does it use another version of proguard.jar?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.