• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于數(shù)據(jù)和狀態(tài)的移動應(yīng)用可視化埋點方法

      2022-05-30 02:51:51金小俊孫艷霞趙化陳勇
      電腦知識與技術(shù) 2022年10期
      關(guān)鍵詞:移動應(yīng)用數(shù)據(jù)采集可視化

      金小俊 孫艷霞 趙化 陳勇

      摘要:數(shù)據(jù)支撐業(yè)務(wù)的發(fā)展,驅(qū)動決策的落地。建立完整的數(shù)據(jù)采集、上報和分析平臺非常必要。數(shù)據(jù)埋點作為一種最常用的用戶行為統(tǒng)計方式,能夠快速、準(zhǔn)確地采集用戶使用習(xí)慣以及App功能的反饋。埋點的本質(zhì)為追蹤用戶操作或功能行為的發(fā)生,而用戶的操作則會觸發(fā)App功能的變化,這些變化最終會體現(xiàn)數(shù)據(jù)和狀態(tài)的變化。由此,該文提出了一種基于數(shù)據(jù)和狀態(tài)的移動應(yīng)用可視化埋點方法,通過可視化界面設(shè)置埋點對應(yīng)的數(shù)據(jù)和狀態(tài),繼而在數(shù)據(jù)和狀態(tài)發(fā)生變化時記錄相應(yīng)埋點。結(jié)果表明,該文提出的埋點方法靈活高效、可擴(kuò)展性更強(qiáng),具有較高實際應(yīng)用價值。

      關(guān)鍵詞:數(shù)據(jù)埋點;數(shù)據(jù)采集;數(shù)據(jù)和狀態(tài);移動應(yīng)用;可視化

      中圖分類號:TP311.56? ? ? ? 文獻(xiàn)標(biāo)識碼:A

      文章編號:1009-3044(2022)10-0019-02

      在發(fā)展日新月異的移動互聯(lián)網(wǎng)時代,數(shù)據(jù)扮演著極其重要的角色。數(shù)據(jù)支撐業(yè)務(wù)的發(fā)展,驅(qū)動決策的落地。建立完整的數(shù)據(jù)采集、上報和分析平臺非常必要,而其中數(shù)據(jù)采集的全面,精準(zhǔn)和效率尤其重要[1]。埋點作為一種最簡單最直接的用戶行為統(tǒng)計方式,能夠全面精確地采集用戶的使用習(xí)慣以及各功能點的迭代反饋等,有了這些數(shù)據(jù)才能更好地驅(qū)動產(chǎn)品的決策設(shè)計和新業(yè)務(wù)場景的規(guī)劃[2]。

      傳統(tǒng)埋點方式包括代碼埋點、全埋點和可視化埋點。代碼埋點需要在代碼中手動置入相關(guān)埋點代碼,缺點為造成埋點邏輯和業(yè)務(wù)代碼強(qiáng)耦合,且需要發(fā)布版本才能使埋點生效[3]。全埋點不區(qū)分埋點邏輯,需要后期使用大數(shù)據(jù)技術(shù)在獲取的信息中尋找相應(yīng)埋點值,查詢成本和維護(hù)成本較高??梢暬顸c通過可視化界面配置埋點信息,其埋點維護(hù)友善,但僅能設(shè)置用戶界面相關(guān)的埋點[4]。另外,由于iOS和Android系統(tǒng)界面元素不同,需要針對不同應(yīng)用系統(tǒng)分別進(jìn)行埋點配置,增加了使用成本[5]。為解決現(xiàn)有埋點技術(shù)存在的不足,本文提出了一種基于數(shù)據(jù)和狀態(tài)的可視化埋點方法。

      1 數(shù)據(jù)埋點方案

      埋點的本質(zhì)是追蹤用戶的操作或功能行為的發(fā)生。用戶的操作會觸發(fā)App功能的變化,這些變化最終會體現(xiàn)在數(shù)據(jù)和狀態(tài)的變化。比如點擊某個按鈕,會導(dǎo)致頁面發(fā)生變化,或者觸發(fā)某個網(wǎng)絡(luò)請求后返回新的數(shù)據(jù)值。而頁面的變化其實也是數(shù)據(jù)的變化(導(dǎo)航?;蝽撁鎸蛹墬5膬?nèi)容發(fā)生了變化) 。簡而言之,用戶的所有操作導(dǎo)致App行為的變化都可以用某個值(或者某些值的組合) 的變化來表示,因此埋點操作可以轉(zhuǎn)換為監(jiān)控這些數(shù)據(jù),當(dāng)某個(些) 數(shù)據(jù)值發(fā)生變化時記錄相應(yīng)的埋點?;跀?shù)據(jù)和狀態(tài)的埋點方案總體思想為:

      (1) 總能將用戶的操作或功能行為的發(fā)生用某個(些) 數(shù)據(jù)值的變化來表示;

      (2) 埋點的發(fā)生由數(shù)據(jù)和狀態(tài)的變化來驅(qū)動;

      (3) 埋點的記錄即是在簡單的指定狀態(tài)下數(shù)據(jù)值的匹配過程。

      進(jìn)一步將數(shù)據(jù)和狀態(tài)與可視化埋點方案結(jié)合。一方面,對于埋點只需將數(shù)據(jù)和狀態(tài)進(jìn)行配置和管理,而無須識別頁面內(nèi)的各控件,也無須對控件做唯一標(biāo)識。另一方面,多平臺自然統(tǒng)一(埋點對應(yīng)的數(shù)據(jù)名稱是相同的,只是在各平臺代碼中綁定的變量名不同) 。埋點方案流程如圖1所示。

      2 數(shù)據(jù)與狀態(tài)

      2.1 數(shù)據(jù)

      數(shù)據(jù)分為數(shù)據(jù)名稱,數(shù)據(jù)變量和數(shù)據(jù)值。數(shù)據(jù)名稱是指在埋點配置可視化界面中提供的供運(yùn)營人員配置埋點的數(shù)據(jù)名,比如訂單狀態(tài)。數(shù)據(jù)變量是指各平臺代碼中對應(yīng)的變量名,比如iOS中訂單狀態(tài)對應(yīng)的變量名為self.orderType, Android中訂單狀態(tài)對應(yīng)的變量名為this.orderType。數(shù)據(jù)值指程序?qū)嶋H運(yùn)行中該變量對應(yīng)的值,比如訂單狀態(tài)為已預(yù)訂的時候訂單狀態(tài)的數(shù)據(jù)值為1,訂單狀態(tài)為行程中的時候訂單狀態(tài)對應(yīng)的數(shù)據(jù)值為2。數(shù)據(jù)名稱、數(shù)據(jù)變量和數(shù)據(jù)值在埋點配置界面進(jìn)行綁定。如此,埋點配置流程即為,選擇訂單狀態(tài),當(dāng)訂單狀態(tài)為已預(yù)訂時記錄埋點值order_reserved,當(dāng)訂單狀態(tài)為行程中時記錄埋點值order_ongoing。App端接收到埋點配置表后,對相應(yīng)的數(shù)據(jù)變量進(jìn)行匹配,當(dāng)變量值為1時記錄埋點值order_reserved,當(dāng)變量值為2時記錄埋點值order_ongoing。數(shù)據(jù)綁定和配置如圖2所示。

      2.2 狀態(tài)

      App端在對數(shù)據(jù)變量值進(jìn)行匹配時需要一個觸發(fā)時機(jī),即什么時候去檢查數(shù)據(jù)的變量值。傳統(tǒng)的可視化埋點是在用戶點擊了埋點控件后在事件響應(yīng)方法中記錄埋點值,也就是觸發(fā)的時機(jī)是控件事件發(fā)生時。由此,本文引入狀態(tài)的概念,在狀態(tài)發(fā)生變化的時候檢查數(shù)據(jù)的變化。狀態(tài)包含以下幾類:

      (1) 發(fā)生用戶操作事件時(hook點擊事件、手勢事件等)

      hook各類控件的各類事件響應(yīng)方法,比如按鈕的點擊事件或者視圖的手勢事件等。這些事件的響應(yīng)方法被觸發(fā)即代表用戶進(jìn)行了某種類型的操作,當(dāng)該狀態(tài)發(fā)生時對變量值進(jìn)行檢測和埋點處理。

      (2) UI發(fā)生變化時,比如導(dǎo)航棧中的控制器發(fā)生了增減

      監(jiān)控系統(tǒng)導(dǎo)航棧,當(dāng)導(dǎo)航棧的內(nèi)容發(fā)生變化時,對其內(nèi)的數(shù)據(jù)進(jìn)行匹配檢查。具體示例:假設(shè)需要在用戶進(jìn)入訂單詳情頁時記錄埋點值,則App端在導(dǎo)航棧發(fā)生變化及頁面發(fā)生跳轉(zhuǎn)的時候檢測當(dāng)前頁面是否訂單詳情頁,若是,則記錄埋點值。

      (3) 當(dāng)前頁面或Window上的視圖層發(fā)生了變化

      監(jiān)控當(dāng)前頁面或者Window圖層的變化,比如用戶刪除訂單時會彈出彈窗,讓用戶確認(rèn)是否刪除,并記錄埋點值user_delete_order,同時需要判斷用戶是個人用戶還是企業(yè)用戶。相應(yīng)埋點配置流程為:在[視圖交互]-[彈窗]狀態(tài)時,當(dāng)[彈框頁面]為[刪除訂單]時,且[用戶類型]為[個人用戶]時,記錄埋點值individual_user_delete_order。

      (4) 頁面內(nèi)指定的某個函數(shù)(方法) 執(zhí)行前或執(zhí)行后

      在此情況下,狀態(tài)為某個函數(shù)的執(zhí)行。hook指定函數(shù),當(dāng)函數(shù)執(zhí)行時即為狀態(tài)發(fā)生,此時檢查數(shù)據(jù)的變化進(jìn)行匹配并記錄埋點。比如,當(dāng)用戶請求行程預(yù)估價格時,記錄埋點值request_estimate_price,請求預(yù)估價格失敗時記錄埋點值request_estimate_price_failed。相應(yīng)埋點配置流程為:在[方法執(zhí)行]-[請求行程預(yù)估價格]-[開始]狀態(tài)時,記錄埋點值request_estimate_price,在[方法執(zhí)行]-[請求行程預(yù)估價格]-[結(jié)束]狀態(tài)時,當(dāng)[返回值]為[false]時,記錄埋點值request_estimate_price_failed。如此,埋點的配置過程也是一個語義化的描述過程。狀態(tài)綁定和配置如圖3所示。

      3 埋點實施

      埋點實施包含兩部分:埋點配置系統(tǒng)和移動應(yīng)用埋點SDK(簡稱埋點SDK) 。

      3.1 埋點配置系統(tǒng)

      以頁面(iOS為UIViewController, Android為Activity) 為單位進(jìn)行埋點配置,頁面以類名作為唯一標(biāo)識。若存在該頁面的設(shè)計圖,則直接將設(shè)計圖導(dǎo)入埋點配置系統(tǒng),若沒有相應(yīng)的設(shè)計圖,則在App端進(jìn)行截屏并將該頁面截圖上傳。頁面導(dǎo)入成功后,由開發(fā)人員將數(shù)據(jù)名稱,數(shù)據(jù)變量和數(shù)據(jù)值進(jìn)行綁定。綁定后生成數(shù)據(jù)列表,供運(yùn)營人員配置埋點時使用。

      狀態(tài)配置為指定在何種情況下(觸發(fā)條件) 進(jìn)行埋點值的匹配和記錄。配置系統(tǒng)默認(rèn)提供3種類型的可選狀態(tài),分別為[控件交互][頁面交互]和[視圖交互]。除此之外,還提供自定義的[方法執(zhí)行]狀態(tài)。[控件交互]包括[點擊事件、長按手勢、拖動手勢、滑動手勢、縮放手勢],表示用戶對App進(jìn)行交互的狀態(tài)。[頁面交互]狀態(tài)主要用來記錄PV埋點,包括[頁面進(jìn)入,頁面退出],在配置系統(tǒng)可直接配置[頁面進(jìn)入]和[頁面退出]分別對應(yīng)的埋點值。[視圖交互]狀態(tài)包括[普通視圖,彈窗]兩種,[普通視圖]為當(dāng)前頁面上添加或展現(xiàn)的視圖,[彈窗]則為Window上添加或展現(xiàn)的視圖。在設(shè)置視圖交互狀態(tài)時還需指定視圖的名稱,視圖的名稱以視圖的類名來標(biāo)識,如果是非自定義的視圖(比如系統(tǒng)默認(rèn)彈窗視圖) ,則不同的彈窗其類名是相同的,這種情況下視圖標(biāo)識符取類名加彈窗上的標(biāo)題文本(若類名相同標(biāo)題亦相同則認(rèn)為是同一個視圖) 。[方法執(zhí)行]狀態(tài)用來表示某種操作的進(jìn)行,以頁面中的指定方法開始執(zhí)行和結(jié)束執(zhí)行為依據(jù)。其默認(rèn)提供[開始]和[結(jié)束]兩個子狀態(tài),對應(yīng)到埋點SDK端即hook的時候,在原方法執(zhí)行前注入埋點代碼和原方法執(zhí)行后注入埋點代碼。

      3.2 埋點SDK

      將下發(fā)的埋點配置表中的變量在狀態(tài)條件滿足時進(jìn)行匹配(即讀取運(yùn)行時的數(shù)據(jù)值和表中的值進(jìn)行匹配) 。運(yùn)行時讀取值的方法:iOS端采用KVC的方式,Android采用反射的方式。對于狀態(tài)的監(jiān)控分別為對控件交互狀態(tài)、頁面交互狀態(tài)、視圖交互狀態(tài)、方法執(zhí)行狀態(tài)進(jìn)行監(jiān)控。

      控件交互狀態(tài)通過hook控件的響應(yīng)事件來進(jìn)行監(jiān)控。對于點擊事件,hook系統(tǒng)的點擊事件方法(iOS hook UIControl的sendAction:to:forEvent:方法,Android hook onClick方法) ,當(dāng)該方法執(zhí)行時表示點擊事件發(fā)生,此時讀取埋點配置表中該狀態(tài)下的數(shù)據(jù)列表,對數(shù)據(jù)值(或數(shù)據(jù)值組合) 進(jìn)行匹配,根據(jù)匹配結(jié)果記錄埋點值。手勢事件的監(jiān)控同理。

      頁面交互狀態(tài)通過對系統(tǒng)的導(dǎo)航棧進(jìn)行監(jiān)控,若導(dǎo)航棧內(nèi)的頁面發(fā)生變化,即代表頁面發(fā)生了跳轉(zhuǎn)(頁面交互) ,根據(jù)導(dǎo)航棧內(nèi)頁面是增加還是減少來判斷是頁面進(jìn)入或是頁面退出。

      視圖交互狀態(tài)則對當(dāng)前視圖或Window視圖的所有子視圖列表進(jìn)行監(jiān)控,若列表發(fā)生增減,即代表視圖發(fā)生了變化,根據(jù)發(fā)生變化的視圖標(biāo)識符來進(jìn)行埋點匹配。

      方法執(zhí)行狀態(tài)的監(jiān)控通過讀取系統(tǒng)下發(fā)的埋點配置表中指定的狀態(tài)方法名對所有指定的方法進(jìn)行hook操作,hook時根據(jù)子狀態(tài)是[開始]還是[結(jié)束]來判斷hook的操作是在原方法執(zhí)行前生效還是執(zhí)行后生效。另外,hook方法時同時獲取方法的入?yún)⒑统鰠ⅲǚ祷刂担?,供埋點的子狀態(tài)下數(shù)據(jù)匹配時使用。

      4 結(jié)束語

      本研究提出了一種基于數(shù)據(jù)和狀態(tài)的可視化埋點方法。在移動應(yīng)用中總能將用戶的操作或功能行為的發(fā)生用某個(些) 數(shù)據(jù)值的變化來表示,因而,埋點的發(fā)生可由數(shù)據(jù)和狀態(tài)的變化來驅(qū)動?;诖怂枷耄顸c的記錄即是簡單的指定狀態(tài)下數(shù)據(jù)值的匹配過程。通過進(jìn)一步將數(shù)據(jù)和狀態(tài)與可視化埋點方案結(jié)合,則對于埋點只需對數(shù)據(jù)和狀態(tài)進(jìn)行配置和管理,而無須識別頁面內(nèi)的各控件,也無須對控件做唯一標(biāo)識。應(yīng)用表明,本文提出的埋點方法靈活高效、可擴(kuò)展性更強(qiáng),具有較高實際價值。

      參考文獻(xiàn):

      [1] 趙強(qiáng),彭瑋.新聞App用戶行為分析的實現(xiàn)[J].中國傳媒科技,2019(3):39-43.

      [2] 李旭,翟穎琳.基于數(shù)據(jù)分析平臺的App交互設(shè)計測試評估研究[J].包裝工程,2018,39(2):143-148.

      [3] 廖愛紅,羅銘濤.埋點管理系統(tǒng)分析與設(shè)計[J].辦公自動化,2020,25(16):33-35.

      [4] 蔡榆榕.運(yùn)用埋點技術(shù)實現(xiàn)高校應(yīng)用服務(wù)平臺過程監(jiān)控[J].中國管理信息化,2021,24(15):187-190.

      [5] 吳榮燦,羅嘉龍,鄭伙群,等.基于大數(shù)據(jù)技術(shù)的用戶行為分析平臺的設(shè)計與實現(xiàn)[J].電腦知識與技術(shù),2021,17(12):40-42.

      【通聯(lián)編輯:代影】

      收稿日期:2021-09-22

      基金項目:國家自然科學(xué)基金項目(32072498)

      作者簡介:金小俊(1987—),男,工程師,碩士,主要從事軟件工程及人工智能技術(shù)研究;孫艷霞(1988—),女,工程師,碩士,主要從事機(jī)器人及工程機(jī)械研究;趙化(1988—),男,助理工程師,學(xué)士,主要從事軟件架構(gòu)與設(shè)計研究;通信作者:陳勇(1965—),男,教授,博士生導(dǎo)師,博士,主要從事機(jī)電一體化研究。

      猜你喜歡
      移動應(yīng)用數(shù)據(jù)采集可視化
      基于CiteSpace的足三里穴研究可視化分析
      基于Power BI的油田注水運(yùn)行動態(tài)分析與可視化展示
      云南化工(2021年8期)2021-12-21 06:37:54
      基于CGAL和OpenGL的海底地形三維可視化
      “融評”:黨媒評論的可視化創(chuàng)新
      傳媒評論(2019年4期)2019-07-13 05:49:14
      T學(xué)校公共設(shè)施便捷報修平臺的移動應(yīng)用研究
      東方教育(2016年18期)2017-01-16 16:42:44
      云計算環(huán)境下的微課移動云平臺設(shè)計
      大數(shù)據(jù)時代下免費(fèi)手機(jī)軟件盈利模式探討
      鐵路客流時空分布研究綜述
      基于廣播模式的數(shù)據(jù)實時采集與處理系統(tǒng)
      軟件工程(2016年8期)2016-10-25 15:54:18
      通用Web表單數(shù)據(jù)采集系統(tǒng)的設(shè)計與實現(xiàn)
      軟件工程(2016年8期)2016-10-25 15:52:53
      鄯善县| 会同县| 黎平县| 汶川县| 罗田县| 天台县| 巍山| 蚌埠市| 丘北县| 峨眉山市| 交口县| 高阳县| 如东县| 芦溪县| 察雅县| 冀州市| 长子县| 霸州市| 左云县| 普洱| 芷江| 静宁县| 岢岚县| 新竹县| 墨脱县| 曲阳县| 松原市| 红桥区| 贵定县| 西安市| 安塞县| 罗平县| 永德县| 嵩明县| 鲁甸县| 渭源县| 淄博市| 馆陶县| 东莞市| 绵竹市| 边坝县|