20175221曾祥杰 实验四《Android程序设计》
实验四《Android程序设计》
实验报告封面
课程:Java程序设计 班级:1752班 姓名:曾祥杰 学号:20175221
指导教师:娄嘉鹏 实验日期:2019年5月13日
实验时间:13:45 - 15:25 实验序号:21
实验名称:Android程序设计
一.实验内容
1. Android Stuidio的安装测试
2. Activity测试
3. UI测试
4.布局测试
5.事件处理测试
二.实验步骤
第一部分: Android Stuidio的安装测试
要求:
参考《Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)》第二十四章:
参考http://www.cnblogs.com/rocedu/p/6371315.html#SECANDROID,安装 Android Stuidio
完成Hello World, 要求修改res目录中的内容,Hello World后要显示自己的学号,自己学号前后一名同学的学号,提交代码运行截图和码云Git链接,截图没有学号要扣分
学习Android Stuidio调试应用程序
具体操作
- 先参考娄老师的Android开发简易教程,下载安装 Android Stuidio
- 之后一路 Next 到以下选择:
- 选择 Setup Proxy ,之后一路 OK 和Next 就可以了,到了开始页面按照如下顺序操作,创建一个新的Android项目。
- 介绍一下选项:
- Start a new Android Studio project 创建一个新的Android项目
- Open an existing Android Studio Project 打开已有的Android Studio项目
- Check out project from Version Control 从版本控制库中获取项目
- Import project(Eclipse ADT, Gradle, etc.) 导入其他开发环境中的项目
- Import an Android code sample 导入Android代码样例
- 将 Name 改为 Hello World ,如下配置,完成后 Finish
配置和启动模拟器
- 在Android Studio的主界面上方的工具栏中,可以看到一个名为 AVD Manager 的按钮,点击它就能打开Android虚拟设备管理器。
- 此时并没有任何的虚拟设备,我们需要点击中央的 Create a virtual device 按钮来创建一台模拟器。
- 选择 Phone 就可以了,再选择型号对应的硬件条件,点击右下角的
Next
按钮,之后开始下载,界面如下: - 下载完成后界面如下,蓝光标所示即为我刚刚下载并且现在可用的虚拟安卓设备,之后 Next 进入到确认配置的一步。
- 在这里,你可以设置模拟器的名称。我们建议你在名称中注明使用了哪一个版本的系统镜像(例如
API 24
) - 最后点击 Finish 按钮,就能看到刚刚创建的模拟器(可以假装模拟器就是你的手机,这样你想给它配啥系统它都有,这在现实中可不多得!)
项目的编译和运行
- 先来初步了解Android Studio 的构造:
- 我们可以看到,左栏窗口中有两个主要的节点 app 和 Gradle Scripts 。其中, app 中包含了应用程序中所有的组件,包括:
manifests :包含一个 AndroidManifest.xml 清单文件
java :包含所有的Java应用程序和测试类
- generatedJava :包含编译类
- res :包含资源文件,以及以下目录:
drawable
layout
menu
values
mipmap
Hello World测试
- 打开 layout->activity_main.xml
- 修改 android:text 中的相应内容为自己的学号,以及自己学号前后一名同学的学号,并运行,结果如下:
- Git链接
调试应用程序
设置断点
- 与IDEA相似,在Android Studio调试中一个应用程序,我们也可以在任意一行设置断点。
- 然后打开 Run->Debug 即可进行调试程序
- 在 Android Studio 下方的 Debug 栏即可进入代码、浏览变量
LogCat日志消息
- 调试一个应用程序,我们也可以使用日志消息。
- 在 Android Studio 主屏幕的底部可以看到 Android DDMS 视图。
- LogCat的不同级别的日志消息以不同的颜色来显示,每条消息都有一个标签,这使得我们可以很容易找到一条消息。
第二部分:Activity测试
要求:
参考《Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)》第二十五章:
构建项目,运行教材相关代码
创建 ThirdActivity, 在ThirdActivity中显示自己的学号,修改代码让MainActivity启动ThirdActivity
提交代码运行截图和码云Git链接,截图要有学号水印,否则会扣分
相关知识:
- Activity 是包含了用户界面组件的一个窗口。一个典型的Android应用程序,都是从启动一个 Activity开始的。应用程序所创建的第一个窗口,叫做主活动。
- 启动一个 Activity 涉及到的方法:
onCreat() onPause() onStart() onResume() onStop() onRestart() onDestory()
具体操作:
- 首先在 AndroidManifest.xml 中添加一个 MyActivity
- 之后添加一个 MyActivity.java 文件和一个 activity_my.xml 文件
- 修改 MainActivity.java 使其能够启动 MyActivity.java
- 修改MyActivity.java如下:
package cn.edu.besti.is.myapplication; import android.support.v7.app.AppCompatActivity;
import android.os.Bundle; public class MyActivity extends AppCompatActivity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
}
}- 修改activity_my.xml如下:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"> <TextView
android:id="@+id/textView"
android:text="20175221 曾祥杰"
android:layout_width="200dp"
android:layout_height="132dp"
tools:layout_editor_absoluteX="255dp"
tools:layout_editor_absoluteY="255dp"
tools:ignore="MissingConstraints" />
</android.support.constraint.ConstraintLayout>- 运行如下:
- GIT链接
第三部分:UI测试
要求:
- 参考《Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)》第二十六章:
- 构建项目,运行教材相关代码
- 修改代码让Toast消息中显示自己的学号信息
- 提交代码运行截图和码云Git链接,截图要有学号水印,否则会扣分
具体操作:
- Toast是一个弹窗,用于显示一条消息,作为给用户的反馈。
- 修改MainActivity.java 代码:
package cn.edu.besti.is.myapplication;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toast toast = Toast.makeText(MainActivity.this, "20175221曾祥杰", Toast.LENGTH_LONG);
toast.show();
}
}- 修改 activity_main.xml 代码:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="cn.edu.besti.is.myapplication.MainActivity"> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="欢迎加入20175221的夸夸群"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
- 运行如下:
- GIT链接
- 第四部分:布局测试
要求:
- 参考《Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)》第二十七章:
- 构建项目,运行教材相关代码
- 修改布局让P290页的界面与教材不同
- 提交代码运行截图和码云Git链接,截图要有学号水印,否则会扣分
具体操作:
修改 activity_main.xml 代码:
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"> <Button
android:text=""
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="400dp"
android:layout_marginLeft="160dp" />
<Button
android:text="曾祥杰"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="450dp"
android:layout_marginLeft="160dp" />
<ImageButton
android:src="@android:drawable/btn_star_big_on"
android:background="@android:color/black"
android:alpha="0.55"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="160dp"
android:layout_marginLeft="183dp" />
<ImageView
android:src="@android:drawable/presence_audio_away"
android:background="@android:color/holo_blue_bright"
android:alpha="0.70"
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_marginTop="200dp"
android:layout_marginLeft="140dp"
android:padding="4dp"
android:id="@+id/imageView"
android:layout_centerHorizontal="true" /> <TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"> <Space
android:layout_width="wrap_content"
android:layout_height="wrap_content" /> <ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@android:drawable/arrow_down_float" /> <Switch
android:id="@+id/switch1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Switch" />
</TableRow> </FrameLayout>- 运行如下:
- GIT链接
第五部分:事件处理测试
要求:
- 参考《Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)》第二十八章:
- 构建项目,运行教材相关代码
- 提交代码运行截图和码云Git链接,截图要有学号水印,否则会扣分
具体操作:
- 修改 MainActivity.java 中的代码
package cn.edu.besti.is.myapplication;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
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) {
// Inflate the menu; this adds items to the action bar if it
// is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
public void changeColor(View view) {
if (counter == colors.length) {
counter = 0;
}
view.setBackgroundColor(colors[counter++]);
}
}修改 activity_main.xml 中代码
<?xml version="1.0" encoding="utf-8"?>
<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">
<AnalogClock
android:id="@+id/analogClock1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="90dp"
android:onClick="changeColor" />
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="20175221曾祥杰"
android:textSize="30dp"
android:layout_marginLeft="90dp"
android:layout_marginTop="290dp"
android:textColor="#bbbb57"/> </RelativeLayout>- 其中我多加了一段 TextView 来显示我的学号姓名
- 运行如下:
- GIT连接
实验中遇到的问题
问题1:在一开始运行Android Studio时,一片红,并且 MainActivity.java 图标不对
问题1解决方案:
第一次安装的时候,选择了 cancel
卸载重新安一边就OK了
实验体会:
- 这次的实验难度不算特别大,因为每一步的教程教材上基本都有,对照着修改一些地方就可以完成每一步。
- 这一次的实验我学习了Android程序开发基础,真的感觉好神奇。我仿佛真的是一个Android开发人员,整个实验过程都把精力投入在功能设计与界面布局中,最后出成品时非常开心。
- 通过这次的实验,我收获颇丰。也希望以后的实验也可以做得更好。
步骤 | 耗时 | 百分比 |
---|---|---|
需求分析 | 10min | 7% |
设计 | 60min | 40% |
代码实现 | 20min | 13% |
测试 | 10min | 7% |
分析总结 | 50min | 33% |
20175221曾祥杰 实验四《Android程序设计》的更多相关文章
- 20175221曾祥杰 实验二《Java面向对象程序设计》
实验二<Java面向对象程序设计> 实验报告封面 课程:Java程序设计 班级:1752班 姓名:曾祥杰 学号:20175221 指导教师:娄嘉鹏 实验日期:2019年4月17日 实验时间 ...
- 20175221曾祥杰 实验三《敏捷开发与XP实践》
实验三<敏捷开发与XP实践> 实验报告封面 课程:Java程序设计 班级:1752班 姓名:曾祥杰 学号:20175221 指导教师:娄嘉鹏 实验日期:2019年4月30日 实验时间:13 ...
- 实验四 Android程序设计 实验报告
实验四 Android程序设计 实验报告 目录 代码托管地址 Android程序设计-1 Android程序设计-2 Android程序设计-3 Android程序设计-4 Android程序设计-5 ...
- 第十四周实验报告:实验四 Android程序设计
20162317袁逸灏 第十四周实验报告:实验四 Android程序设计 实验内容 Android Studio 实验要求 学会使用Android Studio 学习 活动 以及相关知识内容 学习 U ...
- 20165235实验四 Android程序设计
20165235实验四 Android程序设计 实验课程:JAVA编程设计 实验名称:Android开发 姓名:祁瑛 学号:20165235 实验时间:2018.05.16 指导老师:娄家鹏 Andr ...
- 20165220Java实验四 Android程序设计
一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:葛宇豪 学号:20165220 指导教师:娄嘉鹏 实验日期:2018年5月14日 实验时间:13:45 - 15:25 实验序号:实验 ...
- 20172328《程序设计与数据结构》实验四 Android程序设计报告
20172328<程序设计与数据结构>实验四 Android程序设计报告 课程:<程序设计与数据结构> 班级: 1723 姓名: 李馨雨 学号:20172328 实验教师:王志 ...
- 20172302《程序设计与数据结构》实验四Android程序设计实验报告
课程:<程序设计与数据结构> 班级: 1723 姓名: 侯泽洋 学号:20172302 实验教师:王志强老师 实验日期:2018年5月30日 必修/选修: 必修 1.实验内容 (1)And ...
- 实验四 Android程序设计
20155224 实验四 Android程序设计 实验报告 实验报告封面: 课程:Java程序设计 班级:1652班 姓名:王高源 学号:20165225 指导教师:娄嘉鹏 实验日期:2018年5月1 ...
随机推荐
- Spark RDD理解-总结
1.spark是什么 快速.通用.可扩展的分布式计算引擎. 2. 弹性分布式数据集RDD RDD(Resilient Distributed Dataset),是Spark中最基本的数据抽象结构,表示 ...
- SCUT - 492 - 鬼符「搦手的鬼畜生」 - 简单数学
https://scut.online/p/492 求[1,a]范围内的a模m的逆元的数量. 一开始用扩展欧几里得算法草了一发,WA了,当时不太清楚模非质数的周期,看来扩展欧几里得算法的笔记才知道要加 ...
- php前台表单限制PHP上传大小
在php文件上传时候,一般我都认为考虑php.ini配置修改文件上传大小,还后台控制上传大小,这里教你php前台表单限制PHP上传大小 <form action="http://www ...
- django admin站点美化
使用django-simpleui 安装 pip install django-simpleui 源码地址 https://github.com/newpanjing/simpleui django ...
- OpenSSL使用小结
引言 互联网的发展史上,安全性一直是开发者们相当重视的一个主题,为了实现数据传输安全,我们需要保证:数据来源(非伪造请求).数据完整性(没有被人修改过).数据私密性(密文,无法直接读取)等.虽然现在已 ...
- python内置下载服务器
python内置了一个下载服务器.例如你的同事要让你传的文件位于某一个目录下面,那么你可以进入这个目录,然后执行下面的命令启动一个下载服务器 python2 python -m SimpleHTTPS ...
- numpy.random.uniform(记住文档网址)
http://docs.scipy.org/doc/numpy/reference/generated/numpy.random.uniform.html#numpy.random.uniform h ...
- TS学习
随着vue3.0的即将到来,是时候学习一下TS了 简介:TypeScript是一种由微软开发的自由和开源的编程语言.它是JavaScript的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类 ...
- vue组件如何引入外部.js/.css/.scss文件
可在相应的单vue组件引入相应文件. 1.引入外部.js文件. 2.引入外部.css文件. 使用@import引入外部css,作用域是全局的,也可在相应的单vue组件引入,import并不是引入代码到 ...
- AIX中卷组管理
1.创建卷组 使用mkvg指令创建卷组. mkvg 指令参数 -B 创建大型卷组,该卷组最大能容纳128个物理卷和512个逻辑卷 -C 创建增加型并发卷组 -f 强制创建卷组 -G 与-B一样,创 ...