本节书摘来自异步社区《Android Studio应用开发实战详解》一书中的第1章,第1.5节Android开发学习路线图,作者 王翠萍,

1.5 Android开发学习路线图
Android系统是一个巨大的智能设备系统,从系统架构到最终的问世发布,并经过一步步的完善,整个过程无不体现了科技界巨头——谷歌公司工程师们的智慧结晶。作为一名Android开发初学者来说,刚接触时会有或多或少的迷茫。在本节的内容中,将引领读者一起探讨Android开发的学习之路。

1.5.1 Android开发的两大方向
1.应用程序开发方向
移动应用程序就是经常提到的APP程序,和1.3.5节中的内容相对应,通常使用Java语言实现。这是当前Android开发中最简单的一个方向,也是当今学习者和就业者最多的一个方向。我们现实中所见到的网易客户端APP、火车站购票APP、美团APP、极品飞车游戏等,这些都属于移动应用程序范畴。

和其他几个方向相比,移动应用程序开发方向的门槛要低,需要接触的Android知识点主要涉及1.3节中提到的应用程序框架(Application Framework)层和应用程序(Application)层。开发者一般只需具备Java面向对象编程、Java网络通信和Android API等知识即可。并且移动应用程序开发方向还是其他方向的基础,也就是说,要想学习其他方向的知识,那么必须先掌握移动应用程序开发方向的知识。

2.底层开发方向
底层开发方向的主要工作是开发1.3节中介绍的除顶层之外的程序。例如硬件抽象层的Android驱动开发和移植,中间层的库订制和产品定制,基于底层的内核重构和产品制造。对于广大读者来说,底层开发方向的门槛比较高。首先读者需要对Andoid系统的源码进行完全了解,这就需要具备Java、C语言、C++和Linux内核方面的知识。然后需要具备和硬件开发相关的知识,简单的只需要直接使用市面中的开发板即可,而复杂的需要自定义实现硬件DIV,然后再进行驱动开发。最复杂的当属硬件产品开发,当然这需要一个开发团队的众多工程师联合进行。例如对于1.2.2节中介绍的移动电视来说,APP开发人员需要为用户开发开机后显示的操作界面,通过此界面可以观看电视和玩游戏。而电视设备中各个电器元件的驱动开发需要底层程序员实现,开发对应的驱动实现元器件和APP程序的桥接。

当然,笔者上述两大方向划分只是笼统地根据Android系统的整体架构进行的,具体的开发方向是一个仁者见仁智者见智的问题。下面笔者将对Andoid的开发方向进行一个简单的总结,具体如 图1-3所示。




android开发未来方向 android开发技术路线_Java



图1-3 Android开发的两大方向

本书将重点讲解移动应用程序开发方面的知识,极少涉及底层方面的知识。

1.5.2 Android应用开发需要具备的基础知识
作为学习门槛最低的Android应用程序开发方向来说,读者需要具备Java开发的一些知识,这也是学习本书应该必须具备的基础知识。在此建议读者按照如下两个阶段的学习来打基础。

(1)第一阶段:学习并掌握Java语言的基本语法、高级面向对象特性、设计模式以及常用类库。完成该阶段课程学习之后,可以熟练使用Java语言实现文件读写和网络操作等常见功能。本阶段主要学习Java语言、面向对象程序设计以及设计模式,主要内容有。

Java基本数据类型与表达式,分支循环。
String和StringBuffer的使用、正则表达式。
面向对象的抽象、封装、继承、多态、类与对象、对象初始化和回收;构造函数、this关键字、方法和方法的参数传递过程、static关键字、内部类,Java的垃极回收机制,Javadoc介绍。
对象实例化过程、方法的覆盖、final关键字、抽象类、接口、继承的优点和缺点剖析;对象的多态性:子类和父类之间的转换、抽象类和接口在多态中的应用、多态带来的好处。
Java异常处理,异常的机制原理。
常用的设计模式:Singleton、Template、Strategy模式。
JavaAPI介绍:基本数据类型包装类、System和Runtime类、Date和DateFomat类等。
Java集合介绍:Collection、Set、List、ArrayList、Vector、LinkedList、Hashset、TreeSet、Map、HashMap、TreeMap、Iterator、Enumeration等常用集合类API。
Java I/O输入输出流:File和FileRandomAccess类、字节流InputStream和OutputStream、字符流Reader和Writer,以及相应实现类、IO性能分析、字节和字符的转化流、包装流的概念,以及常用包装类和计算机编码。
Java高级特性:反射、代理和泛型。
多线程原理:如何在程序中创建多线程(Thread、Runnable)、线程安全问题、线程的同步和线程之间的通信、死锁。
Socket网络编程。
(2)第二阶段:学习并掌握数据库操作方法,Web应用开发技术以及常见数据格式解析。主要学习内容有。

Java解析XML文件DOM4J。
SQL数据查询语言,SQLite轻量化数据库。
JSP和Servlet应用。
HTTP解析。
Tomcat服务器的应用配置。
WebService服务配置应用。