2017-2018-2 20165315 实验四《Android程序设计》实验报告

行是知之始,知是行之成。这篇文章主要讲述2017-2018-2 20165315 实验四《Android程序设计》实验报告相关的知识,希望能为你提供帮助。
2017-2018-2 20165315 实验四《android程序设计》实验报告 第24章:初识Android

  • Android Studio项目的目录树
2017-2018-2 20165315 实验四《Android程序设计》实验报告

文章图片

1 build:该目录包含了自动生成的文件,这些文件包括了编译设置项、R类等
2 libs:该目录包含了开发Android应用所需要的库文件
3 src:该目录存放了应用的源代码.java文件。默认情况下,它包含了MainActivity.java文件,这个源代码j有一部分是执行了你点击应用图标时启动应用所需要功能
4 res:该目录存放了所有的资源文件
5 drawable:该目录存放了项目的drawable对象和一些图片资源
6 layout:该目录存放了各个界面的布局文件
7 menu:该目录存放了应用中设计的菜单对象
8 mipmap:该目录存放了应用的主要图片资源
9 values:该目录存放了字符串、颜色等定义的资源集合
10 AndroidManifest.xml:该文件是描述应用基础特性的文件,定义了每个组件。
任务一:
- 参考```http://www.cnblogs.com/rocedu/p/6371315.html#SECANDROID```,安装 Android Stuidio - 完成Hello World, 要求修改res目录中的内容,Hello World后要显示自己的学号,自己学号前后一名同学的学号 - 学习Android Stuidio调试应用程序

实验过程:
  • 将布局文件activity_main.xml中的android:text="Hello World!"改为android:text="Hello World20165315!"
2017-2018-2 20165315 实验四《Android程序设计》实验报告

文章图片

运行截图:
2017-2018-2 20165315 实验四《Android程序设计》实验报告

文章图片

  • 学习Android Stuidio调试应用程序
调试过程如下:Tools-> Android-> Android Device Monitor
第25章:活动
  • Android中的四大组件
    • Activity
    • Service
    • ContentProvider
    • Broadcast Receiver
  • 对于Activity,它是Android系统中最常用、最常见的一个组件
  • 一个应用通常包含了多个Activity
  • Activity类定义了如下的回调事件
    • onCreate():这是第一个回调方法。当Activity首次被创建时会调用它
    • onStart:当Activity对于用户来说变为可视状态时会回调此方法
    • onResume():当用户开始与应用交互时会调用此方法
    • onPause():当前的Activity正在暂停中,并且先前的Activity正在恢复时,被暂停的这个Activity不会再接收用户的输入,也不再执行任何代码和调用
    • onStop():当Activity不再为可视状态时会调用该回调方法
    • onDestroy():该方法会在Activity被系统销毁前被调用
    • onRestart():当Activity在被停止后重新启动时,会调用该回调方法
任务二
创建 ThirdActivity, 在ThirdActivity中显示自己的学号,修改代码让MainActivity启动ThirdActivity

  • 配置Activity
    • 在文件AndroidManifest.xml中,只要为application元素添加activity子元素,即可配置Activity
    • 在这个任务中,我们需要调用ThirdActivity,所以在AndroidManifest.xml中再添加一个activity即可
  • 启动、关闭Activity
    • 每一个控制文件的Activity都需要有对应的启动程序文件(.java)和相应的布局文件(.xml)
    • 在这个任务中,要求让MainActivity启动ThirdActivity,所以还需要修改MainActivity
运行截图:
2017-2018-2 20165315 实验四《Android程序设计》实验报告

文章图片

2017-2018-2 20165315 实验四《Android程序设计》实验报告

文章图片

第26章:UI组件
  • Android提供了许多的UI组件,你能按需构建应用的用户交互界面
    • TextView:文本标签,该控件用于显示文本
    • EditText:文本框,是预定义好的TextView的一个子类,有富文本编辑能力
    • AutoCompleteTextView:自动完成的文本标签,类似于EditText。当用户在输入的时候会自动给出一些完整的建议
    • Button:按钮,可以按压、点击,由用户完成一个动作
    • ImageButton:图片按钮,顾名思义
    • CheckBox:复选框,可以作为用户使用的一个开关。当有一系列可供选择的选项时,建议使用该控件
    • ToggleButton:带有一个“灯泡”效果的开关按钮
    • RadioButton:单选按钮,只有选中和未选中状态
    • RadioGroup:是RadioButton的集合,在同组内只能选中一个单选按钮
    • Spinner:下拉列表,允许用户在多个选项中选择一个
    • TimePicker:时间选择器,能让用户输入时间,有12小时和24小时模式
    • DatePicker:日期选择器,能让用户输入日期
    • ProgressBar:进度条,为用户提供某项工作的进度,比如后台正在做的事情
任务三
修改代码让Toast消息中显示自己的学号信息

修改MainActivity代码如下:
package yh.is.besti.edu.cn.uitest; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Gravity; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends AppCompatActivity {@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btnshow1 = (Button) findViewById(R.id.btn1); btnshow1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Toast toast = Toast.makeText(MainActivity.this, "20165211", Toast.LENGTH_LONG); toast.show(); }}); } }

运行截图:
2017-2018-2 20165315 实验四《Android程序设计》实验报告

文章图片

第27章:布局
  • 布局的类型
    • 线性布局LinearLayout:线性布局是一个视图组(ViewGroup),能在水平或者垂直的单一方向上将所有子元素排成一行
    • 相对布局RelativeLayout:相对布局是一个将子视图显示在相对的位置上的布局
    • 表格布局TableLayout:表格布局是在行、列中组合子元素的视图
    • 绝对布局AbsoluteLayout:绝对布局能让你指定子元素的精确位置
    • 帧布局FrameLayout:帧布局是一个屏幕上的占位符,你可以用它来显示单一视图
    • 列表视图ListView:列表布局是可以滚动的,是用于显示子元素列表的视图组
    • 网格视图GridView:网格视图是在二维可滚动的网格中显示子元素的视图组
任务四
修改布局让P290页的界面与教材不同

  • 修改activity_main.xml中内容,代码如下:
< ?xml version="1.0" encoding="utf-8"?> < FrameLayout 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:orientation="horizontal"> < Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="100dp" android:layout_marginTop="100dp" android:text="20165211" /> < FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="20165211"> < /FrameLayout> < Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /> < /FrameLayout>

运行截图:
2017-2018-2 20165315 实验四《Android程序设计》实验报告

文章图片

第28章:监听器 任务五
构建项目,运行教材相关代码

运行截图:
2017-2018-2 20165315 实验四《Android程序设计》实验报告

文章图片

遇到的问题及解决方案
  • 安装完AndroidStudio,出现gradle project sync failed报错
解决过程:
在网上查找到一篇博客,里面详细的描述了解决方法:
打开网页http://services.gradle.org/distributions/,选择你想要的对应版本的gradle,然后放到C:\\Users\\用户名.gradle\\wrapper\\dists\\gradle-4.1-all的文件夹中即可(这个压缩包不用解压)
  • 在解决上述问题的过程中,我发现Mac电脑会自动解压下载的压缩包
解决过程:
未解压的zip文件在垃圾桶里找到了:)
  • 第一次运行Hello World时,R类一直标红,提示文件里找不到R类
2017-2018-2 20165315 实验四《Android程序设计》实验报告

文章图片

解决过程:
在网络上查询后,在一篇博客中找到了答案:
1、clean project:Build-> Clean Project
2、rebuild project:Build-> Rebuild Project
3、以及重启应用乃至系统:File-> Invalidata Caches/Restart-> Invalidata and Restart
  • 虚拟安卓手机启动失败
2017-2018-2 20165315 实验四《Android程序设计》实验报告

文章图片

解决过程:
貌似是手机型号的问题,使用Nexus 5X API 27×86会出现这个问题,但是使用Nexus 5 API 27就不会出现此问题
实验体会与总结这次实验是全新的内容,将java用在了我们之前从未接触过的领域——Android开发。完成这次实验,我们大致了解了Android开发的流程和框架,为今后深入学习打下了基础,拓宽了视野。在安装Android Studio时出现了很多问题,我在不断查找解决方法的过程中,更加体会到了安装成功的自豪感hh当运行结果出现在虚拟手机页面上时,我真正感受到了Java在安卓应用上的广泛使用,对Java的兴趣更加深厚了。
PSP(Personal Software Process)时间
步骤 耗时 百分比
步骤 耗时 百分比
需求分析 60min 26%
设计 30min 13%
代码实现 90min 39%
测试 20min 9%
分析总结 30min 13%
码云链接【2017-2018-2 20165315 实验四《Android程序设计》实验报告】https://gitee.com/BESTI-IS-JAVA-2018/20165315AndroidStudio

    推荐阅读