社么是ANDROID,安装及环境搭建介绍
1.
Android
介绍
1.1.
Android
基本概念
Android 一次本意是指 “机器人”,当然现在它是指Google 推出的开源手机操作系统。Android 基于Linux平台,由操作系统,中间件,用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。它是由一个由30多家科技公司和手机公司组成的“开放手机联盟”共同研发的,这将大大降低新型手机设备的研发成本。完全整合的全移动功能性产品成为“开放手机联盟”的最终目标。
1.2.
Android
平台
Android 有丰富的功能,因此很容易与桌面操作系统混淆。Android 是一个分层的环境,构建在 Linux 内核的基础上,它包括丰富的功能。UI 子系统包括:
- 窗口
- 视图
- 用于显示一些常见组件(例如编辑框、列表和下拉列表)的小部件
Android 包括一个构建在 WebKit 基础上的可嵌入浏览器
1.3.
Android
平台架构
Android 应用程序由一个或多个组件组成:
l 活动
具有可视 UI 的应用程序是用活动实现的。当用户从主屏幕或应用程序启动器选择一个应用程序时,就会开始一个动作。
l 服务
服务应该用于任何需要持续较长时间的应用程序,例如网络监视器或更新检查应用程序。
l 内容提供程序
可以将内容提供程序看作数据库服务器。内容提供程序的任务是管理对持久数据的访问,例如 SQLite 数据库。如果应用程序非常简单,那么可能不需要创建内容提供程序。如果要构建一个较大的应用程序,或者构建需要为多个活动或应用程序提供数据的应用程序,那么可以使用内容提供程序实现数据访问。
l 广播接收器
Android 应用程序可用于处理一个数据元素,或者对一个事件(例如接收文本消息)做出响应。
Android 应用程序是连同一个 AndroidManifest.xml 文件一起部署到设备的。AndroidManifest.xml
包含必要的配置信息,以便将它适当地安装到设备。它包括必需的类名和应用程序能够处理的事件类型,以及运行应用程序所需的许可。例如,如果应用程序需要访问网络 — 例如为了下载一个文件 — 那么 manifest 文件中必须显式地列出该许可。很多应用程序可能启用了这个特定的许可。这种声明式安全性有助于减少恶意应用程序损害设备的可能性。
接下来让我们讨论构建 Android 应用程序所需的开发环境。
2.
Android
环境搭建
这里我们将采用 Eclipse + Android 这样的组合来搭建整个完整的开发环境
首先,我们要先下载下列工具和开发包:
2.1. JDK 安装
JDK1.6,下载网址: http://java.sun.com/javase/downloads/index.jsp
因为Android 是JAVA的开发语言所以我们要先配置下jdk,去上述网址下载jdk 中途可能需要用户先注册。见下图
步骤1
.
步骤2.

步骤3.

下载完后进行安装,如果用户使用的默认的安装路径,例如:C:\ProgramFiles\Java\jdk
那么环境变量就可以设置如下:
l JAVA_HOME
JAVA_HOME=C:\ProgramFiles\Java\jdk
l CLASSPATH
CLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;
l Path(要使用命令行工具必须配置)
Path=%JAVA_HOME%\bin;
具体可以参照下图:
Jdk_config_1

Jdk_config_2:

Jdk_config_3:

Jdk_config_4:

2.2. ANDROID SDK安装
由于正规渠道 http://developer.android.com 被墙,这里开发者可以去网上下载个SDK包,网上资源很多。这里笔者下载的是 2.1 版本的 SDK 包
下载下来的是一个ZIP 包,将其解压,得到下面的目录:

使用 SDK Setup.exe 进行安装,安装完后,目录下会多出几个目录

然后配置Android 的环境变量:
l Android_SDK_HOME
Android_SDK_HOME=C:\MobilePhoneDEV\AndroidSDK
(sdk 包安装的路径)
l Path(要使用命令行工具必须配置)
Path=%Android_SDK_HOME%\tools;
2.3. Eclipse安装
Eclipse 下载链接http://www.eclipse.org/downloads/
这里我们下载的是 Eclipse IDE for Java Developers下的eclipse-java-helios-SR1-win32.zip 的这个版本,下载完成后将ZIP包解压开来,点击eclipse.exe文件运行Eclipse。
n eclipse->Help->Install New SoftWare
n Work with 后面的Add ,Name:自己随便写,
Location: http://dl-ssl.google.com/android/eclipse/site.xml
android_sdk_install_1:

全部勾选,然后一路next.
安装完成后会提示你重新启动Eclipse,重启后选择 Windows--->Preferences, 将目录指向你的Android 包放置的目录.
android_sdk_install_2:

android_sdk_install_3:

2.4. AVD安装
AVD 也就是Android 模拟器,
Windows->Android SDK And AVD Manager->Virtual Devices这时候点击New,Name随便写,Target选择一个,比如刚才Apply的那个SDK的版本,Size随便填个数字,这是用来虚拟一个SDard,最后Create AVD。
这时候模拟器就创建完成了。
android_sdk_install_4:

android_sdk_install_5:

2.5. Android 开发辅助工具,视图介绍
n Window->Show View->Other,选择LogCat, Devices, Emulator Control
LogCat:可以查看到模拟手机内部的文件信息 以及一系列出错信息
Devices:显示模拟器运行过程
Emulator Control:模拟发送短信信息 等一系列事情
android_sdk_install_6:

android_sdk_install_7:

n 右上角,点击Java边上的图标选择others,选择DDMS选项,用户还可以切换至 DDMS,查看虚拟设备,如果你的手机有链接上电脑, DDMS 里也会显示你的手机的ID
android_sdk_install_8:

android_sdk_install_9:

环境搭建好后让我们写第一个实例代码,经典的
Hello World
3. Android Hello World
3.1. 按如下步骤新建一个项目: File->New->Project
选择Android 新建一个 Android Project, 如下图:
hello_world_1:

点击next 后会出现下面的界面, 分别填写
Project Name:项目名字
Application Name: 应用名字
Package Name: 项目包名
Create Activity: 创建一个入口Activity,这里填写这个 Activity的名字
Min SDK Version: 支持的最低版本SDK,这里我们导入的是2.1的版本,version 号是7,不过我们要我们的应用也支持包括1.5在内的版本,所以这里填写3。
Build Target: 选择你的应用对应的 SDK 版本,这里我们选择 2.1
Hello_world_2:

这里需要提及一下,有时候会出现create 一个项目后却出现报错的现象,项目上有个小红叉,这时候可以重新run 一下SDK,具体如下,右击你的项目,选择Properties, 进入如下画面,点击 Apply 按钮,等其run 完后 ok。
hello_world_3

这样项目就创建成功了, 我们可以子啊左侧的 Package Explore 窗口中看到新建的项目 HelloWorld_test.
3.2. 项目目录介绍:
下面我们来看下我们创建的 Hello World 项目的文件结构:

项目架构主要是由一个 AndroidManifest.xml 列表文件, 与 src/, gen/, res/ 三个文件夹组成,它们各自担负着各自的作用。
src/ : 源代码目录
gen/: 自动生成目录,自动产生一个 R.java 文件,劲量避免手工操作该文件,这个文件会自动根据我们放入 res/ 中的xml描述文件,图像,文件等资源自动跟新生成标示ID。我们在开发过程中就会经常通过 R类来调用资源。
res/: 资源目录,存放所有程序中用到的资源目录,其下目录又包括
drawable/: 存放图片资源, 如果后面跟有hdpi,则是用来区分手机分辨率,不同分辨率用不同大小的图片资源.Hdpi:高,ldpi:低,mdpi:中。
Layout/: 页面布局目录,其所含有的XML 文件都是格式说明文件,用来标示应用在手机上的界面布局。
Values/: 参数值目录, 此处添加一些额外的资源如字符串,颜色,风格等。
上面这些 res/ 下的资源都可以通过 R 类来调用。
3.3. 模拟器使用
之前我们创建了一个模拟器,现在我们就可以来使用了,右击项目 Run As -à Android Application, 我们就可这样就会启动我们刚才创建的 模拟器,如下图:

thinkland_avd 就是我们刚才所起的模拟器名字,5554相当于一个编号,如果我们用模拟器来模拟拨号,发短信,5554 就相当于一个电话号码。
当然我们也可以选择 Run As --àRun Configurations 来选择你所创建的 模拟器, 如下图:

3.4. 用户界面介绍

我们可以在模拟器的界面上看到 Hello World, HelloWorld! 这个一个字符串,那么这个字符串是怎么显示出来的呢?
打开 res/layout/main.xml 这个文件
1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
2 android:orientation="vertical"
3 android:layout_width="fill_parent"
4 android:layout_height="fill_parent"
5 >
6 <TextView
7 android:layout_width="fill_parent"
8 android:layout_height="wrap_content"
9 android:text="@string/hello"
10 />
11 </LinearLayout>
Hello World, HelloWorld 这个字符就是 @string/hello 的内容。
打开 res/values/string.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 <string name="hello">Hello World, HelloWorld!</string>
4 <string name="app_name">HelloWorld</string>
5 </resources>
这个文件很好读,一个<LinearLayout>描述了这是一个线性排列的布局,android:orientation=vertical表示所有组件将纵向排布。而经典的Hello
World是用一个TextView来展示的。
果然找到了字符串,现在是不是都明白了。当然将 Hello World,
HelloWorld! 改成中文也是可以的 你好, Hello World!。

注意:Eclipse 开发环境里直接预览中文汉字会出现乱码,不过不必担心,在模拟器或者实机种都会正常显示中文。
3.5. Acticity介绍
Acticity 是整个 Android 中非常重要的一个类。
下面我们就比较系统的介绍一下:
3.5.1.
Activity 生命周期
首先请看下图,这是一个完整的Activity 生命周期

在程序代码中就是下面这些方法:
1. public class MyActivity extends Activity {
2. protected void onCreate(Bundle savedInstanceState);
3.
4. protected void onStart();
5.
6. protected void onRestart();
7.
8. protected void onResume();
9.
10. protected void onPause();
11.
12. protected void onStop();
13.
14. protected void onDestroy();
15. }
你自己写的Activity会按需要 重载这些方法,onCreate是必须的:
l 一个Activity正常启动,调用的顺序:
onCreate -> onStart
-> onResume
l 一个Activity被销毁的时候的顺序:
onPause -> onStop
-> onDestroy
l 一个Acitivity被中止的时候的顺序:
onPause->onStop ,
l 当这个中止的Activity被恢复的时候:
onRestart->onStart->onResume
l 如果是多个Activity 之间相互跳转,那么当ActicityA
跳转去 ActivityB, Activity所执行的是onPause,当回复的时候执行 onResume
详细介绍一下这几个方法中系统在做什么以及我们应该做什么:
onCreate: 在这里创建界面,做一些数据的初始化工作
onStart: 到这一步变成用户可见不可交互 的
onResume: 变成和用户可交互 的,(在activity栈系统通过栈的方式管理这些个 Activity的最上面,运行完弹出栈,则回到上一个Activity)
onPause: 到这一步是可见但不可交互 的,系统会停止动画等消耗CPU 的事情从上文的描述已经知道,应该在这里保存你的一些数据,因为这个时候你的程序的优先级降低,有可能被系统收回。在这里保存的数据,应该在onResume里读出来,
注意:这个方法里做的事情时间要短,因为下一个activity不会等到这个方法完成才启动
onstop: 变得不可见 ,被下一个activity覆盖了
onDestroy: 这是activity被干掉前最后一个被调用方法了,可能是外面类调用finish方法或者是系统为了节省空间将它暂时性的干掉,可以用isFinishing()来判断它,如果你有一个Progress Dialog在线程中转动,请在onDestroy里把他cancel掉,不然等线程结束的时候,调用Dialog的cancel方法会抛异 常 的。
这时候大家可以在回上面看一下Activity生命周期图,我想大家应该完全了解了Activity的生命周期了,不知道你了解了没?
这时候我们回过头来看Hello World 的Activity 里的代码,HelloWorld.java
1 import android.app.Activity;
2 import android.os.Bundle;
3
4 public class HelloWorld extends Activity {
5 /** Called when the activity is first created. */
6 @Override
7 public void onCreate(Bundle savedInstanceState) {
8 super.onCreate(savedInstanceState);
9 setContentView(R.layout.main);
10 }
11 }
代码中只有 onCreate() 方法,这是因为其它方法如果我们没有一些特别的逻辑的话,系统会直接条用 Activity 中的。如果要覆写,可以像下面这样。
1 import android.app.Activity;
2 import android.os.Bundle;
3 import android.util.Log;
4
5 public class HelloWorld extends Activity {
6 /** Called when the activity is first created. */
7 @Override
8 public void onCreate(Bundle savedInstanceState) {
9 super.onCreate(savedInstanceState);
10 setContentView(R.layout.main);
11 }
12
13 @Override
14 public void onDestroy(){
15 Log.v("HelloWorld","onDestroy start");
16 super.onDestroy();
17 }
18 }
这里我们重写了onDestroy 这个方法,加入了LOG 的打印方法.(关于LOG 的具体介绍可以参照另外一篇文章 Android Log 详解)
1 <?xml version="1.0" encoding="utf-8"?>
2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
3 package="com.thinkland.test.demo.main" //包名
4 android:versionCode="1" //应用的版本号
5 android:versionName="1.0"> //显示的应用版本编号
6 <application
7 android:icon="@drawable/icon" //应用显示的图标
8 android:label="@string/app_name"> //应用的名字
9 <activity
10 android:name=".HelloWorld" //声明Activity的名字
11 android:label="@string/app_name"> //title bar 上显示的名字
12 <intent-filter>
13 <action android:name="android.intent.action.MAIN" />
14 <category android:name="android.intent.category.LAUNCHER" /> //声明这个Activity 是程序的入口
15 </intent-filter>
16 </activity>
17
18 </application>
19 <uses-sdk android:minSdkVersion="3" /> //支持的最低版本的 sdk 版本号
20
21 </manifest>
3.6. mainfest.xml 基础介绍
这是我们Hello World 程序的 manifest 文件:
里面定义了我们程序的入口,版本,包名,权限等信息,一些更为具体的内容随着我们开发的深入会一一涉及,介绍到。
posted on 2011-01-21 11:00 thinkland001 阅读(953) 评论(0) 收藏 举报
浙公网安备 33010602011771号