android真实分辨率和非真实分辨率
简书链接:android真实分辨率和非真实分辨率文章字数:292,阅读全文大约需要1分钟今天写代码的时候发现一个奇葩的问题,明明一样的公式,的出来的结果是不一样的,后面才知道这屏幕高度不是1920而是1794,所以的出来的值不一样。 12345 //1794/1080 1794/1080 =1.66111 this.smartScreenHeight= screenSize.height/screenSize.width>=1.8f? (float) (1.6611111111111111111111111111111f * screenSize.width) :screenSize.height;// this.smartScreenHeight=screenSize.height; 这句代码是解决一个问题,这个问题就是宽和高过长导致的按钮...
TestMain错误找不到或无法加载主类的另外一种原因,大部分人都不知道
简书链接:TestMain错误找不到或无法加载主类的另外一种原因,大部分人都不知道文章字数:55,阅读全文大约需要1分钟还有一宗原因是找到了,无法加载,之所以无法加载是因为它找其他类的时候找不到,所以也是提示这个错误,和另外两种情况又不同。
java方法签名快速生成
简书链接:java方法签名快速生成文章字数:33,阅读全文大约需要1分钟写多了jni代码一般都是可以手写签名的,但是手写难免会忘记少打多打。 123456789101112131415161718192021222324252627282930313233343536373839404142private static void getDescriptor(final StringBuilder buf, final Class<?> c) { Class<?> d = c; while (true) { if (d.isPrimitive()) { char car; if (d == Integer.TYPE) { car = 'I'; } else if (d == Void.TYPE) { ...
asmtraceClassVisitor用法
简书链接:asmtraceClassVisitor用法文章字数:11,阅读全文大约需要1分钟 12345678TraceClassVisitor cv = new TraceClassVisitor(cw, new PrintWriter(System.err));cv.visit(Opcodes.V1_5, Opcodes.ACC_PUBLIC + Opcodes.ACC_ABSTRACT + Opcodes.ACC_INTERFACE, "qssq/asm/examples/Comparable", null, "java/lang/Object", new String[] { "test/asm/examples/Mesurable" });cv.visitField(Opcodes.ACC_PUBLIC + Opcodes.ACC_FINAL + Opcodes.ACC_STATIC, "LESS", "I",...
混淆去日志的技巧经验原创
简书链接:混淆去日志的技巧经验原创文章字数:600,阅读全文大约需要2分钟 使用方法1proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),getProguardFilxe(),"proguard.cfg" 12345678910-assumenosideeffects class qssqtest.demo.test.Logs { public *;}-assumenosideeffects class qssqtest.demo.test.BuildConfig{ public *;}-assumenosideeffects class cn.qssq666.module.BuildConfig{ public *;} 1234567891011121314 -assumenosideeffects class java.io.PrintStream...
指定类字段不混淆的方式
简书链接:指定类字段不混淆的方式文章字数:37,阅读全文大约需要1分钟 12345678910-keepclassmembers public class cn.qssq666.ij.H{ private static boolean uW;}-keepclassmembers public class cn.j.H{ *** **uW; private static boolean uW;}任意类型 任意多个 如果没有生效一定是之前还有规则,把此规则提到最上面。
javaproguard混淆通配符
简书链接:javaproguard混淆通配符文章字数:1105,阅读全文大约需要4分钟 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071类名 通配符如下:| 通配符 | 含义 || --- || ? | 匹配单个字符,包名分隔符(.)除外 || * | 匹配除(.)外的任意字符 || ** | 匹配任意字符(包含.),如com.rush.**匹配com.rush包下的所有类及其所有子包的类。 |字段和方法 通配符如下:| 通配符 | 含义 || --- || <init> | 匹配所有构造方法 || <fields> | 匹配所有字段 || <methods> | 匹配所有方法 || ? | 匹配单个字符,包名分隔符(.)除外 || * | 匹配除(.)外的任意字符 |类型 通配符如下:| 通配符 | 含义 || --- ||...
androidproguardbug
简书链接:androidproguardbug文章字数:43,阅读全文大约需要1分钟 12345def getProguardFilxe(){ print "call " return "${rootDir}\\proguard\\proguard.cfg"} proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),getProguardFilxe(),"proguard.cfg" 经过测试发现不支持填写绝对路径读取,因此模块编译的时候和项目编译无法使用同一个混淆文件。