自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Adobe AIR Android開發(fā):開發(fā)之前需要了解的信息

移動(dòng)開發(fā) Android
AIR Android開發(fā)簡介,本文簡要地介紹了AIR在移動(dòng)平臺上的發(fā)展?fàn)顩r,分析了AIR Android開發(fā)的可行性,以及AIR在Android平臺上的優(yōu)勢和不足,為大家介紹開發(fā)之前需要了解的信息。

2010年,Adobe公司成功地將AIR技術(shù)引入移動(dòng)平臺,從此,一舉打開了通往移動(dòng)領(lǐng)域的大門。而對于Flash開發(fā)者來說,該技術(shù)的出現(xiàn)為他們轉(zhuǎn)向移動(dòng)應(yīng)用開發(fā)提供了便利的條件。

2010年年底,AIR已經(jīng)實(shí)現(xiàn)了對Android、BlackBerry Tablet OS和iOS三個(gè)移動(dòng)操作系統(tǒng)的支持。從目前的狀況看,AIR在Android平臺上的表現(xiàn)最搶眼。一方面,AIR程序在Android設(shè)備(手機(jī)和平板電腦)上的運(yùn)行性能得到了用戶的肯定;另一方面,當(dāng)前市面上絕大部分Android手機(jī)和平板電腦都支持AIR程序,而且電子市場上使用AIR開發(fā)的程序數(shù)量呈上升趨勢。

因此,本文以Android平臺為目標(biāo),介紹AIR Android開發(fā)的必備知識,以及AIR Android的新功能和新特性。移動(dòng)應(yīng)用開發(fā)與桌面應(yīng)用開發(fā)和Web應(yīng)用開發(fā)相比,有其自身的特點(diǎn)。本文還將針對開發(fā)中的常見問題、程序設(shè)計(jì)技巧以及開發(fā)者關(guān)心的程序性能優(yōu)化等內(nèi)容進(jìn)行重點(diǎn)講解。另外,由于AIR的跨平臺特性,很多內(nèi)容同樣適用于BlackBerry Tablet OS和iOS平臺。

1.開發(fā)之前需要了解的信息

在國內(nèi)知名的Flash開發(fā)者論壇上,關(guān)于AIR Android,許多朋友都提到以下問題:

AIR程序在手機(jī)上的性能如何?

可以使用Flex框架嗎?如何搭建開發(fā)環(huán)境?

如何發(fā)布APK文件?

必須使用Android的SDK嗎?

一定要使用真機(jī)嗎?

這一節(jié),將針對這些問題給出答案。

2.AIR Android開發(fā)的可行性

可行性無疑是開發(fā)人員優(yōu)先考慮的因素,如果開發(fā)的程序根本無法在設(shè)備上運(yùn)行,或者用戶體驗(yàn)很不友好,性能遠(yuǎn)遠(yuǎn)沒有達(dá)到設(shè)定的目標(biāo),那么技術(shù)就失去了實(shí)際意義。

從市場的反饋來看,用戶對AIR在Android上的性能表現(xiàn)相當(dāng)滿意。2010年10月,AIR正式登陸Google電子市場(2012年3月更名為Google Play商店),在短短兩個(gè)月時(shí)間里,程序的累計(jì)下載量超過了25萬次。截至本書出版前,AIR的最新版本為3.1,支持Android 2.2及以上版本。

需要說明的是,并不是所有的Android設(shè)備都支持AIR。Adobe官方網(wǎng)站的信息顯示,設(shè)備必須滿足以下條件才能運(yùn)行AIR:

Android 2.2或更高版本。

ARM v7-A或更高級的處理器。

支持OpenGL ES2.0。

支持H.264 & AAC H/W 解碼。

至少有256 MB內(nèi)存。

一般情況下,安裝或升級到Android 2.2的設(shè)備都可以運(yùn)行AIR,而市面上的Android設(shè)備很多都已經(jīng)安裝或升級到2.2或以上版本了。在Android開發(fā)者站點(diǎn)上,會(huì)定期發(fā)布統(tǒng)計(jì)數(shù)據(jù),讓開發(fā)者了解當(dāng)前Android不同版本的市場狀況。圖1-1所示為2011年10月20日至11月3日的統(tǒng)計(jì)數(shù)據(jù)。數(shù)據(jù)顯示了在這兩周的時(shí)間內(nèi)訪問Google電子市場的設(shè)備所對應(yīng)的Android系統(tǒng)版本分布。

 
(點(diǎn)擊查看大圖)圖1-1 Android版本市場份額

從數(shù)據(jù)上看,Android 2.2及以上版本占主導(dǎo)地位。2010年年底,Android 2.2的市場份額超過50%;2010年底發(fā)布Android 2.3后,到2011年11月,Android 2.3的市場份額已經(jīng)超過2.2版成為市場主流。與過去的數(shù)據(jù)進(jìn)行對比可以看出,Android 的發(fā)展速度真是日新月異。從1.5版到2.2版,Android進(jìn)入了成熟期,不管是性能還是用戶體驗(yàn),都有了質(zhì)的飛躍。2.3版在2.2版的基礎(chǔ)上增加了不少新功能,性能也有了大幅提升。Android 3.0是專門為平板電腦設(shè)計(jì)的系統(tǒng),在2011年下半年的平板電腦熱潮中占據(jù)了越來越多的市場份額。2011年10月份發(fā)布的4.0版則是Android一個(gè)全新的版本,從界面到功能都有了很多引人矚目的變化,隨后就有大批采用新版系統(tǒng)的設(shè)備涌現(xiàn)出來。

Adobe官方網(wǎng)站上列出了支持AIR的設(shè)備列表,網(wǎng)址為http://www.adobe.com/flashplatform/ certified_devices/。從這個(gè)列表中可以看到,備受大家追捧的Nexus 系列、HTC Desire、Motor Milestone系列等。

可能有些開發(fā)者還有疑慮:如果用戶的手機(jī)中并沒有安裝AIR,那即便安裝了自己開發(fā)的應(yīng)用程序也沒有什么意義。因?yàn)槌绦虮匾揽緼IR運(yùn)行時(shí)(Runtime)才能運(yùn)行。

事實(shí)上,這個(gè)擔(dān)心是多余的,Adobe已經(jīng)為我們解決了這個(gè)問題。當(dāng)用戶運(yùn)行使用AIR技術(shù)開發(fā)的程序時(shí),程序在啟動(dòng)期間會(huì)判斷設(shè)備上是否安裝了AIR,如果安裝了,則調(diào)用AIR運(yùn)行時(shí)來加載并運(yùn)行程序;如果沒有,則彈出圖1-2所示對話框。

 
圖1-2 提示安裝AIR的對話框

單擊“安裝”按鈕,設(shè)備會(huì)自動(dòng)啟動(dòng)其上的電子市場程序,并進(jìn)入Adobe AIR的下載界面。

提示--判斷設(shè)備是否支持AIR,比較簡單的方法是:在設(shè)備上打開Google電子市場程序,搜索“Adobe AIR”,如果能夠找到該程序,則表示設(shè)備支持AIR,因?yàn)殡娮邮袌鰰?huì)自動(dòng)根據(jù)手機(jī)型號進(jìn)行過濾。

一些廠商對系統(tǒng)進(jìn)行了個(gè)性化定制,移除了自帶的Google電子市場。如果無法通過Google電子市場安裝AIR運(yùn)行時(shí),也可以通過其他的應(yīng)用商店安裝AIR運(yùn)行時(shí),比如國內(nèi)的安卓市場、AppChina應(yīng)用匯等。

另外,AIR 3.0引入了一個(gè)功能來解決AIR運(yùn)行時(shí)的安裝問題,那就是captive-runtime,即將AIR運(yùn)行時(shí)捆綁在程序中,使得程序不需要AIR運(yùn)行時(shí)就可以直接運(yùn)行,使程序成為完全獨(dú)立的應(yīng)用。

別走開,下頁內(nèi)容更精彩!

#p#

3.開發(fā)過程中常見的問題

雖然AIR在Android平臺上表現(xiàn)不錯(cuò),但由于其發(fā)布時(shí)間較短,再加上很多Flash平臺技術(shù)人員沒有移動(dòng)開發(fā)經(jīng)驗(yàn),仍然有許多這樣或那樣的問題。這一節(jié)將對一些常見問題予以解答。

Q1:AIR支持哪些開發(fā)環(huán)境?

A:AIR Android開發(fā)和Flash開發(fā)都使用相同的開發(fā)環(huán)境,大家可以選擇自己熟悉的開發(fā)環(huán)境比如Flash Professional CS5、Flash Builder等,也可以構(gòu)建完全開源的開發(fā)環(huán)境。

AIR移動(dòng)開發(fā)要求AIR SDK 2.5及以上版本,目前在Android上只支持Flash技術(shù),不支持HTML和JavaScript。本章的后半部分會(huì)詳細(xì)介紹開發(fā)環(huán)境的搭建。

Q2:是否可以使用Flex框架進(jìn)行AIR Android開發(fā)?

A:可以,但只適合Flex SDK 4.5及以上版本。因?yàn)镕lex SDK 4.0以及更早的版本沒有針對移動(dòng)設(shè)備進(jìn)行優(yōu)化,如果把用這些框架開發(fā)的程序放到設(shè)備上運(yùn)行,會(huì)遇到很多“不算問題”的問題,比如,你會(huì)發(fā)現(xiàn)無法用手指去拖動(dòng)那條狹長的滾動(dòng)條,按鈕總是點(diǎn)不中,文本會(huì)被彈出的虛擬鍵盤擋住等。當(dāng)然,最重要的是程序的性能不佳。

幸運(yùn)的是,這些問題在新一代的Flex SDK中得到了解決。Adobe已經(jīng)發(fā)布了代號為Hero的Flex SDK 4.5,同時(shí)發(fā)布的還有Flash Builder 4.5。新一代的Flex SDK采用了全新的設(shè)計(jì)結(jié)構(gòu),同時(shí)兼容Web、桌面和移動(dòng)平臺,大大簡化了開發(fā)流程。

Q3:如何輸出APK文件?

A:APK是Android package的縮寫,即Android安裝包,文件名以.apk為后綴,是JAR文件的一種變體,類似Windows系統(tǒng)上的EXE文件。

AIR SDK自帶的編譯工具,除了支持打包為AIR文件外,還支持APK文件。不管是基于Flash Professional CS5的開發(fā)環(huán)境,還是Flash Builder 4.5,都提供了圖形化配置界面,簡化了發(fā)布流程。另外,我們也可以使用命令行的方式,實(shí)現(xiàn)自動(dòng)編譯、打包和部署的“一條龍作業(yè)”。

Q4:一定要使用真機(jī)嗎?

A:這也是開發(fā)者關(guān)心的問題之一。可能剛接觸Android開發(fā)的開發(fā)者沒有合適的設(shè)備,所以Android SDK提供了模擬器工具,讓開發(fā)者在PC上就能體驗(yàn)各個(gè)版本的Android系統(tǒng)。在模擬器上,除了沒有攝像頭、Google電子市場等特殊的功能以外,基本上和真機(jī)沒有區(qū)別。因此,不一定使用真機(jī)進(jìn)行開發(fā)。

不過,在模擬器上無法看到程序真實(shí)的性能表現(xiàn),故真機(jī)測試是移動(dòng)開發(fā)最重要的一個(gè)環(huán)節(jié)。即便是安裝了相同版本的操作系統(tǒng),在不同型號的設(shè)備上,程序的表現(xiàn)也可能會(huì)有差異。因此,只有在真機(jī)上測試才能得到最準(zhǔn)確的信息。

Q5:是否支持跨平臺?

A:如上文所述,除了桌面操作系統(tǒng),AIR已經(jīng)實(shí)現(xiàn)了對Android、BlackBerry Tablet OS和iOS三個(gè)移動(dòng)操作系統(tǒng)的支持。從技術(shù)角度看,針對Android和BlackBerry Tablet OS系統(tǒng)采用的是和桌面類似的方式,即Runtime(運(yùn)行時(shí))+ 應(yīng)用程序,程序依托運(yùn)行時(shí)才能運(yùn)行;而在iOS平臺上,由于Apple的限制,Adobe采用了一種間接方式,為開發(fā)者提供了一套打包工具,可以將AIR程序連同運(yùn)行時(shí)一起編譯為iOS原生代碼,程序不需要運(yùn)行時(shí)就可以運(yùn)行。因此,AIR在Android和BlackBerry Tablet OS上更符合跨平臺的條件。

經(jīng)筆者測試,同一個(gè)程序,只要配置好相關(guān)參數(shù),一行代碼都不用修改,就可以將應(yīng)用部署到Android手機(jī)和PlayBook(采用BlackBerry Tablet OS的平板電腦)上。當(dāng)然,前提是在程序設(shè)計(jì)中充分考慮了跨平臺的需求。

Q6:AIR Android和Flash Lite有什么聯(lián)系?

A:兩者沒有任何聯(lián)系。Flash Lite是Adobe針對移動(dòng)開發(fā)的第一代解決方案,和AIR相比,它更像是針對低端智能手機(jī)的Flash Player,即使在硬件條件很有限的設(shè)備上,也能部署Flash內(nèi)容。幾年前,智能手機(jī)的硬件水平遠(yuǎn)沒有現(xiàn)在這么先進(jìn),如今,移動(dòng)設(shè)備迅猛發(fā)展,連智能手機(jī)都開始運(yùn)用“雙核”技術(shù)了,完全有能力運(yùn)行更復(fù)雜的程序。因此,F(xiàn)lash Lite逐漸失去了用武之地。

Q7:Adobe不再繼續(xù)為移動(dòng)設(shè)備開發(fā)Flash Player,是否也會(huì)停止AIR移動(dòng)版的開發(fā)?

A:不會(huì),兩者沒有任何聯(lián)系。2011年11月,Adobe宣布,該公司將正式停止為移動(dòng)瀏覽器、操作系統(tǒng)開發(fā)移動(dòng)版本Flash Player播放器。停止開發(fā)移動(dòng)版Flash Player后,Adobe將把主要精力放在AIR桌面和移動(dòng)版本開發(fā)上,因此,對AIR移動(dòng)開發(fā)者來說,這其實(shí)是一個(gè)好消息。

4.優(yōu)勢和局限性

我們常說的Android開發(fā),是指以Java為編程語言,使用官方提供的SDK工具進(jìn)行的開發(fā)。Android SDK提供了一整套功能強(qiáng)大的API,涵蓋了從圖形界面到系統(tǒng)底層控制等方方面面的功能。另外,官方還提供了一套NDK工具,允許開發(fā)者使用傳統(tǒng)的C或C++語言編寫程序,進(jìn)行更底層的數(shù)據(jù)操作,進(jìn)一步提升程序性能。

(1)優(yōu)勢

既然Android自有的開發(fā)方式已經(jīng)很完善了,那我們?yōu)槭裁催€要使用AIR呢?筆者認(rèn)為,主要有以下兩點(diǎn)因素:

1)AIR和Android自有的開發(fā)方式并不沖突,相反,AIR對Android平臺是一個(gè)很好的技術(shù)補(bǔ)充。

Flash技術(shù)的優(yōu)勢在于界面呈現(xiàn)、交互處理。比如制作一段復(fù)雜的動(dòng)畫,使用Java技術(shù)也可以實(shí)現(xiàn),但肯定會(huì)遇到一些困難,花費(fèi)不少時(shí)間,如果使用Flash技術(shù),則會(huì)輕松很多。另外,AIR還擴(kuò)展了Android平臺的技術(shù)生態(tài)圈。如今在移動(dòng)平臺領(lǐng)域競爭激烈,Android引入AIR技術(shù),能夠吸引龐大的Flash開發(fā)者隊(duì)伍加入進(jìn)來,對Android平臺而言,有百利而無一害。

2)AIR的跨平臺特性依然是吸引開發(fā)者的利器。

對移動(dòng)開發(fā)者來說,跨平臺歷來是個(gè)難題。平臺間的移植所耗費(fèi)的時(shí)間和人力成本,對企業(yè)而言,是一筆不小的支出。因此,對一些企業(yè)來說,AIR是一個(gè)相當(dāng)經(jīng)濟(jì)的解決方案。AIR支持多個(gè)桌面操作系統(tǒng),包括Windows、Mac和Linux,現(xiàn)在這個(gè)名單上又多了Android、iOS和BlackBerry Tablet OS,而且Adobe還在努力支持更多平臺,在未來的一段時(shí)間內(nèi),這個(gè)名單可能還會(huì)繼續(xù)增長。

(2)局限性

當(dāng)然,AIR也有自己的局限性。

1)不支持所有版本的Android系統(tǒng)。

AIR只支持Android 2.2及以上版本,且需要安裝運(yùn)行時(shí),對設(shè)備的硬件要求比較高。如果用戶需要支持所有型號的設(shè)備,那么AIR就無法滿足。不過這個(gè)缺點(diǎn)幾乎可以忽略不計(jì),因?yàn)槟壳癆ndroid 2.2和2.3已經(jīng)成為市場主流,對早期的版本提供支持意義不大。

2)AIR不提供訪問系統(tǒng)底層資源的API。

這也是AIR在各個(gè)平臺上的“通病”。具體到Android設(shè)備上,AIR沒有針對移動(dòng)設(shè)備提供額外的功能,比如獲取用戶的通信錄、短信、通信記錄等數(shù)據(jù)。

AIR 3.0引入了一個(gè)新功能—本地?cái)U(kuò)展(AIR Native Extension,ANE)。ANE允許開發(fā)者使用本地原生API為AIR編寫擴(kuò)展庫,來實(shí)現(xiàn)AIR API無法做到的功能,包括訪問系統(tǒng)底層資源。有了ANE這個(gè)利器,可以使很多不可能的任務(wù)成為可能。ANE可以被當(dāng)做共享庫分發(fā),目前已經(jīng)有很多開發(fā)者將自己編寫的ANE分享出來,相信在未來一段時(shí)間,AIR在移動(dòng)平臺上的應(yīng)用與原生開發(fā)環(huán)境制作出來的應(yīng)用的差距會(huì)越來越小。

責(zé)任編輯:閆佳明 來源: book.51cto.com
相關(guān)推薦

2012-02-28 13:52:45

Adobe AIRAndroidFlash

2011-11-16 16:21:09

AdobeAIR

2011-12-08 09:16:12

2013-07-10 11:11:05

PythonGo語言

2017-01-15 17:48:04

Java開發(fā)者編程語言

2016-12-26 17:53:05

Java開發(fā)者編程語言

2017-02-05 16:00:35

Java編程語言

2022-07-29 09:17:46

JavaScriptReactJS學(xué)習(xí)

2022-10-26 07:21:15

網(wǎng)絡(luò)視頻開發(fā)

2022-01-05 11:02:44

物聯(lián)網(wǎng)開發(fā)物聯(lián)網(wǎng)IOT

2013-04-19 09:23:34

2013開發(fā)者開發(fā)趨勢和技能

2024-12-13 08:02:55

大模型GPT后端

2015-07-15 13:34:37

JS開發(fā)習(xí)慣

2025-02-08 10:29:03

2011-06-16 10:25:29

AndroidAIR

2011-11-16 14:20:43

Adobe AIR

2011-11-16 13:47:05

2021-05-10 10:01:04

JavaScript開發(fā)技巧

2011-09-20 09:27:50

Web

2020-03-04 11:20:22

DSL開發(fā)領(lǐng)域特定語言
點(diǎn)贊
收藏

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