Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android的cache機制系列一

android的cache機制系列一

編輯:關於Android編程

 


      打算寫個android的cache機制系列文章,目前部分主題還出於列提綱階段,慢慢完善吧。

1   安卓的焦點

      當在Node List中找到新焦點時,檢查後發現如果與自己是兄弟姐妹,就把它push到stack裡面。當所有的兄弟姐妹都被找到,換句話說是父親的最後一個孩子被找到、並被放到stack裡面,pop出此stack.注意:此stack不同於Tracker的stack,Tracker的stack只push帶孩子的焦點。

      這種方式是詭異的:焦點-子焦點-孫焦點--如果我保存每一代的數字(比如自己是第1代,孩子是第2代,孫子是第3代),我能更快的斷定一個節點是否是此焦點的父親的孫節點。這種方法額外要求能找到孫節點的父親。

 


2 CachedNode是什麼?是保存Node的類


3 CachedFrame是什麼? 是最重要的類,Cache引用的第一個節點總是Document,CachedFrame中保存了所有Frame相關的信息:


1 所有的Frame: WTF::Vector<CachedFrame> mCachedFrames,
2 所有節點(DOM::Node): WTF::Vector<CachedNode> mCachedNodes,
3 所有輸入框:WTF::Vector<CachedInput> mCachedTextInputs,
4 所有layer:WTF::Vector<CachedLayer> mCachedLayers;如果使用混合加速的話,
5 所有顏色:WTF::Vector<CachedColor> mCachedColors。

 

 


4 CachedRoot是什麼?是CachedFrame的子類,

5 CachedHistory是什麼?維護一個最近訪問的8個節點(Node)列表,用來代表歷史訪問。

 


WebViewCore::updateFrameCache()->


{

       CachedRoot* m_temp = new CachedRoot();

 

 

}

buildCache(CachedRoot* root)->

BuildFrame

 

 

  獲取Frame的Document:


   Document* doc = frame->document();

   Node* parent = doc;

   把緩存的父節點初始化設置為Frame的document:

   cachedParentNode.init(parent);


 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved