日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android 培训课件编写--- 第1章 Android应用开发概述

發布時間:2023/12/20 Android 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 培训课件编写--- 第1章 Android应用开发概述 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第1章 Android應用開發概述

隨著Android系統的迅猛發展,它已經成為全球范圍內具有廣泛影響力的操作系統。Android系統已經不僅僅是一款手機的操作系統,它越來越廣泛的被應用于平板電腦、可佩戴設備、電視、數碼相機等設備上,這也造就了目前Android開發人才需求的快速增長,從大趨勢上看,Android軟件人才的需求將越來越大。

從2007年11月5日谷歌公司正式向外界展示了這款名為Android的操作系統至今,Android已經經歷了多個版本的更新,最新的版本為2016年5月18日發布的Android 7.0 開發者預覽在Android系統的命名方式上,谷歌一直按照字母表的方式來進行,并且選用的代號名稱全部都為食物,比如Android 4.4 KitKat就是用巧克力的名字來命名的,而Android 5.0 Lollipop和Android 6.0 Marshmallow則分別用棒棒糖和棉花糖來命名。而作為下一代Android系統,Android N的正式名稱現在也在征集當中

1.1?Android發展史與現狀

自Android系統首次發布至今,Android經歷了很多的版本更新,下表列出了Android系統的不同版本的發布時間及對應的版本號:

Android版本

發布日期

代號

Android 1.1

?

?

Android 1.5

2009430

Cupcake(紙杯蛋糕)

Android 1.6

2009915

Donut(炸面圈)

Android 2.0/2.1

20091026

Eclair(長松餅)

Android 2.2

2010520

Froyo(凍酸奶)

Android 2.3

2010126

Gingerbread(姜餅)

Android 3.0/3.1/3.2

2011222

Honeycomb(蜂巢)

Android 4.0

20111019

Ice Cream Sandwich(冰淇淋三明治)

Android 4.1

2012628

Jelly Bean(果凍豆)

Android 4.2

2012108

Jelly Bean(果凍豆)

Android5.0

20141015

Lime Pie(酸橙派)

Android6.0

2015930

Marshmallow(棉花糖)

Android7.0

待定

L待定

Android系統是基于Linux的智能操作系統,2007年11月,Google與84家硬件制造商、軟件開發商及電信運營商組建開發手機聯盟,共同研發改良Android系統。隨后Google以Apache開源許可證的授權方式,發布了Android的源代碼。也就是說Android系統是完整公開并且免費的,Android系統的快速發展,也與它的公開免費不無關系。

1.2?Android系統的架構與特性

1.2.1?Android系統架構

Android系統的底層是建立在Linux系統之上的,它采用軟件疊層(Software Stack)的方式進行構建。使得層與層之間相互分離,明確各層的分工。這種分工保證了層與層之間的低茍合,當下層發生改變的時候,上層應用程序無需做任何改變。

下圖為Android系統的系統架構圖:

如圖可知,Android系統分為四個層,從高到底分別是:應用程序層(Application)、應用程序框架層(Application Framework)、系統運行庫層(Libraries)和Linux內核層(Linux Kernel)。

Android操作系統可以在四個主要層面上分為5個部分:

1.?應用程序層(Application)

Android系統包含了一系列核心應用程序,包括電子郵件、短信SMS、日歷、撥號器、地圖、瀏覽器、聯系人等。這些應用程序都是用Java語言編寫。本書重點講解如何編寫Android系統上運行的應用程序,在程序分層上,與系統核心應用程序平級。

2.?應用程序框架層(Application Framework)

Android應用程序框架提供了大量的API供開發人員使用,Android應用程序的開發,就是調用這些API,根據需求實現功能。

應用程序框架是應用程序的基礎。為了軟件的復用,任何一個應用程序都可以開發Android系統的功能模塊,只要發布的時候遵循應用程序框架的規范,其它應用程序也可以使用這個功能模塊。

3.?系統運行庫層(Libraries)

Android系統運行庫是用C/C++語言編寫的,是一套被不同組件所使用的函數庫組成的集合。一般來說,Android應用開發者無法直接調用這套函數庫,都是通過它上層的應用程序框架提供的API來對這些函數庫進行調用。

下面對一些核心庫進行簡單的介紹:

Libc:從BSD系統派生出來的標準C系統庫,在此基礎之上,為了便攜式Linux系統專門進行了調整。

Medio Framework:基于PacketView的OpenCORE,這套媒體庫支持播放與錄制硬盤及視頻格式的文件,并能查看靜態圖片。

Surface Manager:在執行多個應用程序的時,負責管理顯示與存取操作間的互動,同時負責2D繪圖與3D繪圖進行顯示合成。

WebKit:Web瀏覽器引擎,該引擎為Android瀏覽器提供支持。

SGL:底層的2D圖像引擎。

3D libraries:基于OpenGL ES 1.0API,提供使用軟硬件實現3D加速的功能。

FreeType:提供位圖和向量字體的支持。

SQLite:輕量級的關系型數據庫。

4.?Android運行時

Android運行時由兩部分完成:Android核心庫和Dalvik虛擬機。其中核心庫集提供了Java語言核心庫所能使用的絕大部分功能,Dalvik虛擬機負責運行Android應用程序。

雖然Android應用程序通過Java語言編寫,而每個Java程序都會在Java虛擬機JVM內運行,但是Android系統畢竟是運行在移動設備上的,由于硬件的限制, Android應用程序并不使用Java的虛擬機JVM來運行程序,而是使用自己獨立的虛擬機Dalvik VM,它針對多個同時高效運行的虛擬機進行了優化。每個Android應用程序都運行在單獨的一個Dalvik虛擬機內,因此Android系統可以方便對應用程序進行隔離。

5.?Linux內核

Android系統是基于Linux2.6之上建立的操作系統,它的Linux內核為Android系統提供了安全性、內存管理、進程管理、網絡協議棧、驅動模型等核心系統服務。Linux內核幫助Android系統實現了底層硬件與上層軟件之間的抽象。

1.2.2?Dalvik VM和JVM的區別

JVM(Java虛擬機)是一個虛構出來的運行Java程序的運行時,是通過在實際的計算機上仿真模擬各種計算機功能的實現。它具有完善的硬件架構(如處理器、堆棧、寄存器等),還具有相應的指令系統,使用JVM就是使Java程序支持與操作系統無關。理論上在任何操作系統中,只要有對應的JVM,即可運行Java程序。

Dalvik VM是在Android系統上運行Android程序的虛擬機,其指令集是基于寄存器架構的,執行特有的文件格式-dex字節碼來完成對象生命周期管理、堆棧管理、線程管理、安全異常管理、垃圾回收等重要功能。

由于Android應用程序的開發編程語言是Java,而Java程序運行在JVM(Java虛擬機)上的,因此有些人會把Android的虛擬機DalvikVM和JVM弄混淆,但是實際上Dalvik并未遵守JVM規范,而且兩者也是互不兼容。

從Dalvik VM和JVM的編譯過程分析,它們的編譯過程如下:

JVM:.java→.class→.jar

Dalvik VM:.java→.class→.dex

從它們的編譯過程可以看出,JVM運行的是.class文件的Java字節碼,但是Dalvik VM運行的是其轉換后的dex(Dalvik Executable)文件。JVM字節從.class文件或者JAR包中加載字節碼然后運行,而Dalvik VM無法直接從.class文件或JAR包中加載字節碼,它需要通過DX工具將應用程序所有的.class文件編譯成一個.dex文件,Dalvik VM則運行這個.dex文件。

下圖顯示了Dalvik VM與JVM編譯過程的區別:

從圖中可以看出,Dalvik VM把.java文件編譯成.class后,會對.class進行重構,整合的基本元素(常量池、類定義、數據段),最后壓縮寫進一個.dex文件中。其中,常量池描述了所有的常量,包括引用、方法名、數值常量等;類定義包括訪問標識、類名等基本信息;數據段中包含各種被VM指定的方法代碼以及類和方法的相關信息和實例變量。這種把多個.class文件進行整合的方法,大大提高了Android程序的運行速度,例如:應用程序中多個類定義了字符串常量TAG,而在JVM中,會編譯成多個.class文件,每個.class文件的常量池中,均包含這個TAG常量,但是Dalvik VM在編譯成.dex文件之后,其常量池里只有一個TAG常量。

JVM和Dalvik VM還有一點非常重要的不同,就是基于的架構不同。JVM是基于棧的架構,而Dalvik VM是基于寄存器的架構。相對于基于棧的JVM而言,基于寄存器的Dalvik VM實現雖然犧牲了一些硬件上的通用性,但是它在代碼的執行效率上要更勝一籌。一般來講,VM中指令的解釋執行的時間主要花費在以下三個方面:

分發指令;

訪問運算數;

執行運算;

其中分發指令這個環節對性能的影響最大。在基于寄存器的Dalvik VM中,可以更有效的減少冗余指令的分發,減少內存的讀寫訪問。

從JVM和Dalvik VM的區別上來說,Dalvik VM主要是針對Android這個嵌入式操作系統的特點進行了各種優化,使其更省電、更省內存、運行效率更高,但是犧牲了一些JVM的與平臺無關的特性。實際上,Dalvik VM本就是為Android設計的,無需考慮其它平臺的問題。這里只是介紹了JVM和Dalvik VM的兩個重要的區別,畢竟本書并不是講解Android內核的,這里只是點明Dalvik VM的特點,讀者對這部分的內容了解即可。

1.2.3?Android系統平臺的優勢

Android系統相對于其它操作系統,有如下幾點優勢:

1.?開放性

首先就是Android系統的開放性,其開發平臺允許任何移動終端廠商加入到Android聯盟中來,降低了開發門檻,使其擁有更多的開發者,隨著用戶和應用的日益豐富,也將推進Android系統的成熟。同時,開放性有利于Android設備的普及以及市場競爭力,這樣有利于消費者買到更低價位的Android設備。

2.?豐富的硬件選擇

同樣由于Android系統的開放性,眾多硬件廠商可以推出各種的搭載Android系統的設備。現如今,Android系統不僅僅只是運行在手機上,越來越多的設備開始支持Android系統,如電視、可佩戴設備、數碼相機等。

3.?便于開發

Google開放了Android的系統源碼,提供了開發者一個自由的開發環境,不必受到各種條條框框的束縛。

4.?Google服務的支持

Google公司作為一個做服務的公司,它提供了如地圖、郵件、搜索等服務,Android系統可以對這些服務進行無縫的結合。
?



總結

以上是生活随笔為你收集整理的Android 培训课件编写--- 第1章 Android应用开发概述的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。