應(yīng)用定制的對(duì)象再利用和再循環(huán)的制作方法
【技術(shù)領(lǐng)域】
[0001]本公開總體上涉及對(duì)象生命周期管理。
【背景技術(shù)】
[0002]創(chuàng)建顯示對(duì)象并且將它們填充有內(nèi)容會(huì)構(gòu)成內(nèi)容密集應(yīng)用的延遲的顯著原因。當(dāng)渲染其中內(nèi)容在折線(the fold)以下延伸的特定顯示畫面的內(nèi)容布局時(shí)(需要用戶滾動(dòng)該內(nèi)容布局以將內(nèi)容帶入視野),當(dāng)它們進(jìn)入視野時(shí)可以創(chuàng)建顯示對(duì)象并且填充有內(nèi)容,并且當(dāng)它們從視野消失時(shí)再循環(huán)顯示對(duì)象。由操作系統(tǒng)提供的默認(rèn)再循環(huán)效用被證實(shí)不滿足這樣的內(nèi)容密集應(yīng)用的需求,尤其是對(duì)于最近請(qǐng)求的顯示對(duì)象在短時(shí)間段以內(nèi)可能重復(fù)地被再次請(qǐng)求的應(yīng)用。
【發(fā)明內(nèi)容】
[0003]為了便于以內(nèi)容識(shí)別方式再使用和再循環(huán)昂貴的顯示對(duì)象,可以利用應(yīng)用專用的再循環(huán)政策以確定如何評(píng)價(jià)顯示對(duì)象以及何時(shí)將顯示對(duì)象轉(zhuǎn)移至應(yīng)用定制對(duì)象再循環(huán)器以便由應(yīng)用再利用。當(dāng)接收對(duì)于待顯示的特定內(nèi)容元素的請(qǐng)求時(shí),應(yīng)用創(chuàng)建顯示對(duì)象并且渲染顯示對(duì)象。在將其返回至操作系統(tǒng)用于顯示之前,應(yīng)用可以根據(jù)按照應(yīng)用專用的再循環(huán)政策的顯示對(duì)象的評(píng)估將顯示對(duì)象裝入廉價(jià)創(chuàng)建的包裝對(duì)象。當(dāng)操作系統(tǒng)調(diào)用對(duì)象在準(zhǔn)備中的最后確定的方法以將對(duì)象發(fā)送至操作系統(tǒng)的默認(rèn)再循環(huán)效用時(shí),應(yīng)用提取并緩存再循環(huán)器中的顯示對(duì)象,并且允許操作系統(tǒng)根據(jù)其默認(rèn)再循環(huán)政策處置(空的)包裝對(duì)象。當(dāng)再次請(qǐng)求相同的內(nèi)容元素時(shí),應(yīng)用從再循環(huán)器檢索顯示對(duì)象,將其裝入包裝對(duì)象,并且返回經(jīng)包裝的顯示對(duì)象。
【附圖說明】
[0004]圖1A是使用顯示對(duì)象渲染內(nèi)容布置的線框圖。
[0005]圖1B是示出圖1A的細(xì)節(jié)部分的線框圖。
[0006]圖2示出用于應(yīng)用控制的對(duì)象再循環(huán)的示例性方法。
[0007]圖3示出與社交網(wǎng)絡(luò)系統(tǒng)相關(guān)聯(lián)的示例性網(wǎng)絡(luò)環(huán)境。
[0008]圖4示出了示例性社交圖譜。
[0009]圖5示出示例性計(jì)算機(jī)系統(tǒng)。
【具體實(shí)施方式】
[0010]可以在對(duì)基于內(nèi)容或基于使用的上下文進(jìn)行任何識(shí)別的情況下,統(tǒng)一處理通過默認(rèn)再循環(huán)效用的顯示對(duì)象的再循環(huán)。這會(huì)觸發(fā)不必要的和昂貴的操作,該操作比可能以其他方式需要而更頻繁地創(chuàng)建顯示對(duì)象并且將內(nèi)容填入效率低地再循環(huán)的顯示對(duì)象。當(dāng)顯示對(duì)象具有變得非常大的潛在性時(shí)(例如,安卓的ListView或GridView對(duì)象),并且用戶可以遍歷列表或網(wǎng)格重復(fù)地來回經(jīng)過相同的內(nèi)容元素,更加期望的是避免由于無(wú)法有效再利用最近請(qǐng)求的顯示對(duì)象而導(dǎo)致的不必要的操作。
[0011]為了便于以內(nèi)容識(shí)別的方式再使用和再循環(huán)昂貴的顯示對(duì)象,應(yīng)用程序可以應(yīng)用專用的再循環(huán)政策以確定怎樣評(píng)價(jià)顯示對(duì)象以及何時(shí)將顯示對(duì)象轉(zhuǎn)移至應(yīng)用定制的對(duì)象再循環(huán)器以供應(yīng)用程序再利用。當(dāng)接收對(duì)于待顯示的特定內(nèi)容元素的請(qǐng)求時(shí),應(yīng)用程序創(chuàng)建顯示對(duì)象并且渲染顯示對(duì)象。在將其返回操作系統(tǒng)以供顯示之前,應(yīng)用程序可以根據(jù)按照應(yīng)用專用的再循環(huán)政策對(duì)顯示對(duì)象的評(píng)估將顯示對(duì)象裝入廉價(jià)創(chuàng)建的包裝對(duì)象。當(dāng)操作系統(tǒng)在準(zhǔn)備調(diào)用對(duì)象的最后確定的方法以將對(duì)象發(fā)送至操作系統(tǒng)的默認(rèn)再循環(huán)效用時(shí),應(yīng)用程序提取顯示對(duì)象并緩存在再循環(huán)器中,并且允許操作系統(tǒng)根據(jù)其默認(rèn)再循環(huán)政策處置(空的)包裝對(duì)象。當(dāng)再次請(qǐng)求相同的內(nèi)容元素時(shí),應(yīng)用從再循環(huán)器檢索顯示對(duì)象,將其裝入包裝對(duì)象,并且返回經(jīng)包裝的顯示對(duì)象。包裝對(duì)象本身可以重新創(chuàng)建或由操作系統(tǒng)的默認(rèn)再循環(huán)效用提供,與創(chuàng)建和/或填充顯示對(duì)象的昂貴的操作相比,由于新的包裝對(duì)象的創(chuàng)建而導(dǎo)致的任何延遲是非常低的。
[0012]在【具體實(shí)施方式】中,再循環(huán)器可以使用任何合適的數(shù)據(jù)結(jié)構(gòu)(例如,堆)實(shí)現(xiàn),顯示對(duì)象可以存儲(chǔ)在其中并且可以使用適合于應(yīng)用程序的任何檢索關(guān)鍵字從再循環(huán)器檢索顯示對(duì)象。例如,在由社交網(wǎng)絡(luò)系統(tǒng)提供的按時(shí)間順序組織的新鮮事應(yīng)用中,其中新鮮事中的每個(gè)列表與用戶的社交圖譜中的連接的活動(dòng)有關(guān)系,可以與檢索關(guān)鍵字相聯(lián)系地存儲(chǔ)的每個(gè)顯示對(duì)象包括:新鮮事項(xiàng)ID號(hào)、基于新鮮事項(xiàng)的元素生成的散列關(guān)鍵字、新鮮事中的新鮮事項(xiàng)的位置、與新鮮事項(xiàng)相關(guān)聯(lián)的時(shí)間戳、基于與特定內(nèi)容相關(guān)的社交圖譜中的任何元素相關(guān)聯(lián)的標(biāo)識(shí)符生成的標(biāo)識(shí)符、或者基于與特定內(nèi)容相關(guān)的社交圖譜中的任何元素相關(guān)聯(lián)的信息的散列關(guān)鍵字。在【具體實(shí)施方式】中,基于應(yīng)用程序的需求,存在應(yīng)用程序的一個(gè)或多個(gè)再循環(huán)器。例如,應(yīng)用程序可以為每個(gè)顯示對(duì)象類型保留一個(gè)再循環(huán)器。在另一個(gè)實(shí)例中,應(yīng)用程序可以為迅速到期和/或必須經(jīng)常更新的顯示對(duì)象保留一個(gè)再循環(huán)器,并且為不到期或者長(zhǎng)達(dá)更長(zhǎng)的時(shí)間段保持有效的顯示對(duì)象保留另一個(gè)再循環(huán)器。如本領(lǐng)域的技術(shù)人員將意識(shí)到的,可以利用任意數(shù)量的再循環(huán)器,視具體應(yīng)用程序的需求而定。
[0013]本文中描述的實(shí)施方式還可以對(duì)顯示對(duì)象的子元素執(zhí)行,其中有一些顯示對(duì)象可包括嵌套顯示對(duì)象。
[0014]圖1A是示出基于許多顯示對(duì)象渲染的以便在平板設(shè)備上顯示的社交網(wǎng)絡(luò)系統(tǒng)的用戶的新鮮事頁(yè)面的內(nèi)容布局100的示例性線框圖的線框圖。內(nèi)容布局100的可顯示區(qū)域(由虛線指出的)包括適合于平板設(shè)備的屏幕尺寸(在折線以上)的內(nèi)容布局100的部分。
[0015]內(nèi)容布局100包括頁(yè)眉區(qū)域110、菜單欄120、左邊側(cè)欄130、右邊側(cè)欄140以及主體區(qū)域150。每個(gè)區(qū)域與它自身的顯示對(duì)象相關(guān)聯(lián),每個(gè)顯示對(duì)象可以包括許多元素諸如通過實(shí)例而不是限制:圖像、視頻、文本、鏈接、表格以及交互元素。這些元素中的每一個(gè)可以由一個(gè)或多個(gè)嵌套顯示對(duì)象表示。
[0016]與標(biāo)題區(qū)域110相關(guān)聯(lián)的顯示對(duì)象包括社交網(wǎng)絡(luò)用戶的交互簡(jiǎn)檔照片112,由社交網(wǎng)絡(luò)用戶選擇的文本塊114、背景圖像116以及主題音樂。交互簡(jiǎn)檔照片112基于顯示對(duì)象渲染,該顯示對(duì)象可以包括圖像、文本、鏈接以及Java腳本代碼以便渲染顯示當(dāng)諸如鼠標(biāo)的點(diǎn)控設(shè)備懸浮在簡(jiǎn)檔照片上時(shí)出現(xiàn)的社交網(wǎng)絡(luò)用戶的簡(jiǎn)檔的概要的彈出窗口。
[0017]與菜單欄120相關(guān)聯(lián)顯示對(duì)象包括五個(gè)菜單選項(xiàng)125A-F,每個(gè)菜單選項(xiàng)包括圖像、文本和鏈接。
[0018]與左邊側(cè)欄130相關(guān)聯(lián)的顯示對(duì)象包括用于混合的推薦的內(nèi)容(包括贊助內(nèi)容)(僅示出135A-E,但可以存在很多推薦),每個(gè)推薦內(nèi)容基于顯示對(duì)象渲染。用于推薦的每個(gè)顯示對(duì)象可以包括交互圖像、標(biāo)題、推薦的文本以及獲得與推薦有關(guān)的進(jìn)一步信息的鏈接。用于新鮮事項(xiàng)的每個(gè)顯示對(duì)象還可以包括一個(gè)或多個(gè)圖像或視頻。
[0019]與右邊側(cè)欄140相關(guān)聯(lián)的顯示對(duì)象包括一個(gè)或多個(gè)廣告145的內(nèi)容,每個(gè)廣告內(nèi)容基于顯示對(duì)象渲染。如在圖1A中示出的實(shí)例中示出的,廣告145A出現(xiàn)在折線以上,然而145B尚未在視野中。廣告的內(nèi)容可以至少部分地由第三方廣告商確定。
[0020]與主體區(qū)域150相關(guān)聯(lián)的顯示對(duì)象包括許多新鮮事項(xiàng)(僅示出155A-E,但可以存在很多新鮮事項(xiàng)),每個(gè)新鮮事項(xiàng)基于與用戶的朋友(即,社交圖譜聯(lián)系)有關(guān)的活動(dòng)相關(guān)聯(lián)的顯示對(duì)象渲染。
[0021]圖1B是示出圖1A的細(xì)節(jié)部分的線框圖:內(nèi)容布局100的主體區(qū)域150中的新鮮事項(xiàng)155B-E。如在圖1A中指出的,內(nèi)容布局100的可顯示的區(qū)域(由虛線指出的)包括將適合平板設(shè)備的畫面上的內(nèi)容布局100的部分。
[0022]新鮮事項(xiàng)155的每個(gè)顯示對(duì)象可以包括:朋友的交互簡(jiǎn)檔照片160、朋友的名字165、新鮮事項(xiàng)的文本170、時(shí)間敏感的信息175 (例如,已觀看/評(píng)論/ “點(diǎn)贊”列表的人的數(shù)量的持續(xù)更新計(jì)數(shù)、觀看/評(píng)論/ “點(diǎn)贊”列表的最近的一個(gè)或兩個(gè)人的短列表等)、到“點(diǎn)贊”新鮮事項(xiàng)的鏈接180、到新鮮事項(xiàng)的評(píng)論的鏈接185、以及到“分享”新鮮事項(xiàng)的鏈接190。用于新鮮事項(xiàng)的每個(gè)顯示對(duì)象還可以包括一個(gè)或多個(gè)圖像195或視頻。
[0023]每個(gè)交互簡(jiǎn)檔照片160基于顯示對(duì)象渲染,該顯示對(duì)象可以包括圖像、文本、鏈接以及Java腳本代碼以便渲染顯示當(dāng)諸如鼠標(biāo)的點(diǎn)控設(shè)備懸浮在簡(jiǎn)檔照片上時(shí)出現(xiàn)的社交網(wǎng)絡(luò)用戶的簡(jiǎn)檔的概要的彈出窗口。
[0024]圖2示出用于應(yīng)用控制的對(duì)象再循環(huán)的示例性方法。在步驟210中,應(yīng)用程序接收對(duì)特定內(nèi)容(例如,新鮮事項(xiàng)155C)的請(qǐng)求,針對(duì)該請(qǐng)求需要以包含所請(qǐng)求的內(nèi)容的顯示對(duì)象來響應(yīng)。如上所述,顯示對(duì)象可以包含許多元素,該元素本身可以是顯示對(duì)象。例如,新鮮事項(xiàng)155C包括可以由顯示對(duì)象渲染的交互簡(jiǎn)檔照片160。
[0025]在步驟220中,應(yīng)用程序根據(jù)應(yīng)用定制再循環(huán)政策確定應(yīng)用定制再循環(huán)器中是否存在適合于再利用或再循環(huán)的的顯示對(duì)象。如果顯示對(duì)象包含與當(dāng)前請(qǐng)求的內(nèi)容相同或相似的內(nèi)容,則該顯示對(duì)象可能適合于再利用。如果顯示對(duì)象是相同類型的對(duì)象但是填充有不同的內(nèi)容,則該顯示對(duì)象可能適合于再循環(huán)。這個(gè)判定可以取決于應(yīng)用專用、設(shè)備專用和/或用戶專用的再循環(huán)政策。在【具體實(shí)施方式】中,應(yīng)用程序可以根據(jù)應(yīng)用需求、內(nèi)容類型、設(shè)備屬性(例如,可用存儲(chǔ)器和/或顯示屏幕的尺寸)、內(nèi)容統(tǒng)計(jì)、使用模式和偏好、或者任何其他合適因素設(shè)置再循環(huán)政策。這樣的政策可以支配多少對(duì)象保留在再循環(huán)器中、什么類型的對(duì)象存儲(chǔ)在再循環(huán)器中、怎樣確定顯示對(duì)象是否適合于再利用和/或再循環(huán)、何時(shí)再利用而不是再循環(huán)顯示對(duì)象等。
[0026]在步驟225中,存在再循環(huán)器返回空值的兩種情況。第一種情況是簡(jiǎn)單的一在再循環(huán)器中沒有找到正確類型的顯示對(duì)象。在第二種情況中,在再循環(huán)器中找到適合于再循環(huán)而不是再利用的顯示對(duì)象,然而再循環(huán)政策禁止顯示對(duì)象的再循環(huán)。
[0027]例如,在圖1B中示出的新鮮事布局中,用戶先前觀看和滾動(dòng)通過了新鮮事項(xiàng)155A,并且可顯示的區(qū)域由新鮮事項(xiàng)155B-E占據(jù)。這意味著用于新鮮事項(xiàng)155A的顯示對(duì)象可能已經(jīng)預(yù)先生成、填充有內(nèi)容、顯示然后存儲(chǔ)在再循環(huán)器中。如果用戶向下滾動(dòng),并且應(yīng)用程序接收到對(duì)于包含用于新鮮事項(xiàng)155F的內(nèi)容的顯示對(duì)象的請(qǐng)求,那么應(yīng)用程序?qū)⒋_定用于新鮮事項(xiàng)155A的顯示對(duì)象是否可以為新鮮事項(xiàng)155F再循環(huán)。如果應(yīng)用程序僅允許已存儲(chǔ)在再循環(huán)器中的許多顯示對(duì)象的對(duì)象再循環(huán)一次(以便鼓勵(lì)再利用,而不是持續(xù)再循環(huán)),那么再循環(huán)器可返回空值,以便迫使創(chuàng)建用于新鮮事項(xiàng)155F的新的顯示對(duì)象(并且預(yù)期新鮮事項(xiàng)155A可能很快被再次請(qǐng)求,預(yù)先保存用于新鮮事項(xiàng)155A的顯示對(duì)象)。
[0028]但不論是哪種情況,應(yīng)用程序創(chuàng)建合適類型的新的顯示對(duì)象以顯示請(qǐng)求的內(nèi)容,然后用請(qǐng)求的內(nèi)容填充顯示對(duì)象(步驟250)。這是最昂貴的途徑,因?yàn)閯?chuàng)建新的顯示對(duì)象和填充空的顯示對(duì)象兩者是成本高的操作。因此,應(yīng)用程序可能需要在確定何時(shí)禁止再循環(huán)器中存儲(chǔ)的另外的合適的顯示對(duì)象再循環(huán)時(shí)平衡沖突的優(yōu)先級(jí)。
[0029]在步驟230中,如果合適的顯示對(duì)象在再循環(huán)器中可用,則應(yīng)用程序確定顯示對(duì)象中的內(nèi)容是否與請(qǐng)求內(nèi)容相同或相似。
[0030]在步驟235中,如果顯示對(duì)象包含與請(qǐng)求內(nèi)容相同或相似的內(nèi)容,則應(yīng)用可以為這個(gè)請(qǐng)求再利用檢索到的顯示對(duì)象。例如,在圖1B中示出的新鮮事布局中,用戶先前觀看和滾動(dòng)去新鮮事項(xiàng)155A,并且可顯示的區(qū)域由新鮮事項(xiàng)155B-E占據(jù)。這意味著新鮮事項(xiàng)155A的顯示對(duì)象可能已經(jīng)之前生成、填充有內(nèi)容、顯示然后存儲(chǔ)在再循環(huán)器中。如果用戶倒退滾動(dòng),并且應(yīng)用接收到對(duì)于包含新鮮事項(xiàng)155A的內(nèi)容的顯示對(duì)象的請(qǐng)求,那么包含新鮮事項(xiàng)155A的內(nèi)容的顯示對(duì)象可以從再循環(huán)器檢索并再利用。
[0031]為了重新使用檢索到的顯示對(duì)象,必需根據(jù)需要更新顯示對(duì)象的特定元素(步驟240),諸如時(shí)間敏感的元素。例如,新鮮事項(xiàng)155可能需要更新時(shí)間敏感的信息175 (例如,已觀看/評(píng)論/ “點(diǎn)贊”列表的人的數(shù)量的持續(xù)更新計(jì)數(shù)、觀看/評(píng)論/ “點(diǎn)贊”列表的最近的一個(gè)或兩個(gè)人的短列表等)。在一些情況下,包含于顯示對(duì)象的內(nèi)容可以與請(qǐng)求內(nèi)容非常相似但不是完全