亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于記錄用戶行為的方法、系統(tǒng)及移動(dòng)終端與流程

文檔序號(hào):12665544閱讀:223來源:國(guó)知局
用于記錄用戶行為的方法、系統(tǒng)及移動(dòng)終端與流程

本發(fā)明的實(shí)施方式涉及通信與計(jì)算機(jī)技術(shù)領(lǐng)域,更具體地,本發(fā)明的實(shí)施方式涉及用于記錄用戶行為的方法、系統(tǒng)及移動(dòng)終端。



背景技術(shù):

本部分旨在為權(quán)利要求書中陳述的本發(fā)明的實(shí)施方式提供背景或上下文。此處的描述不因?yàn)榘ㄔ诒静糠种芯统姓J(rèn)是現(xiàn)有技術(shù)。

目前無論是互聯(lián)網(wǎng)產(chǎn)品還是移動(dòng)應(yīng)用產(chǎn)品,都越來越強(qiáng)調(diào)用戶體驗(yàn),都希望將用戶使用產(chǎn)品時(shí)的行為記錄下來,通過獲得用戶操作相關(guān)的數(shù)據(jù),通過對(duì)用戶操作相關(guān)的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)、分析,寄希望于從中發(fā)現(xiàn)用戶使用規(guī)律,并將這些規(guī)律與自身產(chǎn)品營(yíng)銷策略等相結(jié)合,從而發(fā)現(xiàn)目前自身產(chǎn)品營(yíng)銷活動(dòng)中可能存在的問題,并為進(jìn)一步修正或重新制定網(wǎng)絡(luò)營(yíng)銷策略提供依據(jù)。

以移動(dòng)終端為例,記錄用戶的行為數(shù)據(jù)包括用戶在應(yīng)用中的停留時(shí)間、用戶的觸屏操作、用戶的按鍵操作、用戶輸入的文本數(shù)據(jù)等等??衫?,移動(dòng)端應(yīng)用中用戶行為統(tǒng)計(jì),可以記錄用戶從哪個(gè)頁(yè)面跳轉(zhuǎn)到哪個(gè)頁(yè)面,在頁(yè)面上都點(diǎn)擊了哪些按鈕,點(diǎn)擊了幾次等等。通過記錄以上種種的用戶行為,可以分析用戶對(duì)該應(yīng)用的瀏覽習(xí)慣與使用習(xí)慣,分析用戶的興趣點(diǎn)所在等大量的行為相關(guān)數(shù)據(jù)。

目前,已經(jīng)出現(xiàn)一些在移動(dòng)端記錄用戶行為的技術(shù)。



技術(shù)實(shí)現(xiàn)要素:

但是,現(xiàn)有技術(shù)在移動(dòng)端記錄用戶行為數(shù)據(jù)時(shí),往往是由應(yīng)用的開發(fā)者來進(jìn)行的,針對(duì)移動(dòng)端的應(yīng)用的每一個(gè)頁(yè)面,該應(yīng)用的開發(fā)人員需要改寫應(yīng)用代碼的內(nèi)容,根據(jù)不同應(yīng)用的頁(yè)面的特點(diǎn),在不同的位置插入代碼,以達(dá)到記錄用戶行為數(shù)據(jù)的目的。這樣一來,就需要編寫大量繁瑣重復(fù)的代碼,記錄用戶在不同使用場(chǎng)景下的行為信息,大大降低了產(chǎn)品研發(fā)的效率,增大了產(chǎn)品研發(fā)的成本,而且,在應(yīng)用實(shí)際的使用過程中,由于額外記錄用戶行為相關(guān)代碼的增加,也使得移動(dòng)終端系統(tǒng)中工作量增加,在某些情況下,很有可能造成移動(dòng)終端系統(tǒng)處理速度變慢等不良影響,用戶體驗(yàn)較差,增加了對(duì)用戶行為數(shù)據(jù)進(jìn)行分析挖掘的復(fù)雜難度。

而且在現(xiàn)有技術(shù)中,對(duì)于用戶操作的記錄,只能記錄用戶的點(diǎn)擊,滑動(dòng)等觸摸操作,沒法識(shí)別更全面的操作信息,包括文本輸入,手機(jī)按鍵和屏幕旋轉(zhuǎn)。

在現(xiàn)有技術(shù)中,由于移動(dòng)終端應(yīng)用中代碼增加帶來的用戶體驗(yàn)較差的情況,是非常令人煩惱的過程。

為此,非常需要一種改進(jìn)的用于記錄用戶行為的方法、系統(tǒng)及移動(dòng)終端,以使在不影響移動(dòng)終端性能的同時(shí),記錄用戶行為。

在本上下文中,本發(fā)明的實(shí)施方式期望提供一種用于記錄用戶行為的方法、系統(tǒng)及移動(dòng)終端。

在本發(fā)明實(shí)施方式的第一方面中,提供了一種用于記錄用戶行為的方法,包括:應(yīng)用啟動(dòng)時(shí),在加載處理中鉤取特定系統(tǒng)函數(shù);以及響應(yīng)用戶操作,調(diào)用預(yù)定函數(shù),記錄所述用戶的行為。

在本發(fā)明的一個(gè)實(shí)施例中,基于前述方案,所述事件的信息包括:所述事件的屬性;以及所述事件所屬的視圖控制器。

在本發(fā)明的另一實(shí)施例中,基于前述方案,所述通過所述事件的信息對(duì)所述事件進(jìn)行分類識(shí)別,識(shí)別結(jié)果包括以下情況至少一種:點(diǎn)擊類事件、長(zhǎng)按類事件、拖動(dòng)類事件、文本輸入類事件、手機(jī)按鍵類事件、放大類事件、縮小類事件、頁(yè)面打開關(guān)閉類事件、以及屏幕旋轉(zhuǎn)類事件。

在本發(fā)明的又一個(gè)實(shí)施例中,基于前述方案,所述事件的屬性,包括以下內(nèi)容至少一者:所述事件的發(fā)送方;所述事件的名稱;所述事件的發(fā)生時(shí)間;所述事件的位置;以及所述事件的類型。

在本發(fā)明的又一個(gè)實(shí)施例中,基于前述方案,所述通過所述事件信息以及所述事件的分類記錄所述用戶的行為,包括:獲取到用戶事件;通過所述用戶事件的所述屬性判斷所述用戶事件的發(fā)送方是否為文本輸入類型;如果所述用戶事件的發(fā)送方為文本輸入類型,則獲取所述文本輸入的內(nèi)容作為所述用戶的行為。

在本發(fā)明的又一實(shí)施例中,基于前述方案,所述如果所述用戶事件的發(fā)送方為文本輸入類型,則獲取所述文本輸入的內(nèi)容,包括:獲取所述用戶事件的發(fā)送方的控件;以及獲取所述用戶的文本輸入內(nèi)容。

在本發(fā)明的又一實(shí)施例中,基于前述方案,所述特定系統(tǒng)函數(shù)包括:事件分發(fā)函數(shù)。

在本發(fā)明的又一實(shí)施例中,基于前述方案,所述應(yīng)用啟動(dòng)時(shí),在加載處理中鉤取特定系統(tǒng)函數(shù),包括:通過鉤子技術(shù)鉤取所述特定系統(tǒng)函數(shù)。

在本發(fā)明實(shí)施方式的第二方面中,提供了一種用于記錄用戶行為的系統(tǒng),包括:?jiǎn)?dòng)模塊,用于應(yīng)用啟動(dòng)時(shí),在裝載處理中鉤取特定系統(tǒng)函數(shù);以及記錄模塊,用于響應(yīng)用戶操作,調(diào)用預(yù)定函數(shù),記錄所述用戶的行為。

在本發(fā)明的一個(gè)實(shí)施例中,基于前述方案,該系統(tǒng)包括:函數(shù)模塊,用于通過增加界面控制器中的分類獲得所述預(yù)定函數(shù)。

在本發(fā)明的另一實(shí)施例中,基于前述方案,所述記錄模塊包括:信息子模塊,用于通過所述預(yù)定程序收集事件的信息;分類子模塊,用于通過所述事件的信息對(duì)所述事件進(jìn)行分類識(shí)別;以及發(fā)送子模塊,用于通過所述事件的信息以及所述事件的分類識(shí)別,記錄所述用戶的行為。

在本發(fā)明的又一實(shí)施例中,基于前述方案,所述發(fā)送子模塊包括:事件子模塊,用于獲取到用戶事件;判斷子模塊,用于通過所述用戶事件的屬性判斷所述用戶事件的發(fā)送方是否為文本輸入框;文本子模塊,用于在所述用戶事件的發(fā)送方為文本輸入框時(shí),獲取所述文本輸入框中的內(nèi)容作為所述用戶的行為。

在本發(fā)明的又一實(shí)施例中,基于前述方案,所述判斷子模塊,包括:控件子模塊,用于獲取所述用戶事件的發(fā)送方的控件。

在本發(fā)明實(shí)施方式的第三方面中,提供了一種移動(dòng)終端,包括:處理器;存儲(chǔ)器,存儲(chǔ)用于所述處理器控制如第一方面所述的方法。

根據(jù)本發(fā)明實(shí)施方式的用于記錄用戶行為的方法、系統(tǒng)及移動(dòng)終端,通過應(yīng)用啟動(dòng)時(shí),在加載處理中鉤取特定系統(tǒng)函數(shù);以及響應(yīng)用戶操作,調(diào)用預(yù)定函數(shù),記錄所述用戶的行為的方式??梢苑奖憧旖莸膶?shí)現(xiàn)對(duì)用戶行為的記錄,而無需該應(yīng)用的開發(fā)人員針對(duì)的移動(dòng)端的應(yīng)用的每一個(gè)頁(yè)面,改寫應(yīng)用代碼的內(nèi)容,從而顯著地降低了應(yīng)用開發(fā)的時(shí)間,并且減少了由于應(yīng)用記錄用戶行為而帶來的移動(dòng)終端系統(tǒng)處理速度變慢等不良影響,為用戶帶來了更好的體驗(yàn)。

附圖說明

通過參考附圖閱讀下文的詳細(xì)描述,本發(fā)明示例性實(shí)施方式的上述以及其他目的、特征和優(yōu)點(diǎn)將變得易于理解。在附圖中,以示例性而非限制性的方式示出了本發(fā)明的若干實(shí)施方式,其中:

圖1示意性地示出了根據(jù)本發(fā)明實(shí)施方式的用于記錄用戶行為的方法的流程圖;

圖2示意性地示出了根據(jù)本發(fā)明又一實(shí)施例的用于記錄用戶行為的方法的流程圖;

圖3示意性地示出了根據(jù)本發(fā)明又一實(shí)施例的用于記錄用戶行為的方法的流程圖;

圖4示意性地示出了根據(jù)本發(fā)明又一實(shí)施例的用于記錄用戶行為的方法的輸出結(jié)果;

圖5示意性地示出了根據(jù)本發(fā)明一實(shí)施例的用于記錄用戶行為的系統(tǒng)的框圖;

圖6示意性地示出了根據(jù)本發(fā)明又一實(shí)施例的用于記錄用戶行為的系統(tǒng)的框圖;

圖7示意性地示出了根據(jù)本發(fā)明再一實(shí)施例的用于記錄用戶行為的系統(tǒng)的框圖;

圖8示意性地示出了根據(jù)本發(fā)明一實(shí)施例的移動(dòng)終端的示意圖;

在附圖中,相同或?qū)?yīng)的標(biāo)號(hào)表示相同或?qū)?yīng)的部分。

具體實(shí)施方式

下面將參考若干示例性實(shí)施方式來描述本發(fā)明的原理和精神。應(yīng)當(dāng)理解,給出這些實(shí)施方式僅僅是為了使本領(lǐng)域技術(shù)人員能夠更好地理解進(jìn)而實(shí)現(xiàn)本發(fā)明,而并非以任何方式限制本發(fā)明的范圍。相反,提供這些實(shí)施方式是為了使本公開更加透徹和完整,并且能夠?qū)⒈竟_的范圍完整地傳達(dá)給本領(lǐng)域的技術(shù)人員。

本領(lǐng)域技術(shù)技術(shù)人員知道,本發(fā)明的實(shí)施方式可以實(shí)現(xiàn)為一種系統(tǒng)、裝置、設(shè)備、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本公開可以具體實(shí)現(xiàn)為以下形式,即:完全的硬件、完全的軟件(包括固件、駐留軟件、微代碼等),或者硬件和軟件結(jié)合的形式。

根據(jù)本發(fā)明的實(shí)施方式,提出了一種用于記錄用戶行為的方法、系統(tǒng)及移動(dòng)終端。

此外,附圖中的任何元素?cái)?shù)量均用于示例而非限制,以及任何命名都僅用于區(qū)分,而不具有任何限制含義。

下面參考本發(fā)明的若干代表性實(shí)施方式,詳細(xì)闡釋本發(fā)明的原理和精神。

發(fā)明概述

本發(fā)明人發(fā)現(xiàn),現(xiàn)有技術(shù)中,移動(dòng)端記錄用戶行為的方法需要針對(duì)應(yīng)用每一個(gè)頁(yè)面進(jìn)行代碼的編寫工作,從而引入大量的工作量,而且降低用戶的使用體驗(yàn)。

為此,本發(fā)明的實(shí)施方式提供了用于記錄用戶行為的方法、系統(tǒng)及移動(dòng)終端,通過應(yīng)用啟動(dòng)時(shí),在加載處理中鉤取特定系統(tǒng)函數(shù);以及響應(yīng)用戶操作,調(diào)用預(yù)定函數(shù),記錄所述用戶的行為的方式??梢苑奖憧旖莸膶?shí)現(xiàn)對(duì)用戶行為的記錄,而無需該應(yīng)用的開發(fā)人員針對(duì)的移動(dòng)端的應(yīng)用的每一個(gè)頁(yè)面,改寫應(yīng)用代碼的內(nèi)容,從而顯著地降低了應(yīng)用開發(fā)的時(shí)間,并且減少了由于應(yīng)用記錄用戶行為而帶來的移動(dòng)終端系統(tǒng)處理速度變慢等不良影響,為用戶帶來了更好的體驗(yàn)。

在介紹了本發(fā)明的基本原理之后,下面具體介紹本發(fā)明的各種非限制性實(shí)施方式。

應(yīng)用場(chǎng)景總覽

場(chǎng)景一、二、三、四是可應(yīng)用于其中的四個(gè)示例性應(yīng)用場(chǎng)景,易于理解的是,這里描述的應(yīng)用場(chǎng)景僅是示例性的,而不是對(duì)本發(fā)明的限制。

場(chǎng)景一、用戶使用移動(dòng)終端,進(jìn)行點(diǎn)擊操作的時(shí)候,可以獲取到用戶在屏幕上進(jìn)行點(diǎn)擊的位置,點(diǎn)擊的時(shí)間長(zhǎng)度,進(jìn)而還可以記錄點(diǎn)擊的初始位置以及點(diǎn)擊的終止位置,通過以上信息內(nèi)容進(jìn)而記錄用戶行為。

場(chǎng)景二、用戶使用移動(dòng)終端,進(jìn)行屏幕旋轉(zhuǎn)操作的時(shí)候,可以獲取到用戶的屏幕旋轉(zhuǎn)的方向,屏幕旋轉(zhuǎn)的角度,以及屏幕旋轉(zhuǎn)的開始結(jié)束時(shí)間等信息,通過以上信息內(nèi)容進(jìn)而記錄用戶行為。

場(chǎng)景三、用戶使用移動(dòng)終端,進(jìn)行菜單選擇操作的時(shí)候,可以獲取到用戶的菜單選擇的具體菜單控件,用戶在菜單中選擇的選項(xiàng)內(nèi)容,以及該選項(xiàng)內(nèi)容指向的其他應(yīng)用頁(yè)面等信息,通過以上信息內(nèi)容進(jìn)而記錄用戶行為。

場(chǎng)景四、用戶使用移動(dòng)終端,進(jìn)行文本輸入操作的時(shí)候,可以獲取到用戶的文本輸入的內(nèi)容,文本輸入的內(nèi)容可例如包括英文、中文、其他語言文字以及標(biāo)點(diǎn)符號(hào)、表情符號(hào)等等,通過以上信息內(nèi)容進(jìn)而記錄用戶行為。

示例性方法

下面結(jié)合應(yīng)用場(chǎng)景一、二、三、四,參考圖1-4來描述根據(jù)本發(fā)明示例性實(shí)施方式的用于記錄用戶行為的方法。需要注意的是,上述應(yīng)用場(chǎng)景僅是為了便于理解本發(fā)明的精神和原理而示出,本發(fā)明的實(shí)施方式在此方面不受任何限制。相反,本發(fā)明的實(shí)施方式可以應(yīng)用于適用的任何場(chǎng)景。

圖1示意性地示出了根據(jù)本發(fā)明實(shí)施方式的用于記錄用戶行為的方法的流程圖

如圖1所示,在S100中,應(yīng)用啟動(dòng)時(shí),在加載處理中鉤取特定系統(tǒng)函數(shù)。在本發(fā)明的實(shí)施例中,移動(dòng)終端可例如運(yùn)行iOS系統(tǒng),iOS是由蘋果公司開發(fā)的移動(dòng)操作系統(tǒng)。蘋果公司最早于2007年1月9日的Macworld大會(huì)上公布這個(gè)系統(tǒng),最初是設(shè)計(jì)給iPhone使用的,后來陸續(xù)套用到iPod touch、iPad以及Apple TV等產(chǎn)品上。iOS與蘋果的Mac OS X操作系統(tǒng)一樣,屬于類Unix的商業(yè)操作系統(tǒng)。在iOS系統(tǒng)上,特定系統(tǒng)函數(shù)可例如為事件分發(fā)函數(shù)(sendEvent)。加載方法(load):load作為Objective-C中的一個(gè)方法,與其它方法有很大的不同。load只是一個(gè)在整個(gè)文件被加載到運(yùn)行時(shí),在main函數(shù)調(diào)用之前被Objective-C運(yùn)行時(shí)調(diào)用的鉤子方法。load是只要類(Category)所在文件被引用就會(huì)被調(diào)用,如果類沒有被引用進(jìn)項(xiàng)目,就不會(huì)有l(wèi)oad調(diào)用。在Objective-C中,Runtime支持方法名和方法實(shí)現(xiàn)的分離,Objective-C的方法名類型是SEL,方法實(shí)現(xiàn)類型是IMP。在Runtime時(shí),動(dòng)態(tài)修改SEL對(duì)應(yīng)的IMP,可以方便地hook原方法。Runtime:Objective-C是一門運(yùn)行時(shí)的語言,它會(huì)盡可能地把代碼執(zhí)行的決策從編譯和鏈接的時(shí)候,推遲到運(yùn)行時(shí)。這樣對(duì)寫代碼帶來很大的靈活性,比如說可以把消息轉(zhuǎn)發(fā)給你想要的對(duì)象,或者隨意交換一個(gè)方法的實(shí)現(xiàn)。Method Swizzling:正常情況下,我們無法知道系統(tǒng)方法何時(shí)被調(diào)用,但替換掉系統(tǒng)方法的代碼實(shí)現(xiàn),就可以獲取系統(tǒng)方法的調(diào)用時(shí)機(jī)。

鉤子(Hook),是消息處理機(jī)制的一個(gè)平臺(tái),應(yīng)用程序可以在上面設(shè)置子程以監(jiān)視指定窗口的某種消息,而且所監(jiān)視的窗口可以是其他進(jìn)程所創(chuàng)建的。當(dāng)消息到達(dá)后,在目標(biāo)窗口處理函數(shù)之前處理它。鉤子機(jī)制允許應(yīng)用程序截獲處理消息或特定事件。鉤子實(shí)際上是一個(gè)處理消息的程序段,通過系統(tǒng)調(diào)用,把它掛入系統(tǒng)。每當(dāng)特定的消息發(fā)出,在沒有到達(dá)目的窗口前,鉤子程序就先捕獲該消息,亦即鉤子函數(shù)先得到控制權(quán)。這時(shí)鉤子函數(shù)即可以加工處理(改變)該消息,也可以不作處理而繼續(xù)傳遞該消息,還可以強(qiáng)制結(jié)束消息的傳遞。

在本發(fā)明實(shí)施例中,可例如,通過鉤子(hook)技術(shù),在加載處理中鉤取特定系統(tǒng)函數(shù)。特定系統(tǒng)函數(shù)包括:事件分發(fā)函數(shù)(sendEvent)。在iOS系統(tǒng)中,無論是哪種事件(屏幕觸摸事件、窗口內(nèi)容變化操作等)都是系統(tǒng)首先獲得,然后傳給UIApplication(視圖控制器),再由UIApplication的sendEvent函數(shù)傳遞給相應(yīng)的對(duì)象去處理。在本實(shí)施例中,可例如,通過寫一個(gè)UIApplication的分類,然后hook sendEvent函數(shù),增加事件攔截功能來截獲并處理用戶操作行為從而達(dá)到記錄用戶操作的目的。

在S110中,響應(yīng)用戶操作,調(diào)用預(yù)定函數(shù),記錄用戶的行為。在本發(fā)明的實(shí)施例中,移動(dòng)終端可例如運(yùn)行iOS系統(tǒng),在iOS系統(tǒng)上,可例如,通過增加視圖控制器中的分類獲得所述預(yù)定函數(shù)。UIApplication:視圖控制器,UIApplication對(duì)象是應(yīng)用程序的象征;每一個(gè)應(yīng)用都有自己的UIApplication對(duì)象,而且是單例的;通過UIApplication可以獲得這個(gè)單例對(duì)象;一個(gè)iOS程序啟動(dòng)后創(chuàng)建的第一個(gè)對(duì)象就是UIApplication對(duì)象;利用UIApplication對(duì)象,能進(jìn)行一些應(yīng)用級(jí)別的操作??衫?,編寫UIViewController的category,hook UIViewController中需要統(tǒng)計(jì)的方法,然后將頭文件塞到要統(tǒng)計(jì)的ViewController中。Category:Category可以為已經(jīng)存在的類增加方法,不需要增加一個(gè)子類。而且,我們可以在不知道某個(gè)類內(nèi)部實(shí)現(xiàn)的情況下,為該類增加方法。

在本實(shí)施例中,通過響應(yīng)用戶的,調(diào)用預(yù)定函數(shù),記錄用戶的行為。用戶操作可例如,用戶啟動(dòng)應(yīng)用的操作,還可例如,在該應(yīng)用后臺(tái)運(yùn)行期間,用戶激活屏幕之后,即可響應(yīng)操作。通過上文所述的預(yù)定函數(shù),記錄用戶的行為,用戶的行為可例如包括用戶觸屏事件、用戶旋轉(zhuǎn)屏幕事件、用戶文本輸入事件,還可以入,用戶滑動(dòng)事件等,然而本發(fā)明不以此為限。

根據(jù)本發(fā)明實(shí)施方式的用于記錄用戶行為的方法,應(yīng)用啟動(dòng)時(shí),在加載處理中鉤取特定系統(tǒng)函數(shù);以及響應(yīng)用戶操作,調(diào)用預(yù)定函數(shù),記錄所述用戶的行為的方式。可以方便快捷的實(shí)現(xiàn)對(duì)用戶行為的記錄,而無需該應(yīng)用的開發(fā)人員針對(duì)的移動(dòng)端的應(yīng)用的每一個(gè)頁(yè)面,改寫應(yīng)用代碼的內(nèi)容,從而顯著地降低了應(yīng)用開發(fā)的時(shí)間,并且減少了由于應(yīng)用記錄用戶行為而帶來的移動(dòng)終端系統(tǒng)處理速度變慢等不良影響,為用戶帶來了更好的體驗(yàn)。

圖2示意性地示出了根據(jù)本發(fā)明一實(shí)施例的用于記錄用戶行為的方法的流程圖。圖2所示的方法可應(yīng)用于圖1所示的實(shí)施方式中。

如圖2所示,在S200中,通過所述預(yù)定函數(shù)收集事件的信息。所述事件的信息包括:所述事件的屬性;以及所述事件所屬的視圖控制器。所述事件的屬性,包括以下內(nèi)容至少一者:所述事件的發(fā)送方;所述事件的名稱;所述事件的發(fā)生時(shí)間;所述事件的位置;以及所述事件的類型。

在S210中,通過所述事件的信息對(duì)所述事件進(jìn)行分類識(shí)別。所述通過所述事件的信息對(duì)所述事件進(jìn)行分類識(shí)別,識(shí)別結(jié)果包括以下情況至少一種:點(diǎn)擊類事件、長(zhǎng)按類事件、拖動(dòng)類事件、文本輸入類事件、手機(jī)按鍵類事件、放大類事件、縮小類事件、頁(yè)面打開關(guān)閉類事件、以及屏幕旋轉(zhuǎn)類事件。本發(fā)明不以此為限。在本實(shí)施例中,可例如,利用AOP方法對(duì)UIApplication內(nèi)的sendEvent(事件分發(fā)函數(shù))方法進(jìn)行hook,增加用戶操作信息的收集??衫?,通過touchTransfer、startTouch和endTouch對(duì)事件(event)進(jìn)行分類,并獲取相應(yīng)的屬性。touchTransfer:事件分發(fā)函數(shù)的子函數(shù),用于記錄觸摸事件傳輸?shù)暮瘮?shù)。startTouch:事件分發(fā)函數(shù)的子函數(shù),用于記錄觸摸事件開始的函數(shù)。endTouch:事件分發(fā)函數(shù)的子函數(shù),用于記錄觸摸事件結(jié)束的函數(shù)。AOP:面向切面編程(英語:Aspect Oriented Programming,簡(jiǎn)稱:AOP),面對(duì)的是處理過程中的某個(gè)步驟或階段。在運(yùn)行時(shí),動(dòng)態(tài)地將代碼切入到類的指定方法,指定位置上的編程思想就是面向切面編程。借助AOP,甚至不用修改一行代碼,就可以修改現(xiàn)有程序的行為,非常高效。AOP基本原理:將一個(gè)函數(shù)替換為一個(gè)新函數(shù),新的函數(shù)中插入代碼片段,然后執(zhí)行原函數(shù)。

在S220中,通過所述事件的信息以及所述事件的分類識(shí)別,記錄所述用戶的行為。

根據(jù)本發(fā)明實(shí)施方式的用于記錄用戶行為的方法,通過AOP方法,采用預(yù)定的函數(shù)hook UIApplication里的sendEvent方法進(jìn)行用戶操作步驟的記錄,然后繼續(xù)執(zhí)行sendEvent方法,可以達(dá)到不影響系統(tǒng)本來的功能的效果。

圖3示意性地示出了根據(jù)本發(fā)明一實(shí)施例的用于記錄用戶行為的方法的流程圖。圖3所示的方法可應(yīng)用于圖1所示的實(shí)施方式中。

如圖3所示,所述通過所述事件信息以及所述事件的分類記錄所述用戶的行為,包括如下過程:

在S300中,獲取到用戶事件。用戶類事件可例如為:點(diǎn)擊類事件、長(zhǎng)按類事件、拖動(dòng)類事件、文本輸入類事件、手機(jī)按鍵類事件、放大類事件、縮小類事件、頁(yè)面打開關(guān)閉類事件、以及屏幕旋轉(zhuǎn)類事件。

在S310中,通過所述用戶事件的所述屬性判斷所述用戶事件的發(fā)送方是否為文本輸入類型。可例如,在捕獲到用戶的觸摸事件后,通過事件的屬性判斷其發(fā)送方(sender)是否為文本輸入類型,如果用戶事件的發(fā)送方是文本輸入類型,則進(jìn)入步驟S320,如果用戶事件的發(fā)送方不是文本輸入類型,則繼續(xù)進(jìn)行其他的記錄。

在S320中,如果所述用戶事件的發(fā)送方為文本輸入類型,則獲取所述文本輸入的內(nèi)容作為所述用戶的行為。可例如,獲取所述用戶事件的發(fā)送方的控件;以及獲取所述用戶的文本輸入內(nèi)容。

圖4示意性地示出了根據(jù)本發(fā)明又一實(shí)施例的用于記錄用戶行為的方法的輸出結(jié)果;通過本發(fā)明的用于記錄用戶行為的方法對(duì)移動(dòng)端應(yīng)用進(jìn)行處理,處理之后的輸出結(jié)果如圖4所示。

根據(jù)本發(fā)明實(shí)施方式的用于記錄用戶行為的方法,通過響應(yīng)用戶操作,調(diào)用所述預(yù)定函數(shù),記錄所述用戶的行為。可以方便快捷的實(shí)現(xiàn)對(duì)用戶行為的記錄,用戶步驟記錄全面,通過對(duì)響應(yīng)按鍵事件,記錄用戶的按鍵輸入;集成方便,不用再手動(dòng)在每個(gè)頁(yè)面替換相應(yīng)的監(jiān)聽方法;影響小,集成本API之后對(duì)應(yīng)用程序性能幾乎無影響。

示例性設(shè)備

在介紹了本發(fā)明示例性實(shí)施方式的方法之后,接下來,參考圖5~8對(duì)本發(fā)明示例性實(shí)施方式的、用于記錄用戶行為的系統(tǒng)做示例性說明。

圖5示意性地示出了根據(jù)本發(fā)明一實(shí)施例的用于記錄用戶行為的系統(tǒng)的框圖。如圖5所示,用于記錄用戶行為的系統(tǒng),包括:

啟動(dòng)模塊400用于應(yīng)用啟動(dòng)時(shí),在裝載處理中鉤取特定系統(tǒng)函數(shù)。

記錄模塊410用于響應(yīng)用戶操作,調(diào)用預(yù)定函數(shù),記錄所述用戶的行為。

根據(jù)本發(fā)明實(shí)施方式的用于記錄用戶行為的系統(tǒng),通過啟動(dòng)模塊,在應(yīng)用啟動(dòng)時(shí),在裝載處理中鉤取特定系統(tǒng)函數(shù);以及記錄模塊,響應(yīng)用戶操作,調(diào)用預(yù)定函數(shù),記錄所述用戶的行為??梢苑奖憧旖莸膶?shí)現(xiàn)對(duì)用戶行為的記錄,而無需該應(yīng)用的開發(fā)人員針對(duì)的移動(dòng)端的應(yīng)用的每一個(gè)頁(yè)面,改寫應(yīng)用代碼的內(nèi)容,從而顯著地降低了應(yīng)用開發(fā)的時(shí)間,并且減少了由于應(yīng)用記錄用戶行為而帶來的移動(dòng)終端系統(tǒng)處理速度變慢等不良影響,為用戶帶來了更好的體驗(yàn)。

圖6示意性地示出了根據(jù)本發(fā)明又一實(shí)施例的用于記錄用戶行為的系統(tǒng)的框圖;如圖6所示,用于記錄用戶行為的系統(tǒng),包括:

啟動(dòng)模塊400,功能如上文所述。

記錄模塊410,功能如上文所述。。

信息子模塊410A用于通過所述預(yù)定程序收集事件的信息。

分類子模塊410B用于通過所述事件的信息對(duì)所述事件進(jìn)行分類識(shí)別。

發(fā)送子模塊410C用于通過所述事件的信息以及所述事件的分類識(shí)別,記錄所述用戶的行為。

函數(shù)模塊420用于通過增加界面控制器中的分類獲得所述預(yù)定函數(shù)。

圖7示意性地示出了根據(jù)本發(fā)明再一實(shí)施例的用于記錄用戶行為的裝置的框圖;如圖7所示,用于記錄用戶行為的系統(tǒng)的發(fā)送子模塊410C包括:

事件子模塊410C1用于獲取到用戶事件。

判斷子模塊410C3用于通過所述用戶事件的屬性判斷所述用戶事件的發(fā)送方是否為文本輸入框。

其中判斷子模塊410C3包括:

控件子模塊410C31用于獲取所述用戶事件的發(fā)送方的控件。

文本子模塊410C5用于在所述用戶事件的發(fā)送方為文本輸入框時(shí),獲取所述文本輸入框中的內(nèi)容作為所述用戶的行為。

圖8示意性地示出了根據(jù)本發(fā)明一實(shí)施例的移動(dòng)終端的示意圖。

下面參照?qǐng)D8來描述根據(jù)本發(fā)明的這種實(shí)施方式的移動(dòng)終端80。圖8示意性示出本發(fā)明實(shí)施方式的移動(dòng)終端的框圖,該移動(dòng)終端80僅僅是一個(gè)示例,不應(yīng)對(duì)本發(fā)明實(shí)施例的功能和使用范圍帶來任何限制。

如圖8所示,移動(dòng)終端80以通用計(jì)算設(shè)備的形式表現(xiàn)。移動(dòng)終端80的組件可以包括但不限于:上述至少一個(gè)處理單元801、上述至少一個(gè)存儲(chǔ)單元802、連接不同系統(tǒng)組件(包括存儲(chǔ)單元802和處理單元801)的總線803。

總線803表示幾類總線結(jié)構(gòu)中的一種或多種,包括存儲(chǔ)器總線或者存儲(chǔ)器控制器、外圍總線、圖形加速端口、處理器或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。

存儲(chǔ)單元802可以包括易失性存儲(chǔ)器形式的可讀介質(zhì),例如隨機(jī)存取存儲(chǔ)器(RAM)8021和/或高速緩存存儲(chǔ)器8022,還可以進(jìn)一步只讀存儲(chǔ)器(ROM)8023。

存儲(chǔ)單元802還可以包括具有一組(至少一個(gè))程序模塊8024的程序/實(shí)用工具8025,這樣的程序模塊8024包括但不限于:操作系統(tǒng)、一個(gè)或者多個(gè)應(yīng)用程序、其它程序模塊以及程序數(shù)據(jù),這些示例中的每一個(gè)或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實(shí)現(xiàn)。

移動(dòng)終端80也可以與一個(gè)或多個(gè)外部設(shè)備804(例如鍵盤、指向設(shè)備、藍(lán)牙設(shè)備等)通信,還可與一個(gè)或者多個(gè)能與移動(dòng)終端80交互的設(shè)備通信,和/或該移動(dòng)終端80能與一個(gè)或多個(gè)其它計(jì)算設(shè)備進(jìn)行通信的任何設(shè)備(例如路由器、調(diào)制解調(diào)器等等)通信。這種通信可以通過輸入/輸出(I/O)接口805進(jìn)行。并且,移動(dòng)終端80還可以通過網(wǎng)絡(luò)適配器806與一個(gè)或者多個(gè)網(wǎng)絡(luò)(例如局域網(wǎng)(LAN),廣域網(wǎng)(WAN)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。如圖所示,網(wǎng)絡(luò)適配器806通過總線803與移動(dòng)終端80的其它模塊通信。應(yīng)當(dāng)明白,盡管圖中未示出,可以結(jié)合移動(dòng)終端80使用其它硬件和/或軟件模塊,包括但不限于:微代碼、設(shè)備驅(qū)動(dòng)器、冗余處理單元、外部磁盤驅(qū)動(dòng)陣列、RAID系統(tǒng)、磁帶驅(qū)動(dòng)器以及數(shù)據(jù)備份存儲(chǔ)系統(tǒng)等。

在一些可能的實(shí)施方式中,本發(fā)明的各個(gè)方面還可以實(shí)現(xiàn)為一種程序產(chǎn)品的形式,其包括程序代碼,當(dāng)所述程序產(chǎn)品在終端設(shè)備上運(yùn)行時(shí),所述程序代碼用于使所述終端設(shè)備執(zhí)行本說明書上述“示例性方法”部分中描述的根據(jù)本發(fā)明各種示例性實(shí)施方式的用于記錄語音筆記的方法中的步驟,例如,所述終端設(shè)備可以執(zhí)行如圖1中所示的步驟S100,應(yīng)用啟動(dòng)時(shí),在加載處理中鉤取特定系統(tǒng)函數(shù);S110,響應(yīng)用戶操作,調(diào)用預(yù)定函數(shù),記錄所述用戶的行為。

所述程序產(chǎn)品可以采用一個(gè)或多個(gè)可讀介質(zhì)的任意組合??勺x介質(zhì)可以是可讀信號(hào)介質(zhì)或者可讀存儲(chǔ)介質(zhì)。可讀存儲(chǔ)介質(zhì)例如可以是——但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合??勺x存儲(chǔ)介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式盤、硬盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦式可編程只讀存儲(chǔ)器(EPROM或閃存)、光纖、便攜式緊湊盤只讀存儲(chǔ)器(CD-ROM)、光存儲(chǔ)器件、磁存儲(chǔ)器件、或者上述的任意合適的組合。

程序產(chǎn)品可以采用便攜式緊湊盤只讀存儲(chǔ)器(CD-ROM)并包括程序代碼,并可以在終端設(shè)備,例如個(gè)人電腦上運(yùn)行。然而,本發(fā)明的程序產(chǎn)品不限于此,在本文件中,可讀存儲(chǔ)介質(zhì)可以是任何包含或存儲(chǔ)程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。

可讀信號(hào)介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號(hào),其中承載了可讀程序代碼。這種傳播的數(shù)據(jù)信號(hào)可以采用多種形式,包括——但不限于——電磁信號(hào)、光信號(hào)或上述的任意合適的組合??勺x信號(hào)介質(zhì)還可以是可讀存儲(chǔ)介質(zhì)以外的任何可讀介質(zhì),該可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。

可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括——但不限于——無線、有線、光纜、RF等等,或者上述的任意合適的組合。

可以以一種或多種程序設(shè)計(jì)語言的任意組合來編寫用于執(zhí)行本發(fā)明操作的程序代碼,所述程序設(shè)計(jì)語言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語言—諸如Java、C++等,還包括常規(guī)的過程式程序設(shè)計(jì)語言—諸如“C”語言或類似的程序設(shè)計(jì)語言。程序代碼可以完全地在用戶計(jì)算設(shè)備上執(zhí)行、部分地在用戶設(shè)備上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶計(jì)算設(shè)備上部分在遠(yuǎn)程計(jì)算設(shè)備上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算設(shè)備或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算設(shè)備的情形中,遠(yuǎn)程計(jì)算設(shè)備可以通過任意種類的網(wǎng)絡(luò)——包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計(jì)算設(shè)備,或者,可以連接到外部計(jì)算設(shè)備(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。

應(yīng)當(dāng)注意,盡管在上文詳細(xì)描述中提及了移動(dòng)設(shè)備的若干裝置或子裝置,但是這種劃分僅僅并非強(qiáng)制性的。實(shí)際上,根據(jù)本發(fā)明的實(shí)施方式,上文描述的兩個(gè)或更多裝置的特征和功能可以在一個(gè)裝置中具體化。反之,上文描述的一個(gè)裝置的特征和功能可以進(jìn)一步劃分為由多個(gè)裝置來具體化。

此外,盡管在附圖中以特定順序描述了本發(fā)明方法的操作,但是,這并非要求或者暗示必須按照該特定順序來執(zhí)行這些操作,或是必須執(zhí)行全部所示的操作才能實(shí)現(xiàn)期望的結(jié)果。附加地或備選地,可以省略某些步驟,將多個(gè)步驟合并為一個(gè)步驟執(zhí)行,和/或?qū)⒁粋€(gè)步驟分解為多個(gè)步驟執(zhí)行。

雖然已經(jīng)參考若干具體實(shí)施方式描述了本發(fā)明的精神和原理,但是應(yīng)該理解,本發(fā)明并不限于所公開的具體實(shí)施方式,對(duì)各方面的劃分也不意味著這些方面中的特征不能組合以進(jìn)行受益,這種劃分僅是為了表述的方便。本發(fā)明旨在涵蓋所附權(quán)利要求的精神和范圍內(nèi)所包括的各種修改和等同布置。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1