編輯:關於Android編程
因為首先是個人開發者,而不是團隊開發。開發的過程中就沒有那麼規范,沒有詳細的需求,沒有界面設計,也沒有詳細的開發計劃等。所以一個應用程序的開發要經過很多次蛻變才能變得完美或者說取得更好的用戶體驗。當然了,這一切都是根據自己的開發技巧和技術層次而定的。
下文是我在開發過程中遇到的一些有意思也很無奈的事。是看客的笑話也好,共鳴也好,我也都願意將它記錄下來,以飨看客。
我們公司應用開發就我一個人,其余的就是底層驅動開發和硬件開發人員。 一天我接到上級的一個開發需求,只簡單描述了需要實現的功能,說是用於產品批量生產時用來測試的。沒有需求文檔,沒有UI設計。一般在這種情況下我會將需要實現的功能用文檔列出來,再附上簡單的開發計劃。對於UI設計,也只是簡單的用PS或者就用Word畫個大體的設計,對於沒有藝術細胞的我也是在是有點難為,哈哈……
根據簡單的需求,然後將各個功能列舉出來,發現有18個小功能:Wifi、BT、3G、MIC、Camera等,因為是用來測試的應用程序,所以盡量做到自動,界面盡量能一目了然,比如:測試通過的為綠色,未通過的為紅色。下面就可以進行開發了
首先,項目的命名有點意思。我大致改了一下幾個,最項目命名為Test,第一個基本版本做出來之後看上去是在不爽,Test?怎麼看怎麼不爽,因為平時做一些小功能的測試Demo都是命名為TestXXX。這下好了,於是下定決心改為Testing,當時還是滿意的,等第二個優化版本開發完了之後又不爽了,Test總有陰影。於是再改為FunctionTest。這下好了,功能測試,能很好的表達這個應用程序的意思。也就暫時擱下了,不久新的功能再次被提出,需要再加入一個拷貝安裝的應用程序,沒轍新建一個工程名字命為:CopyAndInstall,好難為我。同樣的,我再次感到不爽,但由於項目的緊急,也就放下了。終於這兩個簡單的應用程序要在產品批量生產時使用了。其實對於這兩個程序還存在著顧慮,但也沒辦法,硬著頭皮上了,最後事情還是發生了?
我們都知道無論是出口還是在國內,客戶對自己確認過的UI肯定也是嚴格把關的。客戶確認過的UI上面沒有一個叫做CopyAndInstall的應用程序,這下被抽檢人員給看到了,解釋半天,最終的結論是必須給他們發升級軟件。
先說說我的CopyAndInstall隱藏的原理,CopyAndInstall會自動檢測一個配置文件,配置文件中有需要操作的命令,是拷貝還是安裝,CopyAndroidInstall讀取並執行操作,當操作執行完畢之後就自動隱藏了,但在生產的流水線上,由於測試人員疏忽,忘記了這一步操作,於是悲劇就這樣產生了。
一怒之下,我將兩個應用程序合並,並重新命名為FactoryUse,默認隱藏,通過特殊的方式將其顯示,操作完成之後自動卸載!這下好了。全世界都安靜了。當然,我不得不聲明,沒一種實現方案都有其優缺點,這之間取一個最優的方案最為重要。
再次,應用程序UI的改變也經歷了幾次大變動。18項功能,首先肯定不會在界面上排上18個按鈕,然後逐個實現點擊事件,並實現其功能。那麼怎麼辦?第一個版本使用ListView實現了,感覺還是很好的,一個頁面就顯示完了,而且測試的過程中可以看到各個項的測試狀態。然而當這個節目拿到測試人員手裡的時候,都說不好用,比如說我只想測試其中的幾項功能,難道要全部測試一遍?我只測試一項卻需要先選中,再點擊測試按鈕才能進入測試?為什麼要多一個操作呢?不能點擊就執行?……&*(¥#%#!!還是要冷靜,程序猿嘛。於是我加入了全選反選等功能再次給測試人員。“這一行都這麼窄,總是點不中啊”,都知道18項功能在ListView中顯示,如果作為手機那麼行多窄可想而知。MID也同樣,所測試人員都是女孩子可謂是芊芊玉指。在“狹縫”中游蕩也不是好受的,尤其是無數無數的“縫”就更人感覺恐怖了。這下好了,該寬一頁顯示不完。怎麼辦,於是被迫將界面改為GridView顯示。從此很有效的暫時地止住了“流言蜚語”! www.2cto.com
這就是軟件的開發,或者說是人類不斷進步的需求所需要的,需要不斷優化不斷改變。我很觊觎這種改變,但也很害怕這種改變,因為它能讓我不斷提高自己,無論是從設計還是純粹技術上都提高了,帶來的問題也很顯然,需求沒完沒了,版本沒完沒了。這時候項目經理會說,你把它做好了不就沒事了!是這樣嗎?你懂的
上面提到的情況,其實不然。一個項目都是一個階段一個階段進行設計的。所以也必須經歷這樣一個從零開始到比較完美的過程。回過頭來,其實重要的還是過程,為了避免這個過程中繁復的迭代,很有必要在設計之初經過精心的准備,充分的調查,深層次應用程序的含義挖掘。
基於這些情況,在項目的開發過程中列舉出以下原則。
1、給項目取一個好名字。藝人為什麼要改名?不就因為好聽、好記又有藝術感嗎?當然,我建議還是通俗易懂,合理貼切就好。
2、給項目一個好看的界面。無論是一個軟件還是一個人,給別人留下最深印象的還是第一感覺,第一感覺最主要的就是人的臉、外貌,軟件的界面。
3、永遠首先考慮用戶體驗。跳出思想的框框。跳出設計者的角色,以多個客戶的體驗來評價自己的設計。並且嘗試為好的體驗
4、非必要情況下盡量使用現有的控件實現需求。
5、其他的就是《軟件工程》的了。
作者:tangcheng_ok
一直想寫事件分發機制的文章,不管咋樣,也得自己研究下事件分發的源碼,寫出心得~首先我們先寫個簡單的例子來測試View的事件轉發的流程~1、案例為了更好的研究View的事件
Android性能優化-布局優化今天,繼續Android性能優化 一 編碼細節優化。編碼細節,對於程序的運行效率也是有很多的影響的。今天這篇主題由於技術能力有限
Android中對組合模式的應用,可謂是泛濫成粥,隨處可見,那就是View和ViewGroup類的使用。在android UI設計,幾乎所有的widget和布局類都依靠這
1. 緩存 名稱 描述 DiskLruCache Java實現基於LRU的磁盤緩存 2.圖片加載 名稱 描述 Android Un