從事android開發一年來,在andorid領域突飛猛進。
說說幾大收穫。
1.andorid基本上就是建立在binder機制上,來實現模組與模組之間的通訊。
所謂的service,activity,provider,receiver四大金剛之間的通訊都是通過binder進行的。
對客戶端來說,binder本身是乙個int。
對於服務端來說,binder是一塊記憶體位址。
從客戶端的binder轉換到服務端的binder的過程是在核心中實現的。
2.android輸入輸出這一塊底層採用的是 管道+共享記憶體的方式實現程序間的通訊。從而將事件從驅動層過度到各個window。
3.android的view這一塊採用經典的樹狀結構。用了一些設計模式,效率較低。這個比較簡單。就不說了。opengl本身已經使用了雙緩衝。所以雙緩衝在android中的概念已經不存在。多級緩衝的效率並不高,所以也就不要再使用了。
4.su***ce這一塊。乙個window對應乙個su***ce。而乙個su***ce僅僅存在於客戶端。在服務端叫做layer,layer是通過共享記憶體的方式實現的,這樣就可以達到服務端和客戶端的緩衝區共享起來。一共8m。使用那一部分,主要是由offset和size決定。
5.關於特效等的製作都是matrix在作怪。學習矩陣和opengl是做特效的基礎課程。不管中間經歷了什麼。從本質上來說,都是乙個二維圖形,到乙個二維圖形的對映。我們肉眼看到的東西始終是二維的。這是本質屬性。
所謂的3d,也只是一種視覺欺騙罷了。照相機本身出的圖實際上就是3d的。
6.明年準備涉入jni這一塊。對於opengl的深入理解是打通android圖形的關鍵所在。egl之類的庫也是很重要的東東。
Android之路2023年總結
2012年我踏上了去上大學的長征,所選擇的專業是計科,沒想到的是四年後的我走上了開發的征程。乙個從農村走向城市的農村娃娃,對計算機的理解真的是很基礎,認為計算機就是電腦,自從上了大學後才認識到計算機的魅力是無別的強大,以至於深深的吸引了我。從開設專業課c語言開始,我就迷上了程式,程式真是威力很大,計...
2023年android面試總結
這裡收集了我和同事遇到的面試題,在此做一下總結 2017年 3月14日 1.靜態方法能被重寫嗎?為什麼?2.演算法題,將乙個int陣列按大小排序 3.靜態 塊,構造 塊構造方法的執行順序。4.乙個應用中有多少個context的事例 5.物件是不是只能被new出來為什麼?6.view事件的分發機制 7...
Android開發 gradle總結
筆記 1.gradle中每乙個待編譯的工程成為乙個project,每乙個project由許多task組成,編譯乙個工程,就是執行這些task,完成響應的任務 2.每乙個工程包含乙個build.gradle檔案,根目錄包含乙個settings.gradle檔案,主要用於設定編譯那些工程 3.gradl...