Android核心分析 之一——–分析方法論探討之設計意圖

來源:互聯網
上載者:User

from:http://blog.csdn.net/column/details/androidcore.html?page=2

分析方法論探討之設計意圖

為什麼要研究Android,是因為它夠龐大,它夠複雜,他激起了我作為一個程式員的內心的渴望,渴望理解這種複雜性。我研究的對象是作為手機開發平台的Android軟體系統部分,而不是Dalvik虛擬機器本身。

作為一個從其他平台裝接過來的程式員,要從事Andoid平台系統開發,我的關於手機平台上積累的知識已經不能滿足需要了,Android為我們帶來了大量的新名詞,Activity,Manifest,INTENT,Service,Binder,Dalvik虛擬機器,Framework,Linux,Navtive ,JNI.....。通過在原始碼,在開發社區,在開發部落格,甚至在招聘過程中,我不斷的尋求Android是什麼。經過一定時間的沉澱,我慢慢的理解到Android不僅僅是一類手機的總稱,不僅僅是一個手機開發平台,不僅僅是一個虛擬java作業系統,不僅僅是一個開發社區,一個開發標準,不僅僅是一堆代碼,Android已經成了一個新的潮流。

代碼多,系統複雜,縱觀社區中Android的研究者,一開始從原始碼分析Android就走向迷途,不斷的跋山涉水,向縱深衝刺,最終腦袋堆棧不夠用,迷失在開始的旅程,或者掛在半途中,鮮有通達者。我感覺到大部分的研究者總是忘記站在高山上向下望一望設計者的意圖,一味的隨著代碼的控制流程走入繁雜的謎團,陷入到複雜性的深淵。

我的研究分析是從設計者的意圖出發,從抽象的甚至從哲學的高度,從最簡單的系統原型開始,從設計猜想開始,而不是一開始就從程式碼分析展開。首先理解Android大的運行架構,主幹流程,系統原型,之後再用原始碼分析充實之。當然我這裡的設計者意圖並不是真正的Android設計者意圖,而是我以為的Android設計者意圖。

要理解設計者意圖,就需要抽象。我們需要在哲學意義空間中去考慮系統的描述,即系統在本質上要表達什麼。在邏輯空間上去考慮系統基本構成和動態結構。從現實到虛擬對象的映射去理解系統對象的組成,在從資料流的角度分析資料的產生者和消費者之間作用關係,從控制流程的角度去分析對象之間的互動關係,從函數調用去分析具體的層次關係。

在系統設計上,原型是最能表達哲學空間和邏輯空間中系統本質的東西,原型是事物本質的第一層體現。我以為任何複雜的系統都一個簡潔的系統原型,都有它簡潔的意義。系統原型是設計者意圖的第一體現,所以我們需要從幾個方向上去提煉系統原型:

(1)從系統本質和基本原理出發

(2)從分析系統資料流和控制流程分析出發。

從設計者意圖出發,得出系統原型,提取到大的邏輯結構和系統構成是第一步。之後我們可以從設計者的角度考慮系統猜想系統設計,為什麼要這樣設計,為什麼要有這些構成。這樣的基本原型是什嗎?系統的限制是什麼,應用情境有哪些,有些設計的引進還是系統收斂性而為之呢。我們還可以從代碼痕迹上去分析,這些概念是如何的得來的?從一定的抽象和高度去理解這些問題,遵循系統原型出發之原則,在深入分析代碼的時候,就不容易陷入細節中。我們就可以隨時跳出來想,這些代碼在整體上傳表達一個什麼概念,在描繪一個什麼邏輯,他要構成一個虛擬層嗎?他是在管理這個硬體嗎?他在 虛擬這個對象嗎?他在構建管理機構?還是在構建一個對象管理?空間管理,為了快速引入了什麼樣的複雜演算法,實際上的原型演算法應該是什麼樣的?

只有深入到這個抽象層次,我們才能很好的把握住系統的每一條線,每一個對象的意義。只用從原型出發,我們才能把握住這個系統的實質所在,在幹什嗎?他要表達什嗎?設計者為什麼要這樣想?最終極的想法是什嗎?這樣,程式碼分析就變得簡單明了,讀代碼就變成了是在印證猜想,修正方向。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.