我是从2011年底开始学习android开发的,至今约有三,四个月了,不能算精通,但也有点经验了。初学期间阅读了网上众多的入门文章。感觉都很难给初学者一个快速的入门指引。在此,把我的入门感受写出来,希望对初学者有帮助。
先说明一下我的情况,我有十多年的单片机C语言开发经验,四、五年的嵌入式linux的C和C++开发经验,以及较少的PC端C++开发经验。好了,说下入门感受吧。
如果你有java开发经验,我可以负责的讲,一个星期保证入门。如果像我一样有较丰富C++开发经验的话,一个月左右即可入门。如果没有这些经验的话,建议好好学习一下java语言和面象对象编程的理念,要入门的话,至少半年。
下面,主要谈谈C++程序员进行android开发的入门感受。
首先,是开发语言方面的。Android开发语言是java语言,而java的语法与C++的语法几乎完全一至。因此,C++程序员基本不用特意去学习java的语法。Java和C++的主要区别在于以下几点。
1. Java面向对象的概念更为强烈。对于编程来说,表现在没有了头文件,所有程序都写在一个类文件中,就象C++中的内联成员函数那样。类中的所有函数都不需像C++一样有个单独的声明,只要有定义,就能被引用。
2. Java中几乎所有的变量和对象变量都类似C++中的指针概念,但不是指针,不过,在使用方法上,你可以完全把它当作指针来对待。
3. 在类的继承方法上,java不能像C++那样多继承,但多了一个接口的概念。我觉得是比C++更方便。
4. Java的类名严格对应文件名,即文件名必须对应文件中的类名。
5. 运行方法不同,C++是生成一个可执行的文件,运行时不需依赖别的什么,或者是需要一些动态连接库,换了操作系统,C++就要重新修改和编译。而java是生成一个class文件。这个文件是要依赖java虚拟机来运行的,它的优点是人所共知的,即只要有java虚拟机的地方,就可以运行这个class文件,与java虚拟机所在的操作系统没有任何关系。
Java和C++的相同点则实在太多了。C++的编程方法基本都可以沿用到java上来,比如类的继承,函数的重载,函数的覆盖等等。基至成段的代码都可以直接使用。
C++程序员转为android开发,在编程方法上,主要需要学习上述的几点,还有java中包的概念,这个概念其实非常类似C++中的动态连接库的概念。当然,还是非常有必要将java编程的书籍通读一遍的。
下面,谈谈android项目的文件结构。这个是非常需要先了解的,而许多入门文章都没有系统提及。
打开一个android项目,或者让eclipse利用模板自动生成一个android项目(以android2.3.3为例)。在项目的根目录中,会出现src,gen,android2.3.3,assets,bin,res几个目录。下面一一说明。
Src是放置你的程序源代码的。在此目录下,一个java包成为一个目录,每个包目录下的就是类似xxx.java的源代码文件了。
Gen目录的文件都是系统自动生成的java源代码,这些源代码主要是用于管理项目中的资源和xml文件的。因为是系统自动生成,所以,不用对其太多了解,只要知道,在程序中,引用资源时,系统就会用到这里的文件。
Assets存放的是程序的资源文件。但系统不会去管理这里的文件,你只需简单的把文件复制到这个目录下即可,这个目录下,还可以有子目录。系统在编译打包你的程序时,会把这里的文件连同目录打包进去。
Bin,系统编译时生成的class文件,资源文件等以及最终的apk包都放在这个目录下。
Res,项目中所需用到的资源文件就放在这个目录下了。这个目录下有许多子目录,每一子目录中放置的资源文件都根据子目录的名字有各自的用途。具体不多说了。知道有这么回事就行了。系统会自动管理这些目录中的资源文件。如果使用直接复制的方法文件复制到的相应的目录中,系统是不会知道这些文件的存在的。因此,往这些目录中复制文件,要使用import的方法将文件import进来,这样,系统才会知道这些文件的存在。
最后谈谈android的界面设计,android界面设计非常的方便。它的界面是由一个xml文件来描述的,此文件中的是xml语言,一个非常类似于html标记语言的东东。我曾经学习过网页编程,应此对xml语言基本没有学习,就可以当作html编写来对等待。对于常用的eclipse的android开发环境来说,它提供了一个类似QT,BC++这样的快速开发工具中的所见即所得的可视化的设计软件,你基本不用直接写xml语句,在这个软件中,会根据你的设计自动生成xml语句。而对于我来说,因为比较熟悉html的编写,所以,更愿意直接编写xml语句。其实,你在也可以不用xml文件来描述界面,可以直接在程序中用编程的方法再实现界面,但这是一个非常困难的工作。所以才会有xml文件存在的必要。Android在编译你的程序时,会自动根据xml文件,生成程序所需的android控件,并把它们放在界面上,如果你要在程序修改这些控件,那么你需要先获得这些控件的对象,再对它们进行操作。此外,xml文件不仅可用来设计界面,还可以用来对某些控件进行特效的设定,这点,初学者可暂不理会。
关于开发环境的安装,网上资料很多,就不多说了。只要按照先安装成功java 开发环境,再安装android开发环境,分两步走,就没什么困难了。
先说明一下我的情况,我有十多年的单片机C语言开发经验,四、五年的嵌入式linux的C和C++开发经验,以及较少的PC端C++开发经验。好了,说下入门感受吧。
如果你有java开发经验,我可以负责的讲,一个星期保证入门。如果像我一样有较丰富C++开发经验的话,一个月左右即可入门。如果没有这些经验的话,建议好好学习一下java语言和面象对象编程的理念,要入门的话,至少半年。
下面,主要谈谈C++程序员进行android开发的入门感受。
首先,是开发语言方面的。Android开发语言是java语言,而java的语法与C++的语法几乎完全一至。因此,C++程序员基本不用特意去学习java的语法。Java和C++的主要区别在于以下几点。
1. Java面向对象的概念更为强烈。对于编程来说,表现在没有了头文件,所有程序都写在一个类文件中,就象C++中的内联成员函数那样。类中的所有函数都不需像C++一样有个单独的声明,只要有定义,就能被引用。
2. Java中几乎所有的变量和对象变量都类似C++中的指针概念,但不是指针,不过,在使用方法上,你可以完全把它当作指针来对待。
3. 在类的继承方法上,java不能像C++那样多继承,但多了一个接口的概念。我觉得是比C++更方便。
4. Java的类名严格对应文件名,即文件名必须对应文件中的类名。
5. 运行方法不同,C++是生成一个可执行的文件,运行时不需依赖别的什么,或者是需要一些动态连接库,换了操作系统,C++就要重新修改和编译。而java是生成一个class文件。这个文件是要依赖java虚拟机来运行的,它的优点是人所共知的,即只要有java虚拟机的地方,就可以运行这个class文件,与java虚拟机所在的操作系统没有任何关系。
Java和C++的相同点则实在太多了。C++的编程方法基本都可以沿用到java上来,比如类的继承,函数的重载,函数的覆盖等等。基至成段的代码都可以直接使用。
C++程序员转为android开发,在编程方法上,主要需要学习上述的几点,还有java中包的概念,这个概念其实非常类似C++中的动态连接库的概念。当然,还是非常有必要将java编程的书籍通读一遍的。
下面,谈谈android项目的文件结构。这个是非常需要先了解的,而许多入门文章都没有系统提及。
打开一个android项目,或者让eclipse利用模板自动生成一个android项目(以android2.3.3为例)。在项目的根目录中,会出现src,gen,android2.3.3,assets,bin,res几个目录。下面一一说明。
Src是放置你的程序源代码的。在此目录下,一个java包成为一个目录,每个包目录下的就是类似xxx.java的源代码文件了。
Gen目录的文件都是系统自动生成的java源代码,这些源代码主要是用于管理项目中的资源和xml文件的。因为是系统自动生成,所以,不用对其太多了解,只要知道,在程序中,引用资源时,系统就会用到这里的文件。
Assets存放的是程序的资源文件。但系统不会去管理这里的文件,你只需简单的把文件复制到这个目录下即可,这个目录下,还可以有子目录。系统在编译打包你的程序时,会把这里的文件连同目录打包进去。
Bin,系统编译时生成的class文件,资源文件等以及最终的apk包都放在这个目录下。
Res,项目中所需用到的资源文件就放在这个目录下了。这个目录下有许多子目录,每一子目录中放置的资源文件都根据子目录的名字有各自的用途。具体不多说了。知道有这么回事就行了。系统会自动管理这些目录中的资源文件。如果使用直接复制的方法文件复制到的相应的目录中,系统是不会知道这些文件的存在的。因此,往这些目录中复制文件,要使用import的方法将文件import进来,这样,系统才会知道这些文件的存在。
最后谈谈android的界面设计,android界面设计非常的方便。它的界面是由一个xml文件来描述的,此文件中的是xml语言,一个非常类似于html标记语言的东东。我曾经学习过网页编程,应此对xml语言基本没有学习,就可以当作html编写来对等待。对于常用的eclipse的android开发环境来说,它提供了一个类似QT,BC++这样的快速开发工具中的所见即所得的可视化的设计软件,你基本不用直接写xml语句,在这个软件中,会根据你的设计自动生成xml语句。而对于我来说,因为比较熟悉html的编写,所以,更愿意直接编写xml语句。其实,你在也可以不用xml文件来描述界面,可以直接在程序中用编程的方法再实现界面,但这是一个非常困难的工作。所以才会有xml文件存在的必要。Android在编译你的程序时,会自动根据xml文件,生成程序所需的android控件,并把它们放在界面上,如果你要在程序修改这些控件,那么你需要先获得这些控件的对象,再对它们进行操作。此外,xml文件不仅可用来设计界面,还可以用来对某些控件进行特效的设定,这点,初学者可暂不理会。
关于开发环境的安装,网上资料很多,就不多说了。只要按照先安装成功java 开发环境,再安装android开发环境,分两步走,就没什么困难了。