扯一扯關於android開發工具的破事,android開發工具
一、前言
開發android一轉眼之間已經過去一年多了,回想到以前剛開始學習android還是在大學裡面,那是看了mars的視頻教程就開始android之路,從最開始的環境搭建到開發項目,一步一步自己摸索進步,由於一直沒有遇到資深的android工程師帶領我,所以自己大部分學習來自於網路的blog,eoe論壇,所以我深愛技術分享這個東西,因為網路的強大是由於一大批人不為任何利益分享自己的技術,所以我們才能在網路上找到答案,就算沒有答案也可以找到前人研究的成果,我們就可以踩著前人的肩膀繼續前進,技術發展才會快速,牛頓都說他是踩在巨人的肩膀上成功的,我們難道就埋頭閉門造車嗎?哎,媽的,好久沒寫部落格,立馬就扯蛋扯遠了。回到正題,談談android開發入門,我們使用的開發工具。
二、以前我認為經典的開發套件
1、開發android我們首先需要一個java環境,這個毋庸置疑,如果這個都沒有的話去Google “java環境搭建” ,Google最近被天朝和諧了,不行就去bing也可以,百度那個太渣了,建議別用,如果你喜歡看各種培訓廣告,我不阻攔你去百度找度娘~~!
2、有了java環境就可以使用android最流行的ide(整合式開發環境)eclipse,應該是現在最流行的吧,我認為,以後就不知道了,應該Google出了更優秀的IDE----android studio,這個事後話,開發java的人應該沒有人不知道Eclipse的吧,雖然就強的java開發工具不是它,Eclipse的幾乎下載解壓就可以用,都不用什麼配置安裝的。
3、Eclipse開發android是用到了adt這個外掛程式,adt整合了一套開發android需要的東西,安裝也非常簡單,百度一下都能找到答案
廢話了這麼多,好像都沒有講具體要怎麼安裝,聲明一下,我是希望講思路,操作找Google,因為這個網路上已經非常多了,上面總結起來基本的環境搭建需要的工具有java+eclipse+adt,剛開始入門的新手可能看到上面就會認為搭建個環境要這麼複雜嗎?其實是不用這麼一步步來的,現在只要去下個java,然後去android官網下個adt就整合了Eclipse和adt和SDK,然後就可以跑起來一個helloworld了。只是跑了個helloworld後,我們還是瞭解多一點好,不然怎麼提升B格呢,是吧。來個串連做乾貨,不然大家覺得都是文字看起來也怪累的
java下載:http://www.google200.com/search/?q=java
adt下載:http://developer.android.com/
搞完這兩個就可以開發hello world了,跑你可以用adt裡面SDK的預設虛擬機器,當然這個虛擬機器跑得非常慢,慢到我們想罵娘,所以你可以用真機,當然你還可以用最快的genymotion基於x86架構的開發的虛擬機器,用過的人都說好。應該是誰用誰知道。
來個圖看下他的樣子
長得也比原生的好看
三、關於模擬器genymotion那些事
:http://www.genymotion.com/
說到genymotion我有要扯一下關於它的和開發的那些事,首先這個虛擬機器用的架構是x86的所有有些app在上面跑步起來,剛開始我還以為是程式有問題,後來才知道ARM和x86要相容要加一個外掛程式轉換一下,詳情可以研究http://forum.xda-developers.com/showthread.php?t=2528952這個文章。簡單來講就是下一個Genymotion-ARM-Translation,然後重啟一下模擬器就ok了。還有就是有可能安裝完genymotion,你串連不上genymotion伺服器,這個時候你只要改一下DNS為8.8.8.8應該就可以了,熟用它比用真機還爽。還有想到了一個做地圖開發的時候,這個模擬器可以直接點Google的地圖轉換為經緯度傳給模擬器,當時,我認為這個事跟哥倫布發現新大路一樣開心。暫時就扯這麼多,其他的好想沒有想到更多的。
四、網路抓包神器fiddler
:http://www.telerik.com/fiddler
做網路開發的時候,當網路出現了問題,或是想看網路資料時就做雞了,一開始我只知道調試和用tcpdump那兩個,用得特別不方便,特別是tcpdumg這個渣東西,當時一直鬱悶為神馬沒有像chome瀏覽器F12那樣簡單好用的工具呢,後來發現真的有只是我沒有發現。哎,可見有前人指導是多麼的重要啊。fiddler的原理就是在電腦上設定一個代理,然後手機或是模擬器用這個代理上網就可以看到資料流,非常方便。具體配置問度娘應該有。
關於這個抓包也有一些破事,這個抓包有時候會影響請求,大家注意了,當時我們用的在開發過程中了一個7牛的圖片伺服器,開著這個抓包上傳圖片是就會爆一個回應標頭出錯的問題導致程式崩潰,還找了7牛的技術人員問了半天,他們堅稱他們的伺服器不會這樣返回。最後鬱悶調試了好半天才發現是這個抓包導致。千萬隻草泥馬在心中狂奔而過。所以大家使用的時候也注意一下,不一定是程式問題,因為這個抓包工具也會導致一些未知錯誤。
五、新一代開發工具android studio
這個全新的開發工具,soga也不能說全新,這個Google新開發的專門用來開發android的整合式開發環境是基於IntelliJ IDEA — The Best Java and Polyglot IDE ,最好用的java開發環境啊,所以Google從去年推出android studio 0.1版就嘗試一下新鮮,當然那時還有很多問題,現在更新到 0.8了也好了很多了,只是我由於公司沒有人用它,所以沒有完全跑到studio上去,現在發現如果在不去android studio我就要落後了,android studio的在智慧查閱方面比Eclipse好太多了,在Eclipse上的adt幾乎沒什麼變化,用新工具還可以保持時刻的新鮮感。當然android studio在天朝安裝經常不成功,是因為第一次建立項目時會下載一個gradle,而這個是在Google伺服器上的,一旦背牆就下不了了,所以在手動下載一個,然後自己去設定一下如。習慣用Eclipse轉過來預設的快速鍵會很不習慣,去Keymap改為Eclipse就可以了。android studio使用時間不多,感受還沒有出來,所以沒啥能扯的,只是覺得這是發展方向,可能以後大家都往android studio轉移了,所以用這個不會錯。
六、總結
開發中工具還有很多,想apt、mat、lint類似的這些代碼最佳化監控工具,這些進階工具我們有機會在深入瞭解一下,我也還在入門階段,所以這些工具還比較少用,瞭解甚少,沒什麼東西可以扯,所以慢慢學吧。
對於android的開發的一個問題
<activity
android:name="com.example.my_first.MainActivity"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.example.my_first.activeform1"
android:screenOrientation="portrait" >
</activity>
把這兩個類在AndroidManifest.xml檔案裡註冊 寫在<application>裡面
一個對於android開發的問題
包的定義可以根據你設計的功能來劃分,比如跟介面相關的可以建立個view包,跟介面控制相關可以建個control包,跟資料有關可以建個model包,跟商務邏輯有關可以建個manage包等等。
總體上這可以看作模組化設計的進一步抽象,你可以看一下 模型驅動架構(Model Driven Architecture )相關內容,相信會有助於你建立包定義的概念。