基础集成

1623720669037-65cb6577-6982-424c-bf1e-2dbf72950044

1 域名设置

在预初始化之前,开发者需要在调用SDK任意其它接口之前最先调用UMConfigure.setCustomDomain()接口设置私有化环境收数域名。

/**
     * 设置上传统计日志的主域名和备用域名。此函数必须在SDK预初始化/初始化函数调用之前调用。SDK会优先将统计数据上报到主域名,失败的情况下会再尝试将数据上报到备用域名。
     * 主域名primaryDomain或不能传入null或者空串,如果传入null或者空串,SDK预初始化函数会抛出SdkDomainUndefined运行时异常。
     * @param standbyDomain 备用域名可以传入null或者空串,此时SDK认为备用域名和主域名完全相同。SDK上传数据失败后第二次也会向主域名上报数据。
         * 传入的域名参数应该包含"https://" 前缀。  
*/
public static void setCustomDomain(String primaryDomain, String standbyDomain)

参数

含义

primaryDomain

上传日志的主域名收数地址。

standbyDomain

上传日志备用域名收数地址。

示例:

public class UmengApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();

        UMConfigure.setCustomDomain("xxxxxx", null); // 请传入您自己的收数域名
        
        // 打开调试log
        UMConfigure.setLogEnabled(true);

        UMConfigure.preInit(this, "xxxxxx", "Umeng");// 请传入您自己的appkey
        MobclickAgent.disableActivityPageCollection();

// ...

2 合规初始化

2.1 初始化接口

由于工信部的合规要求App在用户同意隐私政策前不可以获取任何个人信息,所以 Quick Tracking 修改初始化为以下操作:

  1. 您需要确保App有《隐私政策》,并且在用户首次启动App时就弹出《隐私政策》取得用户同意。

  2. 您务必告知用户您选择Quick Tracking SDK服务,请在《隐私政策》中增加如下参考条款:“我们的产品集成Quick Tracking SDK,Quick Tracking SDK需要收集您的设备Mac地址、唯一设备识别码(IMEI/android ID/IDFA/OPENUDID/GUID、SIM 卡 IMSI 信息)以提供统计分析服务。

  3. 在用户同意隐私政策后才可以正式初始化Quick Tracking SDK,具体技术操作如下:

  • SDK预初始化接口

//在Applicaiton.onCreate函数中调用预初始化函数UMConfigure.preInit(),预初始化函数不会采集设备信息,也不会向Quick Tracking后台上报数据。

// SDK预初始化函数
// preInit预初始化函数耗时极少,不会影响App首次冷启动用户体验
public static void preInit(Context context,String appkey,String channel)
  • 同意隐私协议后的正式初始化

一旦App获取到《隐私政策》的用户授权,后续的App冷启动,开发者应该保证在Applicaiton.onCreate函数中调用预初始化函数UMConfigure.preInit()。正式初始化函数UMConfigure.init可以按需调用(可以在预初始化函数之后紧接着调用,也可以放到后台线程中延迟调用,但还是必须调用,不能遗漏)

1)初始化方法一,优先级最高!

UMConfigure.init(Context context,String appkey,String channel,int deviceType,String pushSecret);

2)初始化方法二

/** 
* 初始化方法二
* 注意:如果您已经在AndroidManifest.xml中配置过appkey和channel值,可以调用此版本初始化函数。
*/
UMConfigure.init(Context context,int deviceType,String pushSecret);

示例:

1623235820416-b3097181-d198-4bd0-b63a-a8693164f241
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        //必须在Applicaiton.onCreate函数中调用该预初始化函数
        UMConfigure.preInit(this,"58edcfeb310c93091c000be2","umeng");
        
        //同意隐私政策,才可以正式初始化Quick Tracking SDK
        if(isflag==1)
        {
          UMConfigure.init(this,"58edcfeb310c93091c000be2","umeng",UMConfigure.DEVICE_TYPE_PHONE, "");
        }
    }
}

2.2 Appkey获取

在初始化SDK时,需要填写参数Appkey。Appkey是在Quick Tracking中代表应用的唯一ID,在创建应用时生成,其获取或查看方法详见文档:应用管理252714。

2.3 渠道设置

每台设备仅记录首次安装激活的渠道,在其他渠道再次安装不会重复计量。 所以在测试不同的渠道的时候,请使用不同的设备来分别测试不要改变'UMENG_CHANNEL'。在您查看数据时,渠道会作为一个数据细分的维度。

  • 可以由英文字母、阿拉伯数字、下划线、中划线、空格、括号组成,可以含汉字以及其他明文字符,但是不建议使用中文命名,会出现乱码。

  • 首尾字符不可以为空格。

  • 不要使用纯数字作为渠道ID。

  • 最多256个字符。

  • "unknown" 及其各种大小写形式,作为【Quick Tracking】保留的字段,不可以作为渠道名。

2.4 版本设置

3 日志打印

可通过UMConfigure.setLogEnabled(boolean)接口控制【Quick Tracking】LOG的输出。

注意:

  • App正式上线前请关闭SDK运行调试日志。避免无关Log输出。

可以通过调用如下方法控制SDK运行调试日志是否输出,默认情况下SDK运行调试日志关闭。需要用户手动打开。

/**
* 设置组件化的Log开关
* 参数: boolean 默认为false,如需查看LOG设置为true
*/
UMConfigure.setLogEnabled(true);

注意:

  • 如果查看初始化过程中的LOG,一定要在调用初始化方法前将LOG开关打开。

  • 日志分为四种等级,方便用户查看:

    • Error(打印SDK集成或运行时错误信息)。

    • Warn(打印SDK警告信息)。

    • Info(打印SDK提示信息)。

    • Debug(打印SDK调试信息)。

4 特殊场景

4.1 App内强制kill或exit之类的方法杀死进程

如果开发者调用kill或者exit之类的方法杀死进程,请务必在此之前调用MobclickAgent.onKillProcess方法,用来保存统计数据。

public static void onKillProcess(Context context);

参数

含义

context

当前宿主进程的ApplicationContext上下文。