[發(fā)明專利]基于Android終端的用戶數(shù)據(jù)采集的方法及系統(tǒng)在審
| 申請?zhí)枺?/td> | 201810306412.6 | 申請日: | 2018-04-08 |
| 公開(公告)號(hào): | CN108549537A | 公開(公告)日: | 2018-09-18 |
| 發(fā)明(設(shè)計(jì))人: | 楊永強(qiáng);吳江林;謝榮生 | 申請(專利權(quán))人: | 北京極數(shù)科技有限公司 |
| 主分類號(hào): | G06F8/41 | 分類號(hào): | G06F8/41;G06F9/445 |
| 代理公司: | 北京萬思博知識(shí)產(chǎn)權(quán)代理有限公司 11694 | 代理人: | 高鎮(zhèn) |
| 地址: | 100102 北京*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 用戶數(shù)據(jù) 采集 編譯 終端 動(dòng)態(tài)代理 用戶行為 干預(yù) 申請 | ||
1.一種基于Android終端的用戶數(shù)據(jù)采集的方法,其特征在于,包括如下步驟:
在Android系統(tǒng)對(duì)APP編譯階段,采用動(dòng)態(tài)代理java agent,與編譯器進(jìn)行交互,指示編譯器通過修改目標(biāo)class文件添加預(yù)定事件埋點(diǎn)并生成對(duì)應(yīng)該事件的機(jī)器代碼,進(jìn)行用戶數(shù)據(jù)采集。
2.根據(jù)權(quán)利要求1所述的基于Android終端的用戶數(shù)據(jù)采集的方法,其特征在于,
當(dāng)編譯開始時(shí),通過插件啟動(dòng)所述動(dòng)態(tài)代理java agent。
3.根據(jù)權(quán)利要求2所述的基于Android終端的用戶數(shù)據(jù)采集的方法,其特征在于,包括如下步驟:
在所述Android系統(tǒng)開始編譯APP時(shí),通過gradle插件啟動(dòng)動(dòng)態(tài)代理java agent;
所述java agent修改目標(biāo)class文件;
判斷是否修改成功,若是,則編譯成功,無埋點(diǎn)成功;若否,則編譯成功,無埋點(diǎn)失敗;
在埋點(diǎn)成功的情況下,基于被修改的目標(biāo)class文件,進(jìn)行用戶數(shù)據(jù)采集。
4.根據(jù)權(quán)利要求3所述的基于Android終端的用戶數(shù)據(jù)采集的方法,其特征在于,所述java agent修改目標(biāo)class文件包括如下步驟:
創(chuàng)建InvocationHandler實(shí)例,
將所述InvocationHandler實(shí)例賦值給SecurityManager.class的packageAccessLock變量;
令ProcessBuilder類通過反射獲取所述InvocationHandler的實(shí)例;
ProcessBuilder類執(zhí)行start方法,啟動(dòng)dx.bat的進(jìn)程;
ClassFileTransformer實(shí)現(xiàn)對(duì)com.android.dx.command.dexer.Main類的processClass方法進(jìn)行修改;
將修改好的目標(biāo)Class文件編譯成dex文件。
5.根據(jù)權(quán)利要求4所述的基于Android終端的用戶數(shù)據(jù)采集的方法,其特征在于,
通過ASM使ClassFileTransformer實(shí)現(xiàn)對(duì)com.android.dx.command.dexer.Main類的processClass方法進(jìn)行修改。
6.一種基于Android終端的用戶數(shù)據(jù)采集的系統(tǒng),其特征在于,包括:
用于在Android系統(tǒng)對(duì)APP編譯階段,采用動(dòng)態(tài)代理java agent,與編譯器進(jìn)行交互,指示編譯器通過修改目標(biāo)class文件添加預(yù)定事件埋點(diǎn)并生成對(duì)應(yīng)該事件的機(jī)器代碼,進(jìn)行用戶數(shù)據(jù)采集。
7.根據(jù)權(quán)利要求6所述的基于Android終端的用戶數(shù)據(jù)采集的系統(tǒng),其特征在于,
當(dāng)編譯開始時(shí),通過插件啟動(dòng)所述動(dòng)態(tài)代理java agent。
8.根據(jù)權(quán)利要求7所述的基于Android終端的用戶數(shù)據(jù)采集的系統(tǒng),其特征在于,包括:
啟動(dòng)單元,用于在所述Android系統(tǒng)開始編譯APP時(shí),通過gradle插件啟動(dòng)動(dòng)態(tài)代理java agent;
修改單元,用于所述java agent修改目標(biāo)class文件;
判斷單元,用于判斷是否修改成功,若是,則編譯成功,無埋點(diǎn)成功;若否,則編譯成功,無埋點(diǎn)失敗;
采集單元,用于在埋點(diǎn)成功的情況下,基于被修改的目標(biāo)class文件,進(jìn)行用戶數(shù)據(jù)采集。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京極數(shù)科技有限公司,未經(jīng)北京極數(shù)科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810306412.6/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 業(yè)務(wù)用戶數(shù)據(jù)管理系統(tǒng)及其實(shí)現(xiàn)業(yè)務(wù)用戶數(shù)據(jù)管理的方法
- 業(yè)務(wù)用戶數(shù)據(jù)管理系統(tǒng)及其實(shí)現(xiàn)業(yè)務(wù)用戶數(shù)據(jù)管理的方法
- 用戶數(shù)據(jù)版本轉(zhuǎn)換系統(tǒng)及其用戶數(shù)據(jù)版本轉(zhuǎn)換方法
- 數(shù)據(jù)校驗(yàn)方法和裝置
- 用戶數(shù)據(jù)訪問控制方法、設(shè)備和計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 系統(tǒng)設(shè)計(jì)輔助裝置及系統(tǒng)設(shè)計(jì)輔助方法
- 一種用戶數(shù)據(jù)的訂閱方法、裝置及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 一種用戶數(shù)據(jù)標(biāo)簽處理方法及裝置
- 用戶數(shù)據(jù)處理方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 廣告監(jiān)控方法、裝置及電子設(shè)備
- 一種軟件開發(fā)中的自動(dòng)化編譯方法及系統(tǒng)
- 一種動(dòng)態(tài)分配編譯機(jī)的系統(tǒng)及其方法
- 一種實(shí)現(xiàn)安卓編譯隔離的方法和系統(tǒng)
- 調(diào)度服務(wù)器、編譯服務(wù)器及分布式編譯方法
- 代碼編譯方法、編譯設(shè)備、存儲(chǔ)介質(zhì)及裝置
- 文件編譯方法、裝置、編譯設(shè)備及存儲(chǔ)介質(zhì)
- 一種編譯方法、裝置及系統(tǒng)
- 一種編譯方法和相關(guān)裝置
- 一種編譯方法、電子設(shè)備及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 一種代碼編譯方法、裝置及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)





