android程序結構
A. android軟體開發的架構
Android以java為編程語言,使介面到功能,都有層出不窮的變化,其中Activity等同於J2ME的MIDlet,一個Activity類(class)負責創建視窗(window),一個活動中的Activity就是在foreground(前景)模式,背景運行的程序叫做Service。兩者之間通過由和AIDL連結,達到復數程序同時運行的效果。如果運行中的Activity全部畫面被其他Activity取代時,該Activity便被停止(stopped),甚至被系統清除(kill)。
View等同於J2ME的Displayable,程序人員可以通過View類與「XMLlayout」檔將UI放置在視窗上,Android1.5的版本可以利用View打造出所謂的Widgets,其實Widget只是View的一種,所以可以使用xml來設計layout,HTC的AndroidHero手機即含有大量的widget。至於ViewGroup是各種layout的基礎抽象類(abstractclass),ViewGroup之內還可以有ViewGroup。View的構造函數不需要在Activity中調用,但是Displayable的是必須的,在Activity中,要通過()來從XML中取得View,Android的View類的顯示很大程度上是從XML中讀取的。View與事件(event)息息相關,兩者之間岩歲通過Listener結合在一起,每一個View都可以注冊一個eventlistener,例如:當View要處理用戶觸碰(touch)的事件時,就要向Android框架注冊View.。另外還有Image等同於J2ME的BitMap。在模擬器上運行模擬是虛擬設備(AVD),我們需要配置來運行我們的Android應用程序。步驟1、開放的AVD管理步驟2、新的按鈕,點擊添加新設備,並配置您的設備設置。步驟3、會有一個結果窗口顯示所有已配置你上一屏幕選擇。步驟4、按「確定」,你將會看到你的設備列在有你可以關閉此窗口。步驟5、運行你的Android應用程序項目從Eclipse,如果只有一個AVD配置,它會自動部署的應用程序也會出現一個窗口,選擇你的圖片。模擬器將開始。在設備上運行
Android應用程序可以直接部署在Android設唯棗舉備上,這幾個配置所需要的。步驟1、在調試模式的設置可以設置應用程序:Android的<應用程序>元真可調試屬性。ADT8這是默認的。步驟2、您的設備上啟用USB調試:Android3.2或以上轉至設置>應用程序>開發和啟用USB調試。在Android4更新,這是開發商選擇設置>。註:在Android4.2更新,開發者選項是指碧默認隱藏。可以,去設定>android的版本號。返回先前屏幕找到開發商選擇。步驟3、安裝USB驅動程序為您的設備,計算機識別你的設備。步驟4、一旦設置和您的設備通過USB連接,從Eclipse菜單欄安裝您的應用程序在設備上選擇運行>運行(或運行>調試)。操作系統與應用程序的溝通橋梁,並用分為兩層:函數層(Library)和虛擬機(VirtualMachine)。Bionic是Android改良libc的版本。Android同時包含了Webkit,所謂的Webkit就是AppleSafari瀏覽器背後的引擎。Surfaceflinger是就2D或3D的內容顯示到屏幕上。Android使用工具鏈(Toolchain)為Google自製的BionicLibc。
Android採用OpenCORE作為基礎多媒體框架。OpenCORE可分7大塊:PVPlayer、PVAuthor、Codec、(PVMF)、OperatingSystemLibrary(OSCL)、Common、OpenMAX。
Android使用skia為核心圖形引擎,搭配OpenGL/ES。skia與linuxCairo功能相當,但相較於LinuxCairo,skia功能還只是陽春型的。2005年Skia公司被Google收購,2007年初,SkiaGL源碼被公開,Skia也是GoogleChrome的圖形引擎。
Android的多媒體資料庫採用sqlite資料庫系統。資料庫又分為共用資料庫及私用資料庫。用戶可通過類(Column)取得共用資料庫。
Android的中間層多以Java實現,並且採用特殊的Dalvik虛擬機(DalvikVirtualMachine)。Dalvik虛擬機是一種「暫存器型態」(RegisterBased)的Java虛擬機,變數皆存放於暫存器中,虛擬機的指令相對減少。
Dalvik虛擬機可以有多個實例(instance),每個Android應用程序都用一個自屬的Dalvik虛擬機來運行,讓系統在運行程序時可達到優化。Dalvik虛擬機並非運行Java位元組碼(Bytecode),而是運行一種稱為.dex格式的文件。Android的HAL(硬體抽像層)是能以封閉源碼形式提供硬體驅動模塊。HAL的目的是為了把Androidframework與Linuxkernel隔開,讓Android不至過度依賴Linuxkernel,以達成kernelindependent的概念,也讓Androidframework的開發能在不考慮驅動程序實現的前提下進行發展。
HALstub是一種代理人(proxy)的概念,stub是以*.so檔的形式存在。Stub向HAL「提供」操作函數(operations),並由Androidruntime向HAL取得stub的operations,再callback這些操作函數。HAL里包含了許多的stub(代理人)。Runtime只要說明「類型」,即moleID,就可以取得操作函數。Android是運行於Linuxkernel之上,但並不是GNU/Linux。因為在一般GNU/Linux里支持的功能,Android大都沒有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以bionic取代Glibc、以Skia取代Cairo、再以opencore取代FFmpeg等等。Android為了達到商業應用,必須移除被GNUGPL授權證所約束的部份,例如Android將驅動程序移到userspace,使得Linuxdriver與Linuxkernel徹底分開。bionic/libc/kernel/並非標準的kernelheaderfiles。Android的kernelheader是利用工具由Linuxkernelheader所產生的,這樣做是為了保留常數、數據結構與宏。
Android的Linuxkernel控制包括安全(Security),存儲器管理(MemoryManagemeat),程序管理(ProcessManagement),網路堆棧(NetworkStack),驅動程序模型(DriverModel)等。下載Android源碼之前,先要安裝其構建工具Repo來初始化源碼。Repo是Android用來輔助Git工作的一個工具。
B. android拼塊構成結構主要有哪些
Android構造塊的一些詳細概念,通過介紹的內容,大家可以充分了解Android應用程序的基本結構。
對於一個Android應用程序來說,是由四種構造塊組織而成的,這四種Android構造塊如下:
Activity
IntentReceiver
Service
ContentProvider
但是,並不是每一個Android應用程序都需要這四種構造塊,這不是必須的,某些時候,我們只需要這四種中的幾種組合成我們的應用。
當我們明確了我們的應用需要哪些Android構造塊後,我們就需要在AndroidManifest.xml中登記這些構造塊的清單。這是一個XML配置文件,這個配置文件用於定義我們的應用程序的組件、組件的功能及必要條件等。這個配置文件是每個Android應用必需的。
C. 簡述android應用程序結構是哪些
android應用程序結構是:
linux
kernel(linux內核)、libraries(系統運行庫或者是c/c++核心庫)、application
framework(開發框架包)、applications
(核心應用程序)
D. 安卓框架有哪些
問題一:Android常用的框架有哪些 Android開發中常用的框架:
1、Afinal
Afinal是一個android的ioc,orm框架,內置了四大模塊功能:FinalAcitivity,FinalBitmap,FinalDb,FinalHttp。通過finalActivity,可以通過註解的方式進行綁定ui和事孝戚歷件。通過finalBitmap,可以方便的載入bitmap圖片,而無需考慮oom等問題。通過finalDB模塊,一行代碼就可以對android的sqlite資料庫進行增刪改查。通過FinalHttp模塊,以ajax形式請求數據。
2、 xUtils
xUtils:可以說是Afinal的升級版。
xUtils 包含了很多實用的android工具。
xUtils 支持大文件上傳,更全面的請求協議支持(10種謂詞),擁有更加靈活的ORM,更多的事件註解支持且不受混淆影響。
xUitls 最低兼容android 2.2 (api level8)。
3、LoonAndroid
這是一個純實現功能的框架,它的目標是節省代碼量,降低耦合,讓代碼層次看起來更清晰。
4、 KJFrameForAndroid
是一個android的orm 和 ioc 框架。同時封裝了android中的Bitmap與Http操作的框架,使其更加簡單易用;
KJFrameForAndroid的設計思想是通過封裝Android原生SDK中復雜的復雜操作而達到簡化Android應用級開發,最終實現快速而又安全的開發APP。我們提倡用最少的代碼,完成最多的操作,用最高的效率,完成最復雜的功能。
項目地址:github/kymjs/KJFrameForAndroid
5、 dhroid
dhroid 是基於android 平台, 極速開發框架,其核心設計目標是開發迅速、代碼量少、學習簡單、功能仔或強大、輕量級、易擴展.使你更快,更好的開發商業級別應用。
6、 SmartAndroid
SmartAndroid是一套給 Android開發者使用的應用程序開發框架和工具包。提供了一套豐富的標准庫以及簡單的介面和邏輯結構,其目的是使開發人員更快速地進行項目開發。使用 SmartAndroid可以減少代碼的編寫量,並將你的精力投入到項目的創造性開發上。
7、 andBase
ndbase是為Android開發者量身打造的一款開源類庫產品
8、 AndroidAnnotations
完全的註解,使開發起來更加便利,程序員寫的代碼也更少。
9、 volley
Volley是Android平台上的網路通信庫,能使網路通信更快,更簡單,更健壯非同步載入網路圖片、網路數據,Google官方推薦。
問題二:安卓軟體開發框架有哪些 安卓軟體開發需要一定的Java基礎,當然少不了Java環境的搭建,還有安卓SDK的環境搭建,接著你下個eclipse裝個ADT插件,或者直接用Android studio就可以開發安卓應用了,具體的建議你找個開發教程
問題三:android有哪些實用框架?分別用來做什麼? Android 目前還沒有那樣成熟的框架可以使用……
只能說有一些開源項目較好地解決了部分方面的問題,例如:
(1)EventBus:解決了模塊之間消息傳遞解耦合的問題
(2)picasso:解決非同步載入圖片和緩存圖片的問題
(3)dagger:一個依賴注入工具庫
……
其他開巧搜源項目大多數解決了部分通用 UI 控制項的問題,不過我看你的意思是架構級別的框架,而不是什麼 UI 控制項這類的小東西。
問題四:什麼是android的框架開發 上圖中的第二層Framework
問題五:常用的android開發框架有哪些 android bootstrap有試用過,但其實不用框架都能完成你想要的功能的話,真心沒必要用。
問題六:Android的系統架構包括哪些部分 Android的系統架構和其操作系統一樣,採用了分層的架構。Android分為四個層,從高層到低層分別是應用程序層、應用程序框架層、系統運行庫層和Linux內核層。
一、應用程序
Android會同一系列核心應用程序包一起發布,該應用程序包包括客戶端,SMS短消息程序,日歷,地圖,瀏覽器,聯系人管理程序等。所有的應用程序都是使用JAVA語言編寫的。
二、應用程序框架
開發人員也可以完全訪問核心應用程序所使用的API框架。該應用程序的架構設計簡化了組件的重用;任何一個應用程序都可以發布它的功能塊並且任何其它的應用程序都可以使用其所發布的功能塊(不過得遵循框架的安全性)。同樣,該應用程序重用機制也使用戶可以方便的替換程序組件。
三、系統運行庫
Android 包含一些C/C++庫,這些庫能被Android系統中不同的組件使用。它們通過 Android 應用程序框架為開發者提供服務。
四、Linux內核層
Android內核是基於Linux 內核的修改的內核版本,它提供了用於支持Android平台的設備驅動。
問題七:android快速開發框架有哪些 ThinkAndroid免費源、簡易、遵循Apache二源協議發布Android發框架其發宗旨簡單、快速進行Android應用程序發包含Android mvc、簡易sqlite orm、ioc模塊、封裝Android clitent模塊,具快速構建文件緩存功能需考慮緩存文件格式都非輕松實現緩存基於文件緩存模塊實現圖片緩存功能android載入圖片候oom問題載入圖片錯位問題都輕易解決包括手機發經應用實用工具類志管理配置文件管理android載器模塊中國絡切換檢測等等工具 目前ThinkAndroid主要模塊: MVC模塊:實現視圖與模型離 ioc模塊:androidioc模塊完全註解式進行UI綁定、res資源讀取、及象初始化 資料庫模塊:androidorm框架使用線程池sqlite進行操作 模塊:通client進行封裝數據請求支持非同步及同步式載入 緩存模塊:通簡單配置及設計實現緩存緩存隨意配置 圖片緩存模塊:imageview載入圖片候需考慮圖片載入程現oomandroid容器快速滑候現圖片錯位等現象 配置器模塊:簡易實現配配置操作目前配置文件支持Preference、Properties配置進行存取 志列印模塊:較快輕易實現志列印支持志列印擴展目前支持sdcard寫入本列印、及控制台列印 載器模塊:簡單實現線程載、台載、斷點續傳、載進行控制、始、暫停、刪除等等 中國絡狀態檢測模塊:中國絡狀態改變中國絡狀態進行檢
問題八:主流android開發框架有哪些 android開發框架github上有非常非常多,各種都是開源的,例如側滑菜單,ImageLoading等等。
問題九:Android 有哪些著名的開源框架呢? 什麼應用才對應什麼所謂框架。你寫個游戲用J2EE的框架試試。或者你寫個搜索引擎用游戲引擎試試。沒有哪個框架解決所有問題,如果那樣,搞計算機也太簡單了,框架拿來,隨便改改就是一個軟體。還是學點設計模式這些基本的有用。
問題十:Android軟體框架結構自可分為哪些層? 開發一個程序,android的系統框架是層層相扣,不能分開的。
應用程序層:
這個層主要指的就是用java語言編寫的運行在虛擬機上的程序,Google在最開始時就 在android系統中捆綁了一些核心的應用(核心應用的編寫必須使用應用層序框架層的API框架),例如你android手機中SMS發送短消息的程序,通訊錄等等。
應用程序框架層:
指的就是開發時所需要的API框架,開發人員是在遵守該框架的原則上,調用他們的,開發自己所需要的程序。
系統運行庫層:
用於支持應用框架層的各個組件的。就是說當開發人員使用android應用框架層時,android系統會通過一些C/C++庫來支持對我們使用的各個組件,使其能更好地為開發者服務。
linux核心層:
android的核心系統服務如安全性、內存管理、進程管理、網路協議棧和驅動模型等都依賴於Linux2.6內核,Linux內核同時也作為硬體和軟體棧之間的抽象層。
因此,你開發的程序是運行在應用程序層,開發中寫代碼調用的包,是基於應用框架層,而在應用框架中的各個組件是需要系統運行庫的支持的,例如,你要登陸查看的信息就必須訪問到SQLite資料庫,SQLite就位於系統運行庫,再有,你登入要輸入信息,肯定需要鍵盤驅動的支持,而各種驅動是依賴Linux內核的。
E. android開發框架有哪些
主要總結了7個好用的android 開發框架推薦給你:
一、 Afinal
Afinal是一個Android的ioc,orm框架,內置了四大模塊功能:,FinalBitmap,FinalDb,FinalHttp。通過,我們可以通過註解的方式進行綁定ui和事件。通過finalBitmap,我們可以方便的載入bitmap圖片,而無需考慮oom等問題。通過finalDB模塊,我們一行代碼就可以對android的sqlite資料庫進行增刪改查。通過FinalHttp模塊,我們可以以ajax形式請求http數據。
功能:
一個android的ioc,orm框架,內置了四大模塊功能:,FinalBitmap,FinalDb,FinalHttp。通過,我們可以通過註解的方式進行綁定ui和事件。通過finalBitmap,我們可以方便的載入bitmap圖片,而無需考慮oom等問題。通過finalDB模塊,我們一行代碼就可以對android的sqlite資料庫進行增刪改查。通過FinalHttp模塊,我們可遲戚以以ajax形式請求http數據。
優點:功能比較全面,文檔完善,代碼效率比較高。
缺點:沒有項目demo,框架的時間比較久,代碼冗餘比較多(這也是無可避免的),文檔比較老跟不上代碼更新進度。
二、 xUtils
xUtils:可以說是Afinal的升級版。
xUtils 包含了簡旦陪很多實用的android工具。
xUtils 支持大文件上傳,更全面的http請求協議支持(10種謂詞),擁有更加靈活的ORM,更多的事件註解支持且不受混淆影響...
xUitls 最低兼容android 2.2 (api level 8)
三、
是一個免費的開源的、簡易的、遵循Apache2開源協議發布的Android開發框架,其開發宗旨是簡單、快速的進行Android應用程序的開發,包含Android
mvc、簡易sqlite orm、ioc模塊、封裝Android
httpclitent的http模塊,具有快速構建文件緩存功能,無需考慮緩存文件的格式,都可以非常輕松的實現緩存,它還基於文件緩存模塊實現了圖片緩存功能,在android中載入的圖片的時候,對oom的問題,和對載入圖片錯位的問題都輕易解決。他還包括了一個手機開發中經常應用的實用工具類,如日誌管理,配置文件管理,android下載器模塊,網路切換檢測等等工具
四、 LoonAndroid
如果你想看ui方面的東西,這里沒有,想要看牛逼的效果這里也沒有。這只是純實現功能的框架,它的目標是節省代碼量,降低耦合,讓代碼層次看起來更清晰。整個框架一部分是網上的,一部分是我改的,為了適應我的編碼習慣,還有一部分像orm完全是網上的組件。在此感謝那些朋友們。
整個框架式的初衷是為了偷懶,之前都是一個功能一個jar,做項目的時候拉進去,這樣對於我來說依然還是比較麻煩。最後就導致我把所有的jar做成了一個工具集合包。
有很多框架都含有這個工具集合里的功能,這些不一定都好用,因為這是根據我個人使用喜歡來實現的,如果你們有自己的想法,可以自己把架包解壓了以後,源碼拉出來改動下。
目前很多框架都用到了註解,除了沒有入侵我們應用的代碼以外,其他的基本上都有,要麼是必須繼承框架裡面的activity,要麼是必須在activity的oncreat裡面調用某個方法。
整個框架式不同於,Roboguice等ioc框架,這是一個類似spring的實現方式。在整應用的生命周期中找到切入點,然後對activity的生命周期進行攔截,然後插入自己的功能。
五、
又叫KJLibrary,是一個android的orm 和 ioc
框架。同時封裝了android中的Bitmap與Http操作的框架,使其更加簡單易用;
的設計思想是通過封裝Android原生SDK中復雜的復雜操作而達到簡化Android應用級開發,最終實現快速而又安全的開發APP。我們提倡用最少的代碼,完成最多的操作,用最高的效率,完成最復雜的功能。
功能:
一個android的orm 和 ioc 框架。同時封裝了android中的Bitmap與Http操作的框架,使其更加簡單易用;
開發框架的設計思想是通過封攔蠢裝Android原生SDK中復雜的復雜操作而達到簡化Android應用級開發,最終實現快速而又安全的開發APP。總共分為五大模塊:UILibrary,HttpLibrary,DBLibrary。
六、 dhroid
dhroid 是基於android 平台,
極速開發框架,其核心設計目標是開發迅速、代碼量少、學習簡單、功能強大、輕量級、易擴展.使你更快,更好的開發商業級別應用
功能:
1.Ioc容器: (用過spring的都知道)視圖注入,對象注入,介面注入,解決類依賴關系
2.Eventbus: android平台事件匯流排框架,獨創延時事件,事件管理輕松
3.Dhnet: 網路http請求的解決方案,使用簡單,減少代碼,自帶多種網路訪問緩存策略
4.adapter模塊: 數據綁定輕松,不用寫多餘的adapter,天生網路支持(一行代碼搞定載入,刷新問題)
5.DhDb: android中sqlite的最輕量orm框架(增刪改查輕松搞定)
6.Perference: android自帶Perference 升級版,讓你的Perference更強大,更方便
工具集合 JSONUtil(安全處理json),ViewUtil(數據綁定更快) (非同步任務工具)...
七、
SmartAndroid是一套給
Android開發者使用的應用程序開發框架和工具包。它提供一套豐富的標准庫以及簡單的介面和邏輯結構,其目的是使開發人員更快速地進行項目開發。使用
SmartAndroid可以減少代碼的編寫量,並將你的精力投入到項目的創造性開發上。
功能:
SmartAndroid 擁有全范圍的類庫,可以完成大多數通常需要的APP開發任務,包括:非同步網路操作相關所有功能、強大的圖片處理操作、輕量級ORM資料庫Sqlite庫、zip操作、動畫特效、Html等解析採集、事件匯流排EventBus/Otto、Gson(Json)、AQuery、主流所有UI控制項(例如:ActionbarSherlock,SlidingMenu,BottomView,Actionbar,DragListView等10多種UI庫)等。
F. 有在面試的售後問android應用程序的結構的嗎
1. 描述一下android的系統架構:答:android系統架構分從下往上為Linux內核層、運行庫、應用程序框架層和應用程序層。 Linux內核層:負責硬體的驅動程序、網路、電源、系統安全以及內存管理等功能。運行庫和androidruntion:運行庫:即c/c++函數庫部分,大多數都是開放源代碼的函數庫,例如webkit,該函數庫負責android網頁瀏覽器的運行;例如標準的c函數庫libc、openssl、sqlite等,當然也包括支持游戲開發的2dsgl和3dopengles,在多媒體方面有mediaframework框架來支持各種影音和圖形文件的播放與顯示,如mpeg4、h.264、mp3、aac、amr、jpg和png等眾多的多媒體文件格式。Androidruntion負責解釋和執行生成的dalvik格式的位元組碼應用軟體架構:java應用程序開發人員主要是使用該層封裝好的api進行快速開發的。應用程序層:該層是java的應用程序層,android內置的googlemaps、email、IM、瀏覽器等,都處於該層,java開發人員工發的程序也處於該層,而且和內置的應用程序具有平等的地位,可以調用內置的應用程序,也可以替換內置的應用程序2. Activity 與 Task的啟動模式有哪些,它們含義具體是什麼?答:在一個activity中,有多次調用startActivity來啟動另一個activity,要想只生成一個activity實例,可以設置啟動模式。 一個activity有四種啟動模式:standed,signleTop,singleTask,singleInstance Standed:標准模式,一調用startActivity()方法就會產生一個新的實例。 SingleTop:如果已經有一個實例位於activity棧頂,就不產生新的實例,而只是調用activity中的newInstance()方法。如果不位於棧頂,會產生一個新的實例。 singleTask:會在一個新的task中產生這個實例,以後每次調用都會使用這個,不會去產生新的實例了。 SingleInstance:這個和singleTask基本一樣,只有一個區別:在這個模式下的activity實例所處的task中,只能有這個activity實例,不能有其他實例android中常用的四個布局是framlayout,linenarlayout,relativelayout和tablelayout。android 中service的實現方法是:startservice和bindservice。5. 程序運行的結果是:_____good and gbc__________。 public classExample{String str=new String("good");char[]ch={'a','b','c'};public static void main(String args[]){Example ex=new Example();ex.change(ex.str,ex.ch);System.out.print(ex.str+" and ");Sytem.out.print(ex.ch);}public void change(String str,char ch[]){str="test ok";ch[0]='g';}}6. 簡述Android應用程序結構是哪些?(7分)Android應用程序結構是: Linux Kernel(Linux內核)、Libraries(系統運行庫或者是c/c++核心庫)、Application Framework(開發框架包)、Applications (核心應用程序)如何將一個Activity設置成窗口的樣式。 在AndroidManifest.xml 中定義Activity的地方一句話android:theme="@android:style/Theme.Dialog"android:theme="@android:style/Theme.Translucent"就變成半透明的
G. android 五大應用開發框架是什麼
android應用開發框架是 Application Framework,其系統架構由5部分組成,分別是:Linux Kernel、Android Runtime、Libraries、Application Framework、Applications。
1、Linux Kernel (Linux內核)
Android基於Linux 2.6提供核心系統服務,例如:安全、內存管理、進程管理、網路 堆棧、驅動模型。Linux Kernel也作為硬體和軟體之間的抽象層,它隱藏具體硬體細節而為上層提供統一的服務。
2、Android Runtime (運行庫)
Android包含一個核心庫的集合,提供大部分在Java編程語言核心類庫中可用的功能。每一個Android應用程序是Dalvik虛擬機中的實例,運行在他們自己的進程中。
Dalvik虛擬機設計成,在一個設備可以高效地運行多個虛擬機。Dalvik虛擬機可執行文件格式是.dex,dex格式是專為Dalvik設計的一種壓縮格式,適合內存和處理器速度有限的系統。 大多數虛擬機包括JVM都是基於棧的,而Dalvik虛擬機則是基於寄存器的。
3、Libraries (程序庫)
Android包含一個C/C++庫的集合,供Android系統的各個組件使用。這些功能通過Android的應用程序框架(application framework)暴露給開發者。
4、Application Framework (應用框架層)
通過提供開放的開發平台,Android使開發者能夠編制極其豐富和新穎的應用程序。開發者可以自由地利用設備硬體優勢、訪問位置信息、運行後台服務、設置鬧鍾、向狀態欄添加通知等等,很多很多。 開發者可以完全使用核心應用程序所使用的框架APIs。
應用程序的體系結構旨在簡化組件的重用,任何應用程序都能發布他的功能且任何其他應用程序可以使用這些功能(需要服從框架執行的安全限制)。這一機制允許用戶替換組件。
5、Applications(應用層)
Android裝配一個核心應用程序集合,包括電子郵件客戶端、SMS程序、日歷、地圖、瀏覽器、聯系人和其他設置。所有應用程序都是用Java編程語言寫的。Android本身是一套軟體堆迭(Software Stack),或稱為「軟體迭層架構」,迭層主要分成三層:操作系統、中間件、應用程序。
(7)android程序結構擴展閱讀
開發人員也可以完全訪問核心應用程序所使用的API框架。該應用程序的架構設計簡化了組件的重用;任何一個應用程序都可以發布它的功能塊並且任何其它的應用程序都可以使用其所發布的功能塊(不過得遵循框架的安全性限制)。同樣,該應用程序重用機制也使用戶可以方便的替換程序組件。
隱藏在每個應用後面的是一系列的服務和系統,其中包括;
豐富而又可擴展的視圖(Views),可以用來構建應用程序,它包括列表(lists),網格(grids),文本框(textBoxes),按鈕(buttons),甚至可嵌入的web瀏覽器。
內容提供器(ContentProviders)使得應用程序可以訪問另一個應用程序的數據(如聯系人資料庫),或者共享它們自己的數據
資源管理器(ResourceManager)提供非代碼資源的訪問,如本地字元串,圖形,和布局文件(layoutfiles)。
通知管理器(NotificationManager)使得應用程序可以在狀態欄中顯示自定義的提示信息。
活動管理器(ActivityManager)用來管理應用程序生命周期並提供常用的導航回退功能。
H. Android手機應用開發一般採用什麼框架
android應用開發框架是 Application Framework. 其系統架構由5部分組成,分別是:LinuxKernel、Android Runtime、Libraries、ApplicationFramework、。第二部分將詳細介紹這5個部分。下面自底向上分析各層。
Android架構
1、Linux KernelAndroid
基於Linux 2.6提供核心系統服務,例如:安全、內存管理、進程管理、網路堆棧、驅動模型。Linux
Kernel也作為硬體和軟體之間的抽象層,它隱藏具體硬體細節而為上層提供統一的服務。
如果你學過計算機網路知道OSI/RM,就會知道分層的好處就是使用下層提供的服務而為上層提供統一的服務,屏蔽本層及以下層的差異,當本層及以下層發生
了變化不會影響到上層。也就是說各層各盡其職,各層提供固定的SAP(Service Aess Point),專業點可以說是高內聚、低耦合。
如果你只是做應用開發,就不需要深入了解Linux Kernel層。
2、Android RuntimeAndroid
包含一個核心庫的集合,提供大部分在Java編程語言核心類庫中可用的功能。每一個Android應用程序是Dalvik虛擬機中的實例,運行在他們自己
的進程中。Dalvik虛擬機設計成,在一個設備可以高效地運行多個虛擬機。Dalvik虛擬機可執行文件格式是.dex,dex格式是專為Dalvik
設計的一種壓縮格式,適合內存和處理器速度有限的系統。
大多數虛擬機包括JVM都是基於棧的,而Dalvik虛擬機則是基於寄存器的。兩種架構各有優劣,一般而言,基於棧的機器需要更多指令,而基於寄存器的機
器指令更大。dx 是一套工具,可以將 Java .class 轉換成 .dex
格式。一個dex文件通常會有多個.class。由於dex有帶中時必須進行最佳化,會使文件大小增加1-4倍,以ODEX結尾。
Dalvik虛擬機依賴於Linux 內核提供基本功能,如線程和底層內存管理。
3、LibrariesAndroid
包含一個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。應用程序的體系結構含行行旨在簡化組件的重用,任何應用程序都能發布他的功能且任何其他應用程序可以使用這些功能(需要服從框架執行的安全限制)。這一機制允許用戶替換組件。所有的應用程序其實是一組服務和系統,包括:視圖(View)--豐富的、可擴展的視圖集合,可用於構建一個應用程序。包括包括列表、網格、文本框、按鈕,甚至是內嵌的網頁瀏覽器內容提供者(Content Providers)--使應用程序能訪問其他應用程序(如通訊錄)的數據,或共享自己的數據資源管理器(Resource Manager)--提供訪問非代碼資源,如本地化字元串、圖形和布局文件 通知管理器(Manager)--使所有的應用程序能夠在狀態欄顯示自定義警告 活動管理器(ActivityManager)--管理應用程序生命周期,提供通用的導航回退功能
5、Android裝配一個核心應用程序集合,包括電子郵件客戶端、SMS程序、日歷、地圖、瀏覽器、聯系人和其他設置。所有應用程序都是用Java編程語言寫的。更加豐富的應用程序有待我們去開發! 從上面我們知道Android的架構是分層的,非常清晰,分工很明確。Android本身是一套軟體堆迭(Softwaretack),或稱為「軟體迭層架構」,迭層主要分成三層:操作系統、中間件、應用程序。從上面我們也看到了開源的力量,一個個熟悉的開源軟體在這里貢獻了自己的一份力量。