菜单

快速集成

基本信息

SDK名称:热力引擎 Android SDK v1.3.4

开发者名称:汇量云(北京)科技有限公司

SDK版本号:1.3.4

主要功能:热力引擎是一站式增长分析与发行决策平台,致力于帮助开发者搭建便捷、高效的数据管理中台,洞察业务运营全链路数据,制定更优增长决策。热力引擎支持全球全渠道数据管理,帮助开发者实现归因分析、用户粒度 ROI 分析,能有效衡量渠道价值,为投放和变现策略调优提供全方位数据支持。同时,提供应用内埋点及参数管理,配合多种分析模型与 AB 测试功能,全面还原用户全生命周期旅程,挖掘用户需求及业务增长点,快速验证并推行产品迭代优化,为开发者提升业务运营效率,实现规模化增长赋能。

适用范围:适用于Android 5.0(APILevel 21)及以上的操作系统。

隐私政策链接: https://www.solar-engine.com/privacyPolicy.html

合规指南:详见本页面底部合规指南内容。

第一步:获取 Appkey

Appkey 查询路径:资产管理-应用管理-16位 Appkey(即应用 ID)。

文章图片

 

第二步:获取 SDK

此方法不适用上架传音应用商店,如需上架传音应用商店请联系运营

1. maven 仓库配置

需要在项目根目录的 build.gradle 文件中添加 maven 仓库配置,具体配置如下:

repositories {
   google()
   jcenter()
   mavenCentral()

   //SE SDK仓库地址
   maven { url "https://maven-android.solar-engine.com/repository/se_sdk_for_android/" }
   maven { url "https://developer.huawei.com/repo/" }
   maven { url "https://developer.hihonor.com/repo/" } 
}

 

上面maven-android-cn.solar-engine.com地址如果拉取失败可以使用下面备用地址尝试:

https://maven-android-cn.solar-engine.com/repository/se_sdk_for_android/

需要注意的是,根目录的 build.gradle 中  buildscript 和 allprojects 下的 repositories 都需要配置 Maven 仓库地址。

2. 根据创建产品时选择的数据存储区域使用对应的配置

采用 gradle 的集成方式,请将下方代码添加到 project 的 build.gradle 中。

2.1 中国大陆,请使用

implementation 'com.reyun.solar.engine.china:solar-engine-core:1.3.4'

2.2 非中国大陆,请使用

implementation 'com.reyun.solar.engine.oversea:solar-engine-core:1.3.4'

SDK Demo下载地址

如果您集成 SDK 之后编译过程出现形如 com.hihonor.ads.identifier.AdvertisingIdClient$Info is defined multiple times 的错误,请将华为和荣耀的 OAID 库 exclude 掉:

implementation 'com.reyun.solar.engine.china:solar-engine-core:1.3.4' 

{

    exclude group: 'com.huawei.hms', module: 'ads-identifier'

    exclude group: 'com.hihonor.mcs', module: 'ads-identifier'

}

 

第三步:配置 AndroidManifest

在项目中找到项目配置文件 AndroidManifest.xml,加入如下权限:

//网络相关权限(必选)
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

//IMEI相关权限(可选)
<uses-permission android:name="android.permission.READ_PHONE_STATE" />


注:android.permission.READ_PHONE_STATE 为非必要权限,如您根据自身需要选择收集用户IMEI且 Android 系统版本在 6.0 以上,则您需要先行向用户动态申请此权限并取得客户授权同意。

 

如果打包时需要增加混淆,请将下方代码增加到混淆配置文件中

-keep class com.reyun.** {*; }
-keep class route.**{*;}
-keep interface com.reyun.** {*; }
-keep interface route.**{*;}
-dontwarn com.reyun.**
-dontwarn org.json.**
-keep class org.json.**{*;}
# Google lib库
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient {
    com.google.android.gms.ads.identifier.AdvertisingIdClient$Info getAdvertisingIdInfo(android.content.Context);
}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$Info {
    java.lang.String getId();
    boolean isLimitAdTrackingEnabled();
}
-keep public class com.android.installreferrer.** { *; }
# 如果使用到了获取oaid插件,请添加以下混淆策略
-keep class com.huawei.hms.**{*;}
-keep class com.hihonor.**{*;}

第四步:初始化 SDK

在应用启动时需要先初始化 SDK,初始化时 SDK 不采集任何个人信息也不会向热力引擎上报数据,

请确保用户同意《隐私政策》后再使用其他方法

方法示例

public synchronized void preInit(Context context, String appKey)

参数说明

参数名称 参数含义 参数类型 是否必传
context 应用程序上下文对象 Context 是
appKey 第一步获取的 Appkey String 是

调用示例

import com.reyun.solar.engine.SolarEngineManager;

SolarEngineManager.getInstance().preInit(context, "第一步获取的 Appkey");

如果开启了本地调试日志,看到 solar engine sdk preInit success 代表初始化成功了

第五步:初始化配置 (可选)

SolarEngineConfig参数说明

本配置类用于初始化 SDK 时,对服务能力与数据采集行为进行精细化控制,分为核心功能开关、辅助功能开关、数据采集开关三类参数。

此方法返回的 config 配置作为可选参数,如未设置则为默认值


调用示例

import com.reyun.solar.engine.SolarEngineConfig; 

SolarEngineConfig config = new SolarEngineConfig.Builder() 
.logEnabled()
.build();

 

一、核心功能开关配置

控制 SDK 核心业务能力的启用 / 停用,直接决定归因、分析等核心服务是否生效。注:关闭相关核心功能开关将影响数据上报链路,您将无法在热力引擎后台正常使用该模块的全部功能。
 
方法名 参数类型 是否必填 说明
enableAttribution boolean 否 是否开启归因服务,默认开启。关闭后将停用全部归因相关能力,无法获取归因结果、延迟deeplink、deeplink等相关服务;若同时关闭分析服务,SDK 将停止上报所有数据。
enableAnalytics boolean 否  是否开启分析服务,默认开启。关闭后 A/B 测试、在线参数等所有分析类功能均无法使用;若同时关闭归因服务,SDK 将不再上报任何数据。

二、辅助功能开关

方法名 参数类型 是否必填 说明
logEnabled void 否 是否开启本地调试日志,默认为不开启
enable2GReporting boolean 否 是否在2G网络时上报事件,默认为不上报
isDebugModel boolean 否 是否开启 Debug 模式,默认为不开启,使用前请查看功能说明
isGDPRArea boolean 否 如果你的应用在欧盟地区运营,则需要符合欧盟隐私保护法律的规定(关于GDPR),请务必在用户拒绝采集设备敏感信息时设置 isGDPRArea(true) ,默认为采集
adPersonalizationEnabled boolean 否 如果你的应用在欧盟地区运营并且在Google投放您的应用,请务必将用户是否允许Google将其数据用于个性化广告的意见结果传入该属性,以确保您符合Google对欧盟用户意见征求政策的新政策
adUserDataEnabled boolean 否 如果你的应用在欧盟地区运营并且在Google投放您的应用,请务必将用户是否同意将其数据发送到Google的意见结果传入该属性,以确保您符合Google对欧盟用户意见征求政策的新政策
setCoppaEnabled boolean 否 如果您的应用需要符合《儿童在线隐私权保护法》(COPPA) 规定,设置 setCoppaEnabled = true
setKidsAppEnabled boolean 否 如果您的应用会定向到不满 13 周岁的儿童,则需要将其标记为儿童应用 (Kids App),设置 setKidsAppEnabled = true
setFbAppID
String 否 如果海外开发者需要用到meta归因,此处设置meta appid
enableDeferredDeeplink
boolean boolean 是否启用延迟deeplink功能,默认为FALSE
supportMultiProcess
boolean 否

是否启用多进程支持,默认为 false,即不启用。该功能从 v_1.2.9.4 版本开始支持,如需使用多进程的能力,请升级 SDK 到 v_1.2.9.4 及后续版本。

如果设置改属性为 true,请参阅 配置多进程

enableSeparatedAttribution
boolean 否

是否启用新版归因功能,启动后能快速获取对应的归因结果。

三、数据采集开关

控制ipv6、OAID、UA等参数等数据是否采集。注:关闭对应数据采集参数后,将会影响归因、分析模块的数据能力,您将无法在热力引擎后台正常使用相关功能。

方法名 参数类型 是否必填 说明
enableLanguage boolean 否 是否采集设备语言, 不采集设置为false,默认 true(采集)
enableLocale boolean 否 是否采集设备所在地区, 不采集设置为false,默认 true(采集)
enableTimeZone boolean 否 是否采集设备所在时区, 不采集设置为false,默认 true(采集)
enableScreenWH boolean 否 是否采集屏幕宽度/屏幕高度, 不采集设置为false,默认 true(采集)
enableDensity boolean 否 是否采集屏幕密度, 不采集设置为false,默认 true(采集)
enableNetworkType boolean 否 是否采集网络状态, 不采集设置为false,默认 true(采集)
enableUA boolean 否 是否采集UA, 不采集设置为false,默认 true(采集)

isOAIDEnabled

boolean 否

是否允许采集 OAID ,不采集配置为 false

isImeiEnabled

boolean 否

是否允许采集 IMEI ,不采集配置为 false

isAndroidIDEnabled

boolean 否

是否允许采集 AndroidID ,不采集配置为 false

enableIPV6Address
boolean 否

是否采集ipv6地址,默认为true(仅中国大陆支持)

withDisableOAIDRetry

boolean 否

是否禁用 OAID 获取重试,默认为 false

withDisableGAIDRetry

boolean 否

是否禁用 GAID 获取重试,默认为 false

 

第六步:使用 SDK

请在 Application 的 onCreate() 中调用此方法。

必须保证此方法在热力引擎 SDK 其他方法之前成功调用,成功之前其他方法不生效(设置公共事件属性、设置channel、设置预置事件自定义属性方法除外)。

方法示例

public synchronized void initialize(Context context, String appKey, SolarEngineConfig config,OnInitializationCallback onInitializationCallback)

参数说明

参数名称 参数含义 参数类型 是否必传
context 应用程序上下文对象 Context 是
appKey 第一步获取的 Appkey String 是
config 配置项可以为空,如果为空则为默认值 SolarEngineConfig 否
OnInitializationCallback 回调 OnInitializationCallback 否

调用示例

import com.reyun.solar.engine.SolarEngineManager;
import com.reyun.solar.engine.SolarEngineConfig;
SolarEngineConfig config = new SolarEngineConfig.Builder().build(); 
SolarEngineManager.getInstance().initialize(context, "第一步获取的 Appkey",config, new OnInitializationCallback() {
     @Override
     public void onInitializationCompleted(int code) {
            if(code == 0) {
                 //成功
            } else {
                //失败,具体失败原因参考下方code码释义
            }
     }
});

如果开启了本地调试日志,看到 solar engine SDK init success 代表成功了

回调code码:

0 成功
101 SDK未初始化
102 appkey非法
103 context为null
105 初始化期间出现异常
 
 

第七步:获取归因回调信息

「新版」通过回调获取归因结果-方法示例(推荐)

SolarEngineConfig config = new SolarEngineConfig.Builder().build();

// 启用新版归因功能;注:不设置这个属性,下面回调等接口不会返回
builder.enableSeparatedAttribution(true);
// 监听拉新归因结果
config.setUAAttributionListener(new OnAttributionListener() {
        @Override
        public void onAttributionSuccess(JSONObject attribution) {
             //获取归因结果成功时执行的动作     
        }
        @Override
        public void onAttributionFail(int errorCode) {
            //获取归因结果失败时执行的动作
        }
});

// 监听拉活归因结果
config.setREAttributionListener(new OnAttributionListener() {
        @Override
        public void onAttributionSuccess(JSONObject attribution) {
             //获取归因结果成功时执行的动作     
        }
        @Override
        public void onAttributionFail(int errorCode) {
            //获取归因结果失败时执行的动作
        }
});

SolarEngineManager.getInstance().initialize(getApplicationContext(),"开发者申请的appkey",config)

重要提示:使用回调模式接收归因结果时,归因监听器必须在 initialize 初始化阶段完成配置之前。若初始化之后再设置监听器,会导致归因结果获取不准确,可参考上方代码示例。

「新版」直接获取归因结果-方法示例(推荐)

除了在初始化时添加归因回调,也可业务后续主动调用 API 读取归因结果。
重要提示:该接口读取设备本地缓存数据,缓存尚未生成完成时,返回值为 null。
import com.reyun.solar.engine.SolarEngineManager;
import org.json.JSONObject;

// 获取拉新归因结果
JSONObject uaAttribution = SolarEngineManager.getInstance().getUAAttributionData();

// 获取拉活归因结果
JSONObject reAttribution = SolarEngineManager.getInstance().getREAttributionData();

归因错误码(errorCode)说明与归因返回字段详情,请参考:归因结果详情

 

「旧版」回调获取归因结果-方法示例(即将下线)  

SolarEngineConfig config = new SolarEngineConfig.Builder().build();

// 旧版归因功能
builder.enableSeparatedAttribution(false);

// 旧版监听获取归因结果示例,旧版归因结果拉活和拉新数据在一起返回
config.setOnAttributionListener(new OnAttributionListener() {
    @Override
    public void onAttributionSuccess(JSONObject attribution) {
        Log.d("Demo", "onAttributionSuccess:" + attribution.toString());
    }

    @Override
    public void onAttributionFail(int errorCode) {
        Log.d("Demo", "onAttributionFail:" + errorCode);
    }
});

SolarEngineManager.getInstance().initialize(getApplicationContext(),"开发者申请的appkey",config)

「旧版」直接获取归因结果-方法示例(即将下线)

// 直接获取旧版归因结果
public JSONObject getAttribution();

最近修改: 2026-08-31Powered by