I want minimize my app size as well as avoid the app from reverse-engineering. Can anybody help with simple answer?
问题:
回答1:
Proguard is part of the android eclipse plugin, so you do not have to invoke it manually. You just need to activate it on your build.
To enable ProGuard so that it runs as part of an Ant or Eclipse build, set the proguard.config
property in the <project_root>/project.properties
file. The path can be an absolute path or a path relative to the project's root.
For some situations, the default configurations in the proguard.cfg file will suffice. However, many situations are hard for ProGuard to analyze correctly and it might remove code that it thinks is not used, but your application actually needs. Some examples include:
- a class that is referenced only in the AndroidManifest.xml file
- a method called from JNI
- dynamically referenced fields and methods
The default proguard.cfg file tries to cover general cases, but you might encounter exceptions such as ClassNotFoundException, which happens when ProGuard strips away an entire class that your application calls.
You can fix errors when ProGuard strips away your code by adding a -keep
line in the proguard.cfg file.
回答2:
1) Download latest proguard from "http://sourceforge.net/projects/proguard/files/". Current latest version is proguard4.7
2) Replace "bin" and "lib" folder of "path of your SDK\tools\proguard" with latest downloaded proguard folders.
3) Check SDK location in eclipse for blank spaces in it and for that go to window > Preferences > Android. If there is blank space then replace it with:
Pathe of Android SDK
4) Check that proguard.cfg file is in your project's root folder and add "proguard.config=proguard.cfg" in project.properties file of android project.
5) Now export your project to get obfusticated apk.
回答3:
Yes it is possible to restrict app for reverse engineering using enabling proguard in your project Your should read this tutorial for it Proguard for Android app
and for minimize app size you should sue .9patch images, and selector..
回答4:
You can use proguard for this. It is a tool provided by Google for the same purpose. See the official guide here:
http://developer.android.com/tools/help/proguard.html
回答5:
You can give a try to Dexguard https://www.guardsquare.com/dexguard, can add more layers of obfuscation, applying string encryption, class encryption, and reflection. It's not free, but it goes beyond than proguard.
PD) It's not spam, I don't have any relation with this product, just information.