不会写代码,如何从零学习Android开发?
由于近几年来互联网的飞速发展,安卓和iOS平台的大量普及推广,移动开发在当前是非常热门的一个方向。有不少同学问如何学习安卓,要学些什么,难不难学。现在根据我的学习体验,做个大概的总结。
操作方法
- 01
安卓开发首先最好有Java基础,没学过可以先简单的去学习一下。推荐两本书《Head First Java》和《Java编程思想》(英文名《Thinking in Java》)。Head First系列的书,特点是简单好懂,适合入门(最好有其他语言编程的基础),但讲解不是很深入,对于理解力够强的人,看起来比较费时间。而后者是Java语言公认的权威经典书籍,如果想全面的学习Java,可以看后面这本书,但是难度偏大,尤其是对于没有学习过面向对象编程语言的人来说。
- 02
安卓开发本身的技术知识,无非就是各种封装好的API接口函数(API=Application Programming Interface 应用程序编程接口),你只要按照它的规则去调用就行了。安卓的接口有官方给出的完整说明文档,安装了安卓开发包后,也有自带docs文件夹,里面就是说明文档。对于英文水平欠缺的人可能稍微有点难度,另外,由于谷歌访问不了,网页版的说明文档有些可能会打不开。如果你不想自己看官方英文文档,你可以直接买本安卓开发的书,或者在网上找安卓学习资料。这些资料也是别人根据官方文档和自己学习经验总结出来的。有时候如果需要用到一些别人很少用到的东西,或者网上说的比较含糊,这时官方文档是最权威、准确的参考资料。
- 03
首先是平面设计、交互设计、用户体验。移动应用作为大众型产品,用户体验相当重要。如果有过个同类产品,功能接近,用户肯定更喜欢用户体验更好的产品。用户界面需要用到设计方面的知识。当然在大部分公司,一般会有专门的交互设计相关职位,所以对于应用开发者来说,设计方面不需要掌握的太深入,做一点简单了解当然是没错的。
- 04
然后上面已经说了很多软件工程方面的问题,数据结构、设计模式、操作系统、计算机网络等等,不再重复。
- 05
安卓NDK环境和JNI开发。安卓基于Linux操作系统,主要由Java编程,但是有些时候需要用到C++,例如核心代码需要保密,而Java保密性有所欠缺;有些程序只有C++环境才能实现;要用到一些高性能的算法等的支持,而Java执行效率偏低。这是我们可以使用Java的JNI,调用C++开发的程序库完成功能。C++的开发基本上就和在Linux上编程差不多,区别在于安卓系统中有一定的权限限制。而安卓NDK就是官方给出的、用于快速开发安卓JNI程序的开发环境。 安卓系统有个很大的特点是开源免费,因此我们很容易就能获取安卓系统的源码进行学习,了解安卓系统的设计。了解安卓系统设计,后来我们就可以从事偏底层的安卓开发,系统订制,乃至安卓驱动开发、操作系统开发方面的工作。
- 06
这里顺便一提,安卓应用开发相比iOS的一个难点来自安卓系统碎片化问题。安卓系统是开源免费的,这是一大优势,也因此对很多国产和国外手机制造商带来了很大的好处(如果没有安卓,很多手机厂商恐怕都深陷危机之中了,或许移动互联网也不会发展的这么快。不知道现在是不是iOS要称霸天下,或者WP大受欢迎,又或者塞班还会屹立不倒)。但是安卓的这种特点,导致同一款安卓应用至少要同时兼容各种主流手机型号,各种配置,各种屏幕尺寸,各种系统环境。而这也是迄今为止安卓开发者心中永远的痛(╯﹏╰)。
- 07
最后,给正在学或者打算学安卓的同学一些建议: 1. 如果你是非科班毕业想要转行编程,一定要有信心与动力,我能,你一样能; 2. 如果你接触过一些数据结构、编程语言之类的,想要学习编程,你更应该有信心,你比那些非科班的人已经多了一些基础,你要做的只是坚定信念,坚持走下去; 3. 如果你准备或已经在做App开发的人员,你要做的就是做好你当下在做的事,相信你的付出一定能有所收获。 4. 如果你坚持不下来,那么直接上网找一些在线app开发平台,这里推荐你应用之星平台,无需编码技术,人人都能进行Android开发。