Android入門學習:Android 系統架構及應用程式執行過程,android架構
Android基礎知識學習
新手上路,還請多多協助。由於初學,部落格內容難免有不正確的地方,還請各位多多指教,相互學習!
主要內容:
1、Android層次架構及主要功能
2、Android編程模型,程式執行流程
由於國內Android系統很流行,大多數使用的智能機都是Android系統,對於學習Android系統編程的新手來說,瞭解Android系統架構層次很有必要。Android開發主要用Java語言,因此在學習之前,可以先了學習Java的基本知識,關於Java的內容大家就自己找書,找視頻學習了。
一、Android系統架構
Android系統主要分為四層,從上往下依次是:應用程式層(Application)、應用程式框架層(Application Framework)、系統類別庫層(System Library)、系統核心層(System Core/Kernel)。
圖1. Android系統框圖 圖2. Android系統框圖
總結:
以上簡單介紹了Android的系統架構及應用的編譯執行過程,希望對大家學習Android會有協助。主要是對幾幅圖有個深刻印象就好,在以後開發過程中知道自己調用了哪些組件,處在什麼Android系統的什麼層次,有個清晰的思路。
參考:
1.《Android SDK程式設計與開發範例》 清華大學出版社
2.《Android程式設計》 O‘REILLY / 機械工業出版社
3.《Android和PHP開發最佳實務》 機械工業出版社
其他:Android教學視頻,安卓開發社區,網路資料 ... ...
怎開始學習Android應用程式開發?
如果是想做應用 推薦你看android應用開發揭秘 android開發入門與實戰,如果是想做遊戲,你就找一下android遊戲開發寶典,如果是想瞭解系統 ,定製系統 你可以找一些關於架構方面的書。名字具體我忘記了。
Android開發主要靠的就是JAVA基礎,希望對樓主有協助,樓主可以先簡單看看書瞭解一下,或是培訓的地方有免費試聽 瞭解也可以。
android 五大應用開發架構是什
android應用開發架構是 Application Framework. 其系統架構由5部分組成,分別是:Linux Kernel、Android Runtime、Libraries、Application Framework、Applications。第二部分將詳細介紹這5個部分。下面自底向上分析各層。
Android架構
1、Linux Kernel
Android基於Linux 2.6提供核心系統服務,例如:安全、記憶體管理、進程管理、網路堆棧、驅動模型。Linux Kernel也作為硬體和軟體之間的抽象層,它隱藏具體硬體細節而為上層提供統一的服務。 如果你學過電腦網路知道OSI/RM,就會知道分層的好處就是使用下層提供的服務而為上層提供統一的服務,屏蔽本層及以下層的差異,當本層及以下層發生了變化不會影響到上層。也就是說各層各盡其職,各層提供固定的SAP(Service Access Point),專業點可以說是高內聚、低耦合。 如果你只是做應用開發,就不需要深入瞭解Linux Kernel層。
2、Android Runtime
Android包含一個核心庫的集合,提供大部分在Java程式設計語言核心類庫中可用的功能。每一個Android應用程式是Dalvik虛擬機器中的執行個體,運行在他們自己的進程中。Dalvik虛擬機器設計成,在一個裝置可以高效地運行多個虛擬機器。Dalvik虛擬機器可執行檔格式是.dex,dex格式是專為Dalvik設計的一種壓縮格式,適合記憶體和處理器速度有限的系統。 大多數虛擬機器包括JVM都是基於棧的,而Dalvik虛擬機器則是基於寄存器的。兩種架構各有優劣,一般而言,基於棧的機器需要更多指令,而基於寄存器的機器指令更大。dx 是一套工具,可以將 Java .class 轉換成 .dex 格式。一個dex檔案通常會有多個.class。由於dex有時必須進行最佳化,會使檔案大小增加1-4倍,以ODEX結尾。 Dalvik虛擬機器依賴於Linux 核心提供準系統,如線程和底層記憶體管理。
3、Libraries
Android包含一個C/C++庫的集合,供Android系統的各個組件使用。這些功能通過Android的應用程式架構(application framework)暴露給開發人員。下面列出一些核心庫: 系統C庫--標準C系統庫(libc)的BSD衍生,調整為基於嵌入式Linux裝置 媒體庫--基於PacketVideo的OpenCORE。這些庫支援播放和錄製許多流行的音頻和視頻格式,以及靜態影像檔,包括MPEG4、 H.264、 MP3、 AAC、 AMR、JPG、 PNG 介面管理--管理訪問顯示子系統和無縫組合多個應用程式的二維和三維圖形層 LibWebCore--新式的Web瀏覽器引擎,驅動Android 瀏覽器和內嵌的web視圖 SGL--基本的2D圖形引擎 3D庫--基於OpenGL ES 1.0 APIs的實現。庫使用硬體3D加速或包含高度最佳化的3D軟體光柵 FreeType --位元影像和向量字型渲染 SQLite --所有應用程式都可以使用的強大而輕量級的關聯式資料庫引擎
4、Application Framework
通過提供開放的開發平台,Android使開發人員能夠編製極其豐富和新穎的應用程式。開發人員可以自由地利用裝置硬體優勢、訪問位置資訊、運行後台服務、設定鬧鐘、向狀態列添加通知等等,很多很多。 開發人員可以完全使用核心應用程式所使用的架構APIs。應用程式的體繫結構旨......餘下全文>>