一、实验报告封面

课程:Java程序设计 班级:1752班 姓名:吕正宏 学号:20175213

指导教师:娄嘉鹏 实验日期:2019年5月14日

实验时间:13:45 - 21:00 实验序号:实验四

实验名称:Android开发基础

实验内容:

1、Android Studio

2、相关工具

实验要求:

1、完成实验、撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决办法(空洞的方法如“查网络”、“问同学”、“看书”等一律得0分)以及分析(从中可以得到什么启示,有什么收获,教训等)。

2、严禁抄袭,有该行为者实验成绩归零,并附加其他惩罚措施。

3.参考Android开发简易教程

4.完成云班课中的检查点,也可以先完成实验报告,直接提交。注意不能只有截图,要有知识点,原理,遇到的问题和解决过程等说明。实验报告中一个检查点要有多张截图。

5.发表实验报告博客,标题“学期(如2018-2019-2) 学号(如20175300) 实验四《Android开发基础》实验报告”

二、实验内容与步骤

(一)Android Studio的下载安装

1.Android Studio的介绍:

Android 开发因为涉及到代码编辑、UI 布局、打包等工序,有一款好用的IDE非常重要。Google 最早提供了基于 Eclipse 的 ADT 作为开发工具,后来在2013年 Google I/O 大会发布基于 IntelliJ IDEA 开发工具Android Studio。宣布不再持续支持 ADT。

目前, Android Studio已经逐渐取代Eclipse成为主流的Android开发环境。对于Android Studio与Eclipse之间的比较,你可以阅读知乎上的《Android Studio 比 Eclipse 好用在哪里?》。

由于Google无法进入中国,Android开发者下载开发工具都十分不方便,以前可以在Android Studio中文社区下载Android Studio,现在好了,2016年12月,Google 开通了Google Developers 中国网站,下载Android Studio就方便多了。

2.到指定网站上下载Studio,下载完成后,点击安装并点击安装虚拟机

3.随后会出现缺少SDK的窗口,第一次运行可能会要求配置Android SDK(安装过程中要知道自己的SDK安装到什么地方了)

4.然后在配置SDK的过程中,我被反复提醒安装SDK却无法勾选安装包,随后我就循环卸载安装包重新安装这个步骤,终于在后来的尝试中进入了配置SDK的窗口。配置SDK这一过程需要的时间可能需要点时间。

5.此时你可以看到Android Studio的欢迎页已经出来了,就像下面这样:

PS: 然后是这些选项的用途和意思:

左侧的Recent Projects将会显示你在这里编辑做的最近项目。右侧的Quick Start则是快速开始选项。

红色方框选中的Start a new Android Studio project选项通常是我们课程里最常使用的,用于创建一个新的Android项目。

在此介绍一下其他的选项:

  • 1.Open an existing Android Studio Project:打开已有的Android Studio项目。在经历一段时间的学习后,如果你想继续编辑之前的项目,或者打开一个从网上下载的例子,你可以点击此选项。

  • 2.Check out project from Version Control:从版本控制库中获取项目。对于团队开发来说,版本控制是必不可少的工具。此选项允许你从GitHubGoogle Cloud以及TortoiseSVN等处同步项目。事实上,Android Studio对于这些版本控制工具的支持也是很好的,你可以在设置中进行设定。

  • 3.Import project(Eclipse ADT, Gradle, etc.):导入其他开发环境中的项目。通过该选项你可以将在Eclipse等处生成的项目迁移到Android Studio的开发环境中。

  • 4.Import an Android code sample:导入Android代码样例。该功能将从Google及其合作伙伴那里读取示例的列表,你可以下载并查看一些优秀的项目并继续编辑它们。

(二)新建项目

1.进入界面后,点击第一行指令,然后项目模板选Empty Activity

2.项目名填Hello World,Package name直接保持自动生成的名字就好,Language选择JavaMinimum API level保持原样。然后进入主界面。

(三)配置和启动模拟器

1.启动虚拟机,在Android Studio的主界面上方的工具栏中,你可以看到一个名为AVD Manager的按钮,点击它你就能打开Android虚拟设备管理器(AVD: Android Virtual Device)。

此时并没有任何的虚拟设备,我们需要点击中央的Create a virtual device按钮来创建一台模拟器。

2.创建模拟器的第一步是选择硬件。你可以通过选择现有的设备模板来定义一台模拟器。左侧的Category分类中可以选择是创建哪种类型的设备,通常我们是开发手机上的应用,所以选择Phone就可以了。右侧则显示了所有Google官方的设备模板,比如历年来发布的Nexus系列以及Google Phone系列。

3.然后进入系统镜像的选择。先挑选型号,下一步挑选系统版本。(我挑选的是Nougat版本)

4.下一步可以设置模拟器的名称。建议在名称中注明使用了哪一个版本的系统镜像

(四)项目的编译和运行

1.Hello World系统自带

2.运行虚拟机,看是否能正常运行。

(五)蓝墨云测试

Android Stuidio的安装测试

1.要求:完成Hello World, 要求修改res目录中的内容,Hello World后要显示自己的学号,自己学号前后一名同学的学号, 学习Android Stuidio调试应用程序

2.解决路径:在xml文件中找到android:text=这一语句,按要求修改后面内容为Hello World 20175213 20175212 20175214

3.截图:

4.代码:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World! 20175213 20175212 20175214"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" /> </android.support.constraint.ConstraintLayout>

Activity测试

1.要求:构建项目,运行教材相关代码。创建 ThirdActivity, 在ThirdActivity中显示自己的学号,修改代码让MainActivity启动ThirdActivity

2.解决方案:

  • 在activity_main.xml里新建一段代码

  • MainActivity.java中创建intent对象

  • 新建活动SecondActivityDemo,会发现多出SecondActivityDemo.classactivity_second_Demo

  • AndroidMainfest.xml注册

  • 效果展示

UI测试

1.要求:修改代码让Toast消息中显示自己的学号信息

2.解决方案:

  • MainActivity.java中操作,引入代码

事件处理测试

1.要求:参考《Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)》第二十八章, 构建项目,运行教材相关代码

2.解决方案:

  • 改写MainActivity下的代码如下:
package com.example.helloworld;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.AnalogClock;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.AnalogClock; import com.example.helloworld.R; 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下的代码如下:
<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="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="10dp"
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"
/>
</RelativeLayout>

3.效果展示:

(六)问题与解决方案

问题1:在安装好虚拟机后,运行时出现如下错误emulator: ERROR: x86 emulation currently requires hardware acceleration!,一直卡在这。

问题1解决方案:

在博客园中查询博客(https://blog.csdn.net/shareye1992/article/details/81777387)得,SDK Tools中的Intel x86 Emulator Accelerator(HAXM installer)未安装。到sdk\extras\intel\Hardware_Accelerated_Execution_Manager文件夹双击安装一下intelhaxm-android.exe。 安装成功后,重新启动模拟机即可

(七)感悟和收获

1.第一次接触到Android虚拟机,很新鲜也有很多收获。

2.安装过程很复杂,让人很是头疼,但也是我自己在操作上有点问题,以后在此类问题上会多加注意。

2018-2019-2 20175213实验四 《Android开发基础》实验报告的更多相关文章

  1. 实验四 Android开发基础

    实验四 Android开发基础 实验内容 1.安装Android Studio 2.运行安卓AVD模拟器 3.使用安卓运行出虚拟手机并显示HelloWorld以及自己的学号 (一)SDK的安装 (二) ...

  2. 20145337实验四Android开发基础

    20145337实验四Android开发基础 实验内容 基于Android Studio开发简单的Android应用并部署测试; 了解Android组件.布局管理器的使用: 掌握Android中事件处 ...

  3. 20145225《Java程序设计》 实验四 Android开发基础

    20145225<Java程序设计> 实验四 Android开发基础 实验报告 实验内容 安装Android Studio 运行安卓AVD模拟器 使用安卓运行出虚拟手机并显示HelloWo ...

  4. 20145215实验四 Android开发基础

    20145215实验四 Android开发基础 实验内容 基于Android Studio开发简单的Android应用并部署测试; 了解Android组件.布局管理器的使用: 掌握Android中事件 ...

  5. 20155324 《Java程序设计》实验四 Android开发基础

    20155324 <Java程序设计>实验四 Android开发基础 实验内容 1.基于Android Studio开发简单的Android应用并部署测试; 2.了解Android.组件. ...

  6. 20155228 实验四 Android开发基础

    20155228 实验四 Android开发基础 实验内容 1.基于Android Studio开发简单的Android应用并部署测试; 2.了解Android.组件.布局管理器的使用: 3.掌握An ...

  7. 20155208 实验四 Android开发基础

    20155208 实验四 Android开发基础 实验内容 1.基于Android Studio开发简单的Android应用并部署测试; 2.了解Android.组件.布局管理器的使用: 3.掌握An ...

  8. 2065212Java实验四android开发基础

    20165212 Java实验四Android开发基础 实验内容: 1.基于Android Studio开发简单的Android应用并部署测试; 2.了解Android.组件.布局管理器的使用: 3. ...

  9. 20155202 实验四 Android开发基础

    20155202 实验四 Android开发基础 实验内容 1.基于Android Studio开发简单的Android应用并部署测试; 2.了解Android.组件.布局管理器的使用: 3.掌握An ...

  10. 20155220 实验四 Android开发基础

    20155220 实验四 Android开发基础 实验内容 (一)Android Stuidio的安装测试: 参考<Java和Android开发学习指南(第二版)(EPUBIT,Java for ...

随机推荐

  1. 爬虫(五)—— 解析库(二)beautiful soup解析库

    目录 解析库--beautiful soup 一.BeautifulSoup简介 二.安装模块 三.Beautiful Soup的基本使用 四.Beautiful Soup查找元素 1.查找文本.属性 ...

  2. python支持的进程与线程

    一.multiprocessing模块介绍 python中的多线程无法利用CPU资源,在python中大部分情况使用多进程.python中提供了非常好的多进程包multiprocessing. mul ...

  3. Waiter.js

    var Waiter = function() {     var dfd = [],         doneArr = [],         failArr = [],         slic ...

  4. 使用requests_html抓取数据

    from requests_html import HTMLSession import json class YejiCollege: def __init__(self, url): self.u ...

  5. CodeChef Sereja and LCM(矩阵快速幂)

    Sereja and LCM   Problem code: SEALCM   Submit All Submissions   All submissions for this problem ar ...

  6. hdu4352 XHXJ's LIS(数位dp)

    题目传送门 XHXJ's LIS Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  7. SLA服务可用性4个9是什么意思?怎么达到?

    SLA:服务等级协议(简称:SLA,全称:service level agreement).是在一定开销下为保障服务的性能和可用性,服务提供商与用户间定义的一种双方认可的协定.通常这个开销是驱动提供服 ...

  8. C# 字符串的拆分

    string str = "ABCD"; char[] strCharArr = str.ToCharArray(); //结果 //strCharArr[0]='A', //st ...

  9. JS 逻辑非!简单总结

    !""                  true!"aaa"          false""==false          true ...

  10. query_module - 向内核查询和模块有关的各个位

    总览 #include <linux/module.h> int query_module(const char *name, int which,void *buf, size_t bu ...