Skip to content

Instantly share code, notes, and snippets.

View JeasonWong's full-sized avatar
‼️
15

巴掌 JeasonWong

‼️
15
  • Bytedance
  • Shanghai
View GitHub Profile
/**
* 解压原始的dex文件
*
* @param context
* @return
* @throws IOException
*/
private String unzipRAWFile(Context context) {
String apkFilePath;

gson解析时可以指定某个变量是否参与序列化与反序列化

比如:

    main(){
        String str = "{\"a\":\"1\",\"b\":\"2\",\"c\":\"3\"}";
        Custom custom = gson.fromJson(str, Custom.class);
        Log.d("@=>", custom.toString());
    }
@JeasonWong
JeasonWong / SimpleFactory.java
Last active September 7, 2017 06:21
简单工厂模式
public class SimpleFactory {
public static void main(String[] args) {
Platform platform = Platform.get();
System.out.println(platform);
}
public static class Platform {
@JeasonWong
JeasonWong / Factory.java
Created September 7, 2017 07:26
工厂方法
public class Factory {
public static void main(String[] args) {
Dog dog = new FactoryDog().create();
dog.walk();
Cat cat = new FactoryCat().create();
cat.walk();
}
@JeasonWong
JeasonWong / AbstractFactory.java
Created September 7, 2017 07:57
抽象工厂
public class AbstractFactory {
public static void main(String[] args) {
FactoryA factoryA = new FactoryA();
factoryA.createAndroid().tel();
factoryA.createIOS().play();
FactoryB factoryB = new FactoryB();
factoryB.createAndroid().tel();
factoryB.createIOS().play();
import java.io.IOException;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import org.cc.core.asm.ClassReader;
import org.cc.core.asm.ClassVisitor;
import org.cc.core.asm.ClassWriter;
import org.cc.core.asm.Label;
import org.cc.core.asm.MethodVisitor;
import org.cc.core.asm.Opcodes;
@JeasonWong
JeasonWong / javassist-获取方法的参数名
Last active September 7, 2018 10:11
javassist-getParamtersName
/**
* 获取方法参数名称
*/
@Nullable
protected static String[] getMethodParamNames(CtMethod cm) {
String[] paramNames = null;
try {
MethodInfo methodInfo = cm.getMethodInfo();
CodeAttribute codeAttribute = methodInfo.getCodeAttribute();
@JeasonWong
JeasonWong / gradle plugin.txt
Created October 17, 2018 02:50
gradle plugin
// 获取 tansformTasks
Field transformsField = Class.forName("com.android.build.gradle.internal.pipeline.TransformManager").getDeclaredField("transforms")
transformsField.setAccessible(true)
List<Transform> transforms = transformsField.get(variant.variantData.scope.getTransformManager())
import com.google.common.base.Joiner
import org.gradle.api.Project
import java.security.MessageDigest
/**
* A file utils.
*/
public class FileUtils {