帮助中心 > 技术文档 > 客户端SDK > Android SDK > SDK 配置

Android SDK 接入流程主要分为两个步骤(两个文档)

1、SDK配置:将对应的SDK集成到您的产品项目中,然后进行初始化代码处理;
2、SDK接入:将需要埋点的数据,按照SDK包装不同的方法进行数据上送,其中功能主要包含两大类:全埋点(自动采集数据上送)、自定义埋点(手动设置业务数据上送)。


注意:

  1. 在线maven集成、离线包集成均支持;
  2. Android SDK 要求最低系统版本为 API 21(Android 5.0);
  3. Android SDK (aar格式) 大小约为 0.3 MB。

1.集成说明

1.1 在线maven集成

1.1.1 配置仓库

Gradle 7.0 以下,在项目根目录下的build.gradle文件中配置maven地址;

buildscript {
    repositories {
        mavenCentral()
        //配置maven地址
        maven { url 'https://repo1.maven.org/maven2/' }
        ...
    }
    dependencies {
        ...
    }
}

allprojects {
    repositories {
        mavenCentral()
        //配置maven地址
        maven { url 'https://repo1.maven.org/maven2/' }
        ...
    }
}

Gradle 7.0 及以上,在 setting.gradle 中配置maven地址;

// setting.gradle 中
pluginManagement {
    repositories {
        // 配置maven地址
        maven { url 'https://repo1.maven.org/maven2/' }
        google()
        mavenCentral()
        gradlePluginPortal()
    }
}
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        // 配置maven地址
        maven { url 'https://repo1.maven.org/maven2/' }
        google()
        mavenCentral()
    }
}

1.1.2 配置插件

在项目根目录下的build.gradle文件中配置插件依赖:

buildscript {

    dependencies {
        ...
        //添加SDK插件依赖
        classpath 'com.hinadt.hicloud.android:auto-plugin:4.0.2'
        ...
    }
}
// 或者使用DSL方式集成插件
plugins {
    id 'com.android.application' version '8.1.0' apply false
    id 'com.android.library' version '8.1.0' apply false
    //添加SDK插件依赖
    id 'com.hinadt.hicloud.android' version '4.0.2' apply false
}

在项目主module目录下的build.gradle文件中配置应用插件;

apply plugin: 'com.android.application'
//配置应用插件
apply plugin: 'com.hinadt.hicloud.android'

android {
...
}

1.1.3 配置SDK

在项目主module目录下的build.gradle文件中配置SDK依赖;

apply plugin: 'com.android.application'

android {
...
}

dependencies {
    ...
    //配置SDK依赖
    implementation 'com.hinadt.hicloud.android:HinaCloudSDK:4.1.1'// 建议接入最新版本
    ...
}

1.2 离线包集成

1.2.1 配置插件

1、下载插件离线包(jar包):auto-plugin-版本.jar;资源下载

2、在项目根目录下,新建repo(自定义)目录,并把插件离线包拷贝到repo目录下;

3、在项目根目录下的build.gradle文件,配置使用本地gradle插件包,配置如下:

buildscript {
    dependencies {
        //注意:如果项目的gradle插件版本是4.0以前的,建议升级到4.0以上版本再集成;
        classpath 'com.android.tools.build:gradle:4.1.3'
        ...
        //添加 android-gradle-plugin 依赖
        classpath files('./repo/插件离线包文件名.jar')
    }
}

4、在项目主module目录下的build.gradle文件中配置应用插件;

apply plugin: 'com.android.application'
//配置应用插件
apply plugin: 'com.hinadt.hicloud.android'

android {
...
}
...

1.2.2 配置SDK

1、下载最新的SDK离线包(aar包):HinaCloudSDK-Android-版本.aar;资源下载

2、在项目的app module,或者library module目录下,新建libs目录,并把SDK离线包拷贝到libs目录下;

3、SDK离线包拷贝后,所在的module的build.gradle文件,进行配置依赖,具体配置如下:

...
android {
    ...
}

//配置依赖目录
repositories {
    flatDir {
        dirs 'libs'
    }
}

dependencies {
    // implementation fileTree(dir: 'libs', include: ['*.jar','*.aar'])//添加所有
    ...
    // 配置依赖
    implementation(name: 'xxx', ext: 'aar')  //只允许在依赖aar文件的module下调用该aar文件
或
    api (name:'xxx',ext:'aar')  //在其他依赖该library modulemodule中,也可调用该aar文件

注意:如果是组件module,除了需要改用api配置依赖,还需要额外配置,方式有两种:

方式一:
在其它所有直接或间接依赖该library module的module中配置build.gradle文件如下:

repositories {
    flatDir {
        dirs '../xxx/libs','libs'  //将xxx替换为引入aar文件的module名
    }
}

方式二:
在project的build.gradle文件中统一配置如下::

allprojects {
    repositories
        flatDir {
            dirs project(':xxx').file('libs')  //将xxx替换为引入aar文件的module名
        }
    }
}

2. 权限说明

SDK 在 AndroidManifest.xml 中注册了以下四个权限,权限及解释说明如下:

    <!-- 必须权限,允许应用访问网络,SDK 发送埋点数据需要此权限-->
    <uses-permission android:name="android.permission.INTERNET" />
    <!-- 必须权限,允许应用检测网络状态,SDK 会根据网络状态选择是否发送数据-->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <!-- 可选权限,允许应用获取设备 IMEI,采用 App 内推广和采集运营商属性时会用到此权限-->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <!-- 可选权限,允许应用获取 MAC 地址,采用 App 内推广时会用到此权限-->
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />

注意:如果想要去除 SDK 注册的权限,可以使用 tools:node=”remove” 配置,比如:

<uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove" />

3. 初始化SDK

在 Application 的 onCreate() 方法中,按如下方式进行初始化;(注意需要在主线程初始化)

public class MyApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        //应在最早的时机,进行SDK初始化;
        //延迟初始化SDK,会导致全埋点采集不准确;
        initHinaCloudSDK();
        ...
    }

    private void initHinaCloudSDK() {
        HinaConfig hinaConfig = new HinaConfig.Builder()
                .enableLog(true)
                .setServerUrl("数据接收地址")
                .build();
        // SDK 初始化
        HinaCloudSDK.init(application, hinaConfig);
    }
}

注意:
1、采集上报地址URL获取方式,请参考【采集上报地址获取】;
2、更多初始化配置,请参考【SDK接入】;

作者:王建华  创建时间:2023-02-20 13:59
最后编辑:王建华  更新时间:2024-09-05 21:06