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

一種圖片加載方法及裝置與流程

文檔序號:11677460閱讀:224來源:國知局
本申請涉及圖片處理
技術領域
:,尤其涉及一種圖片加載方法及裝置。
背景技術
::對于安卓設備來說,在進行圖片加載時,由于解碼圖片需要占用應用進程大量的java堆內(nèi)存,且,安卓系統(tǒng)的應用進程都有一定大小限制,因而當應用進程的java堆內(nèi)存使用率較高時,極易出現(xiàn)堆內(nèi)存不足的現(xiàn)象,從而觸發(fā)oom(outofmemory,內(nèi)存耗盡)。為了解決這一問題,目前可采用圖片緩存的方式來減少圖片解碼,以實現(xiàn)對解碼所得圖片數(shù)據(jù)的復用,進而降低java堆內(nèi)存的使用率。例如,在從網(wǎng)絡或本地資源解碼出bitmap(位圖)對象后,可通過使用linkedhashmap(基于鏈表、哈希實現(xiàn)的map數(shù)據(jù)結構)實現(xiàn)lru(leastrecentlyused,近期最少使用算法)緩存管理,即,將最近使用到的bitmap對象用強引用保存起來(保存到linkedhashmap中),當緩存數(shù)量達到預定值的時候,將不經(jīng)常使用的bitmap對象刪除,從而實現(xiàn)對bitmap對象的復用,提高用戶的應用體驗。但是,由于在采用現(xiàn)有的圖片緩存方式來實現(xiàn)解碼所得圖片數(shù)據(jù)的復用時,仍是在java層解碼出bitmap對象,并將解碼所得的bitmap對象緩存在java堆內(nèi)存,即,緩存的圖片數(shù)據(jù)所占用的內(nèi)存仍為java堆內(nèi)存,從而導致java堆內(nèi)存的壓力仍較大,在進行圖片的解碼時,仍極易出現(xiàn)堆內(nèi)存不足的現(xiàn)象,從而觸發(fā)oom。技術實現(xiàn)要素:本申請實施例提供了一種圖片加載方法及裝置,用以解決采用現(xiàn)有的圖片緩存方式來實現(xiàn)解碼所得圖片數(shù)據(jù)的復用時,由于java堆內(nèi)存的壓力仍較大從而極易觸發(fā)oom的問題。一方面,本申請實施例提供了一種圖片加載方法,包括:在對圖片進行加載時,判斷native堆內(nèi)存中是否緩存有該圖片的解碼數(shù)據(jù);若是,則從native堆內(nèi)存中獲取該圖片的解碼數(shù)據(jù),并基于獲取到的解碼數(shù)據(jù)實現(xiàn)該圖片的加載;若否,則從存儲有該圖片的存儲空間處獲取并加載該圖片,并將加載該圖片的過程中所得到的該圖片的解碼數(shù)據(jù)緩存到native堆內(nèi)存中。另一方面,本申請實施例提供了一種圖片加載裝置,包括:判斷單元,用于在對圖片進行加載時,判斷native堆內(nèi)存中是否緩存有該圖片的解碼數(shù)據(jù);執(zhí)行單元,用于若確定native堆內(nèi)存中緩存有該圖片的解碼數(shù)據(jù),則從native堆內(nèi)存中獲取該圖片的解碼數(shù)據(jù),并基于獲取到的解碼數(shù)據(jù)實現(xiàn)該圖片的加載;否則,從存儲有該圖片的存儲空間處獲取并加載該圖片,并將加載該圖片的過程中所得到的該圖片的解碼數(shù)據(jù)緩存到native堆內(nèi)存中。本申請有益效果如下:本申請實施例提供了一種圖片加載方法及裝置,可將解碼所得的圖片數(shù)據(jù)緩存在本機堆內(nèi)存,即native堆內(nèi)存中,以便圖片加載時復用,這樣,由于native堆內(nèi)存不計算在應用進程的java堆內(nèi)存內(nèi),因而可有效降低java堆內(nèi)存的壓力,降低oom的觸發(fā)概率,同時,還可達到更好地利用堆內(nèi)存實現(xiàn)圖片緩存,以提高圖片加載效率并減少系統(tǒng)垃圾回收,即系統(tǒng)gc的效果。附圖說明為了更清楚地說明本申請實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡要介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實施例,對于本領域的普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1所示為本申請實施例一提供的圖片加載方法的一種可能的流程示意圖;圖2所示為本申請實施例一提供的圖片加載方法的另一種可能的流程示意圖;圖3所示為本申請實施例二提供的圖片加載裝置的一種可能的結構示意圖。具體實施方式由于對于android系統(tǒng)來說,堆內(nèi)存可分為java堆內(nèi)存和native堆內(nèi)存,且,native堆內(nèi)存是不計算在java堆內(nèi)存內(nèi)的,因而,在本申請所述實施例中,可基于這一點將解碼所得的圖片數(shù)據(jù)緩存在native堆內(nèi)存中,以便圖片加載時復用,這樣,由于native堆內(nèi)存不計算在應用進程的java堆內(nèi)存內(nèi),因而可有效降低進程的堆內(nèi)存壓力,降低oom的觸發(fā)概率,同時,還可達到更好地利用堆內(nèi)存實現(xiàn)圖片緩存,即更好地實現(xiàn)圖片解碼數(shù)據(jù)的復用的效果,以提高圖片加載效率并減少系統(tǒng)gc,進而提升系統(tǒng)性能。為了使本申請的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本申請作進一步地詳細描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├绢I域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本申請保護的范圍。實施例一:本申請實施例一提供了一種圖片加載方法,所述圖片加載方法可適用于任何基于android系統(tǒng)的客戶端或終端設備,對此不作限定。具體地,如圖1所示,所述圖片加載方法可包括以下步驟:步驟101:在對圖片進行加載時,判斷native堆內(nèi)存中是否緩存有該圖片的解碼數(shù)據(jù),若判斷結果為是,則執(zhí)行步驟102,否則,執(zhí)行步驟103。可選地,圖片的解碼數(shù)據(jù)通常為對該圖片進行解碼所得到的bitmap對象的像素數(shù)組數(shù)據(jù)。另外,由于在本申請所述實施例中,針對任一圖片,當將該圖片的解碼數(shù)據(jù)緩存到native堆內(nèi)存中時,通常會在nativecacheinfo(本機堆內(nèi)存緩存記錄信息)中生成一對應的記錄數(shù)據(jù),因而,判斷native堆內(nèi)存中是否緩存有該圖片的解碼數(shù)據(jù),可執(zhí)行為:判斷是否能夠從nativecacheinfo中,獲取到與該圖片的解碼數(shù)據(jù)相對應的記錄數(shù)據(jù),若判斷結果為是,則確定native堆內(nèi)存中緩存有該圖片的解碼數(shù)據(jù),否則,則確定native堆內(nèi)存中未緩存有該圖片的解碼數(shù)據(jù)。其中,所述nativecacheinfo中的每一記錄數(shù)據(jù)可包括與該記錄數(shù)據(jù)相對應的圖片的寬、高、nativepointer(本機堆內(nèi)存指針,用于指明該記錄數(shù)據(jù)所對應的解碼數(shù)據(jù)在native堆內(nèi)存中的存儲地址)、bitmap.config(用于指明圖片的每個像素所占用的內(nèi)存大小)、解碼數(shù)據(jù)的數(shù)據(jù)長度等屬性信息。另外,為了便于查找與記錄,每一記錄數(shù)據(jù)通??赏ㄟ^能夠唯一標識該記錄數(shù)據(jù)對應的圖片的標識信息(或能夠唯一標識該記錄數(shù)據(jù)對應的圖片的解碼數(shù)據(jù)的標識信息)進行標記,對此不作贅述。再有,由于nativecacheinfo所占用的內(nèi)存通常較小,因而,可將nativecacheinfo存儲于java堆內(nèi)存中(當然,為了進一步降低java堆內(nèi)存的存儲壓力,還可將nativecacheinfo存儲于native堆內(nèi)存中);并且,可采用lru對nativecacheinfo中的各記錄數(shù)據(jù)進行管理,以便達到對nativecacheinfo中的各記錄數(shù)據(jù)以及堆內(nèi)存中的圖片緩存數(shù)據(jù)進行實時維護,在對應淘汰相應的記錄數(shù)據(jù)時將native堆內(nèi)存中的相應解碼數(shù)據(jù)所占用的內(nèi)存同步釋放,以進一步降低堆內(nèi)存壓力,減少oom概率的效果。另外,需要說明的是,在本申請所述實施例中,還可通過其它方式來判斷native堆內(nèi)存中是否緩存有該圖片的解碼數(shù)據(jù),如,通過對native堆內(nèi)存中緩存的數(shù)據(jù)進行逐條掃描的方式,來判斷native堆內(nèi)存中是否緩存有該圖片的解碼數(shù)據(jù),對此不作限定。步驟102:從native堆內(nèi)存中獲取該圖片的解碼數(shù)據(jù),并基于獲取到的解碼數(shù)據(jù)實現(xiàn)該圖片的加載??蛇x地,如圖2所示,步驟102所述的從native堆內(nèi)存中獲取該圖片的解碼數(shù)據(jù),并基于獲取到的解碼數(shù)據(jù)實現(xiàn)該圖片的加載,具體可包括以下步驟:步驟102a:判斷imageview(畫布)當前顯示的bitmap對象是否滿足該圖片的解碼數(shù)據(jù)所需的重用條件,若滿足,則執(zhí)行步驟102b,若不滿足,則執(zhí)行步驟102c??蛇x地,對于android4.4以下版本的系統(tǒng)來說,當imageview當前顯示的bitmap對象所對應的圖片的寬、高、bitmap.config,與該圖片的解碼數(shù)據(jù)所對應的圖片的寬、高、bitmap.config完全一致,且,imageview當前顯示的bitmap對象的屬性為mutable(即,可修改)時,可認為imageview當前顯示的bitmap對象滿足該圖片的解碼數(shù)據(jù)所需的重用條件,否則,則認為其不滿足該圖片的解碼數(shù)據(jù)所需的重用條件;而對于android4.4及以上版本的系統(tǒng)來說,當imageview當前顯示的bitmap對象所對應的圖片的寬、高、每個像素所占用的內(nèi)存三者的乘積不小于該圖片的解碼數(shù)據(jù)的數(shù)據(jù)長度時,可認為imageview當前顯示的bitmap對象滿足該圖片的解碼數(shù)據(jù)所需的重用條件,否則,則認為其不滿足該圖片的解碼數(shù)據(jù)所需的重用條件。步驟102b:將native堆內(nèi)存中緩存的、對該圖片進行解碼所得到的bitmap對象的像素數(shù)組數(shù)據(jù)拷貝到imageview當前顯示的bitmap對象中,得到新的bitmap對象,并將新的bitmap對象渲染到imageview中,以實現(xiàn)該圖片的加載。也就是說,當imageview上已經(jīng)顯示有a圖(bitmap-a)時,若需要顯示b圖(bitmap-b),則無需將imageview上顯示的a圖移除,再換上b圖,而是,只要將b圖和imageview重新綁定,把b圖的像素數(shù)組數(shù)據(jù)拷貝到a圖上即可,以提高圖片加載的效率??蛇x地,為了防止imageview中的老數(shù)據(jù)有可能干擾新數(shù)據(jù)的顯示,在將該圖片的bitmap對象的像素數(shù)組數(shù)據(jù)拷貝到imageview當前顯示的bitmap對象中之前,還可首先對imageview當前顯示的bitmap對象中的像素數(shù)組數(shù)據(jù)進行清除,對此不作贅述。步驟102c:從reusablebitmappool(位圖文件池)中獲取一符合該圖片的解碼數(shù)據(jù)所需的重用條件的bitmap對象、或者創(chuàng)建一符合該圖片的解碼數(shù)據(jù)所需的重用條件的bitmap對象,并將native堆內(nèi)存中緩存的、對該圖片進行解碼所得到的bitmap對象的像素數(shù)組數(shù)據(jù)拷貝到獲取到的或者創(chuàng)建的bitmap對象中,得到新的bitmap對象,并將新的bitmap對象渲染到imageview中,以實現(xiàn)該圖片的加載。可選地,如圖2所示,在執(zhí)行步驟102c之前,還可首先將imageview當前顯示的bitmap對象存放至reusablebitmappool中(對應步驟102c’),以便其它圖片加載時復用(因為雖然該當前bitmap對象不一定能滿足當前待加載圖片的復用條件,但其很有可能能滿足其它圖片的復用條件),以進一步提高圖片加載的效率并減少系統(tǒng)的gc。其中,所述reusablebitmappool通??晌挥趈ava堆內(nèi)存中、且其引用方式為軟引用,以便可以在內(nèi)存不緊張時,有效地利用原有資源,減少gc,也可以在系統(tǒng)需要內(nèi)存時,及時釋放,不會導致oom。另外,為了降低堆內(nèi)存的存儲壓力,reusablebitmappool中存儲的各bitmap對象還可為清除了像素數(shù)組數(shù)據(jù)的bitmap對象,即為一個可被其它圖片復用的bitmap對象框架。進一步地,需要說明的是,在執(zhí)行步驟102c的過程中,可首先判斷是否能夠從reusablebitmappool中獲取一符合該圖片的解碼數(shù)據(jù)所需的重用條件的bitmap對象,若是,則無需再執(zhí)行創(chuàng)建一符合該圖片的解碼數(shù)據(jù)所需的重用條件的bitmap對象的操作(即,可在確定為否時,再執(zhí)行創(chuàng)建一符合該圖片的解碼數(shù)據(jù)所需的重用條件的bitmap對象的操作),以進一步提高圖片加載效率并減少系統(tǒng)的gc??蛇x地,通常來說,通過調(diào)用系統(tǒng)api并傳入要顯示的圖片的寬、高、bitmap.config即可創(chuàng)建一符合該圖片的解碼數(shù)據(jù)所需的重用條件的bitmap對象,對此不作贅述。再有,需要說明的是,為了防止老數(shù)據(jù)有可能干擾新數(shù)據(jù)的顯示,在將該圖片的bitmap對象的像素數(shù)組數(shù)據(jù)拷貝到獲取到的bitmap對象或創(chuàng)建的bitmap對象中之前,若確定獲取到的bitmap對象或創(chuàng)建的bitmap對象中的像素數(shù)組數(shù)據(jù)不為空,則也可首先對獲取到的bitmap對象或創(chuàng)建的bitmap對象中的像素數(shù)組數(shù)據(jù)進行清除,對此也不作贅述。進一步可選地,如圖2可知,在從native堆內(nèi)存中獲取該圖片的解碼數(shù)據(jù)之前,所述方法還可包括以下步驟:步驟104:判斷native堆內(nèi)存中緩存的該圖片的解碼數(shù)據(jù)是否有效,并確定判斷結果為是。即,通??稍谂卸╪ative堆內(nèi)存中緩存的該圖片的解碼數(shù)據(jù)有效時,再從native堆內(nèi)存中獲取該圖片的解碼數(shù)據(jù)??蛇x地,判斷native堆內(nèi)存中緩存的該圖片的解碼數(shù)據(jù)是否有效,可執(zhí)行為:判斷nativecacheinfo中的、與該圖片的解碼數(shù)據(jù)相對應的記錄數(shù)據(jù)中的nativepointer是否為有效指針,若判斷結果為是,則確定native堆內(nèi)存中緩存的該圖片的解碼數(shù)據(jù)有效。另外,由圖2可知,若確定native堆內(nèi)存中緩存的該圖片的解碼數(shù)據(jù)無效,則可直接跳轉(zhuǎn)至步驟103,即執(zhí)行從存儲有該圖片的存儲空間處獲取并加載該圖片,并將加載該圖片的過程中所得到的該圖片的解碼數(shù)據(jù)緩存到native堆內(nèi)存中的操作。進一步地,在從native堆內(nèi)存中獲取該圖片的解碼數(shù)據(jù)之前,所述方法還可包括以下步驟:若確定imageview當前顯示的bitmap對象所對應的圖片非首次加載,則將imageview中當前顯示的bitmap對象的像素數(shù)組數(shù)據(jù)取出并緩存到native堆內(nèi)存中,以便下一次顯示時復用。另外,如前文所述,當將imageview中當前顯示的bitmap對象的像素數(shù)組數(shù)據(jù)緩存到native堆內(nèi)存中時,可在nativecacheinfo中生成一對應的記錄數(shù)據(jù),對此不作贅述。步驟103:從存儲有該圖片的存儲空間處獲取并加載該圖片,并將加載該圖片的過程中所得到的該圖片的解碼數(shù)據(jù)緩存到native堆內(nèi)存中。可選地,存儲有該圖片的存儲空間可為本地磁盤緩存、本地文件或者網(wǎng)絡等;且,對獲取到的圖片進行加載可包括對獲取到的圖片進行解碼得到bitmap對象,并對bitmap對象進行渲染等操作。另外,如前文所述,當將加載該圖片的過程中所得到的該圖片的解碼數(shù)據(jù)緩存到native堆內(nèi)存中時,也可在nativecacheinfo中生成一對應的記錄數(shù)據(jù)。至此,即可完成當前待加載圖片的加載操作。由本申請實施例所述內(nèi)容可知,在本申請所述實施例中,可將解碼所得的圖片數(shù)據(jù)緩存在本機堆內(nèi)存,即native堆內(nèi)存中,以便圖片加載時復用,這樣,由于native堆內(nèi)存不計算在應用進程的java堆內(nèi)存內(nèi),因而可有效降低java堆內(nèi)存的壓力,降低oom的觸發(fā)概率,同時,還可達到更好地利用堆內(nèi)存實現(xiàn)圖片緩存,以提高圖片加載效率并減少系統(tǒng)gc的效果。實施例二:基于與本申請實施例一中的圖片加載方法同樣的發(fā)明構思,本申請實施例二提供了一種圖片加載裝置,所述圖片加載裝置的具體實施可參見上述方法實施例一中的相關描述,重復之處不再贅述,具體地,如圖3所示,所述圖片加載裝置可包括:判斷單元31,可用于在對圖片進行加載時,判斷native堆內(nèi)存中是否緩存有該圖片的解碼數(shù)據(jù);執(zhí)行單元32,可用于若確定native堆內(nèi)存中緩存有該圖片的解碼數(shù)據(jù),則從native堆內(nèi)存中獲取該圖片的解碼數(shù)據(jù),并基于獲取到的解碼數(shù)據(jù)實現(xiàn)該圖片的加載;否則,從存儲有該圖片的存儲空間處獲取并加載該圖片,并將加載該圖片的過程中所得到的該圖片的解碼數(shù)據(jù)緩存到native堆內(nèi)存中??蛇x地,所述判斷單元31具體可用于判斷是否能夠從本機堆內(nèi)存緩存記錄信息中,獲取到與該圖片的解碼數(shù)據(jù)相對應的記錄數(shù)據(jù),若判斷結果為是,則確定native堆內(nèi)存中緩存有該圖片的解碼數(shù)據(jù)??蛇x地,所述執(zhí)行單元32具體可用于在判定native堆內(nèi)存中緩存的該圖片的解碼數(shù)據(jù)有效時,則從native堆內(nèi)存中獲取該圖片的解碼數(shù)據(jù)。可選地,所述執(zhí)行單元32具體可用于判斷本機堆內(nèi)存緩存記錄信息中的、與該圖片的解碼數(shù)據(jù)相對應的記錄數(shù)據(jù)中的本機堆內(nèi)存指針是否為有效指針,若判斷結果為是,則確定native堆內(nèi)存中緩存的該圖片的解碼數(shù)據(jù)有效;其中,所述本機堆內(nèi)存緩存記錄信息中的每一記錄數(shù)據(jù)中的本機堆內(nèi)存指針用于指明該記錄數(shù)據(jù)所對應的解碼數(shù)據(jù)在native堆內(nèi)存中的存儲地址。另外,需要說明的是,所述本機堆內(nèi)存緩存記錄信息可位于java堆內(nèi)存中,且,所述本機堆內(nèi)存緩存記錄信息中的各記錄數(shù)據(jù)采用lru進行管理??蛇x地,該圖片的解碼數(shù)據(jù)通??蔀閷υ搱D片進行解碼所得到的bitmap對象的像素數(shù)組數(shù)據(jù);所述執(zhí)行單元32具體可用于判斷imageview當前顯示的bitmap對象是否滿足該圖片的解碼數(shù)據(jù)所需的重用條件;若滿足,則將native堆內(nèi)存中緩存的、對該圖片進行解碼所得到的bitmap對象的像素數(shù)組數(shù)據(jù)拷貝到imageview當前顯示的bitmap對象中,得到新的bitmap對象,并將新的bitmap對象渲染到imageview中,以實現(xiàn)該圖片的加載;若不滿足,則從位圖文件池中獲取一符合該圖片的解碼數(shù)據(jù)所需的重用條件的bitmap對象、或者創(chuàng)建一符合該圖片的解碼數(shù)據(jù)所需的重用條件的bitmap對象,并將native堆內(nèi)存中緩存的、對該圖片進行解碼所得到的bitmap對象的像素數(shù)組數(shù)據(jù)拷貝到獲取到的或者創(chuàng)建的bitmap對象中,得到新的bitmap對象,并將新的bitmap對象渲染到imageview中,以實現(xiàn)該圖片的加載;其中,所述位圖文件池位于java堆內(nèi)存中、且其引用方式為軟引用。進一步可選地,所述執(zhí)行單元32還可用于若確定imageview當前顯示的bitmap對象不滿足該圖片的解碼數(shù)據(jù)所需的重用條件,則將imageview當前顯示的bitmap對象存放至所述位圖文件池中。本領域技術人員應明白,本申請的實施例可提供為方法、裝置(設備)、或計算機程序產(chǎn)品。因此,本申請可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、cd-rom、光學存儲器等)上實施的計算機程序產(chǎn)品的形式。本申請是參照根據(jù)本申請實施例的方法、裝置(設備)和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。盡管已描述了本申請的優(yōu)選實施例,但本領域內(nèi)的技術人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權利要求意欲解釋為包括優(yōu)選實施例以及落入本申請范圍的所有變更和修改。顯然,本領域的技術人員可以對本申請進行各種改動和變型而不脫離本申請的精神和范圍。這樣,倘若本申請的這些修改和變型屬于本申請權利要求及其等同技術的范圍之內(nèi),則本申請也意圖包含這些改動和變型在內(nèi)。當前第1頁12當前第1頁12
當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1