您的位置:首页 > 移动开发 > Android开发

安卓开发笔记——从0到1

2016-05-29 13:20 176 查看

开始

之前没有接触过客户端的知识,倒是使用JAVA自带的Swing和AWT写过Windows图形界面,自己也总是觉得应该利用空闲时间学习一下其它方面的知识,之前一直计划开始学习Android,于是踏上了学习Android的征程,当然鉴于自己以前学习编程的经验,实践的效果远远大于读书,尤其是对于这种偏实践性型的技术,但是自己的学习的过程中总是会有这样的现象:当天整个学习过程很顺畅,以为掌握了这部分知识,但是过了两天再看发现这部分知识还是崭新的,于是就希望能够把自己的收货记录下来,当然其中在学习的过程中会牵扯到各种各样安卓开发外的联想,这也是我我对编程认识的最基本的原则之一:技术之间都是互通的,基本原则总是就那么几条。

书籍选择

对于入门的我第一件事就是选择一个靠谱的教材,开始我考虑的是国外的经典教材,毕竟更权威一些,但是又想了一下觉得如果从一本这种书开始学起难免会拖慢自己的速度,毕竟开始还是考虑从动手的角度上先知道怎么做,然后在考虑为什么,所以对我来说无论哪本入门书都应该差不多,于是就选择了国产的《第一行代码》,从头开始学起吧。希望这本书不要像谭浩强那本书给我太多的误导,嘿嘿~

Android系统架构

根据书中的介绍,Android系统可以分成如下几层:

内核层,Androi是基于Linux内核的,除了通用的内核程序之外,还有一些为特殊硬件适配的驱动,包括Wifi、蓝牙、照相机驱动等。驱动一般是由硬件厂商开发的,提供了内核对这些硬件接口。

系统运行库层,类似于PC端的Linux系统提供的一些系统库,Android同样也提供了一些系统库,包括SQLite支持数据库支持,Webkit提供浏览器内核支持,JAVA虚拟机的支持等,这一层为了应用框架服务。

应用框架层:这一层是为应用程序提供开发API,主要包括Android系统API。

应用程序层:该层为普通的应用程序,包括系统自带的和我们自己的编写的,通过调用系统API完成。

下图可以展示Android系统结构:



Android系统中提供了四个组件:

活动(Activity):每个显示的界面都是一个活动。

服务(Service):后台运行的线程,即使程序退出,服务可能仍在运行。

* 广播接收器(Broadcast Receiver):用于接收系统的消息(例如短信、电话)和向系统发送消息广播消息。

内容提供器(Content Provider):用于应用程序之间共享数据,可以理解为一种进程通信方式?

另外需要重点说明的是Android中自带了基于SQLite的嵌入式关系数据库系统,这样的我们就可以使用它它完成一些数据存储和通信操作。类似于现在云主机都会提供一些rds的服务。

搭建环境

第一步当然是搭建Android环境了,Android是一个操作系统,我们开发的则是Android应用层软件,通常使用的编程语言是JAVA,这里我使用的是Eclipse进行编程,为了支持Android程序的编译,需要在开发机上安装Android的SDK,我把它理解成一个提供Android开发的jar包,以及相应的开发工具。有了Android SDK和集成开发环境Eclipse,还需要使用ADT(Android Development Tools)来实现两者的连接,它是Eclipse提供的插件,有了它就可以完成虚拟机的启动、模拟各种手机事件等。

可以在http://developer.android.com/sdk/下载Android SDK,下载完成之后,可以找到Android SDK Manager,根据名字就可以推断出它是用于管理SDK版本的,运行它之后可以下载你需要的SDK版本和相应的工具。安装好SDK之后在Eclipse中安装ADT,安装完成之后在Windows下的Preferences中可以找到Android的选项,这里需要配置一下你之前下载的SDK目录的绝对路径。安装完成之后可以发现Eclipser的工具栏中多了两个图标,分别为SDK Manager和Virtual Device Manager,前者就是用来启动你安装的SDK Manager、后者用于管理你自己创建的Android虚拟机。可以通过点击这两个图标是否弹出分别的Manager界面来环境是否配置成功。

有了AVD Manager,就可以创建Android虚拟机了,但是通过实践发现,在开发机上启动虚拟机来进行调试、测试不是一个高效的选择,更好的方法是使用真机调试(没有安卓机的土豪还是不要搞安装开发了吧),使用真机调试时一定要注意把手机的“USE调试”打开。当你连上真机之后,在Eclipse中启动Android程序的时候会让你选择使用虚拟机or真机运行,此时选择一下就可以了。

测试环境

经过上面的步骤就可以把安卓开发环境搭建好了。需要的就一套开发机和一个测试安卓机,接下来我们创建一个Example程序测试环境是否正常可用。首先在Eclipse中创建一个Project,选择Android下面的Android Application Project,然后填入project name,下面的SDK版本根据你安装的版本自己选择,下面可以一直Next,需要注意的是第二步可以选择是否创建图标和是否创建一个默认的Activity。创建完成之后就可以在右侧看到该工程,下面包含很多文件,此时点击项目名,右键Run As->Android Application就可以启动整个安卓程序了,启动过程中会让你选择再哪个机器上启动(当前连接电脑的安卓手机还是自己创建的虚拟机),如果选择真机,这时候就可以看到你的手机上当前页面上运行着一个无比简单的应用程序,显示”Hello World”。如果看到这样的效果,说明你的环境搭建成功了,接下来就是真正的Android开发了。

如果在搭建环境或者创建项目的过程中遇到任何问题,可以参考书中的详细过程,这里介绍的只是一些大致的过程,并没有相应的图文,只是感觉搭建环境和一个Hello World程序对于新入门一个技术太重要了。

工程目录

先不要为刚才的环境搭建成功和第一个App开心,我们目前为止还没有写一行的代码。想想也是挺沮丧了,但是更沮丧的是这个工程下有这么多文件不知所云(至少比一个普通的JAVA工程要多),下面逐个说明一下每一个目录和文件的作用。



src:这个不要在介绍了,就是源代码目录,和普通JAVA程序一样,下面有多个package组成,每一个package下多个JAVA文件。

gen:根据上面的说明,这里是生成的JAVA代码文件,也就是不需要我们自己手写的代码,它是根据什么生成的呢,安卓开发不像AWT或者Swing那样需要你自己安排每一个控件(资源)的位置等信息,可以拖拽的方式(类似于MFC)完成,系统会为每一个控件生成一个ID,我们在编写代码的时候通过该ID获取该控件以实现相应的操作逻辑。这部分代码主要就是我们在拖拽界面的时候生成的。

assets:这个目录主要存放一些随程序打包的文件,程序运行时可以动态读取这些文件的内容。还会存储一些临时加载的文件。

bin:这个类似于普通JAVA程序的target目录,存储生成的目标程序,例如这个工程生成的apk文件就存储在这个目录下。

libs:存储一些程序需要使用的第三方jar,除了第三方jar,程序还依赖于android的系统jar,这部分是默认加载的,一旦需要使用第三方jar,就需要使用依赖管理工具,例如maven,但是安卓开发中貌似不经常使用maven,这个后面在做介绍。

res:这个目录下面有很多子目录,gen目录下的java文件就是该文件的内容生成的,这些子目录包括存储静态值的values目录,存储布局信息的layout目录,存储菜单信息的menu目录等。

AndroidManifest.xml:该文件是整个工程的配置文件,程序中使用的四种组件都需要在该文件中配置(注册)才能使用。

project.properties:该文件只存储编译程序时使用的SDK版本。

总结

本文主要介绍了安卓开发的环境搭建,以及创建了一个简单的安卓项目,虽然一行代码没有写,但也是一个从0到1的开始,我始终觉得,安卓开发要作为一个客户端开发来看待,如何布局、有哪些控件,控件之间如何关联才是关键。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息