引入&配置SDK
使用App SDK必備操作,缺少任一操作都會造成數(shù)據(jù)的缺失
SDK基本信息
SDK名稱 | 版本號 | md5 | 包名 |
QuickTracking Android SDK | 最新版本:1.6.2.PX 更新日志:Android SDK更新日志 | 77ef5b2fbb387c222d9534faa0de52a3 | com.lydaas.qtsdk:qt-px-common |
gradle 插件 | 最新版本: gradle7+ : quick-gradle-plugin2:2.0.0 gradle7以下版本 : quick-gradle-plugin2:1.0.2 | 2.0.0:bb00122c48a471cf94fc81db3bfb951a 1.0.2: 494dc42eb188ed02a56d1b90292961b6 | com.lydaas.qtsdk:quick-gradle-plugin2 |
1 快速集成
在QuickTracking后臺,為每一個App生成了專屬的集成代碼,可以根據(jù)產(chǎn)品內(nèi)的引導(dǎo)進(jìn)行集成。注意,需要檢查目前是否已經(jīng)使用了友盟+SDK,如果已經(jīng)使用,請及時設(shè)置更改SDK文件路徑,具體設(shè)置方式請參考本文檔中1.2章節(jié)部分內(nèi)容。
1.1 產(chǎn)品路徑
Quick Tracking「首頁」-「管理控制臺」,在「管理控制臺」進(jìn)入「組織列表」功能,組織列表展示當(dāng)前已創(chuàng)建的組織,找到應(yīng)用歸屬組織,點擊「管理應(yīng)用」功能跳轉(zhuǎn)到「應(yīng)用管理]頁面,在已創(chuàng)建好的應(yīng)用右側(cè)點擊去「去集成」。
點擊「去集成」按鈕跳轉(zhuǎn)到新頁面可以獲取專屬集成代碼,點擊下一步按引導(dǎo)進(jìn)入到「集成校驗」,掃碼喚起APP,確認(rèn)集成是否成功。
1.2 檢查是否與友盟+SDK沖突
注意,需要檢查目前是否已經(jīng)使用了友盟+SDK,如果已經(jīng)使用,請務(wù)必設(shè)置更改SDK文件路徑。
更改SDK文件路徑方式:
已經(jīng)集成了友盟+SDK,現(xiàn)在需要集成QT SDK:在QT和友盟+的所有代碼最前面增加(至少早于收數(shù)域名)QTConfigure.resetStorePath;
已經(jīng)集成了QT SDK,現(xiàn)在需要集成友盟+SDK:在QT和友盟+的所有代碼最前面增加(至少早于收數(shù)域名)UMConfigure.resetStorePath;
如果不按照上述的邏輯調(diào)用,則會使友盟+SDK與QT SDK共同使用一個存儲路徑,導(dǎo)致日志混亂。具體邏輯為:先調(diào)用的哪個SDK初始化方法,就重新設(shè)置另外一個SDK的文件路徑,比如先初始化的友盟+SDK,就調(diào)用 QTConfigure.resetStorePath;,如果是先初始化的QT SDK,就需要調(diào)用UMConfigure.resetStorePath;
2 集成代碼明細(xì)
如果因為特定原因,無法抵達(dá)上述頁面,需要觀看文檔才可以進(jìn)行集成,具體集成代碼如下:
2.1 參數(shù)準(zhǔn)備
appKey:在應(yīng)用列表中獲取
收數(shù)域名:在“管理控制臺-采集信息”模塊中獲取
SDK信息:在“管理控制臺-采集信息”模塊中獲取添加網(wǎng)頁鏈接
2.2 引入SDK
2.2.1 自動集成
在工程build.gradle配置腳本中buildscript和allprojects段中添加 QuickTracking SDK新Maven倉庫地址。
maven { url 'https://repo1.maven.org/maven2/' }
在工程對應(yīng)build.gradle配置腳本repositories段中添加SDK Maven庫地址:
buildscript {
repositories {
google()
jcenter()
maven { url 'https://repo1.maven.org/maven2/' }
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.0'
}
}
allprojects {
repositories {
google()
jcenter()
maven { url 'https://repo1.maven.org/maven2/' }
}
}
在工程App 對應(yīng)build.gradle配置腳本dependencies段中添加統(tǒng)計SDK庫和其它庫依賴:
dependencies {
implementation fileTree(include:['*.jar'], dir:'libs')
//QuickTracking統(tǒng)計分析SDK
implementation 'com.lydaas.qtsdk:qt-px-common:1.6.2.PX'
}
在Android Studio 3.1及以上版本開發(fā)環(huán)境下,指定引用最新版本依賴寫法"latest.integration"可能導(dǎo)致下載庫超時,此時需要指定具體版本號。
2.2.2 手動集成
選擇SDK功能組件并下載,解壓.zip文件得到相應(yīng)組件包:
qt-px-common-1.x.x.PX.aar // 統(tǒng)計SDK,必須集成。
在Android Studio的項目工程libs目錄中拷入相關(guān)組件jar包,右鍵點擊Android Studio的項目工程,選擇Open Module Settings —>在 Project Structure彈出框中 —>選擇 Dependencies選項卡 —>點擊左下“+” —>選擇組件包類型 —>引入相應(yīng)的包。
在Eclipse中右鍵工程根目錄,選擇Properties —> Java Build Path —> Libraries,然后點擊Add External JARs… 選擇指向JAR的路徑,點擊OK,即導(dǎo)入成功。(ADT17及以上不需要手動導(dǎo)入)。
在工程App級別對應(yīng)build.gradle配置腳本dependencies段中添加統(tǒng)計SDK庫。
repositories{
flatDir{
dirs 'libs'
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation files('libs/qt-px-common-1.x.x.PX.aar') // 必選
}
2.3 配置權(quán)限
統(tǒng)計SDK需要宿主APP授予如下權(quán)限:
權(quán)限 | 用途 |
ACCESS_NETWORK_STATE | 檢測聯(lián)網(wǎng)方式,在網(wǎng)絡(luò)異常狀態(tài)下避免數(shù)據(jù)發(fā)送,節(jié)省流量和電量。 |
READ_PHONE_STATE(可選) | 獲取用戶設(shè)備的IMEI,通過IMEI對用戶進(jìn)行唯一標(biāo)識,以便提供統(tǒng)計分析服務(wù)。 |
ACCESS_WIFI_STATE | 獲取WIFI mac地址,在平板設(shè)備或電視盒子上,無法通過IMEI標(biāo)識設(shè)備,我們會將WIFI mac地址作為用戶的唯一標(biāo)識,以便正常提供統(tǒng)計分析服務(wù)。 |
INTERNET | 允許應(yīng)用程序聯(lián)網(wǎng)和發(fā)送統(tǒng)計數(shù)據(jù)的權(quán)限,以便提供統(tǒng)計分析服務(wù)。 |
下面給出AndroidManifest.xml清單文件示例:
<manifest>
<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"/>
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>
2.4 混淆配置
如果您的應(yīng)用使用了代碼混淆,請?zhí)砑尤缦屡渲茫员苊釷uick Tracking SDK被錯誤混淆導(dǎo)致SDK不可用。
-keep class com.umeng.** {*;}
-keep class org.repackage.** {*;}
-keep class com.quick.qt.** {*;}
-keep class rpk.quick.qt.** {*;}
-keepclassmembers class * {
public <init> (org.json.JSONObject);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
SDK需要引用導(dǎo)入工程的資源文件,通過了反射機(jī)制得到資源引用文件R.java,但是在開發(fā)者通過proguard等混淆/優(yōu)化工具處理apk時,proguard可能會將R.java刪除,如果遇到這個問題,請?zhí)砑尤缦屡渲茫?/p>
-keep public class [您的應(yīng)用包名].R$*{
public static final int *;
}
2.5 埋點驗證配置
在AndroidManifest.xml文件中找到響應(yīng)android.intent.action.MAIN的activity(也就是應(yīng)用可以被外部喚起的第一個Activity),加上如下代碼,讓應(yīng)用能被指定連接scheme喚起:
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="atm.您的appKey" />
</intent-filter>
注意:
1、請使用單獨(dú)intent-filter,和其他intent-filter并列,不要將上述代碼填入其他intent-filter里;
2、請將“您的appKey”替換成您的應(yīng)用的appKey。