admin 管理员组

文章数量: 887026


2023年12月18日发(作者:spring festival英语作文80字)

《Android应用程序设计》

实 验 报 告

学生姓名:

班 级:

学 号:

指导教师: * * *

学 期:

2015-2016学年第2学期

1

实验1 搭建开发环境与第1个Android程序

【实验类型】验证性(必做)

【实验目的】1.熟悉Android开发环境的搭建

2.掌握用Eclipse开发Android程序的流程

教师签名

实验成绩

【实验内容】

一、搭建Android开发环境

按照下面的步骤,完成Android环境的搭建。

1.1 JDK的安装及配置

日 期

1.根据电脑的系统位数安装软件包里的JDK,安装目录设置为d:jdk1.x。(d为你的

安装盘,可以设为任意盘;x为你安装的jdk版本)

2. WIN7系统环境变量设置

(1)环境变量设置一

(2)环境变量设置二

2

(3)环境变量设置三

(4)环境变量设置四

1)创建新的环境变量。名:JAVA_HOME,值:x:jdk1.7

2)修改系统变量Path,在path变量值前添加这段:%JAVA_HOME%bin;

3)修改系统变量classpath,值为:

.;%JAVA_HOME%;%JAVA_HOME%;

(5)环境变量设置五

1)测试开发环境。在开始->搜索程序和文件里输入,打开cmd。

输入cd c: 命令进入c盘根目录。

3

2)在c盘根目录下使用记事本编写源文件,并存为java文件。

public class MyApp {

public static void main (String[] args) {

} }

n(“我能学好Java语言!”);

3)使用javac命令编译程序,在cmd命令行输入:javac

生成class类型文件。

4)使用java命令运行程序,在cmd命令行输入:java MyApp

如果在命令行显示结果“我能学好Java语言!”,则JDK环境配置成功。

1.2 Android SDK的安装及配置

1. 解压adt-bundle-windows-x86_文件,里面的SDK是免安装版。SDK本身自带Android4.4,如果想下载其他版本的,双击SDK ,下载需要的软件包(因为官网下载比较慢,而且经常出错,可以参考/harvic880925/article/details/37913801 中的方法,选择自己需要的离线安装)

2. 如果不安装其他Android包,则无需下载。但要在系统环境中配置一下SDK。

3. 在系统变量Path中添加下面两句:

X:Android-SDKsdkplatform-tools; X:Android-SDKsdktools;(其中X为你解压SDK的盘符名,对照添加…sdkplatform-tools,…sdktools这两个工具的路径)

1.3 Eclipse的汉化(选做)

1. 打开浏览器,在地址栏输入/babel/,进入Eclipse Babel官网。

2. 单击左侧”Downloads”,进入下载页面。

4

3. 复制”Babel Language Pack Update Site for luna”下方的

” /technology/babel/update-site/R0.12.1/luna”链接。

4. 启动Eclipse,单击“Help”菜单。

5. 单击“Install ”菜单项。

6. 单击“”按钮,显示增加仓库对话框。在“Name”栏中,输入“Eclipse Babel”,在“Location”栏中输入刚刚复制的网址。单击“OK”按钮联网查找可用软件包。

7. 选择“Babel Language Packs for eclipse”下的“Babel Language Pack for eclipse in

Chinese(Simplified)”,单击“Next>”按钮。显示的是插件的详细信息,包括插件名称、版本号和ID。单击“Next>”按钮继续。

8. 在下载完成后会询问是否安装该插件。

5

9. 单击“OK”按钮确认安装,在安装完成后会要求重新启动Eclipse,单击“Restart Now”按钮完成安装。

1.4 模拟器的安装和调试——Genymotion

由于Eclipse自带的模拟器AVD奇慢无比,极大的影响开发速度,所以建议安装Android模拟器之王——Genymotion,除了不能用地图之外,其他的功能和真机无差别。安装步骤请参考以下网址。

/article/

参考安装模拟器型号为Google Nexus 4 – 4.4.4 – API19 – 768x1280

1.5 真机调试

如果你安装不上Genymotion,那么你只能使用Android手机调试,但是手机一直连接电脑会不停的充电,损害手机,所以建议你还是把Genymotion的安装再仔细看看,一般都是可以安装成功的。真机调试步骤如下。

1. 把手机通过数据线连接在电脑上,设置android手机为USB调试模式。步骤: menu—> 设置 —> 应用程序 —> 开发 , 选择【USB调试】。

2. 如果是Winxp系统,系统会提示安装驱动,装好后进行命令行测试。如果是Win7系统,则可以直接进行命令行测试。打开命令行,如下图所示。

当显示如“I699cfad4f84 device”字样,那么就是检测到的手机设备型号。说明你已经成功6

连好手机了。

3. 接下来就开始在eclipse上调试android程序了,右击android工程->Run as->Android

Application,弹出如下窗口(如果项目要求的API版本高于测试手机API版本,则不会在图中显示手机折本):

4. 选中手机设备,点击OK之后,程序就开始在真机上安装了,安装好了之后就能看到运行效果。并且如果有异常,都会显示在Eclipse的命令行窗口显示错误提示。

二、创建第一个Android应用

参照课本《疯狂Android讲义》1.4节内容,用Eclipse创建第一个Android应用,并将、hello_以及运行后的应用截图填写在下方:

1. 主程序代码如下:

7

2. 布局文件hello_代码如下:

3. 运行效果图如下:

8

实验2 Activity的生命周期

【实验类型】验证性(必做)

【实验目的】1.熟悉Activity的生命周期

2.熟悉Eclipse的DDMS查看Logcat日志

教师签名

实验成绩

【实验内容】

一、熟悉Activity的生命周期

按照下面的步骤,完成代码的执行,查看Logcat日日 期

志,并将Logcat日志结果和应用运行的结果截图填写在空白处。

1.新建一个Android工程,命名为ActivityDemo。

2.修改,代码如下:

package tydemo;

import ty;

import ;

import ;

public class ActivityDemo extends Activity {

private static final String TAG = "ActivityDemo";

private EditText mEditText;

// Activity创建时被调用

public void onCreate(Bundle savedInstanceState) {

te(savedInstanceState);

setContentView(ty_main);

mEditText = (EditText)findViewById(xt);

Log.i(TAG, "start onCreate~~~");

}

// Activity创建或者从后台重新回到前台时被调用

@Override

protected void onStart() {

t();

Log.i(TAG, "start onStart~~~");

}

// Activity从后台重新回到前台时被调用

@Override

protected void onRestart() {

art();

Log.i(TAG, "start onRestart~~~");

}

// Activity创建或者从被覆盖、后台重新回到前台时被调用

@Override

9

protected void onResume() {

me();

Log.i(TAG, "start onResume~~~");

}

// Activity被覆盖到下面或者锁屏时被调用

@Override

protected void onPause() {

e();

Log.i(TAG, "start onPause~~~");

}

// 退出当前Activity或者跳转到新Activity时被调用

@Override

protected void onStop() {

();

Log.i(TAG, "start onStop~~~");

}

// 退出当前Activity时被调用,调用之后Activity就结束了

@Override

protected void onDestroy() {

roy();

Log.i(TAG, "start onDestroy~~~");

}

}

3.运行工程,将效果图贴在下方(主体部分截图):

10

11

4. 查看Logcat视窗。

(1)运行工程后打开了应用,先后会执行onCreate()->onStart()->onResume三个方法,这时打开DDMS视图,点击Logcat窗口的绿色“+”号,新建一个过滤器,并设置“by Log

Tag”项为ActivityDemo,窗口下面的“by Log Level”选择“info”,看一下LogCat视窗如下:

(2)点击模拟器的返回键时,这个应用程序将结束,这时候应用的Activity将先后调用onPause()->onStop()->onDestory()三个方法,参照上步的截图,将此时Logcat的截图贴在下方:

(3)按下模拟器的HOME键,应用中Activity先后执行了onPause()->onStop()这两个方法,Logcat如下图所示:

12

(4)在模拟器中再次点击ActivityDemo应用程序,则先后分别执行了onRestart()->onStart()->onResume()三个方法,如下图所示:

(5)修改activity_布局文件(增加了一个EditText),代码如下:

android:orientation="vertical"

android:layout_width="match_parent"

android:layout_height="match_parent" />

13

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="Hello It's MyApp" />

android:id="@+id/editText"

android:layout_width="match_parent"

android:layout_height="wrap_content" />

修改代码中的onStop()方法如下:

protected void onStop() {

();

t("");

Log.e(TAG, "start onStop~~~");

}

(6)其他不变,运行ActivityDemo程序,在EditText里输入如"Frankie"字符串(如下图):

(7)这时按一下模拟器的HOME键,然后再次启动ActivityDemo应用程序,这时候EditText里并没有我们输入的"Frankie"字样,这是因为点击HOME键后,当前Activity调用了onStop方法,而在onStop方法中我们设置了EditText的文本为空。

要想保留原来输入的文字,需要在Activity几个方法里自己实现一些代码(主要是修改了onRestart和onPause两个方法),修改代码如下:

public class ActivityDemo extends Activity {

private static final String TAG = "ActivityDemo";

private EditText mEditText;

//定义一个String 类型用来存取我们EditText输入的值

private String mString;

public void onCreate(Bundle savedInstanceState) {

te(savedInstanceState);

setContentView();

mEditText = (EditText)findViewById(xt);

Log.e(TAG, "start onCreate~~~");

}

@Override

protected void onStart() {

t();

14

Log.e(TAG, "start onStart~~~");

}

// 当按HOME键时退到手机主界面,然后再次打开应用时,会启动onRestart方法

// 所以只要在onRestart方法中恢复先前状态

@Override

protected void onRestart() {

art();

t(mString);

Log.e(TAG, "start onRestart~~~");

}

@Override

protected void onResume() {

me();

Log.e(TAG, "start onResume~~~");

}

// 当按HOME键时退到手机主界面,当前的Activity会执行onPause方法

// 我们只需在onPause方法中将输入的值保存在mString

@Override

protected void onPause() {

e();

mString = t().toString();

Log.e(TAG, "start onPause~~~");

}

@Override

protected void onStop() {

();

Log.e(TAG, "start onStop~~~");

}

@Override

protected void onDestroy() {

roy();

Log.e(TAG, "start onDestroy~~~");

}

}

(8)重新运行ActivityDemo程序,重复第六步操作,当我们按HOME键后,再次启动应用程序时,EditText里有上次输入的"Frankie"字样,截图如下:

15

16

【思考题】 如果第8步中点击的不是HOME键,而是BACK键,那么再次启动应用程序时,EditText里还有上次输入的"Frankie"字样吗?为什么?

解答:没有了应为当你按下手机的Home键的时候,系统会默认调用程序栈中最上层Activity的stop()方法,然后整个应用程序都会被隐藏起来,当你再次点击手机桌面上应用程序图标时,系统会调用最上层Activity的OnResume()方法,此时不会重新打开程序,而是直接进入,会直接显示程序栈中最上层的Activity ,不过。。。按home键,程序还会在后台运行,activity不会destroy,此时还是占用系统内存的,当运行某项占用内存的动作,内存不够,系统会自动回收不常用的内存。你的程序在别的手机上跑时候很可能是被干掉了。所有每次都会重新运行。。。长按home键进入 与 点击图标进入的生命周期执行有那么一点不一样的。。

17

实验3 UI界面编程(一)

【实验类型】验证性(必做)

【实验目的】1.熟悉帧布局和相对布局

2.了解线程与Handler机制

教师签名

实验成绩

【实验内容】

一、 实现“霓虹灯”效果

参照课本2.2.3小节“帧布局”(第56页),实现霓虹日 期

灯效果,并将实现的代码和运行后的效果图复制到下方空白处。

【注意:程序中使用了1这样的资源引用,需要在包资源管理器(package

explorer)中打开FrameLayoutTest/res/values文件夹,新建一个名叫“colors”的XML文件,并分别定义6个颜色资源。

代码如下:

#f00

#0f0

#00f

#ff0

#f0f

#0ff

1. 布局文件main_代码如下:

xmlns:tools="/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

18

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context="03_tivity">

android:id="@+id/tv_time"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Time"

android:layout_centerInParent="true"

android:textAppearance="?android:attr/textAppearanceLarge"/>


本文标签: 实现 布局 安装