Android 加密之 打包为arr 项目依赖或者为jar

发布于:2024-04-17 ⋅ 阅读:(110) ⋅ 点赞:(0)

Android 加密之 打包为arr 项目依赖或者为jar

1.
修改build.gradle

plugins {
    //id 'com.android.application'// 1. 修改为library
    id 'com.android.library'
}

android {
    namespace 'com.dzq.iccid2'
    compileSdk 33

    defaultConfig {
        //applicationId "com.dzq.iccid2"// 2. 注释
        minSdk 16
        targetSdk 33
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled true //3. 设置为true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

2.
proguard-rules.pro
添加类如何加密事件

# 混淆所有类成员,但保留公共API接口
-keep public class com.dzq.iccid2.RootCmd {
    public <methods>;
}
# 混淆所有类成员,但保留公共API接口
-keep public class com.dzq.iccid2.SimUtils {
    public <methods>;
}

# 混淆所有其他类和方法
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontoptimize
-dontpreverify

3.
在Terminal 中输入 【报错检查Java版本】

 .\gradlew assembleRelease

可以指定版本
在文件gradle.properties

#指定版本
org.gradle.java.home=C:\\Program Files (x86)\\Java\\corretto-17.0.10

#解决方案:开启混淆,但不启用R8  --可以不用看下面两行
android.enableR8=false
android.enableR8.libraries=false

4.
在这里插入图片描述
在这里插入图片描述

接口可以被使用,代码被加密,打包成功

5.使用
加入到需要用的项目 的 libs 文件夹中
build.gradle

dependencies {
	//..
 	implementation(files("libs\\app-release.aar"))

}

在这里插入图片描述
成功使用打包后的文件


网站公告

今日签到

点亮在社区的每一天
去签到