1. 程式人生 > >Android學習筆記(一

Android學習筆記(一

Android:開源的 Linux + Google 的封閉軟體 + 私有的基帶 + 運營商鎖定 = 開放的 Android 手機iPhone:開源的 BSD + 蘋果的閉源軟體 + 私有的基帶 + 運營商鎖定 = 封閉的蘋果 iPhone

Android:正義!一個平庸的應用商店,開發者依靠廣告賺錢,商店並非獨此一家,使用者找不到好軟體。(開發者只需一次性支付25美金)iPhone:邪惡!一個出色的應用商店,開發者憑本事吃飯,商店獨此一家,開店的要收點錢。顧客得到物美價廉的商品。(開發者需每年支付99美金)

Android:自由!酷,每個人都在用。這個公司應該運營一切,而且很快就會實現,除非競爭者阻止他們在每部手機、每臺電視和 PC 上推廣開源而自由的文化。iPhone:奴役! 如此的不酷以至於每個人都在用。他們認為這個公司應該運營一切,除非競爭者阻止他們在開放的市場將手機、電視和電腦推銷給每一個人。

system-architecture

在verycd上面可以下載www.mars-driod.com的一個視訊教程,不錯,推薦一下。

這是一張Google官方給出的著名的圖,Andriod的Architechture。下面有些內容可能不完全理解,不過隨著以後的學習應當會明瞭,先有個大概印象吧。

Applications:不需要解釋,這些使用JAVA語言,據說Andriod也提供了native的API,不知道可否用於建立app。

Application Framework:提供一個開放的開發平臺。開發者可以完全訪問,也是Andriod上層應用開發者所關注的。包括下面的內容:

  • View:提供UI,包括lists,grids, text boxes, buttons,包括嵌入web browser
  • Content Providers :允許應用從其他應用中獲得資料或者分享他的資料。(這是否就是IPC)
  • Resource Manager提供獲取non-code resources,例如localized strings, graphics, and layout files。
  • Activity Manager:管理應用的生命週期並提供一個通用的瀏覽的backstack。

Libraries:Andriod給系統的各個元件提供C/C++庫。上面的application framework,在此庫上建立。

  • System C library - 標準的C system library (libc), 這個對於做嵌入系統的交叉編譯工具鏈都是非常熟悉了。
  • Media Libraries - 基於PacketVideo's OpenCORE,支援playback和錄音,支援多種音視訊格式和靜態圖形格式,包括MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG
  • Surface Manager - 提供2D和3D圖形
  • LibWebCore -  web browser engine
  • SGL - the underlying 2D graphics engine
  • 3D libraries - 基於OpenGL ES 1.0 APIs; 使用包括硬體3D加速,以及highly optimized 3D software rasterizer
  • FreeType - bitmap and vector font rendering (字型渲染)
  • SQLite - a powerful and lightweight relational database engine

Android Runtime:就是著名JAVA的runtime:Core Lib包括常用的類庫以及Google自己為手持裝置開發的Dalvik虛擬機器。其執行檔案的格式為.dev。

Linux Kernel:Linux version 2.6.x,包括安全,儲存管理,程序管理,網路stack,驅動模組,電源管理。