〔适合android开发的app〕解释android開發應用程序最

一、android開發應用程序最有可能使用到的應用框架部分有哪些

android應用開發框架是 Application Framework. 其系統架構由5部分組成,分别是:Linux Kernel、Android Runtime、Libraries、Application Framework、Applications。第二部分将詳細介紹這5個部分。下面自底向上分析各層。

Android架構

1、Linux K ernel

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。應用程序的體系結構旨在簡化組件的重用,任何應用程序都能發布他的功能且任何其他應用程序可以使用這些功能(需要服從框架執行的安全限制)。這一機制允許用戶替換組件。 所有的應用程序其實是一組服務和系統,包括: 視圖(View)--豐富的、可擴展的視圖集合,可用于構建一個應用程序。包括包括列表、網格、文本框、按鈕,甚至是内嵌的網頁浏覽器 内容提供者(Content Providers)--使應用程序能訪問其他應用程序(如通訊錄)的數據,或共享自己的數據 資源管理器(Resource Manager)--提供訪問非代碼資源,如本地化字符串、圖形和布局文件 通知管理器(Notification Manager)--使所有的應用程序能夠在狀态欄顯示自定義警告 活動管理器(Activity Manager)--管理應用程序生命周期,提供通用的導航回退功能

5、Applications

Android裝配一個核心應用程序集合,包括電子郵件客戶端、SMS程序、日曆、地圖、浏覽器、聯系人和其他設置。所有應用程序都是用Java編程語言寫的。更加豐富的應用程序有待我們去開發! 從上面我們知道Android的架構是分層的,非常清晰,分工很明确。Android本身是一套軟件堆疊(Software Stack),或稱為「軟件疊層架構」,疊層主要分成三層:操作系統、中間件、應用程序。從上面我們也看到了開源的力量,一個個熟悉的開源軟件在這裡貢獻了自己的一份力量

android開發應用程序最有可能使用到的應用框架部分有哪些

二、設計并開發出一個完整的android app 需要掌握哪些知識?

你這個問題有些籠統,一個完整的app有簡單有複雜,不同的app應用功能的差異也導緻不同的技術實現或者算法模型。大體來說,一個app從設計到最終實現需要你懂得以下幾個必要方面:

1、前期需求規劃與信息、交互設計——你需要制定出一個完整的需求文檔,功能文檔,流程圖,時序圖。

2、交互設計、UI設計——設計出基本且完善的原型圖和app基礎的交互設計效果,之後再根據這些設計出完整的UI界面并學會切圖,一些需要做自适應的素材圖片需要做點9patch。 這裡還需要你懂得px,pt和dp之間的換算,屏幕密度的換算和相互之間的系數,以便你的app能完美适應不同分辨率設備。其中交互設計需要你懂得很多人機操作的技巧經驗,掌握Axure等交互工具的使用,UI設計需要你掌握Photoshop和Illustrator等操作。

3、使用ADT之類的開發環境進行app開發,你最基本的也得掌握java語言,熟悉android環境和機制,這裡面涉及面廣,請根據項目自行學習相關知識。

4、如果不是單機版的app,需要用到服務器,那你還得掌握WebService相關知識和開發語言,常用的有ASP.Net,PHP,JSP等。

5、熟悉并能開發數據庫。

6、某些功能需要做算法,這還需要一定得專業知識,尤其是數學基礎。

7、熟悉API接口開發,這裡包括你自行開發API的能力以及調用第三方API的經驗。

8、熟悉TCP/IP,socket等網絡協議和相關知識。

9、熟練掌握App發布的流程,真機調試技巧,證書,打包,上架。

App開發其實不一定适合一個人搞,太費勁,除非是一個單機版的小應用,或者利用現成的api開發簡單的第三方應用,否則還是讓一個團隊來完成各自擅長的領域。

設計并開發出一個完整的android app 需要掌握哪些知識?
  • A+