1.使用AndroidStudio自动导入
在app的 build.gradle文件中添加
dependencies {
compile 'com.zhuge.analysis:zhugeio:latest.integration'
}
2.添加权限与AppKey
<!--需要网络权限-->
<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"/>
<!--获取设备唯一标识-->
<uses-permission
android:name="android.permission.READ_PHONE_STATE"/>
在你的应用AndroidManifest.xml文件的application节点下为应用配置AppKey和渠道名称:
<meta-data
android:name = "ZHUGE_APPKEY"
android:value="xxxxxxxxxxxxx" />
<!-- 友盟统计 -->
<meta-data
android:name="UMENG_CHANNEL"
android:value="${UMENG_CHANNEL_VALUE}" />
3. 启动统计
为了正确启动诸葛的统计功能,你需要在应用的入口Activity的onCreate方法中调用如下方法:
ZhugeSDK.getInstance().init(Context context);
建议在应用退出时完成数据跟踪具体方法。在最后退出的页面的onDestroy方法里面添加以下代码便于更及时的统计数据
ZhugeSDK.getInstance().flush(getApplicationContext());
通过代码配置AppKey及Channel并启动
ZhugeParam param = new ZhugeParam.Builder().appKey("yourAppKey")
.appChannel("yourAppChannel")
.build();
ZhugeSDK.getInstance().initWithParam(context, param);
下面是具体的配置
/**
* 集成诸葛IO统计
*/
private void initTZhuGeIO() {
ZhugeParam param = new ZhugeParam.Builder().appKey("xxxxxxxxx")
.appChannel(ChannelUnit.getChannelName())
.build();
ZhugeSDK.getInstance().initWithParam(this, param);
//在init之前调用如下接口来启动日志输出
ZhugeSDK.getInstance().openLog();
/**
*你可以使用诸葛io提供的实时调试功能,实时监测数据是否正确上传,
*调试完成后请关闭debug。
*使用方法:在诸葛统计初始化之前调用如下代码以开启实时调试,建议仅在测试设备上开 启
**/
ZhugeSDK.getInstance().openDebug();
//集应用崩溃信息,你需要打开崩溃采集开关,默认为关闭
//在SDK初始化之前调用如下方法
ZhugeSDK.getInstance().openExceptionTrack();
}
获取多渠道打包的渠道名称
public static final String UMENG_CHANNEL="UMENG_CHANNEL";
/**
* 获取渠道名
* @return 如果没有获取成功,那么返回值为空
*/
public static String getChannelName() {
String channelName = "UNKNOWN";
try {
PackageManager packageManager = App.getSharedApplication().getPackageManager();
if (packageManager != null) {
//注意此处为ApplicationInfo 而不是 ActivityInfo,因为友盟设置的meta-data是在application标签中,而不是某activity标签中,所以用ApplicationInfo
ApplicationInfo applicationInfo = packageManager.
getApplicationInfo(App.getSharedApplication().getPackageName(), PackageManager.GET_META_DATA);
if (applicationInfo != null) {
if (applicationInfo.metaData != null) {
channelName = String.valueOf(applicationInfo.metaData.get(UMENG_CHANNEL));
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return channelName;
}
参考文档 诸葛IO