SensorsData-Android

Android SDK

https://github.com//sa-sdk-android


SDK的AndroidStudio插件

https://github.com/sensorsdata/sa-sdk-android-plugin2


SDK的客戶端調(diào)試工具

https://github.com/sensorsdata/sa-sdk-android-runtime


埋點原理

Aspectj 是 Java 的超集, Aspectj 定義了AOP語法,它有一個專門的編譯器用來生成遵守Java字節(jié)編碼規(guī)范的Class文件

概述:SDK基于Aspectj語言對App進行插樁,根據(jù)插樁代碼獲取到UI各關(guān)鍵位置(如點擊事件)的"JoinPoint"對象,再通過JoinPoint對象獲取到各關(guān)鍵位置的調(diào)用以及數(shù)據(jù)


定義的各種UI點擊事件監(jiān)聽


1,獲取View的點擊事件:通過Aspectj語法插樁App各處的點擊事件,得到各處點擊事件發(fā)生時的JoinPoint對象,通過JoinPoint對象獲取到點擊事件所傳入的View對象,獲取到ViewID根據(jù)是否后臺配置了埋點判斷是否存儲統(tǒng)計數(shù)據(jù)


攔截View的點擊事件,獲取View對象


2,Dialog\Menu\SeekBar等等點擊事件統(tǒng)計與上類似

3,后臺配置:SDK通過WebSocket與處于后臺頁面的Javascript進行連接,連接成功后SDK通過給APP當前頁面進行截圖然后發(fā)送給后臺頁面,后臺頁面接收后展示并使用,當埋點配置完后生成DSL規(guī)則文件


網(wǎng)絡(luò)模塊

概述:SDK統(tǒng)計數(shù)據(jù)存入數(shù)據(jù)庫,然后在Activity頁面關(guān)閉后等等時機進行同步數(shù)據(jù)到服務(wù)器,數(shù)據(jù)經(jīng)過GZIP壓縮字符串,然后Base64加密處理,數(shù)據(jù)大小上限默認保存32MB(有接口可以設(shè)置大小)

1,設(shè)置數(shù)據(jù)保存大小接口


設(shè)置數(shù)據(jù)大小上限接口

2,監(jiān)聽activity頁面關(guān)閉,同步數(shù)據(jù)庫數(shù)據(jù)到服務(wù)器

監(jiān)聽Activity頁面關(guān)閉,調(diào)用發(fā)送數(shù)據(jù)


3,將數(shù)據(jù)使用GZIP壓縮,然后再Base64加密,準備發(fā)送到服務(wù)器


GZIP壓縮字符串,然后Base64加密

4,將處理后的數(shù)據(jù)發(fā)送至服務(wù)器

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,536評論 25 708
  • ¥開啟¥ 【iAPP實現(xiàn)進入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 6,551評論 0 17
  • ?昨天去二刷《羅曼蒂克消亡史》,這一次看因為把時間線打散了的情節(jié)都串起來了,注意力不再那么緊張,終于能夠注意到錯過...
    微冷微冷閱讀 589評論 0 4
  • 腰肌勞損又稱功能性腰痛、慢性下腰損傷、腰臀肌筋膜炎等,實為腰部肌肉及其附著點筋膜或骨膜的慢性損傷性炎癥,是腰痛的常...
    純純八零后閱讀 210評論 0 0
  • 昨天晚上看視頻到凌晨3點,第二天睡到9點多醒,好累。熬夜很累,可是我偏偏喜歡晚睡時的那個氛圍,萬籟俱寂,只剩自己一...
    歌唄lrf閱讀 149評論 0 0