做出一款移动应用很容易,做到成熟优异却很难。针对移动开发中技术人员普遍遇到的技术难题,7月29日下午,CSDN移动开发俱乐部邀请到友盟Android工程师陈彧堃、ThoughtWorks开发工程师刘龙军等多位资深开发者分享Android应用开发中的最佳实践。
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应用产品时一些自动化测试方面的心得和收获。
ThoughtWorks刘龙军:自动化测试可帮助提升代码品质
该项目是个类似手机的航班查询应用,通过Http发送查询请求给远程API服务器,处理返回结果并展现。开发中整个自动化测试过程分为单元测试、自动化功能测试、改进功能测试框架、引入BDD(行为驱动开发)测试框架四步。
经过整个项目流程实践以及多个需求变动对测试框架的调整,对于应用开发中的自动化测试工作,刘龙军总结了四条心得:1. 自动化测试可以帮助提升技术团队与客户团队之间的合作,帮助团队更加透彻地理解业务需求,辅助指导开发方面。2. 功能测试与单元测试有重叠的部分,开发者要综合考虑所花费的时间精力以及找到缺陷的概率,尽可能找到平衡点。3. 自动化测试并不能测试到用户对应用的感觉,也不能对动画效果进行测试。4.让自动化测试价值最大化需要持续集成环境的支持,这样你才可以持续获取测试结果反馈。
应用秀环节,AdView技术主管张其刚介绍广告聚合平台AdView的开发之路
开发者还关注哪些技术问题?
在开放空间讨论环节中,俱乐部还邀请到微云CTO马若劼、奇艺无线技术主管刘金瑞、AdView技术主管张其刚、活力传媒Android工程师叶慧军、天宇手机研发工程师张旭晖、友盟Android工程师陈彧堃、ThoughtWorks开发工程师刘龙军多位资深开发者,与会员们面对面交流移动开发中的技术难点。
与开发高手们面对面讨论技术难题
除了两位讲师的演讲主题,讨论中发现大家关注的几个热点问题如下:
跨平台或者多终端适配问题。即如何更快更好的让应用适配到多个平台。奇艺无线技术主管刘金瑞提醒到大屏幕和高分辨选项已逐渐变得重要。另外在做界面的时候一定要留出可伸缩的范围,留下页面拉伸的余地。
移动Web特别是HTML5作为一种跨平台方案的优劣和适用范围。微云CTO马若劼认为如果用HTML5做游戏类应用的话,现在已可在iOS上进行尝试,而Android平台上则效果相对较差。
平台选择。很多开发者关注这个问题是因为背后需要投入很多的时间和精力,而一些业界动态如Android专利诉讼使他们感到忧虑。微云CTO马若劼认为,作为一名合格的移动开发者,掌握至少两门语言是基本技能。
企业级应用的安全性。越来越多的企业软件拥抱移动,如何处理数据安全问题,是需要事先考虑的重要事项之一。有会员分享了他们的经验:将业务数据封装为组件,适用于所有客户端,而客户端层面并不直接处理数据而是调用组件,其作用类似于定制化的浏览器,是目前可行的方法之一。
报名参加下期CSDN移动开发俱乐部活动:移动应用的运营推广之道