Skip to content

Instantly share code, notes, and snippets.

@iniyanmurugavel
Created June 29, 2020 08:04
Show Gist options
  • Select an option

  • Save iniyanmurugavel/c370bf3774cef9abd96e29806c0a1001 to your computer and use it in GitHub Desktop.

Select an option

Save iniyanmurugavel/c370bf3774cef9abd96e29806c0a1001 to your computer and use it in GitHub Desktop.
DEXGUARD VS Proguard
ProGuard is a generic optimizer for Java bytecode.
DexGuard is a specialized tool for the protection of Android applications.
ProGuard is a versatile optimizer for Java bytecode. It enables you to shrink, optimize and obfuscate desktop applications, embedded applications and mobile applications (Android)
DexGuard, on the other hand, is specifically designed to protect and optimize Android applications. The multilayered protection DexGuard provides is adapted to the distributed and quickly evolving environment in which mobile applications are used. In addition, DexGuard offers functionality that helps you to make optimal use of the Android platform. It comes with a tuned configuration for the Android runtime and for common libraries (Google Play Services, Dagger, Realm, SQLCipher etc.) and automatically splits DEX files that exceed the size limits imposed by the format (MultiDex).
ProGuard offers basic protection against static analysis.
DexGuard protects applications against static and dynamic analysis.
ProGuard offers basic protection against static analysis only,
ProGuard provides minimal obfuscation.
DexGuard applies multiple layers of encryption and obfuscation.
Both ProGuard and DexGuard harden the code of applications to shield them from reverse engineering, but the extent to which they do is different. ProGuard offers basic protection in the form of name obfuscation. DexGuard does not only obfuscate names of classes, fields and methods, but also arithmetic and logical expressions in the code and the control flow of the code inside methods. In addition, DexGuard encrypts strings and classes and adds reflection to access-sensitive APIs. The result is a much better protected application.
ProGuard focuses on the bytecode.
DexGuard processes all the components of an application.
https://blog.mindorks.com/getting-started-with-android-ndk-android-tutorial
LLDB: It is used by Android Studio to debug the native code present in your project.
NDK: Native Development Kit(NDK) is used to code in C and C++ i.e. native languages for Android.
CMake: It is an open-source system that manages the build process in an operating system and a compiler-independent manner.
The disadvantage associated with using native language is that if you don't use the APK Split or APK Bundle then using NDK alone will increase the APK size. What happens is that the NDK makes the .so file the machine executable file based on the Architecture of Android.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment