做出一款移動應用很容易,做到成熟優異卻很難。針對移動開發中技術人員普遍遇到的技術難題,7月29日下午,CSDN移動開發俱樂部邀請到友盟Android工程師陳彧堃、ThoughtWorks開發工程師劉龍軍等多位資深開發者分享Android應用開發中的最佳實踐。
Android應用開發中的設計和優化
在長期致力經營移動開發者平臺期間,應用分析工具友盟的創作團隊總結出一套Android應用開發中的技術和設計經驗,在本期活動中,友盟創始團隊成員、資深Android開發師陳彧堃進行了分享。
陳彧堃認為,開發和優化直接決定到應用的最終體驗,具體表現在三個方面:1. 操作反應是否流暢快速,觸摸反應時間是否過長,是否經常出現ANR(Application Not Respond)以及網絡等待真快。2. 用戶操作是否流暢自然,開發中要注意做好UI適配,不從后臺打斷用,避免照搬ios設計等做法。3. 是否為用戶節省電量。在開發中就要避免在本地運算復雜算法;避免頻繁調服務和網絡請求。
陳彧堃總結Android開發中遇到的難點有:1.面對當前多種形態的OS、分辨率和屏幕尺寸,而且還不斷增加,多終端適配已成為開發者最為頭疼的問題。2. 內存管理。Android系統為每個應用分配的內存上限為24M,很多開發者遇到內存分配不足問題。在演講中,陳彧堃詳細分享了性能分析、內存、視圖及網絡優化、代碼復用、用戶數據處理等環節需要注意的技術問題。
如何做好Android開發?陳彧堃建議Android工程師:1. 利用traceview和monkey等工具測試應用。2.利用layoutopt和ninepatch等工具優化視圖。3. 像Android原生應用學習,遵循最佳實踐。4. 掌握一門服務器端語言/框架。5.要培養對UX的感覺。6. 做好應用分析。7. 善用第三方工具。
移動開發中的自動化測試
在Android應用的開發過程中,各種類型的測試對于保證最終產品的質量至關重要,自動化測試是不可缺少的一部分。ThoughtWorks 移動平臺興趣組劉龍軍以自己的一個項目為例,分享了開發Android應用產品時一些自動化測試方面的心得和收獲。
該項目是個類似手機的航班查詢應用,通過Http發送查詢請求給遠程API服務器,處理返回結果并展現。開發中整個自動化測試過程分為單元測試、自動化功能測試、改進功能測試框架、引入BDD(行為驅動開發)測試框架四步。
經過整個項目流程實踐以及多個需求變動對測試框架的調整,對于應用開發中的自動化測試工作,劉龍軍總結了四條心得:1. 自動化測試可以幫助提升技術團隊與客戶團隊之間的合作,幫助團隊更加透徹地理解業務需求,輔助指導開發方面。2. 功能測試與單元測試有重疊的部分,開發者要綜合考慮所花費的時間精力以及找到缺陷的概率,盡可能找到平衡點。3. 自動化測試并不能測試到用戶對應用的感覺,也不能對動畫效果進行測試。4.讓自動化測試價值最大化需要持續集成環境的支持,這樣你才可以持續獲取測試結果反饋。
開發者還關注哪些技術問題?
在開放空間討論環節中,俱樂部還邀請到微云CTO馬若劼、奇藝無線技術主管劉金瑞、AdView技術主管張其剛、活力傳媒Android工程師葉慧軍、天宇手機研發工程師張旭暉、友盟Android工程師陳彧堃、ThoughtWorks開發工程師劉龍軍多位資深開發者,與會員們面對面交流移動開發中的技術難點。
除了兩位講師的演講主題,討論中發現大家關注的幾個熱點問題如下:
跨平臺或者多終端適配問題。即如何更快更好的讓應用適配到多個平臺。奇藝無線技術主管劉金瑞提醒到大屏幕和高分辨選項已逐漸變得重要。另外在做界面的時候一定要留出可伸縮的范圍,留下頁面拉伸的余地。
移動Web特別是HTML5作為一種跨平臺方案的優劣和適用范圍。微云CTO馬若劼認為如果用HTML5做游戲類應用的話,現在已可在iOS上進行嘗試,而Android平臺上則效果相對較差。
平臺選擇。很多開發者關注這個問題是因為背后需要投入很多的時間和精力,而一些業界動態如Android專利訴訟使他們感到憂慮。微云CTO馬若劼認為,作為一名合格的移動開發者,掌握至少兩門語言是基本技能。
企業級應用的安全性。越來越多的企業軟件擁抱移動,如何處理數據安全問題,是需要事先考慮的重要事項之一。有會員分享了他們的經驗:將業務數據封裝為組件,適用于所有客戶端,而客戶端層面并不直接處理數據而是調用組件,其作用類似于定制化的瀏覽器,是目前可行的方法之一。