在上一篇日志中,我写到了想学习android的同学应该要掌握的一些java基础知识,虽然写的是基础,但是其实往往很多的学员们走上工作岗位上就会真正发现基础决定了你的上层建筑能否搭建好!今天,在这篇日志中,我来和大家谈谈android基础的一些建议:
GOOGLE在2007年成立OHA组织的时候,其实野心就已经表现非凡【这一点我们后续在专门来谈谈】,不过GOOGLE选择了一条很容易让人接收android的方式:手机。为什么这样选择呢?因为有两个原因:第一、手机人群在急速剧烈地增长,特别是智能化手机出现后,所以市场的覆盖面会很广。第二、IPhone的出现改变了传统NOKIA的统领位置,让新鲜的操作互动方式和丰富的APP市场吸引了大量人的眼光,但是其高昂的价格无法覆盖这篇广阔的市场,而NOKIA的愚昧自大,又没有很好地去引用这种优秀的操作互动方式,也没有去优化和丰富APP市场。正是因为这两点历史原因,其实就已经给了需要去学习android的同学们一些指导建议了。先写一下如下几点:
第一、首先android的工程目录结构需要深入去掌握,例如assets res/raw res/drawable libs jni 等等 他们到底用来做什么的 区别又是什么,正确使用的对应目录结构,有利于APP的资源结构的优化调整,举个例子:对于某些对图质要求特别高的,你的图片可能就要考虑不要放在drawable下,因为drawable下会压缩失真。那就要可以考虑放到raw下。这些看似与编程无关,其实这些与用户体验效果有关联,这样会让你的用户对你的APP的喜爱度,粘性都大大提升。
第二、 app其实最先能让用户感兴趣的还是界面UI,特别是自定义UI的实现【商用的APP一般都不会使用原生的UI控件】,所以要从Android的UI继承体系去了解以及认知,例如View与ViewGroup的关系,很多android初级程序员们可能会去忽视他们的继承关系,而殊不知继承体系对UI自定义控件的实现有巨大的影响。另外还要深刻去了解MVC模式在android视图层的使用,比如控件这一块,ListView的使用就是采用的MVC模式:用Adaptor将View和Data联系到一起。这样去学习,还能在以后的app移动架构中,获取架构知识原理。
第三、 关注生命周期和执行流程,我们知道android系统基于java语言机制而来,所以其实底层还是会有JVM的概念存在【换了个名字Dalvik而已】,那么我们要注意我们的app开发可能随时被系统回收,那么我们的操作要注意资源消耗,要注意耗时导致的ANR异常【其实除了ANR的注意 还要注意流畅性:任何一个 View 绘制时间不能超过 16.7ms(每秒60帧才能保证流畅度)】,要注意在什么流程环节来进行数据恢复。