[發(fā)明專利]一種安卓系統(tǒng)View管理方法、存儲介質(zhì)、設(shè)備及系統(tǒng)有效
| 申請?zhí)枺?/td> | 201811161752.0 | 申請日: | 2018-09-30 |
| 公開(公告)號: | CN110968741B | 公開(公告)日: | 2022-06-24 |
| 發(fā)明(設(shè)計)人: | 尹成 | 申請(專利權(quán))人: | 武漢斗魚網(wǎng)絡(luò)科技有限公司 |
| 主分類號: | G06F16/901 | 分類號: | G06F16/901;G06F16/903 |
| 代理公司: | 武漢智權(quán)專利代理事務(wù)所(特殊普通合伙) 42225 | 代理人: | 沈林華 |
| 地址: | 430000 湖北省武漢市東湖開*** | 國省代碼: | 湖北;42 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 系統(tǒng) view 管理 方法 存儲 介質(zhì) 設(shè)備 | ||
本發(fā)明公開了一種安卓系統(tǒng)View管理方法、存儲介質(zhì)、設(shè)備及系統(tǒng),涉及安卓應(yīng)用開發(fā)領(lǐng)域,該方法包括在View的onLayout階段之前的onMeasure階段,對所有View進(jìn)行收集;使用有向圖作為View收集器,將收集的View作為有向圖的元素導(dǎo)入至有向圖中;基于最小空間占用的拓?fù)渑判蛞?guī)則,對有向圖進(jìn)行拓?fù)渑判颍粚τ邢驁D中的View依次進(jìn)入onLayout階段和onDraw階段,并在onDraw階段使用最長前綴匹配機(jī)制對View進(jìn)行標(biāo)記。本發(fā)明能夠有效提升對View的查找速度。
技術(shù)領(lǐng)域
本發(fā)明涉及安卓應(yīng)用開發(fā)領(lǐng)域,具體涉及一種安卓系統(tǒng)View管理方法、存儲介質(zhì)、設(shè)備及系統(tǒng)。
背景技術(shù)
安卓程序的用戶交互界面中,每一個可見的圖像基本單元為View(視圖),所有的View組成了可視化交互的界面,View與View間存在兩種關(guān)系:一種是繼承關(guān)系,另一種是非繼承關(guān)系。繼承關(guān)系,即View與View是一種父子或者爺孫關(guān)系,由于Java語言的單繼承原則,一個View只能有一個父View,但一個父View可以有多個子View;非繼承關(guān)系,即View與View之間不存在繼承關(guān)系。在可視化的界面中,所有的View組成了一個樹狀圖(視圖樹)關(guān)系,如圖1所示。
View組成的這種樹狀圖關(guān)系結(jié)構(gòu),優(yōu)點是:各個View之間關(guān)系明確,不存在相互沖突和功能重疊,符合單一職責(zé)的設(shè)計模式。但基于這種樹形依賴關(guān)系,必須為每個需要查找的View單獨定義一個唯一的id(無需查找的View無需定義id),如果存在大量且功能重復(fù)的View則直接復(fù)用一個相同的id,但這樣帶來的弊端是,如果View數(shù)量龐大,則造成id泛濫,而復(fù)用相同id則導(dǎo)致View難以精確查找出來。為解決上述這個弊端,安卓系統(tǒng)官方建議為每個View額外綁定一個Tag(標(biāo)識),然后通過Tag精確查找到對應(yīng)的View,Tag的類型可以是整型數(shù)字(int),也可以是一個對象(Object)。這種綁定Tag的解決方案同時也存在一些缺陷,主要表現(xiàn)在以下方面:
1、需要額外定義大量的Tag,一般為數(shù)字;
2、查詢效率低下,因為查詢分為兩步:先根據(jù)id查詢,后根據(jù)tag查詢,造成查詢過程繁瑣。
發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明的目的在于提供一種安卓系統(tǒng)View管理方法、存儲介質(zhì)、設(shè)備及系統(tǒng),能夠有效提升對View的查找速度。
本發(fā)明第一方面提供一種安卓系統(tǒng)View管理方法,包括:
在View的onLayout階段之前的onMeasure階段,對所有View進(jìn)行收集;
使用有向圖作為View收集器,將收集的View作為有向圖的元素導(dǎo)入至有向圖中;
基于最小空間占用的拓?fù)渑判蛞?guī)則,對有向圖進(jìn)行拓?fù)渑判颍?/p>
對有向圖中的View依次進(jìn)入onLayout階段和onDraw階段,并在onDraw階段使用最長前綴匹配機(jī)制對View進(jìn)行標(biāo)記。
結(jié)合第一方面,在第一種可能的實現(xiàn)方式中,所述onMeasure為計算View的大小,所述onLayout為計算View的位置,所述onDraw為繪制View。
結(jié)合第一方面,在第二種可能的實現(xiàn)方式中,所述對所有View進(jìn)行收集,具體為:采用雙重for循環(huán)方法,對ViewTree上所有節(jié)點的View進(jìn)行收集。
結(jié)合第一方面,在第三種可能的實現(xiàn)方式中,所述最小空間占用的拓?fù)渑判蛞?guī)則,具體為:
初始化有向圖的距離矩陣D(0)=(dij)m×m,(i,j=1,…,m),其中,m為排序次數(shù),且為正整數(shù),dij為權(quán)值;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于武漢斗魚網(wǎng)絡(luò)科技有限公司,未經(jīng)武漢斗魚網(wǎng)絡(luò)科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811161752.0/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





