偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

移動開發(fā)基礎(chǔ)教程:Android是什么

移動開發(fā) Android
本文從Android的術(shù)語、簡史、平臺、應用程序架構(gòu)等各個角度介紹了什么是Android,Android初學者從中能系統(tǒng)的學習到Android的基礎(chǔ)框架。

Android是基于Linux內(nèi)核的操作系統(tǒng),是谷歌公司在2007年11月5日公布的手機操作系統(tǒng),早期由谷歌開發(fā),后由開放手持設(shè)備聯(lián)盟(Open Handset Alliance)開發(fā)。它采用了軟件堆層(software stack,又名以軟件疊層)的架構(gòu),主要分為三部分。底層Linux內(nèi)核只提供基本功能;其他的應用軟件則由各公司自行開發(fā),部分程序以Java編寫。

一、簡介

BlackBerry和iPhone都提供了受歡迎的、高容量的移動平臺,但是卻分別針對兩個不同的消費群體。BlackBerry是企業(yè)業(yè)務(wù)用戶的不二選擇。但是,作為一種消費設(shè)備,它在易用性和 “新奇特性” 方面難以和iPhone抗衡。Android則是一個年輕的、有待開發(fā)的平臺,它有潛力同時涵蓋移動電話的兩個不同消費群體,甚至可能縮小工作和娛樂之間的差別。

如今,很多基于網(wǎng)絡(luò)或有網(wǎng)絡(luò)支持的設(shè)備都運行某種Linux內(nèi)核。這是一種可靠的平臺:可經(jīng)濟有效地進行部署和提供支持,并且可直接作為面向部署的良好的設(shè)計方法。這些設(shè)備的UI通常是基于HTML的,可通過PC或Mac瀏覽器查看。但并不是每個設(shè)備都需要通過一個常規(guī)的計算設(shè)備來控制。想象一下傳統(tǒng)的家用電器,例如電爐、微波爐或面包機。如果您的家用電器由Android控制,并且有一個彩色觸摸屏,會怎么樣?如果電爐上有一個Android UI,那么操控者甚至可以烹飪點什么東西。

二、Android術(shù)語 

在Eclipse環(huán)境中開發(fā)Android應用程序需要了解Eclipse環(huán)境和Android平臺的知識。了解以下術(shù)語會有助于用Eclipse插件開發(fā)Android應用程序。

Open Handset Alliance

這是一個由谷歌公司主導的組織,它由許多公共和私人組織組成。

Android

這是Open Handset Alliance的主打產(chǎn)品。它是一種針對移動設(shè)備的開放源碼操作環(huán)境。

模擬器

模擬另一個系統(tǒng)的軟件工具—這常常是在個人計算機(IBM、Mac、Linux)上運行的一個環(huán)境,它模擬另一個環(huán)境,比如移動計算設(shè)備。

Linux

一種開放源碼的操作系統(tǒng)內(nèi)核,許多計算平臺都使用這種操作系統(tǒng),包括服務(wù)器、桌面計算機、網(wǎng)絡(luò)設(shè)備和移動計算設(shè)備。Android在Linux內(nèi)核上運行。

Dalvik Virtual Machine

Dalvik VM是Android產(chǎn)品組合中的一種操作環(huán)境,它在運行時解釋應用程序代碼。Dalvik VM與Java VM相似,但是兩者不兼容。

三、Android簡史

Android平臺是Open Handset Alliance的成果,Open Handset Alliance 組織由一群共同致力于構(gòu)建更好的移動電話的公司組成。這個組織由谷歌領(lǐng)導,包括移動運營商、手持設(shè)備制造商、零部件制造商、軟件解決方案和平臺提供商以及市場營銷公司。從軟件開發(fā)的觀點看,Android正處在開源領(lǐng)域的中心位置。

市場上***款支持Android的手機是由HTC制造并由T-Mobile供應的G1。這款設(shè)備從設(shè)想到推出花了大約一年的時間,惟一可用的軟件開發(fā)工具是一些實行增量改進的SDK發(fā)行版。隨著G1發(fā)行日的臨近,Android團隊發(fā)布了SDK V1.0,用于這個新平臺的應用程序也浮出水面。

為了鼓勵創(chuàng)新,谷歌舉辦了兩屆“Android Developer Challenges”,為優(yōu)勝的參賽作品提供數(shù)百萬美金的獎勵。G1 問世幾個月之后,隨后就發(fā)布了Android Market,它使用戶可以瀏覽應用程序,并且可以將應用程序直接下載到他們的手機上。經(jīng)過大約 18 個月,一個新的移動平臺進入公眾領(lǐng)域。

四、Android平臺

Android平臺被稱為一個產(chǎn)品組合,因為它是一系列組件的集合,包括:

    基于Linux內(nèi)核的操作系統(tǒng)
    Java編程環(huán)境
    工具集,包括編譯器、資源編譯器、調(diào)試器和模擬器
    用來運行應用程序的Dalvik VM

Android有豐富的功能,因此很容易與桌面操作系統(tǒng)混淆。Android是一個分層的環(huán)境,構(gòu)建在Linux內(nèi)核的基礎(chǔ)上,它包括豐富的功能。UI 子系統(tǒng)包括:

    窗口 
    視圖 
    用于顯示一些常見組件(例如編輯框、列表和下拉列表)的小部件

Android包括一個構(gòu)建在WebKit基礎(chǔ)上的可嵌入瀏覽器,iPhone 的Mobile Safari瀏覽器同樣也是以WebKit為基礎(chǔ)。

Android提供多種連接選項,包括WiFi、藍牙和通過蜂窩(cellular)連接的無線數(shù)據(jù)傳輸(例如GPRS、EDGE 和3G)。Android應用程序中一項流行的技術(shù)是鏈接到谷歌地圖,以便在應用程序中顯示地址。Android軟件棧還提供對基于位置的服務(wù)(例如GPS)和加速計的支持,不過并不是所有的Android設(shè)備都配備了必需的硬件。另外還有攝像支持。

過去,移動應用程序努力向桌面應用程序看齊的兩個領(lǐng)域分別是圖形/媒體和數(shù)據(jù)存儲方法。Android通過提供對2D和3D圖形的內(nèi)置支持,包括OpenGL 庫,解決了圖形方面的挑戰(zhàn)。由于Android平臺包括流行的開源SQLite 數(shù)據(jù)庫,因此緩解了數(shù)據(jù)存儲的負擔。圖1顯示一個簡化的Android軟件層次結(jié)構(gòu)。

圖 1. Android 軟件層次結(jié)構(gòu)

圖1.Android軟件層次結(jié)構(gòu)

五、應用程序架構(gòu)

如前所述,Android運行在Linux內(nèi)核上。Android應用程序是用Java編程語言編寫的,它們在一個虛擬機(VM)中運行。需要注意的是,這個VM并非您想象中的JVM,而是Dalvik Virtual Machine,這是一種開源技術(shù)。每個Android應用程序都在Dalvik VM的一個實例中運行,這個實例駐留在一個由Linux內(nèi)核管理的進程中,如下圖所示。

圖 2. Dalvik VM

圖 2. Dalvik VM

Android應用程序由一個或多個組件組成:

活動

具有可視UI的應用程序是用活動實現(xiàn)的。當用戶從主屏幕或應用程序啟動器選擇一個應用程序時,就會開始一個動作。

服務(wù)

服務(wù)應該用于任何需要持續(xù)較長時間的應用程序,例如網(wǎng)絡(luò)監(jiān)視器或更新檢查應用程序。

內(nèi)容提供程序

可以將內(nèi)容提供程序看作數(shù)據(jù)庫服務(wù)器。內(nèi)容提供程序的任務(wù)是管理對持久數(shù)據(jù)的訪問,例如SQLite數(shù)據(jù)庫。如果應用程序非常簡單,那么可能不需要創(chuàng)建內(nèi)容提供程序。如果要構(gòu)建一個較大的應用程序,或者構(gòu)建需要為多個活動或應用程序提供數(shù)據(jù)的應用程序,那么可以使用內(nèi)容提供程序?qū)崿F(xiàn)數(shù)據(jù)訪問。

廣播接收器

Android應用程序可用于處理一個數(shù)據(jù)元素,或者對一個事件(例如接收文本消息)做出響應。

Android應用程序是連同一個AndroidManifest.xml文件一起部署到設(shè)備的。AndroidManifest.xml包含必要的配置信息,以便將它適當?shù)匕惭b到設(shè)備。它包括必需的類名和應用程序能夠處理的事件類型,以及運行應用程序所需的許可。例如,如果應用程序需要訪問網(wǎng)絡(luò) — 例如為了下載一個文件 — 那么manifest文件中必須顯式地列出該許可。很多應用程序可能啟用了這個特定的許可。這種聲明式安全性有助于減少惡意應用程序損害設(shè)備的可能性。

六、所需工具

開始開發(fā)Android應用程序的最簡捷的方式是下載AndroidSDK 和EclipseIDE。Android開發(fā)可以在微軟Windows、Mac OS X 或Linux上進行。

本文假設(shè)您使用的是Eclipse IDE和用于Eclipse的Android Developer Tools插件。Android應用程序是用Java語言編寫的,但是是在Dalvik VM(非Java虛擬機)中編譯和執(zhí)行的。在Eclipse中用Java語言編程非常簡單;Eclipse 提供一個豐富的Java環(huán)境,包括上下文敏感幫助和代碼提示。Java 代碼通過編譯后,Android Developer Tools 可確保適當?shù)貙⑺虬?,包括AndroidManifest.xml 文件。

雖然沒有Eclipse和Android Developer Tools插件也可以開發(fā)Android應用程序,但是那樣就需要熟悉Android SDK。

AndroidSDK 是作為一個ZIP文件發(fā)布的,可以將該文件解壓到硬盤上的一個目錄中。由于有多個SDK更新,建議有意識地組織開發(fā)環(huán)境,以便在不同的SDK安裝之間輕松地切換。

SDK 包括:

android.jar

Java 歸檔文件,其中包含構(gòu)建應用程序所需的所有的Android SDK 類。

documention.html和docs目錄

本地和網(wǎng)上提供的SDK文檔。這些文檔的主要形式為JavaDocs,以便于在SDK中導航大量的包。文檔還包括一個高級開發(fā)指南和Android社區(qū)的鏈接。

Samples目錄

Samples子目錄包含各種應用程序的源代碼,包括ApiDemo,該應用程序演示了很多API。這個示例應用程序可以作為Android應用程序開發(fā)的良好起點。

Tools目錄

包含所有用于構(gòu)建Android應用程序的命令行工具。最常用、最有用的工具是adb實用程序(Android Debug Bridge)。

usb_driver

該目錄包含將開發(fā)環(huán)境連接到支持Android的設(shè)備(例如G1或Android Dev 1解鎖開發(fā)手機)所需的驅(qū)動程序。只有Windows平臺的開發(fā)人員才需要這些文件。

Android應用程序可以在實際的設(shè)備上運行,也可以在Android SDK 附帶的Android Emulator上運行。圖 3 顯示Android Emulator 的主屏幕。

圖 3.Android Emulator

七、Android Debug Bridge

adb實用程序支持一些可選命令行參數(shù),以提供強大的特性,例如復制文件到設(shè)備或從設(shè)備復制文件??梢允褂胹hell命令行參數(shù)連接到手機本身,并發(fā)送基本的shell命令。圖 4 顯示在通過USB線連接到Windows筆記本電腦的一個實際設(shè)備上運行的adb shell命令。

圖 4. 使用 adb shell 命令

圖 4. 使用adb shell命令

在這個shell環(huán)境中,可以:

顯示網(wǎng)絡(luò)配置,網(wǎng)絡(luò)配置可顯示多個網(wǎng)絡(luò)連接。注意這多個網(wǎng)絡(luò)連接:

lo是本地或loopback連接。

tiwlan0是WiFi連接,該連接由本地DHCP服務(wù)器提供一個地址。

顯示PATH環(huán)境變量的內(nèi)容。

執(zhí)行su命令,以成為超級用戶。

將目錄改為/data/app,其中存放用戶應用程序。

列出包含某個應用程序的目錄。Android應用程序文件實際上是歸檔文件,可通過WinZip之類的軟件查看。擴展名為apk。

發(fā)出ping命令,查看Google.com是否可用。

從相同的命令提示符環(huán)境中,還可以與SQLite 數(shù)據(jù)庫交互,啟動程序以及執(zhí)行許多其他系統(tǒng)級任務(wù)。想像一下您正在連接到電話,因此這是非常了不起的功能。

【編輯推薦】

  1. Android的政策越來越緊縮,這不是玩笑 
  2. 國外知名游戲開發(fā)商稱Android平臺比iOS更賺錢 
  3. 谷歌Android Market正式推出應用內(nèi)付費 
  4. Android學習筆記:androidmanifest.xml解析 
  5. 將Android推向移動SOA 驅(qū)動Web創(chuàng)新 

 

 

責任編輯:佚名 來源: ITeye
相關(guān)推薦

2010-08-24 10:54:16

MeeGoUI設(shè)計

2011-07-18 09:35:29

iPhone 框架

2011-09-13 16:39:50

Android UI設(shè)

2010-06-11 13:53:54

UML建模

2017-12-12 07:47:59

dockermarathon服務(wù)器

2017-07-18 10:14:23

OracleMerge into教程

2009-07-22 13:32:43

iBATIS DAO

2016-08-31 14:01:31

MySQL存儲數(shù)據(jù)庫

2011-07-15 14:19:10

故障恢復控制臺

2009-09-17 10:45:03

CCNA基礎(chǔ)教程CCNA

2010-07-23 12:23:49

Perl基礎(chǔ)

2020-04-09 14:02:33

NginxHttps前端

2020-09-24 17:15:11

前端Web移動

2015-03-25 12:09:18

TCP網(wǎng)絡(luò)協(xié)議TCP建立連接

2010-08-09 09:20:51

Flex程序設(shè)計

2011-08-30 17:37:32

打印機共享怎么設(shè)置共享打印機局域網(wǎng)

2020-03-23 08:09:47

VS CodePythonJupyter Not

2013-06-18 08:49:15

2021-03-04 10:11:50

MongoDBSpring BootSpring Boot

2009-07-24 09:20:15

數(shù)組實例
點贊
收藏

51CTO技術(shù)棧公眾號