20155213 实验四 Android程序设计
20155213 实验四 Android程序设计
实验内容
- 基于
Android Studio
开发简单的Android
应用并部署测试; - 了解
Android
组件、布局管理器的使用; - 掌握
Android
中事件处理机制。
任务一
-
完成
Hello World
, 要求修改res
目录中的内容,Hello World
后要显示自己的学号 -
完成这个任务,首先需要了解
Android
应用程序文件的组成:
需要掌握的知识
-
src
目录:
在src
目录中保存了开发人员编写的程序文件。与一般的java项目类似,src目录下保存的是项目的所有包及源文件(.java),res目录下包含了项目中的所有资源。例如:程序图标(drawable)、布局文件(layout)和常量(value)等。 -
R.java
文件是定义该项目所有资源的索引文件。
-
manifests
包含了一个AndroidManifest.xml
文件,它描述了应用程序。格式一般如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.q.myuidesign">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
- 其中```Android```工具还用此信息生成相应Java类,以便于写Java资源的时候使用
-
apk文件
-
layout
用于布局时使用 -
相应列表
-
任务一运行截图
-
PS:电脑配置不好的,建议直接用的物理机下载运行,具体步骤就是
-
电脑连接
Android
机 -
在
Android
机里的开发者选项里打开USB调试选项 -
在
AndroidStudio
里进入这个界面,选择USBdevice
-
之后在运行就可以了
-
任务二
- 创建
ThirdActivity
, 在ThirdActivity
中显示自己的学号,修改代码让MainActivity
启动ThirdActivity
需要掌握的知识
- 创建Activity
* 顺着这个路径File>>new>>Activity>>empty Activity
就可以创建一个
* 通过上面的步骤Android
工具会自动给在manifest
里添加上<Activity/>
- 从
mainactivity
里启动第二个activity``,需要在
main_activity.java```里添加上下面这段程序
@Override
public boolean onTouch(View arg0, MotionEvent event) {
Intent intent = new Intent(this, ThirdActivity.class);
intent.putExtra("message", "20155213lzm");
startActivity(intent);
return true;
}
在我手机上运行截图:
任务三
- 构建项目,运行教材相关代码
- 修改代码让Toast消息中显示自己的学号信息
需要掌握的知识
string.xml
:程序中需要引用的string都来自与这个文件中,格式一般如下:
<resources>
<string name="app_name">MyUIDesign</string>
</resources>
MainActivity
里的选项:OnCreate
方法是一个生命周期方法,每创建应用程序时都需要调用他OnCreatMenu
方法初始哈勒活动的选项菜单的内容,要让菜单先是,它必须返回true
- Toast:这是一个小的弹出的对话框,用于先是一条信息作为给用户的反馈
在我手机上的运行截图:
任务四
- 构建项目,运行教材相关代码
- 修改布局让P290页的界面与教材不同
需要掌握的知识
- 作为一个重要的Android组件,布局定义了UI组件的可视化结构
- 下面是andriod中的一些布局:
LinearLayout
: 将所有子视图以相同的方向(或者水平的或者垂直的)对齐的一个布局RelativeLayout
根据子视图的一个或者多个同级视图的位置来排列他的一个布局TableLayout
: 将子视图放在另一个字视图的顶部的一个布局
在我手机上运行的截图:
任务五
-
事件处理测试: 参考《Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)》第二十八章
-
构建项目,运行教材相关代码
需要掌握的知识
-
Android是基于事件的。使用活动中的一个视图进行的用户交互,可能会触发一个事件,包括点击、长按、触碰和按键等等。
* 要让程序响应某一个事件,需要为该事件编写一个监听器。也就是要实现嵌入在android.view.View类中的一个接口。比如OnClickListener
接口的onClick()
方法。 -
运行的主要代码:
package com.example.multicolorclock;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.AnalogClock;
public class MainActivity extends Activity {
int counter = 0;
int[] colors = { Color.BLACK, Color.BLUE, Color.CYAN,
Color.DKGRAY, Color.GRAY, Color.GREEN, Color.LTGRAY,
Color.MAGENTA, Color.RED, Color.WHITE, Color.YELLOW };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
public void changeColor(View view) {
if (counter == colors.length) {
counter = 0;
}
view.setBackgroundColor(colors[counter++]);
}
}
我手机上运行的截图:
PSP(Personal Software Process)时间
步骤 | 耗时(min) | 百分比 |
---|---|---|
需求分析 | 20 | 20 |
设计 | 30 | 30 |
代码实现 | 30 | 30 |
测试 | 10 | 10 |
分析总结 | 10 | 10 |