集团站切换校区

验证码已发送,请查收短信

复制成功
微信号:togogoi
添加微信好友, 详细了解课程
已复制成功,如果自动跳转微信失败,请前往微信添加好友
打开微信
图标

腾科新闻

当前位置:pg电子试玩-pg电子平台网站 > > > >

android学习路上会遇到的各种瓶颈总结-pg电子试玩

发布时间: 2017-07-24 09:58:32


对于it专业的学生来说,很多人会成为从零开始的android实习生。在android初学之路上,每个android实习生都会遇到各式各样的瓶颈。克服瓶颈要从克服自己对一切瓶颈的偏见做起,把逃避瓶颈的行为变成享受瓶颈带来的乐趣的过程。

android布局和屏幕适配

android初学者遇到的第一个瓶颈就是android 布局的编写。首先android的layout是用xml写的,而大多数学生在大学阶段学习网页制作,都是用html绘制基本控件,然后用css进行页面美化;而android却用xml绘制界面,style也是用xml写。学习xml最重要的熟能生巧,多练习练习就顺手了,另外xml和html有很多相似的地方,比如padding与margin的区别都是一样的。此外android系统碎片化严重,不同型号的手机有着不同的屏幕尺寸和不同的分辨率。为了解决这个问题,我们可以把背景贴图做成.9png格式,并且用内容和padding撑起控件。

不同组件的生命周期

android初学者遇到的第二个瓶颈就是生命周期,android的生命周期主要有activity生命周期、fragment生命周期、service生命周期。学不好activity的生命周期,你做不好界面跳转的特效,也做不好系统activity(相机等)的回调;学不好fragment的生命周期,你写不出惰性加载;学不好service的生命周期,你连后台运行都做不到。学习生命周期,要记住“文无图时少直观,图无文时难入微”,用图表辅助记忆。

网络请求和json解析

android是移动互联网的重要组成部分,网络请求和json解析是android学习中的重要环节,很多初学者会在此处遭遇瓶颈。为了突破这个瓶颈,初学者应该先选择合适的框架以尽快解决实习工作中的问题。常用的网络请求框架有volley和okhttp等,常见的json解析框架有gson和jackson等,如果你的求职目标是阿里巴巴这样的大型企业,学习一下fastjson是可以助你一臂之力的。实习生初入企业,要记住用工作时间解决工作中的问题,知识的探索和能力的提升要利用自己的业余时间。下班后要学习以上框架的源码和实现原理,比如android的网络请求必须在子线程中进行,否则会造成networkonmainthreadexception;现在的网络请求都是基于httpurlconnection的,任何大谈httpclient的资料都是过时的;还要弄清楚handler的原理、threadpool的原理、asynctask的原理等;json解析方面的知识还有jsonobject和jsonarray的区别、java的泛型机制、java的反射机制等等。

图片加载和内存优化

android机的价位一般比iphone低一些,所以android系统比ios系统更容易遇到内存溢出问题(oom),这也是初学者常见的学习瓶颈之一。oom最多发于图片,其次布局中嵌入的地图、视频等吃内存大户也是oom的罪魁祸首之一。解决加载图片的oom应该先选择picasso、glide、fresco等框架以尽快解决工作中的问题,然后利用个人时间学习android缓存机制——lrucache和disklrucache。

recyclerview

android最常用也是最复杂的控件是recyclerview,因为滑动冲突、列表中数据修改等问题都会在recyclerview中体现。为了克服这些瓶颈,必须要搞清楚recyclerview.adapter的工作原理、viewholder的工作原理以及viewgroup的事件分发机制等内容,这些内容不下大力气学习是不能完全掌握的。克服了以上瓶颈后,估计实习生也该到了毕业转正的时间了,进阶路上还有新的瓶颈。

自定义控件

android自带的控件不能满足太复杂的界面控件需求,因此绘制自定义控件也是android工程师的必备技能。绘制自定义控件需要掌握view的几个常见方法的重写,如ondraw()、onmeasure()、onlayout()等;对事件分发机制的了解也应该比recyclerview更精熟;此外还需要掌握canvas和animator的相关知识,android的canvas和html5的canvas有很多相似性,可以以此突破canvas的学习瓶颈。

进程间通信

不同app之间以及同一个app的不同进程之间需要多进程通信,多进程通信在视频播放等占用大量资源的场合是很有必要的。进程间通信的初学者百度“多进程”会被aidl绕得云里雾里,其实你只要试试messenger框架,一切进程间通信的难题都会迎刃而解。

android性能全面优化和crash分析

android初学者会遇到的最后一个瓶颈是android性能全面优化。前面提到的android内存优化是android性能优化中最重要的部分,但也只是一小部分,android性能优化还包括安装包体量优化、gui绘制优化、电量和流量优化等。gui方面可以利用viewstub和去掉其他不必要的背景来避免overdraw;安装包体积可以用压缩图片、去除重复且无用的依赖等方式进行优化;电量和流量可以通过用推送代替轮询、用gzip文件格式下载过长的数据流等方式进行优化。在移动应用性能方面,崩溃(crash)带来的影响是最为严重的,crash指app在运行过程中出现大段用户正在进行的操作的强制关闭现象。crash会造成关键业务中断、产品口碑变差、用户流失等问题。crash可以用uncaughtexceptionhandler捕捉,也可以利用umeng和bugly等服务分析,请注意:如果打算跳槽到阿里,就用umeng,想要跳槽到腾讯,就用bugly。

突破了上述所有瓶颈以后,android程序员的技术水平都可以达到独当一面的程度,甩掉了初学者帽子的程序员会发现头顶不再是瓶颈,而是从技术到管理的天花板。


上一篇: 为什么要考思科认证?看完这5个理由你就懂了

下一篇: linux红帽培训就业前景如何?

在线咨询

您好,请问有什么可以帮您?我们将竭诚提供最优质服务!

网站地图