有一天我想保持一个SDK的某个类的内部接口和所属的该类不被混淆,于是我在混淆文件添加如下:
-keep class com.kw.yz24g.remote22.SensorCtrlTasker{ *; }
-keep public interface
com.kw.yz24g.remote22.SensorCtrlTasker$SensorCtrlListener{ *; }
发现怎么都还是会被混淆,后面查询资料发现
-keep public interface
com.kw.yz24g.remote22.SensorCtrlTasker$SensorCtrlListener{ *; }
只需要使用这一条就可以将该类和该类中的内部接口保持原型
有一天我想混淆一个SDK的某个类的内部接口和所属的该类,于是我在混淆文件添加如下:-keep class com.kw.yz24g.remote22.SensorCtrlTasker{ *; }-keep public interfacecom.kw.yz24g.remote22.SensorCtrlTasker$SensorCtrlListener{ *; }发现怎么都没用,后面查询资料发现-
android app混淆与打多包一直是一个麻烦。但是gradle可以帮忙打多包,比如简单配置如下即可打debug包和release包:buildTypes {
release {
// 混淆
minifyEnabled true
// Zipalign优化
zipAlignEnabled
各位亲朋好友们,各位 CSDN 的兄弟姐妹,我想死你们啦!此处应有掌声,消失了即将两个月的韩小呆,我又回来了了,再次需要掌声,呆者终于适应了新公司的各种模式(其实是手撸了一个从0-1的项目)。下面呆者将开始完成之前未完成的使命与责任。开门营业第一天,先不来难的,咱们来说说混淆吧,其实我是被友盟的混淆给坑了。最后,谢谢各位朋友的关心与支持,我们进入正题。
一、打开混淆
1、找到项目的 ap...
对于proguard的用途一般有两点,一是缩小包大小,proguard会优化字节码,移除未使用的代码,以及用短名称混淆其余的类、字段和方法,二是安全性,混淆过的代码晦涩难懂。
ProGuard对java
一颗星表示只保持该包下的类名,而子包下的类名还是会被混淆.
两颗星表示把本包和所含子包下的类名都保持
注意:用以上方法保持类后,你会发现类名虽然未混淆,但里面的具体方法和变量命名还是变了,这时如果既想保持类名,又想保持里面的内容不被混淆,我们就需要以下方法了
-keep class com.xxx.*{*;...
Android SDK由多个软件包组成,这些包是应用程序开发所必需的。这个页面列出了最重要的命令行工具,这些工具是由它们配送的包组织。
你可以安装和更新每一个软件包,使用Android Studio的SDK Manager 或者 sdkmanager 命令行工具。所有的包都被下载到您的Android SDK目录中,您可以将其定位如下:
在Android Studio, click...
混淆矩阵是评价分类模型性能的一种常用方法。它通过统计模型预测结果与真实标签之间的对应关系,将分类结果分为真正例(True Positive, TP)、假正例(False Positive, FP)、真反例(True Negative, TN)和假反例(False Negative, FN)四个部分。
混淆矩阵的形式如下:
预测为正例 预测为反例
真实为正例 TP FN
真实为反例 FP TN
根据混淆矩阵,我们可以计算出一些常见的评价指标,如准确率(Accuracy)、精确率(Precision)、召回率(Recall)和 F1 值。这些指标可以帮助我们对模型进行综合评估。
准确率是模型正确预测的样本数占总样本数的比例,即 (TP + TN) / (TP + FP + TN + FN)。
精确率是在模型预测为正例中,真正例的比例,即 TP / (TP + FP)。
召回率是在真实标签为正例中,模型预测为正例的比例,即 TP / (TP + FN)。
F1 值是精确率和召回率的调和平均数,可以综合考虑二者之间的关系,即 2 * (精确率 * 召回率) / (精确率 + 召回率)。
混淆矩阵和相关评价指标可以帮助我们了解分类模型的性能表现,从而进行模型选择和优化。
yhm2046:
Linux之/dev/hidraw*节点
有头发的猿:
Linux之/dev/hidraw*节点
吃一口AC摇摇乐:
Android12之网络共存
var.zhou:
Android系统_adb连接adbd加入密码检测二
漠漠兔八哥: