編輯:Android開發實例
編程語言基石
Java:這是Android Application和Framework的語言支柱
C:Native 部分代碼使用C語言實現,包括JNI的Native Code
C++:Native很多代碼使用C++實現
JNI:包括Java Call Native Code 和 Native Call Java Code。 Android中經常出現Java 和 Native 代碼空間的切換
Assemble:除非你想學習Linux Kernel, Driver等Kernel Space的內容
GNU Make:Android設計了很好的Make 系統,基本了解一下Android的Make系統即可,依樣畫瓢。
PerL and other Script:Optional
通用知識面基石
XML:必要
OS Basic Concept:such as Process, Thread, RPC, IPC, etc
Linux OS/Programming Basic Concept:Such as Linux File/IPC/Thread/etc Mechanism and API:Android源碼中大量調用了Linux API。
Design Pattern: MVC/Factory Pattern/Observer Pattern/Etc: 必要: 對於理解Framework中很多組件的設計和使用有幫助
Data Base: SQL Query Language: 必要
Android特有重要機制基石
BinderIPC:包括Java和Native層,只有掌握了BinderIPC,才能在閱讀代碼時,當發生RPC調用時,能夠跨進程閱讀真正調用到的代碼
Looper/Handler/Etc:因為Android中封裝了Java的Thread機制,所以,只有掌握Android中新的Thread機制,才能在閱讀代碼中,清楚的了解當前代碼運行的線程。
專業領域基石
如網絡,圖像,安全等:Optional: 這部分和Android本身沒有關系,任何平台上涉及專業領域的內容,肯定必須要求閱讀者掌握相關領域的知識才能閱讀。所以,這部分僅僅針對有這方面需要的人。
閱讀代碼時時刻掌握Context(運行上下文)
由於Android中涉及了線程,進程,以及不同的代碼空間。所以,在閱讀代碼時,應該時刻關注以下幾點:
1. 時刻關注當前代碼運行的進程,線程(MainUI 線程,Binder線程,或者其他線程)以及代碼空間(Java,Native)
2. 時刻關注進程,線程,代碼空間的邊界, 如線程的創建/終止/切換, 進程的創建/終止/切換,Java代碼與Native代碼空間的切換
閒來無事,琢磨琢磨Android中的手勢交互,發現網上在手勢方面的文章並不是很多,而且很多的參考價值並不大。於是出此博文,與大家共勉。鑒於我寫此博文時對手勢交互的
今天因為要做一個設置開機畫面的功能,主要是讓用戶可以設置自己的開機畫面,應用層需要做讓用戶選擇開機畫面圖片的功能。所以需要做一個簡單的圖片浏覽選擇程序。最後選用G
在java中可有兩種方式實現多線程,一種是繼承Thread類,一種是實現Runnable接口;Thread類是在java.lang包中定義的。一個類只要繼承了Th
在Android程序中很多客戶端軟件和浏覽器軟件都喜歡用Tab分頁標簽來搭建界面框架。讀者也許會馬上想到使用TabHost 與 TabActivity的組合,其實