实验四 《Android程序设计》

北京电子科技学院(BESTI)

实 验 报 告

课程:程序设计与数据结构

班级:1623

姓名:张韵琪

学号:20162307

指导教师:娄佳鹏老师、王志强老师

实验日期:2017年5月26号

实验密级:非密级

实验时间:一周

必修/选修:必修

实验名称:Android程序设计

实验仪器:电脑

实验目的与要求:

  • 目的:

     学习Android程序设计
  • 要求:

      1.没有Linux基础的同学建议先学习《Linux基础入门(新版)》《Vim编辑器》 课程
    
      2.完成实验、撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决办法(空洞的方法        如“查网络”、“问同学”、“看书”等一律得0分)以及分析(从中可以得到什么启示,有什么收获,教训等)。报告可以参考范飞龙老师的指导
    
      3. 严禁抄袭,有该行为者实验成绩归零,并附加其他惩罚措施。

实验内容、步骤

  • 安装 Android Studio (Mac版)

    - 到官网安装Android Studio 官网地址:https://developer.android.google.cn/studio/index.html

    - 选择 我已阅读并同意上述条款及条件



    - 下载完毕之后,将 Android Studio 拖放到“Applications”文件夹中,然后启动 Android Studio。

    - 选择是否想要导入之前的 Android Studio 设置,然后点击 OK。

    - 之后 Android Studio 设置向导将指导您完成余下的设置,包括下载开发所需的 Android SDK 组件

  • 关于git push问题

    - 先参考此篇博客

    - 再打开终端,具体命令:

      localhost:~ zhangyunqi$ history
    注意:前面序号不要管
    32 cd AndroidStudioProjects/
    33 ls
    34 cd zhangyunqiapp2(你的AndroidStudio 自己起的名字)
    35 ls
    36 ls -a
    37 git push
    38 ls
    39 cd zhangyunqiapp2
    40 ls
    41 git status
    42 git add .
    43 git commit -m "gradle"
    44 git push
    45 git push --set-upstream origin master
    46 git pull
    47 git branch
    48 git status
    49 git pull
    50 git branch
    51 git branch /?
    52 ls
    53 git status
    54 cd ..
    55 ls
    56 ls
    57 mkdir Tiffany4
    58 cd Tiffany4
    59 ls
    60 git clone http://git.oschina.net/pdds2017/20162307androidapp.git(码云上的链接)
    61 ls
    62 cd 20162307androidapp
    63 ls
    64 cd ..
    65 ls
    66 cd ..
    67 ls
    68 cd zhangyunqiapp2
    69 ls
    70 git clone http://git.oschina.net/pdds2017/20162307androidapp.git
    71 ls
    72 ls -a
    73 rm.git
    74 rm -rf .git
    75 ls
    76 ls -a
    77 rm .gitignore
    78 ls -a
    79 mv *.* 20162307androidapp/
    80 ls
    81 mv build/ 20162307androidapp/
    82 mv gradle 20162307androidapp/
    83 mv gradlew 20162307androidapp/
    84 mv app/ 20162307androidapp/
    85 ls
    86 ls -a
    87 mv .gradle/ 20162307androidapp/
    88 mv .idea/ 20162307androidapp/
    89 ls
    90 cd 20162307androidapp/
    91 ls
    92 git add .
    93 ls
    94 git commit -m "finish android projects"
    95 git push

实验内容1

     Android Studio的安装测试: 参考《Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)》第二十四章:
- 安装 Android Studio
- 完成Hello World, 要求修改res目录中的内容,Hello World后要显示自己的学号,提交代码运行截图和码云Git链接,截图没有学号要扣分
- 学习Android Studio调试应用程序

实验步骤1

1.按照娄老师所给的博客,创建a new Android Studio project . 博客链接:http://www.cnblogs.com/rocedu/p/6824965.html

2.然后 res目录-->layout目录-->activity_main.xml将android:text="Hello World!" 改为android:text="Hello World!20162307"

实验结果1

实验内容2

    Activity测试: 参考《Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)》第二十五章:
- 构建项目,运行教材相关代码
- 创建 ThirdActivity, 在ThirdActivity中显示自己的学号,修改代码让MainActivity启动ThirdActivity
- 提交代码运行截图和码云Git链接,截图要有学号水印,否则会扣分

实验步骤2

1.app右键--> new-->Activity-->Gallery,选择Empty Activity然后点击next

2.接下来的界面



3.点击finish

4.在MainActivity原有的代码的基础上加上下面的代码

    @Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
} @Override
public boolean onTouch(View v, MotionEvent event) {
Intent intent = new Intent(this, ThirdActivity.class);
intent.putExtra("message", "20162307张韵琪实验2");
startActivity(intent);
return true; }

5.将ThirdActivity改为

    public class ThirdActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_third);
Intent intent = getIntent();
String message = intent.getStringExtra("message");
((TextView) findViewById(R.id.textView1)).setText(message);
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
}

6.在activity_third.xml中添加一段代码:

    <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView1"
/>

7.在AndroidManifest.xml添加下面的代码

<activity

        android:name=".ThirdActivity"

        android:label="Third Activity">

        <intent-filter>

            <action android:name="com.blackay.test.helloworld.ThirdActivity" />

            <category android:name="android.intent.category.DEFAULT" />

        </intent-filter>

    </activity>

实验结果2

实验内容3

    UI测试: 参考《Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)》第二十六章:
- 构建项目,运行教材相关代码
- 修改代码让Toast消息中显示自己的学号信息
- 提交代码运行截图和码云Git链接,截图要有学号水印,否则会扣分

实验步骤3

MainActivity.java代码:

    package com.example.zhangyunqi.zhangyunqiapp;

    import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.app.Activity;
import android.util.AttributeSet;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
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() {
@Override
public void onClick(View v) {
Toast toast = Toast.makeText(MainActivity.this, "20162307张韵琪实验3", Toast.LENGTH_LONG);
toast.show(); }
});
} }

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="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="10dp"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="first_screen" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="20162307张韵琪实验3"
android:id="@+id/btn1"
android:layout_alignParentTop="true"
android:layout_marginTop="31dp"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
</RelativeLayout>

实验结果3

实验内容4

    布局测试: 参考《Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)》第二十七章:
- 构建项目,运行教材相关代码
- 修改布局让P290页的界面与教材不同
- 提交代码运行截图和码云Git链接,截图要有学号水印,否则会扣分

实验步骤4

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="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="10dp"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="first_screen" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="20162307张韵琪实验4"
android:id="@+id/btn1"
android:layout_alignParentTop="true"
android:layout_marginTop="31dp"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<FrameLayout
android:layout_width="368dp"
android:layout_height="495dp"
android:orientation="horizontal"
tools:layout_editor_absoluteX="11dp"
tools:layout_editor_absoluteY="16dp"> <Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="160dp"
android:layout_marginTop="150dp"
android:text="20162307实验4" /> <ImageButton
android:id="@+id/imageButton"
android:layout_width="131dp"
android:layout_height="69dp"
android:layout_marginLeft="160dp"
android:layout_marginTop="140dp"
android:alpha="0.4"
android:src="@android:drawable/btn_star_big_on" />
</FrameLayout>
</RelativeLayout>

实验结果4:

实验内容5

    事件处理测试: 参考《Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)》第二十八章:
- 构建项目,运行教材相关代码
- 提交代码运行截图和码云Git链接,截图要有学号水印,否则会扣分

实验步骤4

activity_main.xml代码:

    <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="40dp"
android:paddingLeft="40dp"
android:paddingRight="40dp"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="20162307实验5"></TextView> <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="200dp"
android:onClick="changeColor" />
</RelativeLayout>

MainActivity.java代码:

    package com.example.zhangyunqi.zhangyunqiapp;

    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);
} public void changeColor(View view) {
if (counter == colors.length) {
counter = 0;
}
view.setBackgroundColor(colors[counter++]);
}
}

实验结果5

统计自己的PSP(Personal Software Process)时间

步骤 耗时 百分比
需求分析 60min 14.0%
代码实现 170min 39.5%
测试 150min 34.9%
分析总结 50min 11.6%

实验总结与体会

觉得AndroidStudio是一个新的体验,和之前学习的不大相同,在AndroidStudio中git是最麻烦的,是最难弄的,所以我把怎么弄git写在我的博客里。

此次实验链接

20162307 实验四 Android程序设计的更多相关文章

  1. 实验四 Android程序设计 实验报告

    实验四 Android程序设计 实验报告 目录 代码托管地址 Android程序设计-1 Android程序设计-2 Android程序设计-3 Android程序设计-4 Android程序设计-5 ...

  2. 第十四周实验报告:实验四 Android程序设计

    20162317袁逸灏 第十四周实验报告:实验四 Android程序设计 实验内容 Android Studio 实验要求 学会使用Android Studio 学习 活动 以及相关知识内容 学习 U ...

  3. 20165235实验四 Android程序设计

    20165235实验四 Android程序设计 实验课程:JAVA编程设计 实验名称:Android开发 姓名:祁瑛 学号:20165235 实验时间:2018.05.16 指导老师:娄家鹏 Andr ...

  4. 20165220Java实验四 Android程序设计

    一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:葛宇豪 学号:20165220 指导教师:娄嘉鹏 实验日期:2018年5月14日 实验时间:13:45 - 15:25 实验序号:实验 ...

  5. 20172328《程序设计与数据结构》实验四 Android程序设计报告

    20172328<程序设计与数据结构>实验四 Android程序设计报告 课程:<程序设计与数据结构> 班级: 1723 姓名: 李馨雨 学号:20172328 实验教师:王志 ...

  6. 20172302《程序设计与数据结构》实验四Android程序设计实验报告

    课程:<程序设计与数据结构> 班级: 1723 姓名: 侯泽洋 学号:20172302 实验教师:王志强老师 实验日期:2018年5月30日 必修/选修: 必修 1.实验内容 (1)And ...

  7. 实验四 Android程序设计

    20155224 实验四 Android程序设计 实验报告 实验报告封面: 课程:Java程序设计 班级:1652班 姓名:王高源 学号:20165225 指导教师:娄嘉鹏 实验日期:2018年5月1 ...

  8. 20165236 实验四 Android程序设计

    20165236  实验四 Android程序设计 一.实验报告 课程:Java程序设计          班级:1652班 姓名:郭金涛       学号:20165236 指导教师:娄嘉鹏  实验 ...

  9. 20165205 2017-2018-2 《Java程序设计》实验四 Android程序设计

    20165205 2017-2018-2 <Java程序设计>实验四 Android程序设计 实验内容 实验四 Android程序设计-1 Android Stuidio的安装测试: 参考 ...

随机推荐

  1. 八大疯狂的HTML5 Canvas及WebGL动画效果——8 CRAZY ANIMATIONS WITH WEBGL AND HTML5 CANVAS【收藏】

    HTML5, WebGL and Javascript have changed the way animation used to be. Past few years, we can only a ...

  2. 抓其根本(一)(hdu2710 Max Factor 素数 最大公约数 最小公倍数.....)

    素数判断: 一.根据素数定义,该数除了1和它本身以外不再有其他的因数. 详见代码. int prime() { ; i*i<=n; i++) { ) //不是素数 ; //返回1 } ; //是 ...

  3. Android Studio注意事项

    http://www.android-studio.org/ 解决方法: 在 Android Studio 安装目录 bin/idea.properties 文件最后追加一句 1 disable.an ...

  4. python—RE正则表达式

    re正则表达式 正则表达式(或 RE)是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现.正则表达式模式被编译成一系列的字节码,然后由用 C 编写的 ...

  5. 禁用 Cortana 的解决办法

    1. GPedit.msc 2. 然后在本地组策略编辑器中,点击“用户配置”中的“管理模版”,接着双击右侧的“Windows 组件”. 3. 下拉滚动条,并找到“文件资源管理器”,双击进入. 找到“在 ...

  6. 网站服务器压力Web性能测试(2):Webbench:最多模拟3万个并发连接数测试压力

    1.Webbench最多可以模拟3万个并发连接数来测试服务器压力,可以设置压力测试时间和测试请求的成功率.安装Webbench命令: wget https://home.tiscali.cz/~cz2 ...

  7. 神奇JavaScript框架---Top5

    前言 个人观点,供您参考 观点源自作者的使用经验和日常研究 排名基于框架的受欢迎度, 语法结构, 易用性等特性 希望大家能够基于此视频找到最适合自己的框架 下面介绍的都是严格的前端框架和库 前言 To ...

  8. 3:django models Making queries 高级进阶--聚合运算

    在前一遍文章django models Making queries里面我们提到了django常用的一些检索数据库的内容, 下面我们来看一下更为高级的检索聚合运算 这是我们要用到的模型 class A ...

  9. java生成缩略图,旋转,水印,截图

    转自:http://rensanning.iteye.com/blog/1545708 感谢,方便自己查看

  10. Storm实战常见的问题

    该文档为实实在在的原创文档,转载请注明: http://blog.sina.com.cn/s/blog_8c243ea30101k0k1.html 类型 详细 备注 该文档是群里几个朋友在storm实 ...