跳转到主要内容
PRODUCT DOCUMENTS

快速找到所需文档,高效完成接入与排障

浏览产品文档与友盟 Skill,展开目录并阅读正文。

升级指南

为了帮助开发者更快更稳定的升级,所以根据版本号写了不同的升级文档,详细可见:

9.x.x升级至最新版本

8.x.x升级至最新版本

7.x.x升级至最新版本

6.x.x升级至最新版本

由于bintray.com(jcenter) 业务调整,友盟+将于2021年5月6日将各业务线的最新版SDK迁移至maven center。具体信息可见公告:https://info.umeng.com/detail?id=443&cateId=1

9.X.X版本升级说明

9.3.8及以上版本升级注意:

1、统计SDK 9.3.7及以上版本不能和低版本推送、分享、智能超链SDK混用。混用可能导致不可预知后果(例如:崩溃,无数据等)。下表列出统计SDK 9.3.7支持的各业务SDK最低版本,请确保App中配合9.3.7及以上统计SDK集成的各业务SDK版本号满足下表要求。

应用性能监控SDK

推送SDK

分享SDK

游戏统计SDK

智能登录SDK

智能超链SDK

>=v1.1.0

>= v6.2.0

>= v7.1.0

>= v9.2.0+G

>= v1.4.0

>= v1.0.0

2、正式版基础组件库9.3.6中将ABTest功能拆解为独立的插件,可以选择集成,集成方式见下文“集成示例”。

3、正式版基础组件库9.3.6中移除了Deeplink能力,如果需要分析裂变能力,请集成智能超链SDK。集成文档为:https://developer.umeng.com/docs/191212/detail/191230

//集成示例
implementation 'com.umeng.umsdk:common:9.3.8'//必选
implementation  'com.umeng.umsdk:asms:1.2.2'//必选

//下列组件可选用
implementation 'com.umeng.umsdk:apm:1.2.0'//错误分析升级为U-APM产品,关注crash数据需集成
implementation  'com.umeng.umsdk:abtest:1.0.0'//U-App中ABTest能力
implementation 'com.umeng.umsdk:link:1.0.0'//集成U-Link

9.3.3版本升级注意:

1、正式版基础组件库 9.3.3 中移除了umeng-crash-armeabi-vX.X.X.aar文件,如果需要错误捕获能力,请集成应用性能监控SDK。集成文档为:https://developer.umeng.com/docs/193624/detail/194590

implementation 'com.umeng.umsdk:common:9.3.3'
implementation  'com.umeng.umsdk:asms:1.1.4'

//可选集成,对应产品中稳定性模块(错误捕获),该功能已经独立成为新的应用性能监控产品U-APM
implementation 'com.umeng.umsdk:apm:1.1.0'

稳定性模块再次升级,独立为应用性能监控产品,新增用户细查、崩溃回调等多种功能。产品介绍文档为:https://developer.umeng.com/docs/193624/detail/194565

2、统计SDK 9.2.X及以上适用于Android 2.2 (Froyo、API Level 8)及以上版本。

3、从低版本统计SDK升级到8.0.0或更高版本统计SDK后,如果再次回退到8.0.0以下低版本统计SDK,因为低版本SDK不能兼容8.0.0版本SDK数据库,会导致SDK无法正常发送统计数据。进而导致App日活指标下降。如果需要规避此问题,需要回退到特定版本SDK,详情请参阅FAQ 8.0.0及以上版本SDK回退到低版本SDK导致日活下降。

4、统计SDK 9.0.4及以上版本(含9.0.4),已经关闭老版本错误统计(Java层异常捕获)功能,如果您想继续使用错误统计(Java层异常捕获)功能,请集成并使用umeng-crash-vx.x.x.aar稳定性组件,该组件提供更全面、更强大的异常捕获功能。同时,原错误统计的开关接口(setCatchUncaughtExceptions API)失效,原错误统计的自定义上报接口(reportError API)会默认兼容新接口。

5、统计SDK 9.2.4及以上版本自带oaid采集模块,不再需要开发者再手动引用如下4个库:

lenovo-opendeviceid.jar
mi-deviceid.jar
oppo-openid-sdk-1.0.4.jar
vivoId-1.0.0.1.jar

6、如果用户从老版本升级到统计SDK 9.2.4及以上版本,可以删除这如上4个库,同时删除proguard文件中的下列keep:

-keep class com.zui.**{*;}
-keep class com.miui.**{*;}
-keep class com.heytap.**{*;}
-keep class a.**{*;}
-keep class com.vivo.**{*;}

7、统计SDK 9.2.4及以上版本自带oaid模块和三方oaid库不会发生包名冲突,开发者可同时集成两者。开发者可以通过如下api获得oaid:

UMConfigure.getOaid(mContext,newOnGetOaidListener());

样例代码:

import com.umeng.commonsdk.listener.OnGetOaidListener;

UMConfigure.getOaid(mContext,newOnGetOaidListener(){
@Override
publicvoid onGetOaid(String oaid){
                        android.util.Log.i("mob","oaid"+oaid);
}});

8、如果您同时集成U-Push、U-Share和U-Verify,请注意统计SDK9.3.0版本不能和低版本U-Push、U-Share和U-verify的SDK混用。混用可能导致不可预知后果(例如:崩溃,无数据等)。下表列出统计SDK9.3.0⽀持的各业务SDK最低版本,请确保App中配合9.3.0统计SDK集成的各业务SDK版本号满足下表要求。

U-Push SDK

U-Share SDK

U-Game SDK

U-Verify SDK

>=v6.2.0

>=v7.1.0

>=v9.2.0+G

>=v1.4.0

9.2.4及以上版本升级注意:

1、统计SDK 9.2.X及以上适用于Android 2.2 (Froyo、API Level 8)及以上版本。

2、从低版本统计SDK升级到8.0.0或更高版本统计SDK后,如果再次回退到8.0.0以下低版本统计SDK,因为低版本SDK不能兼容8.0.0版本SDK数据库,会导致SDK无法正常发送统计数据。进而导致App日活指标下降。如果需要规避此问题,需要回退到特定版本SDK,详情请参阅FAQ 8.0.0及以上版本SDK回退到低版本SDK导致日活下降。

3、统计SDK 9.0.4及以上版本(含9.0.4),已经关闭老版本错误统计(Java层异常捕获)功能,如果您想继续使用错误统计(Java层异常捕获)功能,请集成并使用umeng-crash-vx.x.x.aar稳定性组件,该组件提供更全面、更强大的异常捕获功能。同时,原错误统计的开关接口(setCatchUncaughtExceptions API)失效,原错误统计的自定义上报接口(reportError API)会默认兼容新接口。

4、统计SDK 9.2.4及以上版本自带oaid采集模块,不再需要开发者再手动引用如下4个库:

lenovo-opendeviceid.jar
mi-deviceid.jar
oppo-openid-sdk-1.0.4.jar
vivoId-1.0.0.1.jar

5、如果用户从老版本升级到统计SDK 9.2.4及以上版本,可以删除这如上4个库,同时删除proguard文件中的下列keep:

-keep class com.zui.**{*;}
-keep class com.miui.**{*;}
-keep class com.heytap.**{*;}
-keep class a.**{*;}
-keep class com.vivo.**{*;}

6、统计SDK 9.2.4及以上版本自带oaid模块和三方oaid库不会发生包名冲突,开发者可同时集成两者。开发者可以通过如下api获得oaid:

UMConfigure.getOaid(mContext,newOnGetOaidListener());

样例代码:

import com.umeng.commonsdk.listener.OnGetOaidListener;

UMConfigure.getOaid(mContext,newOnGetOaidListener(){
@Override
publicvoid onGetOaid(String oaid){
                        android.util.Log.i("mob","oaid"+oaid);
}});

7、如果您同时集成U-Push、U-Share和U-Verify,请注意统计SDK9.3.0版本不能和低版本U-Push、U-Share和U-verify的SDK混用。混用可能导致不可预知后果(例如:崩溃,无数据等)。下表列出统计SDK9.3.0⽀持的各业务SDK最低版本,请确保App中配合9.3.0统计SDK集成的各业务SDK版本号满足下表要求。

U-Push SDK

U-Share SDK

U-Game SDK

U-Verify SDK

>=v6.2.0

>=v7.1.0

>=v9.2.0+G

>=v1.4.0

9.0.0-9.2.4升级注意:

1、从低版本统计SDK升级到8.0.0或更高版本统计SDK后,如果再次回退到8.0.0以下低版本统计SDK,因为低版本SDK不能兼容8.0.0版本SDK数据库,会导致SDK无法正常发送统计数据。进而导致App日活指标下降。如果需要规避此问题,需要回退到特定版本SDK,详情请参阅FAQ 8.0.0及以上版本SDK回退到低版本SDK导致日活下降。

2、统计SDK 9.0.4及以上版本(含9.0.4),已经关闭老版本错误统计(Java层异常捕获)功能,如果您想继续使用错误统计(Java层异常捕获)功能,请集成并使用umeng-crash-vx.x.x.aar稳定性组件,该组件提供更全面、更强大的异常捕获功能。同时,原错误统计的开关接口(setCatchUncaughtExceptions API)失效,原错误统计的自定义上报接口(reportError API)会默认兼容新接口。

3、使用umeng-crash-vx.x.x.aar插件和OAID相关插件,请您加入混淆设置,详细参考集成文档的混淆设置:查看文档

-keep class com.uc.**{*;}
-keep class com.zui.**{*;}
-keep class com.miui.**{*;}
-keep class com.heytap.**{*;}
-keep class a.**{*;}
-keep class com.vivo.**{*;}

4、如果您同时集成U-Push、U-Share和U-Verify,请注意统计SDK9.3.0版本不能和低版本U-Push、U-Share和U-verify的SDK混用。混用可能导致不可预知后果(例如:崩溃,无数据等)。下表列出统计SDK9.3.0⽀持的各业务SDK最低版本,请确保App中配合9.3.0统计SDK集成的各业务SDK版本号满足下表要求。

U-Push SDK

U-Share SDK

U-Game SDK

U-Verify SDK

>=v6.2.0

>=v7.1.0

>=v9.2.0+G

>=v1.4.0

9.X.X版本与之前8.X.X版本相比较,增加了如下新特性:

1、基础组件库和统计SDK两个jar包合二为一。包名及API方法名及类名不变。会话埋点(MobclickAgent.onResume/onPause)、页面埋点(MobclickAgent.onPageStart/onPageEnd)、自定义事件埋点(MobclickAgent.onEvent/onEventObject)等代码无需进行改动。

2、开发者不显式指定页面采集模式时,SDK默认工作在AUTO页面采集模式下。对于之前已经集成了友盟统计SDK的开发者,如果您之前的埋点代码中并没有显式调用MobclickAgent.setPageCollectionMode()方法,则需要您在升级到9.0.0版本之后,手动调用MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.LEGACY_AUTO)以保持和老版本SDK的统计行为一致。

3、增加一个新的SDK初始化函数UMConfigure.preInit(Context context, String appkey, String channel),对于有延迟初始化SDK需求的开发者(不能在Application.onCreate函数中调用UMConfigure.init初始化函数),必须在Application.onCreate函数中调用UMConfigure.preInit预初始化函数(preInit耗时极少,不会影响冷启动体验),而后UMConfigure.init函数可以按需延迟调用(可以放到后台线程中延时调用,可以延迟,但还是必须调用)。如果您的App已经是在Application.onCreate函数中调用UMConfigure.init进行初始化,则无需额外调用UMConfigure.preInit预初始化函数。

9.X.X版本与8.X.X版本相比较,接口变动如下:

1、新增接口。

接口

归属类

用途

preInit

UMConfigure

预初始化,不能保证在Appcalition.onCreate函数中调用UMConfigure.init初始化函数的App,必须在Appcalition.onCreate函数中调用此预初始化函数。

9.X.X(及以上)版本较之前版相比较,接口变动如下:

1、失效接口。

接口

归属类

用途

状态

setCatchUncaughtExceptions(boolean isEnable)

MobclickAgent

异常捕获开关接口

失效

2、新增接口。

接口

归属类

用途

状态

generateCustomLog(Throwable e, String type)

UMCrash

自定义异常上报接口

新增

generateCustomLog(String e, String type)

UMCrash

自定义异常上报接口

新增

历史版本升级至9.3.8示例

9.0.0-9.3.3升级至9.3.8示例

例如:v9.3.2->v9.3.8

1、移除umeng-crash-armeabi-v0.0.5.aar2、maven导入9.3.8版本基础组件库

implementation 'com.umeng.umsdk:common:9.3.8'//必选
implementation  'com.umeng.umsdk:asms:1.2.2'//必选
implementation  'com.umeng.umsdk:abtest:1.0.0'//可选(使用U-App中ABTest能力)

implementation 'com.umeng.umsdk:apm:1.2.0'//可选(集成U-APM)
implementation 'com.umeng.umsdk:link:1.0.0'//可选(集成U-Link)

3、或手动导入9.3.8 SDK zip解压依赖组件库

  • umeng-common-9.3.8.jar

  • umeng-asms-armeabi-v1.2.2.aar

  • umeng-abtest-v1.0.0.aar

  • umeng-apm-v1.2.0.aar //需要下载应用性能监控SDK

8.X升级至9.3.8示例

例如:v8.1.6->v9.3.8

SDK包更替

1、删除工程libs目录下umeng-analytics-8.1.6.jar、umeng-common-2.2.5.jar文件,同时删除工程build.gradle中对应依赖项。

12

2、将9.3.8版本统计SDK下三个包文件复制到工程libs目录下,并加入对应离线包依赖。

  • umeng-common-9.3.8.jar

  • umeng-asms-armeabi-v1.2.2.aar

  • umeng-abtest-v1.0.0.aar

  • umeng-apm-v1.2.0.aar //需要下载应用性能监控SDK

说明

注意:9.3.6版本中将ABTest功能组件独立,如需,请务必导入umeng-abtest-v1.0.0.aar文件 9.3.3版本中移除了稳定性模块(错误捕获),如需,请集成应用性能监控SDK。集成文档为:https://developer.umeng.com/docs/193624/detail/194590 8.x.x版本统计SDK默认采用LEGACY_AUTO页面采集模式,9.x.x版本统计SDK默认采用AUTO页面采集模式,如果升级前App中未调用MobclickAgent.setPageCollectionMode接口显式设置页面采集模式,则需要在升级到9.x.x版本统计SDK之后手动调用MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.LEGACY_AUTO); 才能和老版本App中使用的页面采集模式保持一致。

1

7.X升级至9.3.8示例

示例:v7.5.4->v9.3.8

SDK包更替

1、删除工程libs目录下umeng-analytics-7.5.4.jar、umeng-common-1.5.4.jar文件,同时删除工程build.gradle中对应依赖项。

11

2、将9.3.8版本统计SDK下三个包文件复制到工程libs目录下,并加入对应离线包依赖。

  • umeng-common-9.3.8.jar

  • umeng-asms-armeabi-v1.2.2.aar

  • umeng-abtest-v1.0.0.aar

  • umeng-apm-v1.2.0.aar //需要下载应用性能监控SDK

说明

注意:9.3.6版本中将ABTest功能组件独立,如需,请务必导入umeng-abtest-v1.0.0.aar文件 9.3.3版本中移除了稳定性模块(错误捕获),如需,请集成应用性能监控SDK。集成文档为:https://developer.umeng.com/docs/193624/detail/194590 MobclickAgent.openActivityDurationTrack接口已经废弃,如果App调用过MobclickAgent.openActivityDurationTrack(false);需要在新版本SDK初始化后调用MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.LEGACY_MANUAL); 否则需要在新版本SDK初始化后调用MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.LEGACY_AUTO); 选择对应的页面采集模式。

11

6.X升级至9.3.8示例

例如:v6.1.4->v9.3.8

SDK包更替

1、删除工程libs目录下umeng-analytics-6.1.4.jar文件,同时删除工程build.gradle中对应依赖项。

11

2、将9.3.8版本统计SDK下三个包文件复制到工程libs目录下,并加入对应离线包依赖。

  • umeng-common-9.3.8.jar

  • umeng-asms-armeabi-v1.2.2.aar

  • umeng-abtest-v1.0.0.aar

  • umeng-apm-v1.2.0.aar //需要下载应用性能监控SDK

说明

注意9.3.6版本中将ABTest功能组件独立,如需,请务必导入umeng-abtest-v1.0.0.aar文件 9.3.3版本中移除了稳定性模块(错误捕获),如需,请集成应用性能监控SDK。集成文档为:https://developer.umeng.com/docs/193624/detail/194590 在9.x.x版本统计SDK中,MobclickAgent.startWithConfigure接口已经废弃,必须通过SDK初始化函数UMConfigure.init()设置appkey、渠道、设备类型。MobclickAgent.EScenarioType普通统计场景和游戏统计场景在9.x.x版本中已经删除,老版本普通统计场景对应新版本移动统计SDK,老版本游戏统计场景对应新版本游戏统计SDK MobclickAgent.openActivityDurationTrack接口已经废弃,如果App调用过MobclickAgent.openActivityDurationTrack(false);需要在新版本SDK初始化后调用MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.LEGACY_MANUAL); 否则需要在新版本SDK初始化后调用MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.LEGACY_AUTO); 选择对应的页面采集模式。

11

【历史升级说明】

8.0.0版本升级说明

8.0.0版本新特性

与7.5.3前版本相比较,增加了如下新特性:

1、游戏统计(U-Game)SDK和移动统计(U-App)SDK独立打包发布,无需设置场景类型。

2、对页面统计功能进行增强,支持四种可选采集模式。在自动页面采集模式下,仅需一行代码即可完成基础指标统计埋点。

3、支持非主进程中的自定义事件埋点。

8.0.0版本接口变动:

1、新增接口。

接口

归属类

用途

onEventObject

MobclickAgent

支持Key(String)-Value(Object)类型Map参数的自定义事件接口

setPageCollectionMode

MobclickAgent

设置页面统计模式

2、废弃接口。

接口

归属类

用途

setScenarioType

MobclickAgent

设置场景

3、删除接口。

接口

归属类

用途

openActivityDurationTrack

MobclickAgent

使能/禁止默认的页面统计功能

7.0.0以下SDK升级至8.0.0:

说明

下面以6.1.2版本SDK升级到8.0.0版本SDK为例:

手动集成SDK

通过下载sdk jar包的方式手动集成SDK:

1) 删除原工程中老版本【友盟+】统计SDK包及utdid4all包

1

删除umeng-analytics-v6.1.2.jar和utdid4all-1.0.4.jar这两个文件。

2)将新版本组件化SDK包和基础common包拷贝到App工程路径libs目录下

1

拷贝umeng-analytics-8.0.0.jar和umeng-common-2.0.0.jar这两个文件到App工程路径下的libs目录中。

3)开发者可根据需要选择集成其它功能库

4)UTDID:utdid4all-1.1.5.3_proguard.jar,包含设备标识UTDID组件,如果需要,将其拷贝到App工程路径下的libs目录中。

1

5)SDK初始化

在宿主App的Application.onCreate函数中调用基础库初始化函数进行初始化。

publicclassMyApplicationextendsApplication{
@Override
publicvoid onCreate(){
super.onCreate();
// 必须在调用任何统计SDK接口之前调用初始化函数
UMConfigure.init(this,"59c4b3xxxxxxxxxxxx0025","Umeng",UMConfigure.DEVICE_TYPE_PHONE,null);
// ...

组件化基础库中提供多个初始化方法,可在不同使用场景下选择调用。初始化函数具体说明可以参阅 基础组件集成-初始化及通用接口。