先决条件
Flurry Analytics 要求最低 Android API 级别 10。
Flurry Analytics 使用 Google Play 服务提供的 Android 广告 ID,并将检查并尊重用户的广告跟踪偏好。
- 获取您的 API 密钥
首先创建一个应用程序。创建应用程序后,您将收到一个 Flurry API 密钥,您在使用 SDK 时将需要该密钥。
- 下载 Flurry Android SDK
目前有两种方法可以将 Flurry Android SDK 安装到您的应用程序中:
通过 jCenter 安装(推荐):Flurry SDK 可通过 jCenter 获得。您可以通过在 build.gradle 文件中包含以下内容将其添加到您的应用程序中:
// In your top level Gradle config file:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.0'
}
}
allprojects {
repositories {
jcenter()
}
}
// In your main app's Gradle config file:
dependencies {
compile 'com.flurry.android:analytics:6.3.1'
/*
* Optional library to help in monetizing your app with ads.
* If you include the ads library, you do not need to include
* the analytics library as it is a transitive dependency.
*/
// compile 'com.flurry.android:ads:6.3.1'
//... other dependencies
}
从Flurry Dev Portal下载 .jar 文件
下载的存档应包含这些文件以用于 Flurry Analytics:
- FlurryAnalytics_x.yzjar:包含 Flurry 分析收集和报告代码的库(其中 xyx 表示 Flurry SDK 的最新版本)。
- FlurryAds_x.yzjar:将 Flurry 的广告合并到您的应用程序中的可选库(其中 xyx 表示 Flurry SDK 的最新版本)。
- ProjectApiKey.txt:此文件包含您的项目名称和项目的 API 密钥。
- FlurryAndroidAnalyticsReadmevx.yzpdf:带有说明的 PDF 文件(其中 xyx 表示 Flurry SDK 的最新版本)。
- 将 FlurryAnalytics_x.yzjar 添加到您的类路径¶
使用 Android Studio:
如果使用 Android Studio,你不需要做任何进一步的事情来在你的项目中包含 Flurry SDK,只要你在 Gradle 配置中通过 jCenter 安装了 SDK。
但是,如果您更喜欢使用下载的 .jar 文件,请按照以下步骤操作:
将 FlurryAnalytics-5.xxjar 添加到项目的 libs 文件夹中。导航到文件 > 项目结构 > 模块 > 依赖项。单击“项目结构”弹出窗口底部的“+”按钮以添加依赖项。选择“文件依赖项”并添加 libs/FlurryAnalytics-5.xxjar。添加 Google Play 服务库。如果有选择地编译单个 Google Play 服务 API,您应该包括 Google Analytics API。
使用 Eclipse
将 FlurryAnalytics-5.xxjar 添加到项目的 libs 文件夹中。右键单击每个 JAR 文件并选择 Build Path > Add to Build Path。添加 Google Play 服务库 jar 文件。
配置您的 AndroidManifest.xml
- 可以访问 Internet 并允许 Flurry SDK 检查网络连接状态。- 在清单中指定 versionName 属性以在该版本名称下报告数据。- 声明应用支持的 Android 操作系统的最低版本。Flurry 支持 Android OS 10 及以上版本。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.flurry.sample"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="21" />
<!--required permission-->
<uses-permission android:name="android.permission.INTERNET" />
<!--optional permission - highly recommended-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<!--optional permission -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application
android:name=".MyApplication"
android:icon="@drawable/app_icon">
<!--your activities -->
</application>
</manifest>
- 添加对 init、onStartSession 和 onEndSession 的调用
按照以下步骤,添加这些调用:
- 如果您要发布一个应用程序,请在您的 Application 类中插入对 FlurryAgent.init(Context, String) 的调用,并将对您的应用程序上下文和项目的 API 密钥的引用传递给它:
//如果您正在发布一个应用程序,如果您还没有这样做,请扩展 Application 类:
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
new FlurryAgent.Builder()
.withLogEnabled(false)
.build(this, FLURRY_API_KEY);
}
}
或者,您可以在 onStartSession() 之前调用 init()。如果您在整个应用程序中使用相同的 API 密钥,则多次调用 init() 是安全的。您可以使用任何类型的上下文。
- 如果您正在编写应用程序并且最低目标是 Ice Cream Sandwich 或更高版本(minSdkVersion 设置为 API 级别 14 或更高版本),则会话处理是完全自动的,您可以跳过步骤 3 和 4。如果您正在检测其他类型的上下文,例如服务,或者您的最低目标是 Gingerbread,请继续执行步骤 3 或 4。
- 在 Activity 的 onStart() 方法中插入对 FlurryAgent.onStartSession(Context) 的调用,将引用传递给 Context 对象(例如 Activity 或 Service)。如果您的目标是 Gingerbread,Flurry 建议在您的应用程序中使用每个 Activity 的 onStart() 方法,并将 Activity 本身作为 Context 对象传递。对于服务(或其他上下文),使用服务或相关上下文作为上下文对象。不要传入全局应用程序上下文。
- 当会话完成时,在 Activity 的 onStop() 方法中插入对 FlurryAgent.onEndSession(Context) 的调用。如果您的目标是 Gingerbread,我们建议在您的应用中使用每个 Activity 的 onStop 方法。对于服务(或其他上下文),确保在每个检测的服务中调用 onStop。确保为每次调用 onStartSession 匹配对 onEndSession 的调用,传入用于调用 onStartSession 的相同 Context 对象。不要传入全局应用程序上下文。
只要有任何 Context 调用了 onStartSession() 但没有调用 onEndSession(),会话就会继续。此外,如果一个新的 Context 在最后一个 Context 调用 onEndSession() 的 10 秒内调用了 onStartSession(),那么会话将被恢复,而不是创建一个新的会话。会话长度、使用频率、事件和错误将继续作为同一会话的一部分进行跟踪。这可确保当用户在您的应用程序中从一个 Activity 转换到另一个 Activity 时,他们不会为每个 Activity 跟踪单独的会话,而是会有一个跨越多个 Activity 的会话。如果要跟踪 Activity 使用情况,Flurry 建议使用 logEvent(),如自定义事件部分所述。
如果您希望更改可以恢复会话的窗口,请在调用 FlurryAgent.init() 之前调用 FlurryAgent.setContinueSessionMillis(long milliseconds)。
一旦 SDK 确定会话完成,Flurry SDK 会自动传输会话期间捕获的数据。如果设备未连接,数据将保存在设备上,并在设备再次连接后传输。SDK 管理整个过程。目前,应用程序无法安排数据传输。
你完成了!这就是您开始接收基本指标数据所需要做的一切。