Android開發經驗談-很少有人會告訴你的Android開發基本常識,經驗談android
本文介紹Android開發過程中的一些基本常識,大多是一些流程、專業術語和解決問題的方法等。
一、軟體開發流程
一個完整的軟體開發流程離不開策劃、互動、視覺、軟體、測試、維護和運營這七個環節,這七個環節並不是孤立的,它們是開發一款成功產品的前提,但每一項也都可以形成一個學科,是一個獨立的崗位,隨著敏捷開發的流行,以及來到了體驗為王的時代,現代軟體開發更多的是注重效率和敏捷,而不是循規蹈矩的遵循這些開發流程,比如軟體開發的崗位不再僅僅是個技術崗位,它需要去參與前期的設計和評審、可以在視覺和互動方面提出自己的見解,在開發的過程中需要自測程式儘快解決現存問題,運營和維護的過程中也需要軟體的協助。可見現代軟體開發對開發人員的綜合素質(這並不是facebook所講的全棧工程師)越來越高,自稱為碼農或者程式猿顯然是不合理的,因為這個過程是腦力勞動和體力腦動並存,稱呼自己為工程師顯得更為合理。
策劃:需求收集(通過使用者調研、灰階發布、大資料分析、競品分析、領導拍腦袋等方式擷取需求)、需求整理(將需求歸類、劃分優先順序等)、將需求轉換成解決方案(輸出設計文檔);
互動:從心理學(利用人性的弱點)、人性化(心智)、個人化的角度將解決方案轉換成可互動的功能和介面(需要輸出互動文檔),比如載入等待、訊息提示、頁面配置、頁面內和頁面間的互動邏輯、頁面切換動畫等等,這個過程中一般會使用Axure或者PowerPoint來製作互動文檔;
視覺:根據互動圖,使用PhotoShop來做視覺效果,在Android上的圖片格式大多是png和jpg,對於需要螢幕適配,程式又適合做螢幕適配的地方可以使用九圖,格式為*.9.png。
軟體:根據視覺和互動效果將需求轉化為具體的實現,在實現的過程中可能會因為需求、互動或者視覺的變動導致軟體實現的變動,因為策劃、互動、視覺這每一個環節都可能會有資訊失真的現象,或者是由於市場環境的變化、擷取資訊不夠準確、領導拍腦袋等等情況導致軟體始終處於被動狀態,所以現在會提倡敏捷開發、結對程式設計、程式設計、同行評審、單元測試來提高程式的靈活性和穩定性;
測試:軟體達到可互動的標準後,需要將可互動的程式提供測試,其中灰階發布(使用者測試)、自測(開發自測)、SQA(品質保證)都算是測試;
維護和運營:通過測試程式達到穩定標準後,軟體就可以上線了,軟體上線後,需要去維護,使用者反饋的問題要及時解決、使用者有疑問要及時解答;根據後台統計資訊、抓住可運營的節日、民族文化需要做運營來提高使用者使用產品的粘度,讓更多的使用者知道、使用產品都是運營應該做的。
註:
1、可以查看這個答案瞭解一個APP從創意到上線的具體流程,開發一個APP有多難?
2、可以查看筆戈科技的這篇文章瞭解一個手機(平板或其它電子產品也差不多)的誕生需要哪些環節,一個手機的誕生過程
二、提問的智慧
大多數工作都是以結果為導向的,特別是軟體開發這個職業,績效考核、KPI這些都是在考核你工作的成果,所以工作更多地是需要你解決問題的能力,至於學習這個事情,還是在工作之外的時間去做吧。對於提高解決問題能力我有兩個建議:
學會學習和思考:學習的過程中要廣度和深度並存,Android應用開發本身對技術功底的要求不高(因為很多底層的東西都被google、架構、開原始碼給封裝起來了,多數時候你只需要看ReadMe或者API知道怎麼用就可以了),更多地是在你遇到問題的時候知道這個問題能夠通過什麼方法和方式來解決。書要看,但多逛逛論壇、QQ群、Github、StackOverflow、CSDN部落格專欄對自己都是有益的。
學會提問:你身邊有很多資源,比如同事、StackOverflow、QQ技術交流群、搜尋引擎,當你遇到問題的時候完全可以利用身邊的資源來解決遇到的問題,如果一個問題在一個小時之內自己都不能夠解決它,我就會通過搜尋引擎、Github、QQ技術交流群、同事、StackOverflow(以上排序是按優先順序排列的)來解決它。如果你需要好的答案你就需要有好的提問,特別是在QQ群或者論壇,在提問的過程中需要體現出你的思考,能夠通過搜尋引擎解決的問題堅決不問他人,這是對別人的尊重,在這裡推薦幾個連結,認真看會對你有莫大的協助:
如何用好 Google 等搜尋引擎?
程式員應該如何提問?
提問的智慧
Smart Questions
三、解決bug的方法
為了寫這一項我專門在知乎上提過一個問題:你有哪些解決bug的技巧?
在知道如何快速解決bug之前,你需要知道什麼是bug。沒有完成策劃、互動、視覺要求的功能,這不叫bug,這叫功能缺陷;一個功能完成後不能正常使用也不叫bug,因為它根本還沒達到可測試的標準。我認為當你的程式達到可測試標準之後發現的問題才叫bug。綜合我自己解決bug的經驗和知乎上的回答,總結常見的解決bug的方法有(你想要高效解決bug的前提是你能夠快速定位到缺陷所在的位置,所以以下方法多數講的是如何快速定位問題,至於真正解決bug,需要你自己修改程式才行):
I 斷點調試:
以Eclipse為例:
1、打斷點:
(1)打斷點:
(2)清除斷點:
2、啟動偵錯模式的兩種方式:
(1)通過debug as啟動偵錯工具:右鍵工程名-->Debug AS -->Android Application -->模擬器或者真機會彈出......watching for the debugger......的提示框,不要點擊等待其自動消失 --> 此時已經進入偵錯模式,操作程式到達打斷點的地方。
(2)在程式運行過程中,在DDMS視圖下選中要調試的程式,啟動偵錯模式:
3、調試:請自行嘗試F5、F6、F7、F8這幾個調試的快速鍵;
4、watch成員變數:在調試的過程中,比如在執行for、while、do while迴圈、遞迴、系統回調等程式時可以通過watch來觀察成員變數或者方法返回值的變化情況,watch的方法:
註: