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

聯(lián)系客服