欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

統(tǒng)計應(yīng)用程序使用頻率的方法及裝置制造方法

文檔序號:6635425閱讀:368來源:國知局
統(tǒng)計應(yīng)用程序使用頻率的方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種統(tǒng)計應(yīng)用程序使用頻率的方法及裝置,其中的方法包括:創(chuàng)建視圖,在所述視圖中監(jiān)控系統(tǒng)中所有的觸屏事件;收到觸屏事件后,查詢頂層的活動組件,得到頂層活動組件鏈表;分析所述鏈表,確定用戶主動點(diǎn)擊而啟動的活動組件,并計算出用戶在所述主動點(diǎn)擊的活動組件對應(yīng)的應(yīng)用程序上的停留時間,和/或,確定用戶啟動應(yīng)用程序的次數(shù);根據(jù)用戶啟動應(yīng)用程序的次數(shù)和/或在應(yīng)用程序上的停留時間,統(tǒng)計應(yīng)用程序的使用頻率。依據(jù)本發(fā)明方案,可實(shí)現(xiàn)不過多消耗CPU資源并且可以明確判斷應(yīng)用程序是否為用戶主動啟動。
【專利說明】統(tǒng)計應(yīng)用程序使用頻率的方法及裝置

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)安全【技術(shù)領(lǐng)域】,具體涉及一種統(tǒng)計應(yīng)用程序使用頻率的方法及裝置。

【背景技術(shù)】
[0002]為了最大化利用有限的手機(jī)存儲,提示用戶卸載不常用的手機(jī)應(yīng)用程序(軟件)是一種有效的方法。為了得到不常用的應(yīng)用程序列表,需要統(tǒng)計手機(jī)應(yīng)用程序的使用頻率。由于Android(安卓)沙箱機(jī)制和嚴(yán)格的權(quán)限控制,很多系統(tǒng)事件,如activity (活動)的啟動、退出并沒有相應(yīng)回調(diào)機(jī)制來通知應(yīng)用程序。一種統(tǒng)計手機(jī)應(yīng)用程序的使用頻率的常規(guī)方式是,通過輪詢來獲取頂層的activity。這種方式有兩個缺點(diǎn):一是為了保證準(zhǔn)確度,過于頻繁的輪詢消耗CPU資源的同時也導(dǎo)致電量的消耗,二是這種方法不能判斷某個應(yīng)用程序是用戶點(diǎn)擊桌面圖標(biāo)主動啟動的,還是被其他應(yīng)用程序啟動或開機(jī)自啟動的。


【發(fā)明內(nèi)容】

[0003]鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的統(tǒng)計應(yīng)用程序使用頻率的方法及裝置。
[0004]依據(jù)本發(fā)明的一個方面,提供一種統(tǒng)計應(yīng)用程序使用頻率的方法,包括:創(chuàng)建視圖,在所述視圖中監(jiān)控系統(tǒng)中所有的觸屏事件;收到觸屏事件后,查詢頂層的活動組件,得到頂層活動組件鏈表;分析所述鏈表,確定用戶主動點(diǎn)擊而啟動的活動組件,并計算出用戶在所述主動點(diǎn)擊的活動組件對應(yīng)的應(yīng)用程序上的停留時間,和/或,確定用戶啟動所述應(yīng)用程序的次數(shù);根據(jù)用戶啟動應(yīng)用程序的次數(shù)和/或在所述應(yīng)用程序上的停留時間,統(tǒng)計應(yīng)用程序的使用頻率。
[0005]優(yōu)選的,所述創(chuàng)建視圖包括:創(chuàng)建視圖實(shí)例,并設(shè)置視圖實(shí)例的窗口類型標(biāo)識、窗口標(biāo)識位和窗口大小參數(shù)。
[0006]優(yōu)選的,設(shè)置視圖實(shí)例的窗口類型標(biāo)識,使得該窗口位于一般窗口之上;設(shè)置視圖實(shí)例的窗口標(biāo)識位,使得該窗口沒有獲得焦點(diǎn)時也允許任何指針事件發(fā)送給此窗口底下的窗口、或者使得該窗口不會獲取焦點(diǎn)、或者允許該窗口收到位于此窗口之外的點(diǎn)擊事件;設(shè)置窗口大小參數(shù),使得窗口不可見。
[0007]優(yōu)選的,通過調(diào)用系統(tǒng)接口,實(shí)現(xiàn)對系統(tǒng)中所有觸屏事件的監(jiān)控。
[0008]優(yōu)選的,所監(jiān)控的觸屏事件是指除了當(dāng)前窗口之外的事件。
[0009]優(yōu)選的,所述確定用戶主動點(diǎn)擊而啟動的活動組件包括:獲取當(dāng)前活動組件以及當(dāng)前活動組件的前一個活動組件;根據(jù)前一個活動組件的類型判斷是否屬于桌面應(yīng)用程序,如果是,則確定當(dāng)前活動組件是用戶主動啟動的。
[0010]優(yōu)選的,所述計算出用戶在所述主動點(diǎn)擊的活動組件對應(yīng)的應(yīng)用程序上的停留時間包括:根據(jù)記錄的每次觸屏事件發(fā)生時的頂層活動組件,確定所述應(yīng)用程序的所有活動組件;通過所述應(yīng)用程序的連續(xù)的活動組件之間的時間差,計算出用戶在所述應(yīng)用程序上的停留時間。
[0011]優(yōu)選的,還包括:根據(jù)所統(tǒng)計出的應(yīng)用程序的使用頻率,確定是否向用戶展示有關(guān)所述應(yīng)用程序預(yù)定操作的提示或確定是否執(zhí)行有關(guān)所述應(yīng)用程序的操作。
[0012]優(yōu)選的,所述根據(jù)所統(tǒng)計出的應(yīng)用程序的使用頻率,向用戶展示有關(guān)所述應(yīng)用程序預(yù)定操作的提示包括:對于使用頻率低的應(yīng)用程序,向用戶展示卸載所述應(yīng)用程序的提示;或者,對于使用頻率高的應(yīng)用程序,向用戶展示對所述應(yīng)用程序進(jìn)行升級的提示。
[0013]優(yōu)選的,所述根據(jù)所統(tǒng)計出的應(yīng)用程序的使用頻率,執(zhí)行有關(guān)所述應(yīng)用程序的操作包括:對于使用頻率低的應(yīng)用程序,阻止向所述應(yīng)用程序推送廣告或通知消息;或者,對于使用頻率高的應(yīng)用程序,向所述應(yīng)用程序推送廣告或通知消息。
[0014]依據(jù)本發(fā)明的另一個方面,提供一種統(tǒng)計應(yīng)用程序使用頻率的裝置,包括:視圖創(chuàng)建單元,用于創(chuàng)建視圖;監(jiān)控單元,用于在所述視圖中監(jiān)控系統(tǒng)中所有的觸屏事件;鏈表獲取單元,用于收到觸屏事件后,查詢頂層的活動組件,得到頂層活動組件鏈表;鏈表分析單元,用于分析所述鏈表,確定用戶主動點(diǎn)擊而啟動的活動組件,并計算出用戶在所述主動點(diǎn)擊的活動組件對應(yīng)的應(yīng)用程序上的停留時間,和/或,確定用戶啟動應(yīng)用程序的次數(shù);頻率統(tǒng)計單元,用于根據(jù)用戶啟動應(yīng)用程序的次數(shù)和/或在應(yīng)用程序上的停留時間,統(tǒng)計應(yīng)用程序的使用頻率。
[0015]優(yōu)選的,所述視圖創(chuàng)建單元具體用于:創(chuàng)建視圖實(shí)例,并設(shè)置視圖實(shí)例的窗口類型標(biāo)識、窗口標(biāo)識位和窗口大小參數(shù)。
[0016]優(yōu)選的,所述視圖創(chuàng)建單元具體用于:設(shè)置視圖實(shí)例的窗口類型標(biāo)識,使得該窗口位于一般窗口之上;設(shè)置視圖實(shí)例的窗口標(biāo)識位,使得該窗口沒有獲得焦點(diǎn)時也允許任何指針事件發(fā)送給此窗口底下的窗口、或者使得該窗口不會獲取焦點(diǎn)、或者允許該窗口收到位于此窗口之外的點(diǎn)擊事件;以及,設(shè)置窗口大小參數(shù),使得窗口不可見。
[0017]優(yōu)選的,所述監(jiān)控單元用于通過調(diào)用系統(tǒng)接口,實(shí)現(xiàn)對系統(tǒng)中所有觸屏事件的監(jiān)控。
[0018]優(yōu)選的,所述監(jiān)控單元所監(jiān)控的觸屏事件是指除了當(dāng)前窗口之外的事件。
[0019]優(yōu)選的,所述鏈表分析單元具體用于:獲取當(dāng)前活動組件以及當(dāng)前活動組件的前一個活動組件;根據(jù)前一個活動組件的類型判斷是否屬于桌面應(yīng)用程序,如果是,則確定當(dāng)前活動組件是用戶主動啟動的。
[0020]優(yōu)選的,所述鏈表分析單元具體用于:根據(jù)記錄的每次觸屏事件發(fā)生時的頂層活動組件,確定所述應(yīng)用程序的所有活動組件;通過所述應(yīng)用程序的連續(xù)的活動組件之間的時間差,計算出用戶在所述應(yīng)用程序上的停留時間。
[0021]優(yōu)選的,還包括:提示操作單元,用于根據(jù)所統(tǒng)計出的應(yīng)用程序的使用頻率,確定是否向用戶展示有關(guān)所述應(yīng)用程序預(yù)定操作的提示或確定是否執(zhí)行有關(guān)所述應(yīng)用程序的操作。
[0022]優(yōu)選的,所述提示操作單元具體用于:對于使用頻率低的應(yīng)用程序,向用戶展示卸載所述應(yīng)用程序的提示;或者,對于使用頻率高的應(yīng)用程序,向用戶展示對所述應(yīng)用程序進(jìn)行升級的提示。
[0023]優(yōu)選的,所述提示操作單元具體用于:對于使用頻率低的應(yīng)用程序,阻止向所述應(yīng)用程序推送廣告或通知消息;或者,對于使用頻率高的應(yīng)用程序,向所述應(yīng)用程序推送廣告或通知消息。
[0024]可見,本發(fā)明實(shí)施例是通過實(shí)現(xiàn)一個隱形view (視圖),在這個view中監(jiān)控系統(tǒng)中所有的touch事件,收到touch事件后再去查詢頂層的Activity,這樣就可以得到一個頂層Activity的鏈表;分析這個鏈表就可以得到哪些activity是用戶主動點(diǎn)擊啟動的并計算出用戶在應(yīng)用程序上的停留時間,從而最終統(tǒng)計出應(yīng)用程序的使用頻率。
[0025]上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的【具體實(shí)施方式】。

【專利附圖】

【附圖說明】
[0026]通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
[0027]圖1示出了根據(jù)本發(fā)明一個實(shí)施例的統(tǒng)計應(yīng)用程序使用頻率的方法流程圖;以及
[0028]圖2示出了根據(jù)本發(fā)明一個實(shí)施例的統(tǒng)計應(yīng)用程序使用頻率的裝置結(jié)構(gòu)示意圖。

【具體實(shí)施方式】
[0029]下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0030]如前所述的,現(xiàn)有技術(shù)雖然可以通過輪詢來獲取頂層的activity從而統(tǒng)計應(yīng)用程序的使用頻率,然而這種方案存在大量消耗CPU資源、不能判斷某個應(yīng)用程序是否為用戶主動啟動的缺點(diǎn)。為此,本發(fā)明提出一種不同思路的統(tǒng)計應(yīng)用程序使用頻率的方法,以實(shí)現(xiàn)不過多消耗CPU資源并且可以明確判斷應(yīng)用程序是否為用戶主動啟動。
[0031]本領(lǐng)域技術(shù)人員理解,操作系統(tǒng)包括應(yīng)用程序?qū)?app層)和系統(tǒng)框架層(framework層),至于從功能劃分上有可能包括的的其他層本發(fā)明則不作討論。其中,通常app層可以理解為上層,負(fù)責(zé)與用戶交互的界面,例如應(yīng)用程序維護(hù)、以及點(diǎn)擊頁面時識別不同種類的點(diǎn)擊內(nèi)容從而顯示不同的上下文菜單等。通常framework層作為中間層,這一層的主要職責(zé)是,將app層獲得的用戶請求,如啟動用用程序、點(diǎn)擊鏈接、點(diǎn)擊保存圖片之類,轉(zhuǎn)發(fā)往下層去;將下層處理好的內(nèi)容,或者通過消息,或者通過中間代理類,來分發(fā)至上層,對用戶展現(xiàn)出來。
[0032]本發(fā)明一種優(yōu)選實(shí)現(xiàn)方式是,對app層和framework層進(jìn)行改進(jìn),從而利用這兩層的協(xié)同配合實(shí)現(xiàn)統(tǒng)計應(yīng)用程序使用頻率。具體的,可以理解本發(fā)明方案是在app層的安全軟件(例如,手機(jī)衛(wèi)士、殺毒軟件等)上實(shí)現(xiàn)的一個功能,該安全軟件需要與framework層建立通信,通過監(jiān)聽framework層上所有touch (觸屏)事件,獲取到頂層Activity (活動組件)的鏈表,最終根據(jù)該Activity鏈表統(tǒng)計出各個應(yīng)用程序的使用頻率。
[0033]參見圖1,為本發(fā)明實(shí)施例提供的一種統(tǒng)計應(yīng)用程序使用頻率的方法的流程圖。其中,在操作系統(tǒng)的系統(tǒng)框架層中設(shè)置與應(yīng)用程序?qū)又械陌踩浖鄬?yīng)的通信接口,所述方法包括:
[0034]SlOl:創(chuàng)建視圖,在視圖中監(jiān)控系統(tǒng)中所有的觸屏事件;
[0035]S102:收到觸屏事件后,查詢頂層的活動組件,得到頂層活動組件鏈表;
[0036]S103:分析鏈表,確定用戶啟動應(yīng)用程序的次數(shù),并且確定用戶主動點(diǎn)擊而啟動的活動組件,并估算出用戶在主動點(diǎn)擊的活動組件對應(yīng)的應(yīng)用程序上的停留時間,和/或,確定用戶啟動應(yīng)用程序的次數(shù);
[0037]S104:根據(jù)用戶啟動應(yīng)用程序的次數(shù)和/或在應(yīng)用程序上的停留時間,統(tǒng)計應(yīng)用程序的使用頻率。
[0038]概括而言,本發(fā)明實(shí)施例是通過實(shí)現(xiàn)一個隱形view (視圖),在這個view中監(jiān)控系統(tǒng)中所有的touch事件,收到touch事件后再去查詢頂層的Activity,這樣就可以得到一個頂層Activity的鏈表;分析這個鏈表就可以得到哪些activity是用戶主動點(diǎn)擊啟動的并計算出用戶在應(yīng)用程序上的停留時間,從而最終統(tǒng)計出應(yīng)用程序的使用頻率。
[0039]下面詳細(xì)說明本發(fā)明實(shí)施例的實(shí)現(xiàn)細(xì)節(jié)。
[0040]本領(lǐng)域技術(shù)人員理解,View是Android里的一個類,代表UI中的一個方形區(qū)域,可以在View中做圖。View是所有控件的一個基類,無論是布局(Layout),還是控件(Widget)都是繼承自View類。一般來說,Android框架為View定義了多種不同的狀態(tài),這些狀態(tài)值的改變會引發(fā)View相關(guān)操作。創(chuàng)建一個view時,為view設(shè)置的窗口類型標(biāo)識、標(biāo)識位、大小參數(shù)等決定了 view的特點(diǎn)。
[0041]在本發(fā)明實(shí)施例中,首先創(chuàng)建一個view。其中,將view的類型設(shè)置為ΤΥΡΕ_ΡΗ0ΝΕ。ΤΥΡΕ_ΡΗ0ΝΕ是窗口類型標(biāo)識,設(shè)置了此標(biāo)識的窗口將位于一般窗口之上。將view的標(biāo)識設(shè)置為 FLAG_N0T_T0UCH_M0DAL | FLAG_N0T_F0CUSABLE | FLAG_WATCH_0UTSIDE_T0UCH,這三個都是窗口標(biāo)識位,其中,F(xiàn)LAG_N0T_T0UCH_M0DAL表示設(shè)置了此標(biāo)識的窗口沒有獲得焦點(diǎn)時也允許任何指針事件發(fā)送給此窗口底下的窗口 ;FLAG_N0T_F(X:USABLE表示設(shè)置了此標(biāo)識的窗口不會獲取焦點(diǎn);FLAG_WATCH_0UTSIDE_T0UCH表示設(shè)置了此標(biāo)識的窗口可以收到位于此窗口之外的點(diǎn)擊事件。將view的高和寬都設(shè)置為O,將高和寬都設(shè)置為O,表示窗口是不可見的,即實(shí)現(xiàn)隱形view。
[0042]然后監(jiān)控ACT10N_0UTSIDE事件,ACT10N_0UTSIDE表示當(dāng)前窗口之外的事件。
[0043]當(dāng)收到此事件后去查詢頂層的activity來得到頂層Activity的鏈表。
[0044]一個典型的Activity鏈表例子如下所示:
[0045]ggongiggong-pc:?$adb logcat|grep-1 touchmonitor
[0046]D/TouchMonitor (18683): ACT10N_0UTSIDE occurred at2014/07/1811:40:12touch post1n:0.00.0top activity is com.sec.android.app.launcher
[0047]D/TouchMonitor (18683): ACT10N_0UTSIDE occurred at2014/07/1811:40:16touch post1n:0.00.0top activity is com.qiho0.appstore
[0048]D/TouchMonitor (18683): ACT10N_0UTSIDE occurred at2014/07/1811:40:22touch post1n:0.00.0top activity is com.sec.android.app.launcher
[0049]D/TouchMonitor (18683): ACT10N_0UTSIDE occurred at2014/07/1811:40:24touch post1n:0.00.0top activity is com.sec.android, app.launcher
[0050]D/TouchMonitor (18683): ACT10N_0UTSIDE occurred at2014/07/1811:40:24touch post1n:0.00.0top activity is com.sec.android, app.launcher
[0051]D/TouchMonitor (18683): ACT10N_0UTSIDE occurred at2014/07/1811:40:27touch post1n:0.00.0top activity is com.sec.android, app.launcher
[0052]D/TouchMonitor (18683): ACT10N_0UTSIDE occurred at2014/07/1811:40:30touch post1n:0.00.0top activity is com.qihoo360.smartkey
[0053]D/TouchMonitor (18683): ACT10N_0UTSIDE occurred at2014/07/1811:40:38touch post1n:0.00.0top activity is com.sec.android, app.launcher
[0054]D/TouchMonitor (18683): ACT10N_0UTSIDE occurred at2014/07/1811:40:41touch post1n:0.00.0top activity is com.qiho0.antivirus
[0055]D/TouchMonitor (18683): ACT10N_0UTSIDE occurred at2014/07/1811:40:49touch post1n:0.00.0top activity is com.sec.android, app.launcher
[0056]D/TouchMonitor (18683): ACT10N_0UTSIDE occurred at2014/07/1811:40:56touch post1n:0.00.0top activity is com.homeI ink.android
[0057]D/TouchMonitor (18683): ACT10N_0UTSIDE occurred at2014/07/1811:41:09touch post1n:0.00.0top activity is com.sec.android, app.launcher
[0058]D/TouchMonitor(18683):ACT1N—OUTSIDE occurred at 2014/07/1811:41:12touch post1n:0.0 0.0 top activity iscom.qihoo360.mobilesafe.0pt1.powerctl
[0059]D/TouchMonitor (18683): ACT10N_0UTSIDE occurred at2014/07/1811:41:16touch post1n:0.00.0top activity is com.sec.android, app.launcher
[0060]D/TouchMonitor (18683): ACT10N_0UTSIDE occurred at2014/07/1811:41:20touch post1n:0.00.0top activity is com.sec.android, app.launcher
[0061]D/TouchMonitor (18683): ACT10N_0UTSIDE occurred at2014/07/1811:41:22touch post1n:0.00.0top activity is com.qiho0.browser
[0062]D/TouchMonitor (18683): ACT10N_0UTSIDE occurred at2014/07/1811:41:26touch post1n:0.00.0top activity is com.qiho0.browser
[0063]分析這個鏈表就可以得到哪些activity是用戶主動點(diǎn)擊啟動的。
[0064]如上面例子所不,如果前一個activity 為 com.sec.android, app.launcher,則當(dāng)前activity可以判斷為用戶主動啟動的。其中,“com.sec.android, app.launcher”是手機(jī)桌面應(yīng)用程序的包名,如果前一個Activity是桌面應(yīng)用,則可以判斷當(dāng)前Activity為用戶主動啟動。
[0065]可見,有了這個鏈表,我們可以統(tǒng)計用戶經(jīng)常使用哪些應(yīng)用,并能估計用戶在特定應(yīng)用上的停留時間。
[0066]其中,具體估計停留時間的原理和方式是:由于記錄了每次touch事件發(fā)生時的頂層activity,應(yīng)用程序知道哪些activity屬于自己,可以有連續(xù)的屬于自己的Activity估算出停留時間。
[0067]仍以上面的activity例子說明,應(yīng)用程序com.home I ink.android的activity事件發(fā)生在11:40:56時刻,它后面activity事件發(fā)生在11:41:09時刻,因此可以計算出應(yīng)用程序 com.home I ink.android 的駐留時間是 11:41:09 — 11:40:56 = 13 秒。
[0068]由于ACT10N_0UTSIDE事件只有在第一次點(diǎn)擊屏幕是會被觸發(fā),點(diǎn)擊后在屏幕上滑動不會觸發(fā)更多的ACT10N_0UTSIDE事件??梢?,ACT10N_0UTSIDE在滑動時并不會觸發(fā),滑屏?xí)r只觸發(fā)一次,這種方式比頻繁輪詢更省電。
[0069]在計算出用戶在應(yīng)用程序上的停留時間之后,可以統(tǒng)計出應(yīng)用程序的使用頻率。具體方式是,在預(yù)定的一段時間內(nèi),計算應(yīng)用程序上的使用時間,然后利用使用時間以及用戶啟動該應(yīng)用程序的次數(shù),從而統(tǒng)計使用頻率。一段時間內(nèi)用戶啟動應(yīng)用的次數(shù)根據(jù)鏈表是可以計算出來的。通過啟動應(yīng)用程序的此時以及使用應(yīng)用程序的時間聯(lián)合計算使用頻率是最優(yōu)方案。舉個例子,用戶使用微信,每次的停留時間可能都比較短,每天啟動的次數(shù)很多,但總停留時間可能也比不上一些閱讀軟件,啟動一次可能就停留十多分鐘。但判定為使用微信的頻率不如閱讀軟件似乎不妥,不應(yīng)該只按總停留時間來算使用頻率,改為按啟動應(yīng)用程序次數(shù)和停留時間來計算使用頻率更合理。
[0070]當(dāng)然,上述根據(jù)用戶啟動應(yīng)用程序的次數(shù)和在應(yīng)用程序上的停留時間這兩個要素統(tǒng)計應(yīng)用程序的使用頻率的方式是最優(yōu)方式,實(shí)際中,可僅僅根據(jù)用戶啟動應(yīng)用程序的次數(shù)或者在應(yīng)用程序上的停留時間一個要素對使用頻率進(jìn)行統(tǒng)計。例如,對于微信和QQ這兩款同屬于社交類型軟件,僅僅通過用戶啟動應(yīng)用程序的次數(shù)就可以確定使用頻率;再比如,對于閱讀軟件和視頻觀看類軟件,僅僅通過在應(yīng)用程序上的停留時間就可以確定使用步頁率7等等。
[0071]另外,需要說明的是,“統(tǒng)計應(yīng)用程序的使用頻率”是在一定時間或狀態(tài)范圍內(nèi)進(jìn)行的。比如,在單次開機(jī)時間內(nèi),對應(yīng)用程序的使用頻率進(jìn)行的統(tǒng)計;再比如,在一個自然日對應(yīng)用程序的使用頻率進(jìn)行的統(tǒng)計,等等。
[0072]在統(tǒng)計出應(yīng)用程序的使用頻率之后,可以利用該頻率對應(yīng)用程序進(jìn)行某些操作。例如,根據(jù)統(tǒng)計出的應(yīng)用程序的使用頻率,確定是否向用戶展示有關(guān)應(yīng)用程序預(yù)定操作的提示,或者,確定是否執(zhí)行有關(guān)應(yīng)用程序的操作。其中,根據(jù)所統(tǒng)計出的應(yīng)用程序的使用頻率,向用戶展示有關(guān)應(yīng)用程序預(yù)定操作的提示包括但不限于:對于使用頻率低的應(yīng)用程序,向用戶展示卸載應(yīng)用程序的提示,可以理解,向用戶提示卸載使用頻率最低的應(yīng)用程序,以此節(jié)約存儲空間;或者,對于使用頻率高的應(yīng)用程序,向用戶展示對應(yīng)用程序進(jìn)行升級的提示,可以理解,對于使用頻率高的應(yīng)用程序,及時升級有助于用戶體驗(yàn);根據(jù)所統(tǒng)計出的應(yīng)用程序的使用頻率,執(zhí)行有關(guān)應(yīng)用程序的操作包括但不限于:對于使用頻率低的應(yīng)用程序,阻止向應(yīng)用程序推送廣告或通知消息,可以理解,對于使用頻率低的應(yīng)用程序,向其推送廣告或通知消息效果不顯著;或者,對于使用頻率高的應(yīng)用程序,向應(yīng)用程序推送廣告或通知消息,可以理解,對于使用頻率高的應(yīng)用程序,向其推送廣告或通知消息效果比較顯著。
[0073]與上述方法相對應(yīng),本發(fā)明還提供一種統(tǒng)計應(yīng)用程序使用頻率的裝置。該裝置可以通過硬件、軟件或軟硬件結(jié)合方式實(shí)現(xiàn)。該裝置可以是指終端內(nèi)部的功能模塊,也可以是指終端本身,只要終端包括實(shí)現(xiàn)該裝置的功能即可。
[0074]參見圖2,為本發(fā)明實(shí)施例提供的統(tǒng)計應(yīng)用程序使用頻率的裝置結(jié)構(gòu)示意圖。該裝置包括:
[0075]視圖創(chuàng)建單元201,用于創(chuàng)建視圖;
[0076]監(jiān)控單元202,用于在所述視圖中監(jiān)控系統(tǒng)中所有的觸屏事件;
[0077]鏈表獲取單元203,用于收到觸屏事件后,查詢頂層的活動組件,得到頂層活
[0078]動組件鏈表;
[0079]鏈表分析單元204,用于分析所述鏈表,確定用戶主動點(diǎn)擊而啟動的活動組件,并計算出用戶在所述主動點(diǎn)擊的活動組件對應(yīng)的應(yīng)用程序上的停留時間,和/或,確定用戶啟動應(yīng)用程序的次數(shù);
[0080]頻率統(tǒng)計單元205,用于根據(jù)用戶啟動應(yīng)用程序的次數(shù)和/或在應(yīng)用程序上的停留時間,統(tǒng)計應(yīng)用程序的使用頻率。
[0081]優(yōu)選的,所述視圖創(chuàng)建單元201具體用于:創(chuàng)建視圖實(shí)例,并設(shè)置視圖實(shí)例的窗口類型標(biāo)識、窗口標(biāo)識位和窗口大小參數(shù)。
[0082]優(yōu)選的,所述視圖創(chuàng)建單元201具體用于:設(shè)置視圖實(shí)例的窗口類型標(biāo)識,使得該窗口位于一般窗口之上;設(shè)置視圖實(shí)例的窗口標(biāo)識位,使得該窗口沒有獲得焦點(diǎn)時也允許任何指針事件發(fā)送給此窗口底下的窗口、或者使得該窗口不會獲取焦點(diǎn)、或者允許該窗口收到位于此窗口之外的點(diǎn)擊事件;以及,設(shè)置窗口大小參數(shù),使得窗口不可見。
[0083]優(yōu)選的,所述監(jiān)控單元202用于通過調(diào)用系統(tǒng)接口,實(shí)現(xiàn)對系統(tǒng)中所有觸屏事件的監(jiān)控。
[0084]優(yōu)選的,所述監(jiān)控單元202所監(jiān)控的觸屏事件是指除了當(dāng)前窗口之外的事件。
[0085]優(yōu)選的,所述鏈表分析單元204具體用于:獲取當(dāng)前活動組件以及當(dāng)前活動組件的前一個活動組件;根據(jù)前一個活動組件的類型判斷是否屬于桌面應(yīng)用程序,如果是,則確定當(dāng)前活動組件是用戶主動啟動的。
[0086]優(yōu)選的,所述鏈表分析單元204具體用于:根據(jù)記錄的每次觸屏事件發(fā)生時的頂層活動組件,確定所述應(yīng)用程序的所有活動組件;通過所述應(yīng)用程序的連續(xù)的活動組件之間的時間差,計算出用戶在所述應(yīng)用程序上的停留時間。
[0087]優(yōu)選的,所述裝置還包括提示操作單元206,用于根據(jù)所統(tǒng)計出的應(yīng)用程序的使用頻率,確定是否向用戶展示有關(guān)所述應(yīng)用程序預(yù)定操作的提示或確定是否執(zhí)行有關(guān)所述應(yīng)用程序的操作。
[0088]優(yōu)選的,所述提示操作單元具體用于:對于使用頻率低的應(yīng)用程序,向用戶展示卸載所述應(yīng)用程序的提示;或者,對于使用頻率高的應(yīng)用程序,向用戶展示對所述應(yīng)用程序進(jìn)行升級的提示;或者,對于使用頻率低的應(yīng)用程序,阻止向所述應(yīng)用程序推送廣告或通知消息;或者,對于使用頻率高的應(yīng)用程序,向所述應(yīng)用程序推送廣告或通知消息。
[0089]在此提供的算法和顯示不與任何特定計算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。
[0090]在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
[0091]類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實(shí)施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實(shí)施例的所有特征。因此,遵循【具體實(shí)施方式】的權(quán)利要求書由此明確地并入該【具體實(shí)施方式】,其中每個權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
[0092]本領(lǐng)域那些技術(shù)人員可以理解,可以對實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們設(shè)置在與該實(shí)施例不同的一個或多個設(shè)備中。可以把實(shí)施例中的模塊或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
[0093]此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。
[0094]本發(fā)明的各個部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個或者多個處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號處理器(DSP)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的統(tǒng)計應(yīng)用程序使用頻率的裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計算機(jī)程序和計算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲在計算機(jī)可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
[0095]應(yīng)該注意的是上述實(shí)施例對本發(fā)明進(jìn)行說明而不是對本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計算機(jī)來實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項(xiàng)來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
[0096]本發(fā)明提供如下方案:
[0097]Al、一種統(tǒng)計應(yīng)用程序使用頻率的方法,包括:
[0098]創(chuàng)建視圖,在所述視圖中監(jiān)控系統(tǒng)中所有的觸屏事件;
[0099]收到觸屏事件后,查詢頂層的活動組件,得到頂層活動組件鏈表;
[0100]分析所述鏈表,確定用戶主動點(diǎn)擊而啟動的活動組件,并計算出用戶在所述主動點(diǎn)擊的活動組件對應(yīng)的應(yīng)用程序上的停留時間,和/或,確定用戶啟動所述應(yīng)用程序的次數(shù);
[0101]根據(jù)用戶啟動應(yīng)用程序的次數(shù)和/或在所述應(yīng)用程序上的停留時間,統(tǒng)計應(yīng)用程序的使用頻率。
[0102]A2、如Al所述的方法,所述創(chuàng)建視圖包括:
[0103]創(chuàng)建視圖實(shí)例,并設(shè)置視圖實(shí)例的窗口類型標(biāo)識、窗口標(biāo)識位和窗口大小參數(shù)。
[0104]A3、如A2所述的方法,
[0105]設(shè)置視圖實(shí)例的窗口類型標(biāo)識,使得該窗口位于一般窗口之上;
[0106]設(shè)置視圖實(shí)例的窗口標(biāo)識位,使得該窗口沒有獲得焦點(diǎn)時也允許任何指針事件發(fā)送給此窗口底下的窗口、或者使得該窗口不會獲取焦點(diǎn)、或者允許該窗口收到位于此窗口之外的點(diǎn)擊事件;
[0107]設(shè)置窗口大小參數(shù),使得窗口不可見。
[0108]A4、如Al所述的方法,通過調(diào)用系統(tǒng)接口,實(shí)現(xiàn)對系統(tǒng)中所有觸屏事件的監(jiān)控。
[0109]A5、如Al所述的方法,所監(jiān)控的觸屏事件是指除了當(dāng)前窗口之外的事件。
[0110]A6、如Al所述的方法,所述確定用戶主動點(diǎn)擊而啟動的活動組件包括:
[0111]獲取當(dāng)前活動組件以及當(dāng)前活動組件的前一個活動組件;
[0112]根據(jù)前一個活動組件的類型判斷是否屬于桌面應(yīng)用程序,如果是,則確定當(dāng)前活動組件是用戶主動啟動的。
[0113]A7、如Al所述的方法,所述計算出用戶在所述主動點(diǎn)擊的活動組件對應(yīng)的應(yīng)用程序上的停留時間包括:
[0114]根據(jù)記錄的每次觸屏事件發(fā)生時的頂層活動組件,確定所述應(yīng)用程序的所有活動組件;
[0115]通過所述應(yīng)用程序的連續(xù)的活動組件之間的時間差,計算出用戶在所述應(yīng)用程序上的停留時間。
[0116]A8、如Al所述的方法,還包括:
[0117]根據(jù)所統(tǒng)計出的應(yīng)用程序的使用頻率,確定是否向用戶展示有關(guān)所述應(yīng)用程序預(yù)定操作的提示或確定是否執(zhí)行有關(guān)所述應(yīng)用程序的操作。
[0118]A9、如A8所述的方法,
[0119]所述根據(jù)所統(tǒng)計出的應(yīng)用程序的使用頻率,向用戶展示有關(guān)所述應(yīng)用程序預(yù)定操作的提示包括:對于使用頻率低的應(yīng)用程序,向用戶展示卸載所述應(yīng)用程序的提示;或者,對于使用頻率高的應(yīng)用程序,向用戶展示對所述應(yīng)用程序進(jìn)行升級的提示。
[0120]A10、如A8所述的方法,
[0121]所述根據(jù)所統(tǒng)計出的應(yīng)用程序的使用頻率,執(zhí)行有關(guān)所述應(yīng)用程序的操作包括:對于使用頻率低的應(yīng)用程序,阻止向所述應(yīng)用程序推送廣告或通知消息;或者,對于使用頻率高的應(yīng)用程序,向所述應(yīng)用程序推送廣告或通知消息。
[0122]B11、一種統(tǒng)計應(yīng)用程序使用頻率的裝置,包括:
[0123]視圖創(chuàng)建單元,用于創(chuàng)建視圖;
[0124]監(jiān)控單元,用于在所述視圖中監(jiān)控系統(tǒng)中所有的觸屏事件;
[0125]鏈表獲取單元,用于收到觸屏事件后,查詢頂層的活動組件,得到頂層活動組件鏈表;
[0126]鏈表分析單元,用于分析所述鏈表,確定用戶主動點(diǎn)擊而啟動的活動組件,并計算出用戶在所述主動點(diǎn)擊的活動組件對應(yīng)的應(yīng)用程序上的停留時間,和/或,確定用戶啟動應(yīng)用程序的次數(shù);
[0127]頻率統(tǒng)計單元,用于根據(jù)用戶啟動應(yīng)用程序的次數(shù)和/或在應(yīng)用程序上的停留時間,統(tǒng)計應(yīng)用程序的使用頻率。
[0128]B12、如Bll所述的裝置,所述視圖創(chuàng)建單元具體用于:創(chuàng)建視圖實(shí)例,并設(shè)置視圖實(shí)例的窗口類型標(biāo)識、窗口標(biāo)識位和窗口大小參數(shù)。
[0129]B13、如B12所述的裝置,所述視圖創(chuàng)建單元具體用于:設(shè)置視圖實(shí)例的窗口類型標(biāo)識,使得該窗口位于一般窗口之上;設(shè)置視圖實(shí)例的窗口標(biāo)識位,使得該窗口沒有獲得焦點(diǎn)時也允許任何指針事件發(fā)送給此窗口底下的窗口、或者使得該窗口不會獲取焦點(diǎn)、或者允許該窗口收到位于此窗口之外的點(diǎn)擊事件;以及,設(shè)置窗口大小參數(shù),使得窗口不可見。
[0130]B14、如Bll所述的裝置,所述監(jiān)控單元用于通過調(diào)用系統(tǒng)接口,實(shí)現(xiàn)對系統(tǒng)中所有觸屏事件的監(jiān)控。
[0131]B15、如Bll所述的裝置,所述監(jiān)控單元所監(jiān)控的觸屏事件是指除了當(dāng)前窗口之外的事件。
[0132]B16、如Bll所述的裝置,所述鏈表分析單元具體用于:獲取當(dāng)前活動組件以及當(dāng)前活動組件的前一個活動組件;根據(jù)前一個活動組件的類型判斷是否屬于桌面應(yīng)用程序,如果是,則確定當(dāng)前活動組件是用戶主動啟動的。
[0133]B17、如Bll所述的裝置,所述鏈表分析單元具體用于:根據(jù)記錄的每次觸屏事件發(fā)生時的頂層活動組件,確定所述應(yīng)用程序的所有活動組件;通過所述應(yīng)用程序的連續(xù)的活動組件之間的時間差,計算出用戶在所述應(yīng)用程序上的停留時間。
[0134]B18、如Bll所述的裝置,還包括:提示操作單元,用于根據(jù)所統(tǒng)計出的應(yīng)用程序的使用頻率,確定是否向用戶展示有關(guān)所述應(yīng)用程序預(yù)定操作的提示或確定是否執(zhí)行有關(guān)所述應(yīng)用程序的操作。
[0135]B19、如B18所述的裝置,所述提示操作單元具體用于:對于使用頻率低的應(yīng)用程序,向用戶展示卸載所述應(yīng)用程序的提示;或者,對于使用頻率高的應(yīng)用程序,向用戶展示對所述應(yīng)用程序進(jìn)行升級的提示。
[0136]B20、如B18所述的裝置,所述提示操作單元具體用于:對于使用頻率低的應(yīng)用程序,阻止向所述應(yīng)用程序推送廣告或通知消息;或者,對于使用頻率高的應(yīng)用程序,向所述應(yīng)用程序推送廣告或通知消息。
【權(quán)利要求】
1.一種統(tǒng)計應(yīng)用程序使用頻率的方法,其特征在于,包括: 創(chuàng)建視圖,在所述視圖中監(jiān)控系統(tǒng)中所有的觸屏事件; 收到觸屏事件后,查詢頂層的活動組件,得到頂層活動組件鏈表; 分析所述鏈表,確定用戶主動點(diǎn)擊而啟動的活動組件,并計算出用戶在所述主動點(diǎn)擊的活動組件對應(yīng)的應(yīng)用程序上的停留時間,和/或,確定用戶啟動所述應(yīng)用程序的次數(shù); 根據(jù)用戶啟動應(yīng)用程序的次數(shù)和/或在所述應(yīng)用程序上的停留時間,統(tǒng)計應(yīng)用程序的使用頻率。
2.如權(quán)利要求1所述的方法,其特征在于,所述創(chuàng)建視圖包括: 創(chuàng)建視圖實(shí)例,并設(shè)置視圖實(shí)例的窗口類型標(biāo)識、窗口標(biāo)識位和窗口大小參數(shù)。
3.如權(quán)利要求2所述的方法,其特征在于, 設(shè)置視圖實(shí)例的窗口類型標(biāo)識,使得該窗口位于一般窗口之上; 設(shè)置視圖實(shí)例的窗口標(biāo)識位,使得該窗口沒有獲得焦點(diǎn)時也允許任何指針事件發(fā)送給此窗口底下的窗口、或者使得該窗口不會獲取焦點(diǎn)、或者允許該窗口收到位于此窗口之外的點(diǎn)擊事件; 設(shè)置窗口大小參數(shù),使得窗口不可見。
4.如權(quán)利要求1所述的方法,其特征在于,通過調(diào)用系統(tǒng)接口,實(shí)現(xiàn)對系統(tǒng)中所有觸屏事件的監(jiān)控。
5.如權(quán)利要求1所述的方法,其特征在于,所監(jiān)控的觸屏事件是指除了當(dāng)前窗口之外的事件。
6.如權(quán)利要求1所述的方法,其特征在于,所述確定用戶主動點(diǎn)擊而啟動的活動組件包括: 獲取當(dāng)前活動組件以及當(dāng)前活動組件的前一個活動組件; 根據(jù)前一個活動組件的類型判斷是否屬于桌面應(yīng)用程序,如果是,則確定當(dāng)前活動組件是用戶主動啟動的。
7.如權(quán)利要求1所述的方法,其特征在于,所述計算出用戶在所述主動點(diǎn)擊的活動組件對應(yīng)的應(yīng)用程序上的停留時間包括: 根據(jù)記錄的每次觸屏事件發(fā)生時的頂層活動組件,確定所述應(yīng)用程序的所有活動組件; 通過所述應(yīng)用程序的連續(xù)的活動組件之間的時間差,計算出用戶在所述應(yīng)用程序上的停留時間。
8.如權(quán)利要求1所述的方法,其特征在于,還包括: 根據(jù)所統(tǒng)計出的應(yīng)用程序的使用頻率,確定是否向用戶展示有關(guān)所述應(yīng)用程序預(yù)定操作的提示或確定是否執(zhí)行有關(guān)所述應(yīng)用程序的操作。
9.如權(quán)利要求8所述的方法,其特征在于, 所述根據(jù)所統(tǒng)計出的應(yīng)用程序的使用頻率,向用戶展示有關(guān)所述應(yīng)用程序預(yù)定操作的提示包括:對于使用頻率低的應(yīng)用程序,向用戶展示卸載所述應(yīng)用程序的提示;或者,對于使用頻率高的應(yīng)用程序,向用戶展示對所述應(yīng)用程序進(jìn)行升級的提示。
10.一種統(tǒng)計應(yīng)用程序使用頻率的裝置,其特征在于,包括: 視圖創(chuàng)建單元,用于創(chuàng)建視圖; 監(jiān)控單元,用于在所述視圖中監(jiān)控系統(tǒng)中所有的觸屏事件; 鏈表獲取單元,用于收到觸屏事件后,查詢頂層的活動組件,得到頂層活動組件鏈表;鏈表分析單元,用于分析所述鏈表,確定用戶主動點(diǎn)擊而啟動的活動組件,并計算出用戶在所述主動點(diǎn)擊的活動組件對應(yīng)的應(yīng)用程序上的停留時間,和/或,確定用戶啟動應(yīng)用程序的次數(shù); 頻率統(tǒng)計單元,用于根據(jù)用戶啟動應(yīng)用程序的次數(shù)和/或在應(yīng)用程序上的停留時間,統(tǒng)計應(yīng)用程序的使用頻率。
【文檔編號】G06F11/30GK104360925SQ201410677608
【公開日】2015年2月18日 申請日期:2014年11月21日 優(yōu)先權(quán)日:2014年11月21日
【發(fā)明者】龔廣, 申迪 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
淄博市| 康马县| 郑州市| 上思县| 建昌县| 绥德县| 湘阴县| 稻城县| 江华| 阳曲县| 常熟市| 桦南县| 息烽县| 芜湖市| 宁波市| 余姚市| 元氏县| 西城区| 福泉市| 汝城县| 奈曼旗| 临潭县| 正安县| 屏边| 浙江省| 洞口县| 盘山县| 基隆市| 清丰县| 榆树市| 高青县| 莱芜市| 崇左市| 沙洋县| 雷波县| 安丘市| 辉南县| 南雄市| 林甸县| 会泽县| 买车|