我正在尝试将我的 Google Analytics(分析)代码从我的主应用程序(com.xyz 包)拆分为一个单独的模块(com.abc 包)。我面临这些问题:
- 我应该为应用程序模块或库模块生成跟踪器吗?
- 我应该把这个跟踪器放在哪里 - 应用程序或库模块?
- 我的目标是通过一些接口(interface)在库模块中包含所有 Analytics 创建和处理逻辑。我也想将这个库用于我的其他项目;所以我不想将跟踪器文件放在库模块本身中。有没有一种方法可以在库模块中初始化跟踪器,但将 XML 文件保留在应用程序模块中?
我尝试过(但失败了):
- 我已经为 com.abc 和 com.xyz 生成了跟踪器文件
- 我已经尝试了两个模块中两个文件的所有排列;但是库模块无法解析 R.xml.global_tracker。作为 Google Analytics 的新手,我不知道是否必须复制/粘贴任何跟踪器文件。在我制作库模块之前,R.xml.global_tracker 在主模块中自动解析。
最佳答案
而不是使用 R.xml.global_tracker。您可以在您的 Application 类中使用此代码。
/**
* @return tracker
*/
synchronized public Tracker getDefaultTracker() {
if (mTracker == null) {
GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
// To enable debug logging use: adb shell setprop log.tag.GAv4 DEBUG
analytics.setLocalDispatchPeriod(1800);
mTracker = analytics.newTracker("Tracker code");
analytics.setLocalDispatchPeriod(1);
mTracker.enableExceptionReporting(true);
mTracker.enableAdvertisingIdCollection(true);
mTracker.enableAutoActivityTracking(false);
}
return mTracker;
}
然后像这样在 Activity/fragment 中使用它:
MyApplication application = (MyApplication ) context.getApplication();
Tracker mTracker = application.getDefaultTracker();
mTracker.setScreenName(name);
mTracker.send(new HitBuilders.ScreenViewBuilder().build());
这可能会解决您的问题,但未针对您的情况进行测试。
关于android - Android 库模块中的 Google Analytics Tracker 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35378297/