[發(fā)明專利]基于無埋點(diǎn)的Android用戶行為數(shù)據(jù)采集方法有效
| 申請?zhí)枺?/td> | 201711467898.3 | 申請日: | 2017-12-29 |
| 公開(公告)號: | CN108038045B | 公開(公告)日: | 2020-09-29 |
| 發(fā)明(設(shè)計(jì))人: | 程永新;宋輝;唐家冰 | 申請(專利權(quán))人: | 上海新炬網(wǎng)絡(luò)技術(shù)有限公司 |
| 主分類號: | G06F11/30 | 分類號: | G06F11/30;G06F9/54;G06F9/455 |
| 代理公司: | 上海科律專利代理事務(wù)所(特殊普通合伙) 31290 | 代理人: | 袁亞軍;金碎平 |
| 地址: | 201707 上海市青浦區(qū)外青*** | 國省代碼: | 上海;31 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 無埋點(diǎn) android 用戶 行為 數(shù)據(jù) 采集 方法 | ||
1.一種基于無埋點(diǎn)的Android用戶行為數(shù)據(jù)采集方法,其特征在于,包括如下步驟:
S1:通過agent.gradle.plugin啟動class.rewriter;
S2:通過class.rewriter將全部的class文件合成為一個(gè)dex文件的過程中,對指定的class文件進(jìn)行動態(tài)的修改,插入監(jiān)控代碼;
S3:對控件采用可視化的圈選方式,通過android.agent實(shí)現(xiàn)業(yè)務(wù)邏輯,并進(jìn)行用戶行為數(shù)據(jù)的采集和發(fā)送;
所述步驟S1包括:
S11:啟動class.rewriter.jar,首先調(diào)用RewriterAgent類的agentmain方法,在agentmain方法中調(diào)用premain方法;
S12:在createInvocationDispatcher方法內(nèi)創(chuàng)建一個(gè)InvocationDispatcher對象,并把它賦值給Logger類的treeLock成員;ProcessBuilder類通過Logger類的treeLock成員來獲取InvocationHandler實(shí)例;
S13:agentmain方法的參數(shù)Instrumentation對象調(diào)用addTransformer方法添加DexClassTransformer轉(zhuǎn)換器;
S14:Instrumentation對象調(diào)用getAllLoadedClasses方法獲取已加載的全部類,然后調(diào)用DexClassTransformer對象的modifies方法對這些類進(jìn)行過濾,過濾出com.android.dx.command.dexer.Main和java.lang.ProcessBuilder;
S15:Instrumentation對象調(diào)用isRetransformClassesSupported方法判斷當(dāng)前JVM配置是否支持類的重加載;如果支持,則將com.android.dx.command.dexer.Main和java.lang.ProcessBuilder添加進(jìn)retransformClasses方法中進(jìn)行重加載操作;
S16:RewriterAgent類調(diào)用redefineClass方法對ProcessBuilder類進(jìn)行重新定義;該方法內(nèi)讀取ProcessBuilder類的文件字節(jié),然后將該字節(jié)傳入給DexClassTransformer對象的transform方法,該方法會返回新的字節(jié),得到新字節(jié)后將生成一個(gè)ClassDefinition對象,最后將該對象傳遞給Instrumentation對象的redefineClasses方法進(jìn)行類的重定義;
所述驟S3中調(diào)用CircleHelper類的createHelper靜態(tài)方法開啟圈選功能,包括如下操作:
S34:當(dāng)小紅圈移動到某個(gè)控件上時(shí),調(diào)用ViewTreeUtils類的getViewAtRect靜態(tài)方法獲取該控件的對象;
S35:獲取該控件對象后,調(diào)用ViewTreeUtils類的getAllViewOfSetViewListener靜態(tài)方法,獲取該控件中能響應(yīng)用戶點(diǎn)擊事件的所有子控件對象;
S36:逐個(gè)遍歷所有子控件對象,調(diào)用ViewTreeUtils類的getXPathEntity靜態(tài)方法,獲取所述控件的xpath信息和文本內(nèi)容;
S37:當(dāng)用戶確定要上傳某個(gè)控件的xpath信息時(shí),便在UploadAsyncTask類的doInBackground方法中將該控件的xpath信息、文本內(nèi)容和指標(biāo)名稱上傳到服務(wù)端。
2.如權(quán)利要求1所述的基于無埋點(diǎn)的Android用戶行為數(shù)據(jù)采集方法,其特征在于,所述步驟S3中當(dāng)用戶點(diǎn)擊控件時(shí),在響應(yīng)這次事件之前,通過調(diào)用ViewListener類的monitorListener靜態(tài)方法采集用戶的行為數(shù)據(jù),包括如下操作:
S31:調(diào)用ViewListenerUtils類的getCurrentView靜態(tài)方法,獲取當(dāng)前被用戶點(diǎn)擊的控件,賦值給targetView;
S32:調(diào)用getUserEventEntity靜態(tài)方法,傳入targetView,獲取該控件的xpath信息和文本內(nèi)容賦值給UserEventEntity對象,其中,xpath信息包括所屬頁面、控件路徑、控件id;
S33:將獲取到的UserEventEntity對象作為參數(shù)傳給Harvest類的addUserEvent靜態(tài)方法。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于上海新炬網(wǎng)絡(luò)技術(shù)有限公司,未經(jīng)上海新炬網(wǎng)絡(luò)技術(shù)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201711467898.3/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F11-00 錯(cuò)誤檢測;錯(cuò)誤校正;監(jiān)控
G06F11-07 .響應(yīng)錯(cuò)誤的產(chǎn)生,例如,容錯(cuò)
G06F11-22 .在準(zhǔn)備運(yùn)算或者在空閑時(shí)間期間內(nèi),通過測試作故障硬件的檢測或定位
G06F11-28 .借助于檢驗(yàn)標(biāo)準(zhǔn)程序或通過處理作錯(cuò)誤檢測、錯(cuò)誤校正或監(jiān)控
G06F11-30 .監(jiān)控
G06F11-36 .通過軟件的測試或調(diào)試防止錯(cuò)誤
- 一種對應(yīng)用進(jìn)行無侵入化埋點(diǎn)的實(shí)現(xiàn)方法及系統(tǒng)
- 無埋點(diǎn)參數(shù)的配置方法、裝置、計(jì)算機(jī)設(shè)備及存儲介質(zhì)
- 無埋點(diǎn)的數(shù)據(jù)采集方法及裝置
- 一種異步數(shù)據(jù)采集方法及系統(tǒng)
- 一種自動埋點(diǎn)的方法、裝置、介質(zhì)和電子設(shè)備
- 一種數(shù)據(jù)處理系統(tǒng)以及方法
- 基于jsp的前端埋點(diǎn)方法及裝置
- 一種Android客戶端通用自動埋點(diǎn)方法
- 基于埋點(diǎn)的數(shù)據(jù)采集方法、裝置、電子設(shè)備及存儲介質(zhì)
- 無支撐點(diǎn)螺桿埋件定位裝置和無支撐點(diǎn)桿狀埋件定位裝置
- 一種Android設(shè)備之間遠(yuǎn)程桌面控制的方法
- 一種Android程序的執(zhí)行路徑的還原方法
- 基于ANCS協(xié)議兼容多平臺的通知消息獲取方法
- 基于字節(jié)碼插樁的Android程序監(jiān)控系統(tǒng)及方法
- 一種減少Android設(shè)備功耗的優(yōu)化方法及裝置
- 一種縮短無屏Android設(shè)備開機(jī)啟動時(shí)間的設(shè)置方法
- 一種基于Android雙系統(tǒng)的系統(tǒng)間通知同步方法
- 基于移動操作系統(tǒng)的Android兼容層實(shí)現(xiàn)方法和系統(tǒng)
- 一種Android智能設(shè)備APK安全管控方法
- 一種應(yīng)用程序開發(fā)中創(chuàng)建Android庫模塊依賴關(guān)系的方法及裝置





