基本信息
SDK名称:热力引擎 Android SDK v1.3.1.0
开发者名称:汇量云(北京)科技有限公司
SDK版本号:1.3.1.0
主要功能:热力引擎是一站式增长分析与发行决策平台,致力于帮助开发者搭建便捷、高效的数据管理中台,洞察业务运营全链路数据,制定更优增长决策。热力引擎支持全球全渠道数据管理,帮助开发者实现归因分析、用户粒度 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/" }
}
需要注意的是,根目录的 build.gradle 中 buildscript 和 allprojects 下的 repositories 都需要配置 Maven 仓库地址。
2. 根据创建产品时选择的数据存储区域使用对应的配置
采用 gradle 的集成方式,请将下方代码添加到 project 的 build.gradle 中。
2.1 中国大陆,请使用
implementation 'com.reyun.solar.engine.china:solar-engine-core:1.3.1.0'
2.2 非中国大陆,请使用
implementation 'com.reyun.solar.engine.oversea:solar-engine-core:1.3.1.0'
如果您集成 SDK 之后编译过程出现形如 com.hihonor.ads.identifier.AdvertisingIdClient$Info is defined multiple times 的错误,请将华为和荣耀的 OAID 库 exclude 掉:
implementation 'com.reyun.solar.engine.china:solar-engine-core:1.3.1.0'{
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 代表初始化成功了
第五步:配置 SDK(可选)
此方法返回的 config 配置作为可选参数,如未设置则为默认值
方法示例
SolarEngineConfig config = new SolarEngineConfig.Builder()
.logEnabled() //开启本地调试日志
.build();
调用示例
import com.reyun.solar.engine.SolarEngineConfig;
SolarEngineConfig config = new SolarEngineConfig.Builder()
.logEnabled()
.build();
配置说明:
方法名 | 参数类型 | 是否必填 | 说明 |
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,请参阅 配置多进程 |
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 |
104 | distinct_id生成失败 |
105 | 初始化期间出现异常 |
第七步:获取归因回调信息
通过回调获取归因结果
方法示例
SolarEngineConfig config = new SolarEngineConfig.Builder().build();
config.setOnAttributionListener(new OnAttributionListener() {
@Override
public void onAttributionSuccess(JSONObject attribution) {
//获取归因结果成功时执行的动作
}
@Override
public void onAttributionFail(int errorCode) {
//获取归因结果失败时执行的动作
}
});
调用示例
import com.reyun.solar.engine.SolarEngineConfig;
SolarEngineConfig config = new SolarEngineConfig.Builder().build();
config.setOnAttributionListener(new OnAttributionListener() {
@Override
public void onAttributionSuccess(JSONObject attribution) {
//获取归因结果成功时执行的动作
}
@Override
public void onAttributionFail(int errorCode) {
//获取归因结果失败时执行的动作
}
});
SolarEngineManager.getInstance().initialize(getApplicationContext(),"开发者申请的appkey",config)
注意:如果开发者通过回调方式获取归因信息,那么归因信息回调接口要与 initialize 方法绑定,否则会造成归因信息不准确,具体示例参考上方调用示例code
直接获取归因结果
除了可以在 initialize 时添加归因结果回调,也可以在之后调用 API 获取归因信息,需要注意的是直接获取归因结果的方法返回的是本地缓存,如果本地缓存还未生成,那么归因结果将会为null
方法示例
public JSONObject getAttribution();
返回值:返回归因结果信息,默认为null
调用示例
import com.reyun.solar.engine.SolarEngineManager;
import org.json.JSONObject;
JSONObject attribution = SolarEngineManager.getInstance().getAttribution();
归因errorCode 描述及 归因结果详情见:归因结果详情