在移動互聯(lián)網(wǎng)快速發(fā)展的時代,android開發(fā)可以說是當(dāng)前的一個熱門職業(yè)。那么在學(xué)習(xí)android開發(fā)過程中,我們有哪些相關(guān)問題需要了解呢?中培偉業(yè)《android APP開發(fā)架構(gòu)應(yīng)用實戰(zhàn)》培訓(xùn)專家張老師在這里介紹了與該職業(yè)密切相關(guān)的10個問題,并對這些問題進(jìn)行了詳細(xì)解答,希望可以對大家的選擇有所幫助。
何謂Android?
做什么事情首先就應(yīng)該知道自己做的是什么,作為一個android開發(fā)者首先就應(yīng)該知道什么是Android。張老師介紹,“android”一詞的本義指“機(jī)器人”,同時也是Google于2007年11月5日宣布的基于Linux平臺的開源手機(jī)操作系統(tǒng)的名稱,該平臺由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,號稱是首個為移動終端打造的真正開放和完整的移動軟件。簡單來說是個開源的手機(jī)操縱系統(tǒng)。
Android開發(fā)者的就業(yè)前景如何
張老師指出,Android是Google開發(fā)的基于Linux平臺的開源移動操作系統(tǒng)。它包括操作系統(tǒng)、用戶界面和應(yīng)用程序----移動電話工作所需的全部軟件,而且不存在任何以往阻礙移動產(chǎn)業(yè)創(chuàng)新的專有權(quán)障礙,號稱是首個為移動終端打造的真正開發(fā)和完整的移動軟件。
國外Android市場正在如日中天的擴(kuò)展,據(jù)市場調(diào)研機(jī)構(gòu)最近發(fā)布的一份報告稱,今年第一季度基于Android操作系統(tǒng)的智能手機(jī)在美國智能手機(jī)總銷量中所占比例達(dá)到28%,首度超過蘋果iphone,蘋果iphone約為21%,相信在不久的將來會有更多的用戶選擇Android系統(tǒng)的手機(jī)或是無線終端設(shè)備。
Android有哪些特點
張老師指出,任何技術(shù)都有其資深的特點,Android也不例外。張老師在這里介紹了Android的以下10個特點:
1)應(yīng)用程序框架:支持組件的復(fù)用和更換
2)Dalvik 虛擬機(jī):專門為移動設(shè)備進(jìn)行過優(yōu)化
3)集成的瀏覽器:基于開源的 WebKit 引擎 ,TV上會內(nèi)置Chrome瀏覽器
4)優(yōu)化的圖形機(jī)制:自定義的2D圖形庫,基于OpenGL ES 1.0規(guī)范的3D圖形實現(xiàn)(本項為硬件加速器可選)
5)SQLite:輕量級的數(shù)據(jù)庫,支持結(jié)構(gòu)化數(shù)據(jù)的存儲
6)媒體支持:面向常見的音頻、視頻以及靜態(tài)圖形檔案格式 (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
7)GSM 技術(shù) GSM:global system for mobile communications (依賴硬件支持)
8)Bluetooth, EDGE, 3G, and WiFi (依賴硬件支持)
9)Camera, GPS, compass, and accelerometer (依賴硬件支持)
10)Rich development environment:豐富的開發(fā)環(huán)境,包含一套硬件仿真器,一些用于程序調(diào)試、內(nèi)存和性能剖析的工具,以及支持Eclipse集成開發(fā)環(huán)境的插件(ADT )。
學(xué)習(xí)android需要哪些基礎(chǔ)
張老師介紹,學(xué)習(xí)Android一定要有Java基礎(chǔ),最差也要類似Java的其他面對像對象語言的基礎(chǔ)。很多朋友從來沒有搞過編程,聽說Android能賺錢,就瘋了一樣沖過來要學(xué)習(xí)。這明顯是不靠譜的,甚至有的朋友一個字母一個字母的按照我的例子去敲代碼,然后非常努力的把代碼背下來。像背英文單詞一樣的背代碼,這其實是不可取的!不管怎樣,你最少也要掌握J(rèn)ava語言的如下知識點才能夠開始學(xué)Android:
a)Java基本數(shù)據(jù)類型及其特點
b)Java分支語句和循環(huán)語句的使用
c)類和對象的創(chuàng)建和使用方法
d)函數(shù)的使用
e)抽象類和接口
f)繼承和實現(xiàn)
g)對象的多態(tài)性
h)包和訪問權(quán)限
i)異常的處理
j)類集框架
k)eclipse的基本用法
Android上編程使用的開發(fā)語言
張老師指出,Android應(yīng)用基于Java,支持SQL,由于底層是Linux所以底層支持C/C++。
目前有兩種編程:
1)基于ADT的JAVA編程
2)基于NDK的C編程
Android開發(fā)需要的編程環(huán)境
張老師指出編程離不開以下環(huán)境:Ide 、Android SDK、JDK、Java
官方推薦用JDK+ECLIPSE+ADT+ADK(WINDOWS開發(fā)環(huán)境下。
何謂APK
APK是Android Package的縮寫,即Android安裝包(anapk)。APK是類似Symbian Sis或Sisx的文件格式。通過將APK文件直接傳到Android模擬器或Android手機(jī)中執(zhí)行即可安裝。
apk文件和sis一樣最終把android sdk編譯的工程打包成一個安裝程序文件格式為apk。 APK文件其實是zip格式,但后綴名被修改為apk,通過UnZip解壓后,可以看到Dex文件,Dex是Dalvik VM executes的全稱,即Android Dalvik執(zhí)行程序,并非Java ME的字節(jié)碼而是Dalvik字節(jié)碼。
何謂SDK
張老師的回答是,SDK,Software Development Kit 的縮寫,中文即“軟件開發(fā)工具包”。廣義上指輔助開發(fā)某一類軟件的相關(guān)文檔、范例和工具的集合。
什么是API
所謂,API(Application Programming Interface)其實就是操作系統(tǒng)留給應(yīng)用程序的一個調(diào)用接口,應(yīng)用程序通過調(diào)用操作系統(tǒng)的 API 而使操作系統(tǒng)去執(zhí)行應(yīng)用程序的命令(動作)。
什么是TCP協(xié)議和UDP協(xié)議
張老師介紹,TCP/IP協(xié)議的名稱中只有TCP這個協(xié)議名,但是在TCP/IP的傳輸層同時存在TCP和UDP兩個協(xié)議。Tranfer Control Protocol的簡稱,是一種面向連接的保證可靠傳輸?shù)膮f(xié)議。通過TCP協(xié)議傳輸,得到的是一個順序的無差錯的數(shù)據(jù)流。發(fā)送方和接收方的成對的兩個socket之間必須建立連接,以便在TCP協(xié)議的基礎(chǔ)上進(jìn)行通信,當(dāng)一個socket(通常都是server socket)等待建立連接時,另一個socket可以要求進(jìn)行連接,一旦這兩個socket連接起來,它們就可以進(jìn)行雙向數(shù)據(jù)傳輸,雙方都可以進(jìn)行發(fā)送或接收操作。
UDP協(xié)議是User Datagram Protocol的簡稱,是一種無連接的協(xié)議,每個數(shù)據(jù)報都是一個獨立的信息,包括完整的源地址或目的地址,它在網(wǎng)絡(luò)上以任何可能的路徑傳往目的地,因此能否到達(dá)目的地,到達(dá)目的地的時間以及內(nèi)容的正確性都是不能被保證的。