如何在android studio中正确实现ProGuard?
我很难学习proguard,我需要帮助删除所有R8警告并正确执行proguard规则。我看了youtube上的大部分视频,阅读了有关proguard/proguard规则的博客、文档和文章,但到目前为止,我还有很多问题,我将一一列举。以下是我的问题:如何在android studio中正确实现ProGuard?,android,proguard,Android,Proguard,我很难学习proguard,我需要帮助删除所有R8警告并正确执行proguard规则。我看了youtube上的大部分视频,阅读了有关proguard/proguard规则的博客、文档和文章,但到目前为止,我还有很多问题,我将一一列举。以下是我的问题: 到目前为止,我知道当我创建模型类时,我需要向包中添加一个-keep类,这样它就不会被混淆,但是像这样的模型怎么样:(我是否也应该在proguard规则中添加-keep) 像RecyclerAdapter或FirestorePagingAdapter
-keep类
,这样它就不会被混淆,但是像这样的模型怎么样:(我是否也应该在proguard规则中添加-keep
)RecyclerAdapter
或FirestorePagingAdapter
这样的适配器类怎么样?我知道他们会受到混淆的影响,但我们应该让它混淆吗?还是我们应该把它加入规则
希望你能回答我所有的问题,因为我很确定有人也在proguard上苦苦挣扎,所以我希望,如果他们看到这些问题,这将帮助他们克服这种情况,而不需要在互联网上单独寻找答案。谢谢大家! 首先,您需要了解ProGurad的功能。如果我用一种非常简单的方式解释,它会将类名、变量和方法更改为其他名称(如),当有人试图从apk解码代码时,这些名称很难读取 现在,您需要记住,它不会混淆XML文件和Android组件(活动/服务等),基本上是您在manifest.XML中声明的所有类 因此,除此之外,您还可以混淆所有内容(Java/Kotlin)。但是由于某些依赖关系,您必须告诉ProGurad不要混淆少数文件
关于你的问题,下面是答案
首先,您需要了解ProGurad的功能。如果我用一种非常简单的方式解释,它会将类名、变量和方法更改为其他名称(如),当有人试图从apk解码您的代码时,这些名称很难读取 现在,您需要记住,它不会混淆XML文件和Android组件(活动/服务等),基本上是您在manifest.XML中声明的所有类 因此,除此之外,您还可以混淆所有内容(Java/Kotlin)。但是由于某些依赖关系,您必须告诉ProGurad不要混淆少数文件
关于你的问题,下面是答案
public class Constants {
public static final int ERROR_DIALOG_REQUEST = 9001;
public static final int PERMISSIONS_REQUEST_ENABLE_GPS = 9002;
public static final int PERMISSIONS_REQUEST_ACCESS_FINE_LOCATION = 9003;
public static final String LOG_DB = "DB_Error";
}
//Or like this:
public class CameraView extends SurfaceView implements SurfaceHolder.Callback {
public CameraView(Context context) {
super(context);
getHolder().addCallback(this);
setFocusableInTouchMode(true);
setFocusable(true);
requestFocus();
}
@Override
public void surfaceCreated(SurfaceHolder holder) { }
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { }
@Override
public void surfaceDestroyed(SurfaceHolder holder) { }
}