給菜鳥看的Android應(yīng)用開發(fā)全流程——好多Android開發(fā)中,,沒人告訴過你的事 很多菜鳥開始學(xué)習(xí)Android開發(fā),去網(wǎng)上搜集過很多“Android開發(fā)教程”,,但是搜索出來的東西,,如果不是特別針對(duì)性的關(guān)鍵詞,基本上內(nèi)容都是:環(huán)境配置-工具安裝-第一個(gè)Hello Android項(xiàng)目-項(xiàng)目結(jié)構(gòu),、文件作用-布局-控件-……等等涉及具體開發(fā)內(nèi)容的文章,,最后打包發(fā)布了事;且不說這些文章又有一大半都是互相轉(zhuǎn)載來轉(zhuǎn)載去,,單看內(nèi)容,,大部分都是講具體功能實(shí)現(xiàn)手段,或者某個(gè)API怎么用,,然而很多細(xì)節(jié)可能雖然確實(shí)很簡(jiǎn)單,,卻往往令菜鳥迷惑頭痛不已……唉,我當(dāng)年不堪回首的歲月??!雖然這些問題可能日后看來是小意思,,但當(dāng)初一個(gè)菜鳥可能根本不知道這個(gè)問題的存在,更不用說用什么詞去搜索,;所以雖然這些問題可能也是有專門文章講,,但菜鳥們根本不知道這個(gè)關(guān)鍵字啊~~~~ 本人靠著一本書+網(wǎng)上各種搜,現(xiàn)在總算能完成一個(gè)完整的Android開發(fā)流程,?;仡^看看,總結(jié)一下這些經(jīng)驗(yàn),,即給自己加深印象,,也幫助后來的菜鳥,也是功德無量啊,。 話說本人半路出家,,編程水平實(shí)在一般,所以此文重點(diǎn)在流程,,至于技術(shù)細(xì)節(jié)和各種實(shí)現(xiàn)功能的技巧,,還是專門搜索專業(yè)的文章吧,,不過想必彼時(shí)已經(jīng)能夠知道自己想要什么了,,那些問題也就不算個(gè)事了。 該流程基本是本人的經(jīng)驗(yàn)總結(jié),,未必是完全官方和教科書式的,。不過雖然不一定是最好的解決辦法,但起碼都走得通,,替后來人排除一些彎路,。如果有幸被大牛看到此文,,還請(qǐng)對(duì)不妥之處不吝賜教,,哪怕路過留個(gè)名也好啊~
一、準(zhǔn)備工作 1. 技能儲(chǔ)備 1) Java 重要程度:★★★★★ 當(dāng)然是掌握的越多越好,,畢竟Android就是用Java語言來開發(fā)的,。遇到很多沒有Java基礎(chǔ)的朋友問:要想直接學(xué)Android,Java應(yīng)該掌握到什么程度,?個(gè)人認(rèn)為,,如果一個(gè)熟練的Java程序員技能算100分的話,掌握到40-50分,,基本開發(fā)Android不會(huì)有語言上的太大障礙了,。其實(shí)主要也就是Java的類、繼承,、接口,、IO,、XML解析等這些基本的操作掌握了也就可以開始用Android開發(fā)些簡(jiǎn)單應(yīng)用了。話說我一個(gè)朋友完全沒有Java基礎(chǔ),,直接上手開發(fā)Android,,沒幾天也就能寫出個(gè)應(yīng)用,雖然他是個(gè)C++和C#高手……編程這玩意很多東西都是相通的,,基本的搞明白了,,再學(xué)學(xué)Java特有的也就算入門了。不過還是強(qiáng)烈建議——掌握的越多越好,。 不過也不用摸不著頭腦,,太刻意去學(xué),沒目標(biāo)抱著本《Java編程思想》學(xué)也不見得有多大效果,。自己動(dòng)手做個(gè)Android小應(yīng)用,,遇到問題了回頭再針對(duì)性的去學(xué)Java。我這個(gè)半吊子也是這樣,,開發(fā)Android時(shí),,經(jīng)常碰到一些Java比較基礎(chǔ)的類的使用,但當(dāng)時(shí)沒弄明白,,所以需要回頭專門再看看,。 2) XML 重要程度:★★★★ Android開發(fā)中很重要的一類文件,也是一種標(biāo)記語言,,與平臺(tái)和編程語言無關(guān),,所以一般用來保存和傳遞各種數(shù)據(jù)、參數(shù),。在Android中,,很多配置信息、數(shù)據(jù)存儲(chǔ),,尤其是Android界面,,要大量的和xml打交道。雖然很重要,,但其實(shí)并不復(fù)雜,,找些基本教程看看,明白xml結(jié)構(gòu)和語法特點(diǎn)也就基本夠用了,。(這里順便強(qiáng)烈推薦新手一個(gè)入門網(wǎng)站:http://www.w3school.com.cn/,,簡(jiǎn)潔,全面,,有力,!沒有多余的廢話,頁面干凈無廣告!……最主要我覺得有一定的權(quán)威性,,作為XML等學(xué)習(xí)的入門網(wǎng)站和查詢工具很有用) 3) 數(shù)據(jù)庫 重要程度:★★★ Android要保存數(shù)據(jù),,經(jīng)常使用內(nèi)置的SQLite數(shù)據(jù)庫,可以使用SQL查詢語言操作,。所以如果有數(shù)據(jù)庫使用經(jīng)驗(yàn),,這個(gè)就簡(jiǎn)單多了。如果沒接觸過,,就了解一些基本的SQL語句:增加,、刪除、修改,、查詢,。 4) Dos 重要程度:★★ 這個(gè),貌似也談不上掌握了,,會(huì)操作就行了,,因?yàn)橹芭龅綆讉€(gè)哥們,確實(shí)連cd,,dir等一點(diǎn)dos操作都不會(huì)用,,這就稍微麻煩點(diǎn)了,因?yàn)闊o論一開始配置java,,還是最后生成簽名,,當(dāng)然還有很多場(chǎng)合會(huì)需要在Dos環(huán)境操作,雖然可能有部分操作已經(jīng)有圖像界面替代了,,但還是稍微看看吧,,起碼很酷么~~ 5) Linux 重要程度:★ 好像不應(yīng)該是“重要程度”,,應(yīng)該是會(huì)使用程度吧,。Android本身是基于Linux內(nèi)核開發(fā),說不重要可能會(huì)被拍唉,。 主要就是會(huì)一些基本的linux命令,,su,sh,cd什么的,后期調(diào)試Android程序可能會(huì)用到,,比如查看SQLite數(shù)據(jù),。也不用特意去學(xué),需要的時(shí)候網(wǎng)上現(xiàn)找找,,多用幾次也就記住了,。 2. 工具準(zhǔn)備 1) Eclipse 最強(qiáng)大的Java開發(fā)工具,安裝Android開發(fā)插件后可以方便快速的開發(fā)和調(diào)試Android程序,。 2) Android SDK Android開發(fā)工具包,,包括核心API,AVD(Android虛擬設(shè)備)等,可以到Android官網(wǎng)下載,。具體安裝配置就不多寫了,,網(wǎng)上很多,我再引用這文章寫成書了…… 參考:http://android.tgbus.com/Android/tutorial/200812/171154.shtml 3) Java SDK Java工具包,,包括JDK和JRE,,可到Java官網(wǎng)下載。 安裝,,配置環(huán)境變量,。 參考:http://blog.csdn.net/huanghm88/article/details/3965218(很全,一般到path和classpath設(shè)置完就ok了) 4) 其他 FireWorks:用于編輯png圖片,,Android中主要的圖片格式,。純粹個(gè)人喜好,有其他圖片編輯工具也行,。 3. 文檔資料 1) 一本紙質(zhì)書 最好有本入門的紙質(zhì)書,,畢竟寫的質(zhì)量比較好的書能夠盡量全部的涵蓋Android開發(fā)各個(gè)方面,對(duì)新手很有幫助,。 說下我當(dāng)時(shí)看的吧:《深入淺出Google Android》,,人民郵電出版的,不過很老了,,09年的,,還是基于Android API1.5。 2) API文檔 Java API,,Android API,,重要的查詢手冊(cè)。不能上傳附件,,這個(gè)搜一下吧,,很多。 二,、開發(fā) 1. 建立項(xiàng)目 在Eclipse中新建一個(gè)Android項(xiàng)目,,基本流程是:新建項(xiàng)目,選擇Android Project,,然后輸入package名,、應(yīng)用名和Activity名,選擇Android Api版本,。 菜鳥提示:package,,包名,一般的命名規(guī)則是盡量獨(dú)一無二,,方便區(qū)分和管理,,所以一般比較規(guī)范的命名都是公司域名的倒寫,比如google的包,google域名是google.com,,所以包名是:com.google.* 2. 基本開發(fā)流程 1) 構(gòu)思布局,,用xml構(gòu)建基本的布局和控件 2) 寫java程序,實(shí)體化xml的布局,、控件,、實(shí)現(xiàn)業(yè)務(wù)邏輯。 菜鳥提示:很多控件既可以在xml文件中設(shè)定各種屬性,,也可以在java文件中設(shè)定屬性,;通常如果需要?jiǎng)討B(tài)的改變某些屬性,比如setText(),,則需要在java中實(shí)現(xiàn),,這也是非常常用的,比如按下按鍵,,按鍵顏色變深等等,。 3) 運(yùn)行,調(diào)試程序:即可以使用Android模擬器調(diào)試,,也可以通過數(shù)據(jù)線,,直接接手機(jī)調(diào)試。提示:如果是用模擬器調(diào)試,,調(diào)試后需要修改程序再次調(diào)試時(shí),,不需要關(guān)閉模擬器,直接再次運(yùn)行就可以,。 4) 美化,、找圖片:菜鳥提示:Android標(biāo)準(zhǔn)圖標(biāo)根據(jù)手機(jī)分辨率不同,分別有36*36/48*48/72*72這三種尺寸,,你會(huì)看到drawable-hdpi/drawable-ldpi/drawable-mdpi不同的目錄用來存儲(chǔ)不同尺寸的圖標(biāo),,在AndroidManifest.xml中只需要寫@drawable/icon就可以,它會(huì)根據(jù)屏幕分辨率去找不同目錄下的圖標(biāo),。(參考:http://zl4393753./blog/1056785) 5) 關(guān)于應(yīng)用中的文字等引用資源:重點(diǎn)說說文字吧,,應(yīng)用中比如菜單名字,,標(biāo)題等,,既可以直接寫在java文件中,也可先寫在res/values/strings.xml文件里,。不過呢,,還是強(qiáng)烈建議,盡量都寫在strings.xml文件里,,這樣以后要修改文字,,直接改這個(gè)文件就行,否則在java程序里找可費(fèi)了大勁了,尤其是要開發(fā)多語言版本的話,,所有文字全部要改成外語,,當(dāng)然還是在strings.xml里寫方便的多。養(yǎng)成個(gè)好習(xí)慣,,不要嫌麻煩,,Android系統(tǒng)里專門弄這么個(gè)文件是有道理的。 6) 最后,,切記切記,,修改AndroidManifest.xml文件,修改版本信息,,加上需要的各種權(quán)限,,如發(fā)送短信,訪問網(wǎng)絡(luò)等等,,否則程序發(fā)布了,,很多相關(guān)功能沒法用。 三,、打包發(fā)布 每次發(fā)布前都是最激動(dòng)人心的時(shí)刻啊~然而這部分網(wǎng)上很少有專門講的(也許我手拙沒找到),,針對(duì)這部分我還專門到開發(fā)論壇發(fā)布了很多帖子提問,時(shí)至今日,,除了同樣困擾的菜鳥幫頂,,無人回答……鄙視一下。也正因如此,,動(dòng)了寫這篇文章的念頭,,Android開發(fā),很多東西簡(jiǎn)單,,但是從沒有人和你說過~ 1. 加入廣告 我們很多開發(fā)的應(yīng)用,,最終目的是發(fā)布到網(wǎng)上給大家用,如果順便能有收入也是我們的一項(xiàng)勞動(dòng)成果,,雖然很多很慘淡(又是我不堪回首的過去?。?/span> 1) 選擇廣告平臺(tái):常用的有Google的AdMob,,國內(nèi)的有:有米,,微云等等,至于說哪個(gè)效果最好,,眾說紛紜,,最好還是自己親自試試。還有一種平臺(tái)是各種廣告平臺(tái)的集成,,能根據(jù)使用者優(yōu)化,,動(dòng)態(tài)選擇,。但因?yàn)槟承╇娮邮袌?chǎng)不允許這個(gè),我就沒用,,也就暫時(shí)不點(diǎn)名了,,想試試的,百度……(我沒說是第一個(gè)哈~),。 不過呢,,最好固定一兩個(gè)效果比較好的,因?yàn)楹芏嗥脚_(tái)要提款的話,,必須達(dá)到一定額度,,而且太分散的話,自己添加著也挺麻煩的,。當(dāng)然,,如果這個(gè)平臺(tái)效果公認(rèn)的已經(jīng)落后了,還是要毅然換平臺(tái)的,,畢竟不同的廣告聯(lián)盟廣告主資源水平還是有差距,。 2) 普遍有一個(gè)說法,如果是針對(duì)國外的應(yīng)用,,最好還是Google的Admob,,針對(duì)英文環(huán)境能夠提供的廣告數(shù)量也多。不過本人沒用過,,不多說了,。至于為什么沒用,見下文,。 3) 進(jìn)入正題,,如何給程序加入廣告呢?通常步驟是:下載該平臺(tái)的sdk包,,把jar加入到你項(xiàng)目的buildpath,,然后在主程序里加上調(diào)用廣告的程序,再在界面中設(shè)置展示廣告的位置,,最后修改AndroidManifest.xml文件,,加入廣告涉及的程序、權(quán)限等,。然后,,歐了! 具體詳細(xì)的安裝方法,,看廣告平臺(tái)提供的說明文檔就行了,,放心,一定會(huì)非常詳細(xì),,一步一步教你,,因?yàn)樗麄儽饶愀M愕膽?yīng)用中展示他們的廣告。 2. 添加最終用戶許可協(xié)議 類似License授權(quán)使用之類的,,可能你已經(jīng)在某些程序中見過,,第一次啟動(dòng),顯示的那一大篇文字,,卻幾乎不看,,直接點(diǎn)“Accept”……具體添加步驟……網(wǎng)上還真沒有幾個(gè)講這玩意的,要不說很多東西沒人告訴你呢,。我還是從書上看來的,,好幾頁,也懶得抄了,。話說,,其實(shí)這東西主要就是保護(hù)你的知識(shí)產(chǎn)權(quán)的,也不知道是咱們?nèi)鄙龠@意識(shí),,還是太簡(jiǎn)單沒人寫,。 找了半天找到個(gè)老外寫的:http:///blog/tutorial/adding-eula-to-android-app/,差不多就是這個(gè)步驟,。我也只用過一次,,是在給摩托羅拉電子市場(chǎng)提交應(yīng)用時(shí),人家明確要求要有這個(gè)東西,。到時(shí)候需要的話就參考一下,,不想弄這個(gè)呢,也完全不影響你程序的正常使用,。 3. 數(shù)字簽名:你開發(fā)的Android應(yīng)用必須有簽名才能安裝,。之前調(diào)試的時(shí)候,是Android SDK自動(dòng)用默認(rèn)的簽名調(diào)試,,發(fā)布的時(shí)候必須要重新生成一個(gè)簽名,;另外,同一個(gè)應(yīng)用的不同版本,,要使用同一個(gè)簽名,,這樣安裝程序的時(shí)候,才會(huì)自動(dòng)升級(jí),,新版本代替舊版本,。否則,不同的簽名系統(tǒng)會(huì)認(rèn)為是不同的應(yīng)用,,而且包名(之前的package)必須不一樣,。具體簽名過程,參考這里:http://www.cnblogs.com/feisky/archive/2010/01/17/1650076.html 還有這里: 其實(shí)這里連帶打包都包括了,。 4. 打包為可安裝的apk文件:Eclipse中,右擊需要簽名的工程-->android tools-->export signed application package... 5. 發(fā)布你的應(yīng)用程序 1) 首先,,如果應(yīng)用中有廣告,,應(yīng)先上傳到對(duì)應(yīng)廣告平臺(tái)。審核通過后,,你的廣告才真正啟用,。 2) 發(fā)布到其他電子市場(chǎng)。這一步其實(shí)可以和上一步同時(shí)進(jìn)行,。但一般為了防止你沒測(cè)試到的錯(cuò)誤或者其他原因,,廣告平臺(tái)審核未通過,還需要再次修改,,而且一般的廣告平臺(tái)1~2個(gè)工作日就可以審核完成,,稍微等一下不誤事。 廣告審核通過后,,就可以發(fā)布到各大電子市場(chǎng)啦,! 以安卓市場(chǎng)為例,先要到這里注冊(cè)開發(fā)者身份,,然后提交你的應(yīng)用,,當(dāng)然一般還要提交應(yīng)用截圖等信息,截圖可以在模擬器上用電腦截圖,,也可以在手機(jī)上用截圖軟件截圖(推薦個(gè)截圖軟件:ScreenCapture,,http://bbs./thread-737845-1-1.html下載)。 上傳完,,填好信息,,就等著審核吧。審核通過了,,正式上線,,然后你就可以在安卓電子市場(chǎng)搜索到你的應(yīng)用了~ 其他的電子市場(chǎng)類似,我常用的有: 其他還有好多,,木螞蟻,,愛米,機(jī)鋒網(wǎng)等等,。另外中國移動(dòng)MM市場(chǎng)不允許廣告,,要注意一下。其他電信,、聯(lián)通也有自己的應(yīng)用市場(chǎng),。 當(dāng)然,還有個(gè)最重要的Google的Android Market,,這個(gè)電子市場(chǎng)可是全球銷售啊~不過因?yàn)槟愣脑?,沒有直接的中國大陸地區(qū)注冊(cè),。要注冊(cè)這里的開發(fā)者,必有有個(gè)支持美元的信用卡,,而且需要25美元/每年(好像是)的注冊(cè)費(fèi),,注冊(cè)地中國地區(qū)最近的只有香港,,而且貌似有點(diǎn)麻煩,,所以我也沒去注冊(cè),有興趣的試試,。 其實(shí)直接把apk文件復(fù)制給別人就可以用了,,只不過電子市場(chǎng)終究是傳播最快的一種途徑。如果有自己的博客,、微博等等,,也可以發(fā)個(gè)鏈接推廣。 P.S.:多去論壇看看,,多提問,,還是會(huì)有很多同好回復(fù)的~多試驗(yàn)。再推薦兩個(gè)常用網(wǎng)站: http:///questions 一個(gè)老外的編程論壇,,繼承了老外事無巨細(xì),、不厭其煩解答的風(fēng)格,基本你能想到的問題大部分都有 http:/// 很棒的圖標(biāo)搜索網(wǎng)站,,美化必備,。 嗯,差不多就這些吧,,the END. Happy Androiding~
|
|