一.Android简介
1.1什么是Android?
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,主要支持手机。
1.2.Android的发展史。
2003年10月,Andy Rubin等人创建Android公司,并组建Android团队。
2005年8月17日,Google低调收购了成立仅22个月的高科技企业Android及其团队。安迪鲁宾成为Google公司工程部副总裁,继续负责Android项目。
2008年9月,谷歌正式发布了Android 1.0系统,这也是Android系统最早的版本。
2009年4月,谷歌正式推出了Android 1.5这款手机,从Android 1.5版本开始,谷歌开始将Android的版本以甜品的名字命名,Android 1.5命名为Cupcake(纸杯蛋糕)。该系统与Android 1.0相比有了很大的改进。
2009年9月份,谷歌发布了Android 1.6的正式版,并且推出了搭载Android 1.6正式版的手机HTC Hero(G3),凭借着出色的外观设计以及全新的 Android 1.6操作系统,HTC Hero(G3)成为当时全球最受欢迎的手机。Android 1.6也有一个有趣的甜品名称,它被称为Donut(甜甜圈)。
2010年5月份,谷歌正式发布了Android 2.2操作系统。谷歌将Android 2.2操作系统命名为Froyo,翻译完名为冻酸奶。
2010年12月,谷歌正式发布了Android 2.3操作系统Gingerbread (姜饼)。
2011年1月,谷歌称每日的Android设备新用户数量达到了30万部,到2011年7月,这个数字增长到55万部,而Android系统设备的用户总数达到了1.35亿,Android系统已经成为智能手机领域占有量最高的系统。
2011年8月2日,Android手机已占据全球智能机市场48%的份额,并在亚太地区市场占据统治地位,终结了Symbian(塞班系统)的霸主地位,跃居全球第一。
2011年9月份,Android系统的应用数目已经达到了48万,而在智能手机市场,Android系统的占有率已经达到了43%。继续在排在移动操作系统首位。谷歌将会发布全新的Android 4.0操作系统,这款系统被谷歌命名为Ice Cream Sandwich(冰激凌三明治)。
2012年6月27日,Android 4.1Jelly Bean(果冻豆)。
2012年10月30日,Android 4.2Jelly Bean(果冻豆),在Android 4.1Jelly Bean(果冻豆)的基础上做了一些改进。
2013年9月4日凌晨,谷歌对外公布了Android新版本Android 4.4KitKat(奇巧巧克力),而并非早前传闻已久的Android5.0Key Lime Pie(酸橙派)。
1.3Android的系统构架
1.3.1 Linux Kernel
Open source:开源的
Improved memory manager
:优化了内
存管理
l
Own process and threads
management
:拥有进程和线程管理机制
Proven driver model:改良的驱动模型
1.3.2Andoid Runtime
应用开发语言:Java
Dalvik虚拟机
指令 : Dalvik Excutable
Java标准库
把java代码编译为Dalvik可执行文件(dex format)
1.3.3Applications Framework
Activity manager
管理运行应用程序
Content Provider
在各应用之间共享数据
Resource Manager
• 管理非代码资源
Notification Manager
显示用户提示和状态栏
1.3.4运行库
二.Android开发环境搭建
2.1软件和插件的下载和安装
2.1.1 下载JDK 5或者6 和 Eclipse (下载好JDK就安装,然后就配置环境变量 例如我的计算机-->高级系统设置-->环境变量-->系统变量(新建)-->(变量)Path (值)JDK安装路径(如D:\java\bin)), 然后在安装 Eclipse。
下载JDK地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
下载Eclipse 地址:http://www.eclipse.org/downloads/
2.1.2下载用于在Eclipse 开发android应用的ADT 插件
Android的开发团队专门针对Eclipse IDE定制了一个插件:Android Development Tools(ADT)
下载ADT地址:http://developer.android.com/sdk/installing/installing-adt.html
2.1.3安装 Eclipse 插件 (ADT)
启动 Eclipse,选择 Help > Install New Software,在出现的对话框里,点击Add按钮,在对话框的name一栏输入“ADT”, 然后点击Archive...,浏览和选择已经下载的ADT插件压缩文件。点击 OK.。返回可用软件的视图,你会看到这个插件,然后选择Developer Tools (会选中下面的“Android Developer Tools”和 “Android Editors“),点击 Next,最后重启 Eclipse。
2.1.4下载安装Android SDK:
Android SDK包含了开发Android应用所依赖的jar文件、运行环境及相关工具。
下载完SDK后,把.zip文件解压到你电脑上合适位置。启动 Eclipse,选择window->preferences,在打开的视图左边点击android,在右边的SDK Location中选择 Android SDK所在位置。
下载 Android SDK 地址: http://developer.android.com/sdk/index.html
2.2工具都安装配置好,我们先添加一个模拟器并打开,打开成功后下面就写一个Android应用程序。
2.2.1 R.java是在建立项目是自动生成的,这个文件是只读模式,不能更改, R.java文件时定义该项目所有资源的索引文件。
package edu.bzu.hello.activity;
public final class R {
public static final class attr {
}
public static final class dimen {
/** Default screen margins, per the Android Design guidelines.
Customize dimensions originally defined in res/values/dimens.xml (such as
screen margins) for sw720dp devices (e.g. 10" tablets) in landscape here.
*/
public static final int activity_horizontal_margin=0x7f040000;
public static final int activity_vertical_margin=0x7f040001;
}
public static final class drawable {
public static final int ic_launcher=0x7f020000;
}
public static final class id {
public static final int action_settings=0x7f080000;
}
public static final class layout {
public static final int activity_main=0x7f030000;
}
public static final class menu {
public static final int main=0x7f070000;
}
public static final class string {
public static final int action_settings=0x7f050001;
public static final int app_name=0x7f050000;
public static final int hello_world=0x7f050002;
public static final int opm_name=0x7f050003;
}
public static final class style {
/**
Base application theme, dependent on API level. This theme is replaced
by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here.
Base application theme for API 11+. This theme completely replaces
AppBaseTheme from res/values/styles.xml on API 11+ devices.
API 11 theme customizations can go here.
Base application theme for API 14+. This theme completely replaces
AppBaseTheme from BOTH res/values/styles.xml and
res/values-v11/styles.xml on API 14+ devices.
API 14 theme customizations can go here.
*/
public static final int AppBaseTheme=0x7f060000;
/** Application theme.
All customizations that are NOT specific to a particular API-level can go here.
*/
public static final int AppTheme=0x7f060001;
}
}
2.2.2 资源文件中一些常量的定义,如String.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Hello</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
<string name="opm_name">第一个Android程序</string>
</resources>
2.2.3然后看看布局文件(layout),首先在res->layout->main.xml文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/opm_name"
/>
</RelativeLayout>
2.3.4接下来我们在看看Hello项目的主程序文件MainActity.java。
package edu.bzu.hello.activity;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
2.3.5最后我们就运行一下程序,看看在模拟器上运行的效果图。