美文网首页
jar包混淆

jar包混淆

作者: Leero丶 | 来源:发表于2019-06-05 17:21 被阅读0次

生成混淆的jar包需要在module的build.gradle文件中添加以下两个脚本函数,最后运行对应的gradle指令即可。

task buildJar(dependsOn: ['assembleRelease'], type: Jar) {
    build_type = 1
    //后缀名
    extension = "jar"
    //最终的 Jar 包名
    archiveName = "${project.getName()}-release.jar"
    //需打包的资源所在的路径集
    def srcClassDir = [project.buildDir.absolutePath + "/intermediates/classes/release"]
    def srcKotlinClassDir = [project.buildDir.absolutePath + "/tmp/kotlin-classes/release"]
    //初始化资源路径集
    from srcClassDir
    from srcKotlinClassDir
//    from fileTree(dir: 'src/main', includes: ['assets/**'])
    //去掉不要的类
    exclude('io/reactivex/android/R.class')
    //需要打包的类
    include('com/smartahc/android/smartble/*.class')
    include('com/smartahc/android/smartble/**/*.class')
//    include('assets/**')
}
task buildProguardJar(dependsOn: ['buildJar'], type: ProGuardTask) {
//    Android 默认的 proguard 文件
//    configuration android.getDefaultProguardFile('proguard-android.txt')
    //会根据该文件对 Jar 进行混淆,注意:需要在 manifest 注册的组件也要加入该文件中
    configuration 'proguard-rules.pro'
    String inJar = buildJar.archivePath.getAbsolutePath()
    //输入 jar
    injars inJar
    //输出 jar
    outjars inJar.substring(0, inJar.indexOf(".")) + "_proguard.jar"
    //设置不删除未引用的资源(类,方法等)
    dontshrink
    AppPlugin appPlugin = getPlugins().findPlugin(AppPlugin)
    if (appPlugin != null) {
        List<String> runtimeJarList
        if (appPlugin.getMetaClass().getMetaMethod("getRuntimeJarList")) {
            runtimeJarList = appPlugin.getRuntimeJarList()
        } else if (android.getMetaClass().getMetaMethod("getBootClasspath")) {
            runtimeJarList = android.getBootClasspath()
        } else {
            runtimeJarList = appPlugin.getBootClasspath()
        }

        for (String runtimeJar : runtimeJarList) {
            //给 proguard 添加 runtime
            libraryjars(runtimeJar)
        }
        build_type = 2
    }
}
image.png

相关文章

  • jar包混淆

    生成混淆的jar包需要在module的build.gradle文件中添加以下两个脚本函数,最后运行对应的gradl...

  • 事件分发库-EventBus

    github 准备 下载jar包 eventbus-3.1.1.jar 混淆 http://greenrobot....

  • Android Studio打Jar包方式(可混淆)

    一、普通生成Jar包 二、 普通生成Jar包自定义类名jar生成方式,可以去除资源 三、混淆后的jar生成方式,可...

  • Jar包及混淆

    几年前自学android的时候就比葫芦画瓢的整过aar,当时好像是为了学自定义 view,最后还把aar发布到了J...

  • gradle脚本生成jar包

    生成Jar包 指定模块下执行 gradle makeJar 生成混淆jar idea中打包所有jar为可发布tar...

  • Android Studio 混淆配置

    0. 配置标准 1. 输出混淆了的 jar 包 1. build.gradle 脚本 生成 jar 包 上面这个就...

  • Android里混淆jar包

    Android里,使用Ellispe混淆jar包的时候,如果jar包里没有访问资源文件的代码,那么直接配置prog...

  • Android studio多module混淆成一个Jar

    Github源码:https://github.com/AnJiaoDe/MakeJar 混淆Jar包,首先得有一...

  • Android jar包的混淆

    所有的App都在CPU上裸奔。 既然机器能跑,那么机器就能识别这些代码,混淆的意义是为了不让别人识别,因为代码中的...

  • 使用Proguard混淆jar包

    ProGuard下载地址:http://download.csdn.net/detail/kong_gu_you_...

网友评论

      本文标题:jar包混淆

      本文链接:https://www.haomeiwen.com/subject/ruysxctx.html