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