件,此外还有一个专门用于Android开发的Android-SDK开发包。下面来让我们一步一步搭建起这个开发环境。
1.安装JDK:安装Eclipse的开发环境需要JRE的支持。先在Oracle的官方网站上下载Windows版本的JDK6,在安装进行完后,需要设置JDK的环境变量。
2.配置Eclipse:Eclipse的下载地址为:eclipse.org/downloads,选择"Eclipse IDE for Java Development"下载 Eclipse3.4。Eclipse只需要解压就可以使用。
3.配置Android SDK:安装好JDK和Eclipse后,打开Android开发者,对应的网址是:developer.android/intl/zh-CN/sdk/index.html,目前Android SDK的最新版本为2.2。下载完成以后,一样不需要安装,解压之后就可以直接使用了。为了在控制台中直接使用SDK中的工具,把SDK下的tools目录添加到Windows的PATH环境变量中。
4.安装Android Development Tools(ADT)插件:
(a)启动Eclipse,选择Help→Software→Updates项。
(b)在弹出的一个对话框中,点击"Available Software"选项。点击上面的"Add Site...",键入"dl-ssl.google/android/eclipse/",点击"OK"键。
(c)在展开的"Developer Tools"中选中"Android DDMS"和""Android Developer Tools",单击"Install"按钮,然后安装。安装完成后,提示用户重启Eclipse。
5.配置Android SDK Home:在将ADT插件安装好以后,还需要将Eclipse与Android SDK绑定在一起。在Eclipse下设置Android SDK的主目录。依次单击"Windows-Preferences-Android",然后将Android SDK所在目录填入在右侧的SDK Location框中,单击"OK"按钮后,绑定完成。
到此,Android应用程序开发平台的搭建就完成了。
到目前为止,由于Android SDK自带的移动设备模拟器不支持摄像头采集真实的图像画面,所以除了上述搭建的Android应用程序开发环境外,在编程和后面还用到了真实的基于Android平台的智能手机,这样通过移动设备模拟器来编写调试界面、网络等模块。用真实的机器调试媒体处理模块。形成了一个有机的 Android应用程序开发环境。
4 Android系统的幻灯片无线播放系统
上一章在需求分析的基础上对Android系统幻灯片无线播放系统进行了模块划分,本章将对各个模块进行分析与设计,并对各个模块进行代码实现。
4.1 手机端
4.1.1 手机端界面的设计
界面主要提供一个人机交互的平台。具体到本模块就是截取到的图片进行实时无线传输开始前将多媒体服务器的IP地址输入,设置端口参数,故应有设置界面,如图4.1所示:
图4.1 设置界面结构图
此外,还需要设计手机端播放幻灯片界面,其中包括控制幻灯片的上下翻页,结构如图4.2 。
图4.2 手机端播放界面结构图
最后,我们需要设计在电脑端实现幻灯片播放的主界面,设计图如图4.3,此时为无连接的情况下的界面,当手机与电脑实现连接并进行幻灯片的无线播放时,此界面将会进行幻灯片的播放。
图4.3 电脑端播放界面结构图
4.1.2 手机端界面的实现
Android生成屏幕有三种方式:XML配置生成;通过用户界面接口自己生成;直接写代码生成。根据MVC原则,UI应该与程序逻辑相分离,因此,在XML中定义UI结构是较为理想的一种方案。此外,一个程序从一个屏幕方案调整到另一个也容易得多。在XML中定义UI跟创建一个普通的表示网页的HTML文档非常相似。
所以在用户界面的实现上本设计方案采用XML配置生成的方法。在Android里用XML配置生成的方法实现一个界面通常要编写两个文件,一个是XML格式的界面布局文件,在这个文件里一般存放界面布局和布局下的控件。另一个是 XML所对应的Activity文件,Activity文件通过Android平台特有的资源配置文件R文件来连接其所对应的XML文件,Activity主要功能就是界面上的控件进行操控,完成软件的业务逻辑。
图4.4就是一个Acitivity的生命周期图,在下图中,Activity有三个关键的循环:第一个是整个的生命周期,从onCreate()开始到onDestroy()结束。Activity在onCreate()设置所有的"全局"状态,在onDestory()释放所有的资源。第二个是可见的生命周期,从onStart()开始到onStop()结束。在这段时间,可以看到Activity在屏幕上,尽管有可能不在前台,不能和用户交互。在这两个接口之间,需要保持显示给用户的UI数据和资源等。第三个是前台的生命周期,从onResume()开始到onPause()结束。在这段时间里,该Activity处于所有Activity的最前面,和用户进行交互。
图4.4 Acitivity的生命周期图
在编写界面代码时经常要对上面提到的Activity的方法进行重写,以便在界面不同的生命周期时完成不同的功能。
1.手机端主界面的实现的代码:
package cn.yutouxiuxiu.android.remoteslide;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText
public class MainActivity extends Activity implements OnClickListener {
/* 控件 */
private EditText ipEditText;
private EditText portEditText;
private Button startButton;
private EditText slideEditText;
/* 配置文件 */
SharedPreferences config;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/* 初始化控件 */
ipEditText = (EditText) this.findViewById(R.id.edit_ip);
portEditText = (EditText) this.findViewById(R.id.edit_port);
slideEditText = (EditText) this.findViewById(R.id.edit_slide);
startButton = (Button) this.findViewById(R.id.button_start);
startButton.setOnClickListener(this); //设置点击事件处理类为此类
/* 初始化配置 */
config = this.getSharedPreferences("config", Context.MODE_PRIVATE); //获取配置文件config
ipEditText.setText(config.getString("ip", "")); //读取之前的配置
portEditText.setText(config.getString("port", ""));
slideEditText.setText(config.getString("slide", ""));
}
/* 处理点击事件 */
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button_start:
/* 写入配置文件 */
String ip = ipEditText.getText().toString();
String port = portEditText.getText().toString();
String slide = slideEditText.getText().toString();
Editor configEditor = config.edit();
configEditor.putString("ip", ip);
configEditor.putString("port", port);
configEditor.putString("slide", slide);
configEditormit();
/* 展示幻灯片 */
Intent intent = new Intent(this, SlideActivity.class);
startActivity(intent);
break;
default:
break;
}
}
}
2.电脑端主界面实现的关键代码
p
上一篇:
基于Android的海南风景猜猜看软件的开发与研究
下一篇:
试论APP广告在手机中的应用