安卓基础(编译.Class)

方法 安全性 维护性 开源友好度
删除.java用.class ❌ 极低 ❌ 差
代码混淆 (ProGuard) ✅ 中等 ✅ 易
AAR 库模块 ✅ 高 ✅ 易

对于.class

步骤 1:编译生成 .class 文件

  1. ​打开终端​ ​(Android Studio 底部的 Terminal 标签页)

  2. 导航到你的模块目录(通常是 app 或模块名):

bash 复制代码
cd app  # 进入你的模块目录

执行 Gradle 编译命令生成 .class 文件:

bash 复制代码
./gradlew compileDebugJavaWithJavac  # 调试版本
# 或发布版本
./gradlew compileReleaseJavaWithJavac

​找到 .class 文件​​:

  • 生成路径:app/build/intermediates/javac/debug/classes/your/package/name/SecondActivity.class
  • 示例(包名为 com.example.app):
bash 复制代码
app/build/intermediates/javac/debug/classes/com/example/app/SecondActivity.class

步骤 2:复制 .class 文件到源码目录

  1. 创建用于存放字节码的特殊目录(​非标准做法,慎用!​):
bash 复制代码
mkdir -p app/src/main/java/com/example/app/bytecode

复制编译好的 .class 文件到源码目录:

bash 复制代码
cp app/build/intermediates/javac/debug/classes/com/example/app/SecondActivity.class app/src/main/java/com/example/app/bytecode/

步骤 3:修改源码使用反射加载类

java 复制代码
// 在调用 SecondActivity 的地方(如 MainActivity.java)
try {
    // 动态加载编译后的类
    Class<?> secondActivityClass = Class.forName("com.example.app.bytecode.SecondActivity");
    
    // 启动 Activity(假设 SecondActivity 继承自 Activity)
    Intent intent = new Intent(this, secondActivityClass);
    startActivity(intent);
} catch (ClassNotFoundException e) {
    e.printStackTrace();
    // 处理异常
}

步骤 4:删除原始源代码

  1. 删除 SecondActivity.java

步骤 5:验证构建

  • ​手动删除 build 目录​(避免残留缓存)
  • 重新构建项目:
bash 复制代码
./gradlew clean assembleDebug

⚠️ 重要警告 & 替代方案

  1. ​反编译风险​​:

    • .class 文件可被工具如 jd-gui 轻松反编译成源码。
    • ​黑客只需10秒就能看到你的"隐藏"代码​
相关推荐
hai_android12 小时前
Kotlin / Android 常用函数使用示例手册
android·java·kotlin
hai_android14 小时前
Android MeasureSpec 详解
android·java·kotlin
又见情义15 小时前
RK3568 Android 13 本地 U 盘 OTA 升级实战:基于 RKUpdateService 的完整流程
android
Godikov16 小时前
Android10后台弹窗与APK自动更新
android
又见情义17 小时前
RK3568 Android 13 USB OTG/Host 切换调试经验分享
android
终端安全笔记18 小时前
iOS 27 之后「策略空转」:设备升级不报错,但旧策略不再管它
android·网络·安全·ios·智能手机
JMchen19 小时前
实战案例:实现120fps流畅的渐变进度条
android·kotlin·canvas
敲代码的瓦龙20 小时前
Jetpack?DataBinding!!!
android·java·开发语言·mysql·android-studio
Android-Flutter21 小时前
Compose CompositionLocal 详解
android·compose
三少爷的鞋1 天前
Kotlin 协程闯关:看代码,猜结果
android