Android起源与发展:
Android操作系统最初在2003年的时候由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2013年的第四季度,Android平台手机的全球市场份额已经达到78.1%。2013年09月24日谷歌开发的操作系统Android在迎来了5岁生日,全世界采用这款系统的设备数量已经达到10亿台。
Android的系统架构:
主要分为四层架构和五个部分
Linux内核层:该层主要为Android系统硬件提供了底层驱动。如显示驱动、音频驱动、照相驱动、蓝牙驱动、wifi驱动、电源管理等等。
系统运行库层:这一层通过C/C++来提供一些特性支持。如SQLite提供数据库的支持,OpenGL|EL提供了3D绘图的支持,Webkit库提供了浏览器内核的支持等等。
应用框架层:这一层主要提供了开发者在开发应用程序的时候可能用到的API支持。Android自带的一些核心应用也是使用这些API完成的。
应用层:几乎所有安装在手机上的程序都属于这一层。包括手机上自带的短信、联系人功能,已经在应用商店下载的程序以及自己开发的程序。
Android的四大组件:
Activity:所有应用程序的门面,凡是在应用中看得到的东西,都是存储在Activity中的
Service:不可见,可以在后台默默运行。即使应用程序退出,仍然可以运行。
BroadCast Receiver: 运行应用接收来自各个地方的消息(比如电话、短信)。也可以通过该组件向其他地方发送消息。
Content Provider: 为应用程序之间共享数据提供了可能。
Hello World:
下面就开始Android之路的第一个Hello World程序。
环境搭建的步骤大致包括下面三步:
1. 安装jdk
· 2. 去Android开发者官网下载绑定eclipse、SDK、SDT的开发工具。
3. 解压完2中下载的文件之后需要点击里面的SDK Manager管理工具,进行相关其他版本的Android SDK的下载,下载的文件会自动放入SDK文件夹。
以上三步全部弄完之后打开eclipse,会发现eclipse的工具栏中增加了Android相关的图标:
图片从左到右依次是SDK Manager 和 启动Android 模拟器的图标。我们点击第二个图标创建一个android模拟器并启动,启动之后效果如图:
这时可以在eclipse里面打开device窗口,就可以看到正在运行的设备情况,当然也可以切换到DDMS视图,能够清楚的看到设备相关更详细的情况。
说了这么多开始进行第一个Hello World的程序开发:
直接new android application 然后一路next,到需要选择Activity类型的时候选择Blank Activity:
其实Hello World已经大功告成了。运行Android Application然后选择刚刚创建的Android模拟器作为运行设备,最终出现的运行结果界面如下:
感觉有点酷!下面我们就来分析代码的构成:
可以看到里面有很多目录,瞬间觉得傻眼。不过不要急,其实我们需要关注的目录就那么几个:
首先bin、lib目录可以直接跳过,这里面一般是存放jar包的。一般来说bin目录是程序在编译时自动生成的文件以及当前程序编译好可直接安装的apk包,lib目录下一般存放引入的第三方包。
src目录下一般使我们的源代码
gen目录下主要有一个R.java 文件,这里面我们在项目中添加的所有资源都能在这里找到对应的ID。建议千万不要手动去修改该文件。
assets目录,这个目录用的不多,一般用来存放需要随程序打包的文件,在程序中可以动态读取这里面的内容。如果程序中使用WebView加载本地网页的话,所有网页相关的文件也需要放入到这个目录下。
res目录,这个目录里面的文件有点多。简单的讲就是程序中用到的所有图片、布局文件、字符串等资源文件都要在这个目录下。其实R.java中自动生成的代码就是根据这里面的资源文件生成的。当然这些资源文件也有一定的放的规律:比如图片一般放到drawable子目录下,layout子目录下一般存放布局文件,values子目录下一般存放字符串文件。
AndroidManifest.xml:整个项目的核心配置文件。前面所讲的四大组件、应用程序权限添加、指定程序运行的最低版本和兼容版本等的配置都必须在这里面进行。
project.properties:这个文件非常简单,只是指定的项目编译的SDK版本。
从AndroidManifest.xml探究android程序是如何进行关联的:
AndroidManifest.xml文件的源码如下:
1 <?xml version="1.0" encoding="utf-8"?>
2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
3 package="com.example.helloworld"
4 android:versionCode="1"
5 android:versionName="1.0" >
6
7 <uses-sdk
8 android:minSdkVersion="12"
9 android:targetSdkVersion="14" />
10
11 <application
12 android:allowBackup="true"
13 android:icon="@drawable/ic_