一、实验报告封面
课程: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
:从版本控制库中获取项目。对于团队开发来说,版本控制是必不可少的工具。此选项允许你从GitHub
、Google 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
选择Java
,Minimum 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.class
与activity_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)未安装。到sdkextrasintelHardware_Accelerated_Execution_Manager文件夹双击安装一下intelhaxm-android.exe。 安装成功后,重新启动模拟机即可
(七)感悟和收获
1.第一次接触到Android虚拟机,很新鲜也有很多收获。
2.安装过程很复杂,让人很是头疼,但也是我自己在操作上有点问题,以后在此类问题上会多加注意。