umeng-analytics-integration

自动将友盟Android统计SDK集成到现有Android项目中,包括环境检查、项目验证、SDK集成、编译验证和logcat验证。

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "umeng-analytics-integration" with this command: npx skills add squall0925/umeng-analytics-integration

友盟Android统计SDK集成Skill

功能说明

自动将友盟Android统计SDK集成到现有Android项目中,简化SDK集成流程。

核心功能

  1. 环境检查 - 自动检测Java、Android SDK、adb等开发工具
  2. 项目验证 - 验证目标Android项目完整性并尝试编译
  3. 参数交互 - 引导用户输入appkey和channel,支持占位符模式
  4. SDK集成 - 自动完成Maven仓库、依赖、权限、混淆、Application类配置
  5. 编译验证 - 集成后编译验证
  6. SDK验证 - 通过logcat日志验证SDK是否成功上报数据
  7. 回滚机制 - 提供回滚脚本恢复修改

前置要求

必需工具

  • ✅ Java环境 (JDK 17+)
  • ✅ Android SDK (配置ANDROID_HOME或ANDROID_SDK_ROOT)
  • ✅ 可编译的Android项目

可选工具

  • ⚠️ adb工具 (仅SDK验证时需要)
  • ⚠️ Android设备或模拟器 (仅SDK验证时需要)

使用方式

基本用法(交互式)

python scripts/main.py --project-path /path/to/android/project

运行后会引导你输入:

  • appkey: 友盟后台获取的应用标识
  • channel: 应用分发渠道(如: googleplay, huawei)

指定app模块

python scripts/main.py --project-path /path/to/project --app-module myapp

非交互式模式(传递参数)

如果需要避免交互提示,可以直接传递参数:

echo -e "y\nyour_appkey\nyour_channel\ny" | python scripts/main.py --project-path /path/to/project

或使用占位符:

echo -e "n\ny" | python scripts/main.py --project-path /path/to/project

参数说明

参数必需默认值说明
--project-path-Android项目路径
--app-moduleappApp模块名称

工作流程

步骤1: 🔍 环境检查
  ↓
步骤2: 📂 项目验证(含编译验证)
  ↓
步骤3: ⌨️  参数交互(appkey + channel)
  ↓
步骤4: 📦 SDK集成
  ├─ 添加Maven仓库
  ├─ 添加SDK依赖
  ├─ 配置权限
  ├─ 添加混淆规则
  └─ 创建/修改Application类
  ↓
步骤5: 🔨 编译验证
  ↓
步骤6: 📱 SDK验证(logcat)
  ↓
步骤7: 📋 生成报告

SDK集成内容

1. Maven仓库配置

在项目级settings.gradle.kts中配置(Version Catalogs模式):

dependencyResolutionManagement {
    repositories {
        mavenCentral()
        maven { setUrl("https://repo1.maven.org/maven2/") }
    }
}

2. SDK依赖

Version Catalogs模式(推荐):

gradle/libs.versions.toml中定义:

[versions]
umeng-common = "+"
umeng-asms = "+"

[libraries]
umeng-common = { module = "com.umeng.umsdk:common", version.ref = "umeng-common" }
umeng-asms = { module = "com.umeng.umsdk:asms", version.ref = "umeng-asms" }

app/build.gradle.kts中引用:

dependencies {
    implementation(libs.umeng.common)
    implementation(libs.umeng.asms)
}

传统模式:

dependencies {
    implementation("com.umeng.umsdk:common:+")
    implementation("com.umeng.umsdk:asms:+")
}

3. 权限配置

AndroidManifest.xml中添加:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

4. 混淆配置

proguard-rules.pro中添加:

-keep class com.umeng.** {*;}
-keep class org.repackage.** {*;}
-keep class com.uyumao.** { *; }
-keepclassmembers class * {
   public <init> (org.json.JSONObject);
}

5. Application类

创建或修改Application类,添加SDK初始化代码:

Kotlin版本:

class UmengApplication : Application() {
    override fun onCreate() {
        super.onCreate()
        UMConfigure.setLogEnabled(true)
        UMConfigure.preInit(this, "your_appkey", "your_channel")
        
        Thread {
            UMConfigure.init(
                this,
                "your_appkey",
                "your_channel",
                UMConfigure.DEVICE_TYPE_PHONE,
                null
            )
        }.start()
    }
}

常见问题

Q1: 提示缺少Java环境?

A: 安装JDK 17或更高版本:

# macOS
brew install openjdk@17

# Linux
sudo apt install openjdk-17-jdk

# Windows
# 下载: https://adoptium.net/

Q2: 提示Android SDK未配置?

A: 安装Android Studio,它会自动配置环境变量。或手动配置:

# macOS
export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$ANDROID_HOME/platform-tools:$PATH

# Linux/Ubuntu
export ANDROID_HOME=$HOME/Android/Sdk
export PATH=$ANDROID_HOME/platform-tools:$PATH

# 在~/.bashrc或~/.zshrc中添加上述配置
source ~/.bashrc  # 使配置生效

Ubuntu安装Android SDK:

# 方法1: 安装Android Studio(推荐)
sudo snap install android-studio --classic

# 方法2: 命令行安装SDK Tools
sudo apt install wget unzip
wget https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip
unzip commandlinetools-linux-11076708_latest.zip
mkdir -p $HOME/Android/Sdk/cmdline-tools
mv cmdline-tools $HOME/Android/Sdk/cmdline-tools/latest

# 接受license并安装必要组件
export ANDROID_HOME=$HOME/Android/Sdk
$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --licenses
$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager "platform-tools" "platforms;android-34" "build-tools;34.0.0"

Q3: 项目编译失败?

A: SDK集成前项目必须可编译。请:

  1. 在Android Studio中打开项目
  2. 修复所有编译错误
  3. 确保能成功生成APK
  4. 再运行SDK集成

Q4: 使用占位符集成后怎么办?

A: 集成时需要替换为真实值:

  1. 在友盟后台创建应用获取appkey
  2. 打开Application类
  3. 替换YOUR_UMENG_APPKEY为真实appkey
  4. 替换YOUR_CHANNEL为真实channel
  5. 重新编译运行

Q5: 如何验证SDK集成成功?

A: 运行应用后查看logcat日志:

adb logcat | grep "UMConfigure"

看到以下日志说明成功:

本次启动数据: 发送成功!

Q6: 集成失败如何回滚?

A: 使用回滚脚本:

python scripts/rollback.py --backup-dir /path/to/backup

Q7: 支持多模块项目吗?

A: 支持,使用--app-module参数指定:

python scripts/main.py --project-path /path/to/project --app-module myapp

Q8: 已有Application类会怎么处理?

A: 自动修改现有Application类:

  • 备份原文件
  • 在onCreate方法尾部追加SDK初始化代码
  • 保持原有逻辑不变

技术支持

版本历史

v1.1.0 (2026-04-16)

  • 完整实现SDK集成逻辑
  • 支持Version Catalogs依赖管理
  • 支持Kotlin DSL和Groovy语法
  • 支持settings.gradle.kts配置
  • Application类在正确包路径下创建
  • AndroidManifest.xml自动注册Application类
  • 整个工程目录备份回滚机制
  • 自动配置JAVA_HOME到gradle.properties
  • 实测验证通过(真实设备+logcat)
  • 添加Ubuntu/Linux环境支持说明
  • 添加非交互式使用模式

v1.0.0 (2026-04-15)

  • 初始版本
  • 实现基础框架
  • 实现环境检查
  • 实现项目验证
  • 实现参数交互

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.