创建 java 个不显示代码的库
create java library that don't display code
我想创建一个 java 库,其中包含视图、适配器、SQLite、库等...
但我希望用户无法访问我图书馆的代码。
其实看到一个方法名的接口只是为了调用。
我该怎么做?
没有简单、可靠的方法来防止 Java 类 的反编译。但是,有许多 'obfuscator' 工具用于 Java,在实践中非常接近。
没有办法完全保护您的源代码,尤其是在 Java 中。您可以让其他人难以获得您的源代码。
第一种方法: 一种主要技术是使用 Proguard
等工具进行代码混淆。您可以通过将属性 minifyEnabled true
添加到 gradle:
来启用它
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
使用此技术,您必须排除用户需要与之交互的 classes。在混淆配置文件中:
-keep class com.example.myapp.ThisParticularClass
第二种方法: 您可以使用的另一种方法是向库中添加一些 C/C++ 代码。您可以执行一些特定任务,例如构建字符串、特殊字符、将键和数字存储在 C/C++ class 中,然后在您的 java 中调用这些 classes。
第三种方法:虽然看起来很傻,但是真的很管用。很多反编译你的代码的程序员都没有认真到花很多时间去理解你的代码。因此,您可以通过使用接口、中间方法、额外调用和一系列其他创新方法向您的 project/library 添加额外的样板代码。
我想创建一个 java 库,其中包含视图、适配器、SQLite、库等... 但我希望用户无法访问我图书馆的代码。 其实看到一个方法名的接口只是为了调用。 我该怎么做?
没有简单、可靠的方法来防止 Java 类 的反编译。但是,有许多 'obfuscator' 工具用于 Java,在实践中非常接近。
没有办法完全保护您的源代码,尤其是在 Java 中。您可以让其他人难以获得您的源代码。
第一种方法: 一种主要技术是使用 Proguard
等工具进行代码混淆。您可以通过将属性 minifyEnabled true
添加到 gradle:
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
使用此技术,您必须排除用户需要与之交互的 classes。在混淆配置文件中:
-keep class com.example.myapp.ThisParticularClass
第二种方法: 您可以使用的另一种方法是向库中添加一些 C/C++ 代码。您可以执行一些特定任务,例如构建字符串、特殊字符、将键和数字存储在 C/C++ class 中,然后在您的 java 中调用这些 classes。
第三种方法:虽然看起来很傻,但是真的很管用。很多反编译你的代码的程序员都没有认真到花很多时间去理解你的代码。因此,您可以通过使用接口、中间方法、额外调用和一系列其他创新方法向您的 project/library 添加额外的样板代码。