第一篇:廈門手機(jī)開(kāi)發(fā)培訓(xùn)—軟件工程師談Android開(kāi)發(fā)經(jīng)驗(yàn)
廈門手機(jī)開(kāi)發(fā)培訓(xùn)—軟件工程師談Android開(kāi)發(fā)經(jīng)驗(yàn)
Android一詞的本義指“機(jī)器人”,同時(shí)也是Google于2007年11月5日宣布的基于Linux的開(kāi)源手機(jī)操作系統(tǒng)的名稱,該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用程序組成,是首個(gè)真正為移動(dòng)終端打造的開(kāi)放并且完整的移動(dòng)平臺(tái)。2008年9月
22日,美國(guó)運(yùn)營(yíng)商T-MobileUSA在紐約正式發(fā)布第一款Google手機(jī),即T-MobileG1,廈門博看文思知道從那個(gè)時(shí)候起,Android的時(shí)代就真正的來(lái)臨了。
從Android1.0至今經(jīng)歷了多次的版本更新,其中重要的變更是1.5、2.0和2.2。而其他的版本更新相對(duì)而言并不是那么重要。另外,由于每次更新都會(huì)多少改動(dòng)包括Dalvik在內(nèi)的底層模塊,同時(shí)牽扯到SDK,導(dǎo)致了一些程序需要跟著Android版本進(jìn)行變動(dòng)。對(duì)于相對(duì)較為保守的開(kāi)發(fā)人員而言,快速的版本更新將給他們帶來(lái)越來(lái)越大的限制。在這種情況下,Android開(kāi)源的意義就顯得不是那么大了。
無(wú)論如何,由于Android與Google服務(wù)的緊密捆綁,這款操作系統(tǒng)擁有了得天獨(dú)厚的優(yōu)勢(shì)。通過(guò)Google強(qiáng)有力的支持,很多事情在Android上都會(huì)變得很簡(jiǎn)單。另外需要特別提出的是,Android是一款基于互聯(lián)網(wǎng)的操作系統(tǒng),在可以連接上互聯(lián)網(wǎng)的情況下,一款A(yù)ndroid手機(jī)可以發(fā)揮出比其他手機(jī)更多的能力。而在沒(méi)有網(wǎng)絡(luò)的情況下,Android手機(jī)并不比其他的手機(jī)出色,尤其是娛樂(lè)性相對(duì)于iPhone可以說(shuō)是遜色不少。作為廈門博看文思開(kāi)發(fā)人員,應(yīng)當(dāng)在學(xué)習(xí)并深入了解Android之后,在自己的軟件中,將Android的優(yōu)勢(shì)發(fā)揮出來(lái),同時(shí)通過(guò)一些手段去彌補(bǔ)Android本身的缺陷或不足。下面來(lái)看一下廈門博看文思Android擁有的特點(diǎn)吧:
?與硬件交互非常方便,包括攝像頭、GPS等,都可以簡(jiǎn)單的操作。
?擁有自己的運(yùn)行時(shí)和虛擬機(jī),優(yōu)秀的內(nèi)存管理能力。
?提供豐富的界面控件供開(kāi)發(fā)者使用,允許可視化開(kāi)發(fā),并保證Android平臺(tái)下的應(yīng)用程序界面一致。
?提供輕量級(jí)的進(jìn)程間通信機(jī)制。
?支持無(wú)界面的后臺(tái)服務(wù)類應(yīng)用程序。
?支持高效、快速的數(shù)據(jù)存取方式。
在這些特性的支持下,試圖在Android下開(kāi)發(fā)一個(gè)應(yīng)用不會(huì)太過(guò)困難。事實(shí)上,一個(gè)稍有Java經(jīng)驗(yàn)的開(kāi)發(fā)人員,都可以快速的上手進(jìn)行Android的開(kāi)發(fā)。而開(kāi)發(fā)的核心,一直以來(lái)也是圍繞著Android手機(jī)幾個(gè)大的特點(diǎn)來(lái)進(jìn)行的,其中就包括了觸摸屏、攝像頭、GPS模塊、互聯(lián)網(wǎng)功能、語(yǔ)音輸入、Google賬戶等。需要說(shuō)的是,如果一位J2ME工程師想轉(zhuǎn)行做Android,那么他將付出的代價(jià)比J2SE或J2EE工程師要大得多。
畢竟Android所支持的是基本完整的J2SE的子集,反過(guò)來(lái)再看J2ME就會(huì)覺(jué)得它的功能太弱了。
除了Java外,還有許多語(yǔ)言支持Android的開(kāi)發(fā),比較為人所熟知的有Scala,而作為Android本身的底層語(yǔ)言,C/C++的作用也完全不可忽視。而目前的開(kāi)源社區(qū)內(nèi),已經(jīng)有一些牛人在嘗試讓更多的語(yǔ)言可以開(kāi)發(fā)Android應(yīng)用。比較有代表性的可能是KoushikDutta,他已經(jīng)解決了在Mono平臺(tái)下,讓Dalvik調(diào)用Mono代碼的問(wèn)題?;蛟S在不久的將來(lái),.NET下的所有語(yǔ)言,都有可能借助Mono跑在Android上,這是一件值得讓人期待的事情。
語(yǔ)言已不是問(wèn)題,那還有什么會(huì)成為問(wèn)題?也許很多人會(huì)說(shuō)經(jīng)驗(yàn)。誠(chéng)然,經(jīng)驗(yàn)決定了一位開(kāi)發(fā)人員能否快速地、流暢地完成開(kāi)發(fā)工作,也決定了軟件的魯棒性,Bug的數(shù)量、等級(jí)和修正問(wèn)題的返工次數(shù)。不過(guò)我認(rèn)為,這些都不重要,哪怕是一個(gè)
Android行業(yè)的新人,一邊查詢文檔一邊做開(kāi)發(fā),雖然效率會(huì)很低,但是一樣能把項(xiàng)目做完。在Android下,開(kāi)發(fā)技術(shù)幾乎是沒(méi)有瓶頸的。那么瓶頸在哪里呢?事實(shí)上,在用過(guò)很多軟件后,就會(huì)發(fā)現(xiàn),有很多軟件并不好用。很多用戶不愿意用某個(gè)軟件,也并不是因?yàn)檐浖](méi)有技術(shù)含量或是滿足不了需求,原因很簡(jiǎn)單,就是不好用。
第二篇:廈門手機(jī)開(kāi)發(fā)培訓(xùn)Android手機(jī)模式分析
廈門手機(jī)開(kāi)發(fā)培訓(xùn)Android手機(jī)模式分析
第一部分其實(shí)游戲就是廈門博看文思讓狀態(tài)機(jī)不斷的讓Canvas在View上畫(huà)你想要的東西。這個(gè)狀態(tài)機(jī)包括內(nèi)部的執(zhí)行,還包括外部的輸入。
Android開(kāi)發(fā)的MVC模式
1,通過(guò)View和SurfaceView來(lái)顯示界面的視圖。(處理界面與用戶的交互事件,如,觸筆點(diǎn)擊,用戶按鍵等??赏ㄟ^(guò)View類的onKeyDown,onKeyUp,onTouchEvent等)。
2,用Activity來(lái)控制游戲的整體結(jié)構(gòu)。
3,設(shè)計(jì)一個(gè)邏輯類,用來(lái)處理邏輯運(yùn)算。
Android中任何一個(gè)View類都只有重寫onDraw方法來(lái)實(shí)現(xiàn)界面顯示。
Android中提供了
onKeyUp,onKeyDown,onKeyMultiple,onKeyPreIme,onTouchEvent,onTrackballEvent等方法??梢杂脕?lái)處理游戲中的事件消息。所以繼承View時(shí),需要重載這些方法。Android中提供了invalidate來(lái)刷新界面,但invalidate不能直接在線程中調(diào)用,違背單線程模型。
因此Android中最常用的方法是利用Handler來(lái)時(shí)更新UI界面。
第一部分View類
每個(gè)View類都有一個(gè)繪畫(huà)的畫(huà)布,在游戲中可以自定義視圖View,任何一個(gè)View類都只需要重寫onDraw方法來(lái)實(shí)現(xiàn)界面顯示,可以是3D,也可以是文本。
游戲的核心就是不斷的繪圖和刷新,圖我們可以通過(guò)onDraw方法繪制,刷新
Android中可以用invalidate方法來(lái)刷新界面,注意:invalidate不能直接在線程中調(diào)用,因其違背了
違背單線程模型。因此Android中最常用的方法是廈門博看文思利用Handler來(lái)時(shí)更新UI界面。下面這個(gè)例子中包含了兩個(gè)刷新方法。
第三篇:廈門手機(jī)開(kāi)發(fā)培訓(xùn)分析Android自動(dòng)化解決方案
廈門手機(jī)開(kāi)發(fā)培訓(xùn)分析Android自動(dòng)化解決方案
現(xiàn)在,已經(jīng)有大量的Android自動(dòng)化測(cè)試架構(gòu)或工具可供我們廈門博看文思使用使用,其中包括:ActivityInstrumentation,MonkeyRunner,Robotium,以及Robolectric。另外LessPainful也提供服務(wù)來(lái)進(jìn)行真實(shí)設(shè)備上的自動(dòng)化測(cè)試。
Android自身提供了對(duì)instrumentation測(cè)試的基本支持,其中之一就是位于
android.test包內(nèi)的ActivityInstrumentationTestCase2類,它擴(kuò)展了JUnit的TestCase類來(lái)提供Androidactivities的功能測(cè)試。在應(yīng)用測(cè)試中,每一個(gè)activity首先會(huì)被
Instrumentation初始化,然后再加載到Android模擬器或設(shè)備的Dalvik虛擬機(jī)中來(lái)執(zhí)行。
AndroidSDK自帶一個(gè)測(cè)試工具M(jìn)onkeyRunner,它提供的API和執(zhí)行環(huán)境可以運(yùn)行Python語(yǔ)言編寫的測(cè)試代碼。它提供API來(lái)連接設(shè)備,安裝/卸載應(yīng)用,運(yùn)行應(yīng)用,截屏,比對(duì)圖片來(lái)判斷特定命令執(zhí)行后的屏幕是否包含預(yù)期信息,以及運(yùn)行對(duì)應(yīng)用的測(cè)試。MonkeyRunner使用ActivityInstrumentationTestCase2,ProviderTestCase,ServiceTestCasek,SingleLaunchActivityTestCase及其他類來(lái)定義測(cè)試用例,并使用InstrumentationTestRunner類來(lái)運(yùn)行測(cè)試。
Robotium是另一種通過(guò)InstrumentationTestRunner來(lái)完成Android交互式測(cè)試的架構(gòu),它橫跨多個(gè)activities,支持功能測(cè)試,系統(tǒng)測(cè)試和接收測(cè)試。Robotium支持Activities、Dialogs、Toasts、Menus、ContextMenus甚至Honeycomb,并且它可以同Maven和Ant集成來(lái)完成持續(xù)集成測(cè)試。Robotium被稱之為針對(duì)Android應(yīng)用的又一個(gè)Selenium。
Robolectric另辟蹊徑,它并不依賴于Android提供的測(cè)試功能,它使用了
shadowobjects并且運(yùn)行測(cè)試于普通的工作站/服務(wù)器JVM,不像模擬器或設(shè)備需要
dexing(Androiddex編譯器將類文件編譯成Android設(shè)備上的DalvikVM使用的格式),打包,部署和運(yùn)行的過(guò)程,大大減少了測(cè)試執(zhí)行的時(shí)間。Pivotal實(shí)驗(yàn)室聲稱使用Robolectric可以在28秒內(nèi)運(yùn)行1047個(gè)測(cè)試。
廈門博看文思知道LessPainful將Android測(cè)試又推進(jìn)了一步,它提供了一個(gè)多設(shè)備平臺(tái)自動(dòng)化測(cè)試的服務(wù)。用戶上傳應(yīng)用(*.apk)和用Cucumber(一種業(yè)務(wù)相關(guān)的DSL)編寫的測(cè)試文件,選擇測(cè)試運(yùn)行需要的設(shè)備配置,最后測(cè)試將自動(dòng)執(zhí)行并生成測(cè)試報(bào)告。它支持的設(shè)備包括GarminAsus,幾款HTC,LG,SamsungGalaxy,SonyXperia和MotorolaMotodefy。
第四篇:廈門手機(jī)開(kāi)發(fā)培訓(xùn)關(guān)于Android開(kāi)發(fā)環(huán)境的構(gòu)建方法總結(jié)
廈門手機(jī)開(kāi)發(fā)培訓(xùn)關(guān)于Android開(kāi)發(fā)環(huán)境的構(gòu)建方法總結(jié)
廈門博看文思本方法適用于AndroidSDK2.1環(huán)境下的程序開(kāi)發(fā)
安裝JDK
?在java.sun.com下載JDK并安裝。
?在“系統(tǒng)屬性”的“高級(jí)”選項(xiàng)卡中點(diǎn)擊“環(huán)境變量”,然后添加如下系統(tǒng)環(huán)境變量:
1.在PATH環(huán)境變量后追加JDK安裝路徑中的bin路徑,本機(jī)為:
C:ProgramFilesJavajdk1.6.0_18bin
2.新建CLASSPATH環(huán)境變量或在CLASSPATH環(huán)境變量后追加JDK安裝路徑中的lib路徑和demo路徑,本機(jī)為:
C:ProgramFilesJavajdk1.6.0_18demo;C:ProgramFilesJavajdk1.6.0_18lib安裝Eclipse
?在eclipse.org下載EclipseIDEforJavaDevelopers的Windows32bit版本。?下載完成后解壓即可使用。
安裝AndroidSDKOR離線安裝
?在AndroidDevelopers下載android-sdk_r05-windows.zip,下載完成后解壓到任意路徑。
?運(yùn)行SDKSetup.exe,點(diǎn)擊AvailablePackages,如果沒(méi)有出現(xiàn)可安裝的包請(qǐng)點(diǎn)擊Settings,選中Misc中的“Forcehttps://...”這項(xiàng),再點(diǎn)擊AvailablePackages。
?選擇希望安裝的SDK及其文檔或者其它包,點(diǎn)擊InstallationSelected、AcceptAll、InstallAccepted,開(kāi)始下載安裝所選包
?添加SDK安裝目錄中的tools文件夾路徑至系統(tǒng)PATH環(huán)境變量,本機(jī)為:C:Androidandroid-sdk-windowstools
關(guān)于離線安裝
用廈門博看文思上面方法更新的時(shí)候速度很慢。
更要等很久。所以我們可以直接把那些包下載下來(lái)安裝。
地址就是
https://dl-ssl.google.com/androi...2.0_r01-windows.zip
https://dl-ssl.google.com/androi...2.1_r01-windows.zip
https://dl-ssl.google.com/androi...-1.1_r1-windows.zip
https://dl-ssl.google.com/androi...1.5_r03-windows.zip
https://dl-ssl.google.com/androi...1.6_r02-windows.zip
https://dl-ssl.google.com/androi...ver_r03-windows.zip
https://dl-ssl.google.com/androi...ogle_apis-6_r01.zip
https://dl-ssl.google.com/androi...ogle_apis-5_r01.zip
https://dl-ssl.google.com/androi...ogle_apis-4_r02.zip
https://dl-ssl.google.com/androi...ogle_apis-7_r01.zip
下完之后,名字以android的,解壓到platforms里面;
以google_apis開(kāi)頭的,解壓到addons里面。
usb驅(qū)動(dòng)的,直接解壓到根目錄。
安裝Eclipse插件ADT
?StartEclipse,thenselectHelp>InstallNewSoftware.?IntheAvailableSoftwaredialog,clickAdd...?
IntheAddSitedialogthatappears,enteranamefortheremotesite(forexample,“AndroidPlugin”)inthe“Name”field.Inthe“Location”field,enterthisURL:
https://dl-ssl.google.com/android/eclipse/
如果無(wú)法通過(guò)上面的地址獲得插件,可將https替換為http。
(httpsispreferredforsecurityreasons)
BackintheAvailableSoftwareview,youshouldnowsee“DeveloperTools”addedtothelist.?
SelectthecheckboxnexttoDeveloperTools,whichwillautomaticallyselectthenestedtoolsAndroidDDMSandAndroidDevelopmentTools.ClickNext.?
IntheresultingInstallDetailsdialog,theAndroidDDMSandAndroidDevelopmentToolsfeaturesarelisted.?
ClickNexttoreadandacceptthelicenseagreementandinstallanydependencies,thenclickFinish.?RestartEclipse.配置ADT
在Eclipse中:
?選擇Window>Preferences...?在左邊的面板選擇Android,然后在右側(cè)點(diǎn)擊Browse...并選中SDK路徑,本機(jī)為:C:Androidandroid-sdk-windows
?點(diǎn)擊Apply、OK。配置完成。
創(chuàng)建AVD
為使Android應(yīng)用程序可以在模擬器上運(yùn)行,必須創(chuàng)建AVD。
?在Eclipse中。選擇Windows>AndroidSDKandAVDManager
?點(diǎn)擊左側(cè)面板的VirtualDevices,在右側(cè)點(diǎn)擊New
?填入Name,選擇Target的API,SDCard大小任意,Skin隨便選,Hardware目前保持默認(rèn)值
?點(diǎn)擊CreateAVD即可完成創(chuàng)建AVD
第五篇:Android開(kāi)發(fā)工程師學(xué)習(xí)路線
Android開(kāi)發(fā)工程師學(xué)習(xí)路線:手機(jī)產(chǎn)品開(kāi)發(fā)要從基礎(chǔ)開(kāi)發(fā)知識(shí)做起
Android開(kāi)發(fā)工程師學(xué)習(xí)路線圖:想要做好手機(jī)產(chǎn)品開(kāi)發(fā)要先從基礎(chǔ)開(kāi)發(fā)知識(shí)做起,要學(xué)好基礎(chǔ)語(yǔ)言開(kāi)發(fā),即java語(yǔ)言開(kāi)發(fā),然后逐步提升自身的產(chǎn)品路線,將制作產(chǎn)品的每一步都進(jìn)行完整的規(guī)劃,并且將每一步要實(shí)現(xiàn)的功能做好設(shè)計(jì)。掌握基礎(chǔ)開(kāi)發(fā)知識(shí),能夠很好地掌握java語(yǔ)言的內(nèi)涵,然后通過(guò)這一語(yǔ)言來(lái)實(shí)現(xiàn)程序框架中每一步的功能,并且將程序框架中的每一步都進(jìn)行完善的規(guī)劃,避免出現(xiàn)這樣或那樣的問(wèn)題,在設(shè)計(jì)程序過(guò)程中也要掌握各種各樣的算法。
千鋒教育是Android培訓(xùn)行業(yè)領(lǐng)導(dǎo)者,千鋒教育的Android開(kāi)發(fā)基礎(chǔ)班是從java開(kāi)始指導(dǎo)學(xué)員學(xué)起,掌握了java語(yǔ)言,然后進(jìn)行整體的產(chǎn)品規(guī)劃。通過(guò)程序來(lái)實(shí)現(xiàn)產(chǎn)品設(shè)計(jì)中的每一步作用。很多Android開(kāi)發(fā)人才都在后續(xù)工作上引入U(xiǎn)I設(shè)計(jì)思想,把UI理念融入到產(chǎn)品設(shè)計(jì)中去,并且提升自身的學(xué)習(xí)模式,通過(guò)程序整體實(shí)現(xiàn)產(chǎn)品的性能。決定一個(gè)好的產(chǎn)品,程序員的學(xué)習(xí)質(zhì)量非常重要,只有提升學(xué)習(xí)質(zhì)量,把在開(kāi)發(fā)過(guò)程中遇到的問(wèn)題進(jìn)行解決才是最根本的。千鋒教育Android培訓(xùn)課程模塊化,指導(dǎo)學(xué)員學(xué)習(xí)完階段性課程,指導(dǎo)學(xué)員完成自己的產(chǎn)品,讓學(xué)員在開(kāi)發(fā)過(guò)程中遇到的問(wèn)題進(jìn)行解決。
Android開(kāi)發(fā)學(xué)習(xí)過(guò)程中要掌握好基礎(chǔ)知識(shí),特別是java語(yǔ)言的應(yīng)用,然后逐步提升學(xué)員在學(xué)習(xí)過(guò)程中遇到的一些細(xì)致化的問(wèn)題,把一些難點(diǎn)進(jìn)行解決,在開(kāi)發(fā)過(guò)程中把容易出現(xiàn)的一些難點(diǎn)進(jìn)行合理化控制,避免在程序生成產(chǎn)品后出現(xiàn)問(wèn)題,從而導(dǎo)致崩潰,這是非常重要的一點(diǎn)。