Token导航 LogoToken导航TokenDH.com
前端设计需要联网github未标认证来源可访问许可证需确认审计异常

android-proguard-setupAndroid 混淆器设置

Agent Skill

android-proguard-setup 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

303

周安装

13

GitHub Stars

3

下载量

106
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:android-proguard-setup(Android 混淆器设置)
来源仓库:https://github.com/hitoshura25/claude-devtools
仓库路径:skills/android-proguard-setup
安装命令:
npx skills add https://github.com/hitoshura25/claude-devtools --skill android-proguard-setup
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/hitoshura25/claude-devtools --skill android-proguard-setup

简介

该技能用于为 Android 项目配置 ProGuard/R8 代码混淆和资源压缩规则。

  • 适用于需要优化 APK 大小和提升代码安全性的发布构建场景。
  • 自动生成安全的默认混淆规则,保留调试信息以便问题排查。
  • 使用前需确保项目使用 Gradle Kotlin DSL,并注意不会修改现有构建逻辑。
  • android-proguard-setup 属于前端设计类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

Android ProGuard/R8 Setup

Configures ProGuard/R8 code minification and resource shrinking with safe default rules.

Prerequisites

  • Android project with Gradle
  • Kotlin DSL (build.gradle.kts)

Inputs

InputRequiredDefaultDescription
project_pathYes.Android project root

Process

Step 1: Create ProGuard Rules File

Create or update app/proguard-rules.pro with safe defaults:

cat > app/proguard-rules.pro << 'EOF'
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in the Android SDK.

# Keep line numbers for debugging stack traces
-keepattributes SourceFile,LineNumberTable

# Hide the original source file name
-renamesourcefileattribute SourceFile

# Keep data classes and their fields
-keepclassmembers class * {
    @kotlinx.serialization.SerialName <fields>;
}

# Keep Parcelables
-keepclassmembers class * implements android.os.Parcelable {
    public static final android.os.Parcelable$Creator *;
}

# Keep custom views
-keep public class * extends android.view.View {
    public <init>(android.content.Context);
    public <init>(android.content.Context, android.util.AttributeSet);
    public <init>(android.content.Context, android.util.AttributeSet, int);
}

# Keep native methods
-keepclasseswithmembernames class * {
    native <methods>;
}
EOF

Note: If proguard-rules.pro already exists, ask the user if they want to:

  • Replace with safe defaults
  • Append safe defaults to existing rules
  • Keep existing rules as-is

Step 2: Enable Minification in build.gradle.kts

Update app/build.gradle.kts to enable ProGuard/R8:

android {
    // ... existing config ...

    buildTypes {
        release {
            isMinifyEnabled = true
            isShrinkResources = true
            proguardFiles(
                getDefaultProguardFile("proguard-android-optimize.txt"),
                "proguard-rules.pro"
            )
        }
    }
}

Detection logic:

  • Check if buildTypes.release already exists
  • Check if isMinifyEnabled is already set
  • Preserve existing proguardFiles if present, append if needed

Verification

MANDATORY: Run these commands:

# Verify ProGuard rules file exists
test -f app/proguard-rules.pro && echo "✓ ProGuard rules exist"

# Verify minification is enabled
grep "isMinifyEnabled = true" app/build.gradle.kts && echo "✓ Minification enabled"

# Verify resource shrinking is enabled
grep "isShrinkResources = true" app/build.gradle.kts && echo "✓ Resource shrinking enabled"

Expected output:

  • ✓ ProGuard rules exist
  • ✓ Minification enabled
  • ✓ Resource shrinking enabled

Outputs

OutputLocationDescription
ProGuard rulesapp/proguard-rules.proSafe default keep rules
Build configapp/build.gradle.ktsMinification enabled

Troubleshooting

"Build fails with ProGuard error"

Cause: ProGuard removed required classes Fix: Add keep rules for the failing classes to proguard-rules.pro

"App crashes on release but not debug"

Cause: ProGuard obfuscated code that uses reflection Fix: Add keep rules for classes used via reflection

Library-Specific ProGuard Rules

Add these rules based on your project dependencies:

Retrofit/OkHttp

-keepattributes Signature
-keepattributes *Annotation*
-keep class okhttp3.** { *; }
-keep interface okhttp3.** { *; }
-dontwarn okhttp3.**
-keepattributes Signature, InnerClasses, EnclosingMethod
-keepclassmembers,allowshrinking,allowobfuscation interface * {
    @retrofit2.http.* <methods>;
}

Gson

-keepattributes Signature
-keepattributes *Annotation*
-keep class com.google.gson.** { *; }
-keep class * implements com.google.gson.TypeAdapterFactory
-keep class * implements com.google.gson.JsonSerializer
-keep class * implements com.google.gson.JsonDeserializer
-keepclassmembers,allowobfuscation class * {
    @com.google.gson.annotations.SerializedName <fields>;
}

Kotlin Serialization

-keepattributes *Annotation*, InnerClasses
-dontnote kotlinx.serialization.AnnotationsKt
-keepclassmembers class kotlinx.serialization.json.** {
    *** Companion;
}

Health Connect

-keep class androidx.health.connect.client.** { *; }
-keep class androidx.health.platform.client.** { *; }

Room

-keep class * extends androidx.room.RoomDatabase
-keep @androidx.room.Entity class *

ProGuard Test Configuration

Important: Test libraries should NEVER be in release builds. They are androidTestImplementation only.

If you need to run instrumented tests on release builds (e.g., to verify signing), use a separate test ProGuard file:

Step 1: Create app/proguard-rules-androidTest.pro:

# Keep EVERYTHING in test APK - we only care about signing, not size
-dontobfuscate
-dontoptimize
-dontshrink
-keep class ** { *; }

Step 2: Update app/build.gradle.kts:

android {
    buildTypes {
        release {
            isMinifyEnabled = true
            signingConfig = signingConfigs.getByName("release")
            proguardFiles(
                getDefaultProguardFile("proguard-android-optimize.txt"),
                "proguard-rules.pro"
            )
            // Keep-all rules for test APK only
            testProguardFiles("proguard-rules-androidTest.pro")
        }
    }
    testBuildType = "release"
}

Result:

  • App APK: Minified with release key ✅
  • Test APK: Not minified, signed with release key ✅
  • Both have matching signatures for instrumentation ✅

Completion Criteria

  • app/proguard-rules.pro exists with safe defaults
  • isMinifyEnabled = true in app/build.gradle.kts
  • isShrinkResources = true in app/build.gradle.kts
  • ProGuard rules syntax is valid

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

33.83%
按下载量换算36

Claude

28.62%
按下载量换算30

Cursor

19.71%
按下载量换算21

Gemini CLI

9.12%
按下载量换算10

安全审计

Gen Agent Trust Hub

未通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills