实验四 《Android程序设计》

北京电子科技学院(BESTI)

实 验 报 告

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

班级:1623

姓名:张韵琪

学号:20162307

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

实验日期:2017年5月26号

实验密级:非密级

实验时间:一周

必修/选修:必修

实验名称:Android程序设计

实验仪器:电脑

实验目的与要求:

  • 目的:

    1. 学习Android程序设计
  • 要求:

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

    - 先参考此篇博客

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

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

实验内容1

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

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

实验步骤2

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

2.接下来的界面



3.点击finish

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

  1. @Override
  2. public boolean onCreateOptionsMenu(Menu menu) {
  3. getMenuInflater().inflate(R.menu.menu_main, menu);
  4. return true;
  5. }
  6. @Override
  7. public boolean onTouch(View v, MotionEvent event) {
  8. Intent intent = new Intent(this, ThirdActivity.class);
  9. intent.putExtra("message", "20162307张韵琪实验2");
  10. startActivity(intent);
  11. return true;
  12. }

5.将ThirdActivity改为

  1. public class ThirdActivity extends Activity {
  2. @Override
  3. protected void onCreate(Bundle savedInstanceState) {
  4. super.onCreate(savedInstanceState);
  5. setContentView(R.layout.activity_third);
  6. Intent intent = getIntent();
  7. String message = intent.getStringExtra("message");
  8. ((TextView) findViewById(R.id.textView1)).setText(message);
  9. }
  10. @Override
  11. public boolean onCreateOptionsMenu(Menu menu) {
  12. getMenuInflater().inflate(R.menu.menu_main, menu);
  13. return true;
  14. }
  15. }

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

  1. <TextView
  2. android:layout_width="wrap_content"
  3. android:layout_height="wrap_content"
  4. android:id="@+id/textView1"
  5. />

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

<activity

  1. android:name=".ThirdActivity"
  2. android:label="Third Activity">
  3. <intent-filter>
  4. <action android:name="com.blackay.test.helloworld.ThirdActivity" />
  5. <category android:name="android.intent.category.DEFAULT" />
  6. </intent-filter>
  7. </activity>

实验结果2

实验内容3

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

实验步骤3

MainActivity.java代码:

  1. package com.example.zhangyunqi.zhangyunqiapp;
  2. import android.content.Context;
  3. import android.support.v7.app.AppCompatActivity;
  4. import android.os.Bundle;
  5. import android.app.Activity;
  6. import android.util.AttributeSet;
  7. import android.view.Menu;
  8. import android.view.MenuItem;
  9. import android.view.View;
  10. import android.widget.Button;
  11. import android.widget.Toast;
  12. public class MainActivity extends AppCompatActivity {
  13. @Override
  14. protected void onCreate(Bundle savedInstanceState) {
  15. super.onCreate(savedInstanceState);
  16. setContentView(R.layout.activity_main);
  17. Button btnshow1 = (Button) findViewById(R.id.btn1);
  18. btnshow1.setOnClickListener(new View.OnClickListener() {
  19. @Override
  20. public void onClick(View v) {
  21. Toast toast = Toast.makeText(MainActivity.this, "20162307张韵琪实验3", Toast.LENGTH_LONG);
  22. toast.show();
  23. }
  24. });
  25. }
  26. }

activity_main.xml代码:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <RelativeLayout
  3. xmlns:android="http://schemas.android.com/apk/res/android"
  4. xmlns:tools="http://schemas.android.com/tools"
  5. android:layout_width="match_parent"
  6. android:layout_height="match_parent"
  7. android:paddingBottom="10dp"
  8. android:paddingLeft="10dp"
  9. android:paddingRight="10dp"
  10. android:paddingTop="10dp"
  11. tools:context=".MainActivity" >
  12. <TextView
  13. android:id="@+id/textView1"
  14. android:layout_width="wrap_content"
  15. android:layout_height="wrap_content"
  16. android:text="first_screen" />
  17. <Button
  18. android:layout_width="wrap_content"
  19. android:layout_height="wrap_content"
  20. android:text="20162307张韵琪实验3"
  21. android:id="@+id/btn1"
  22. android:layout_alignParentTop="true"
  23. android:layout_marginTop="31dp"
  24. android:layout_alignParentRight="true"
  25. android:layout_alignParentEnd="true"
  26. android:layout_alignParentLeft="true"
  27. android:layout_alignParentStart="true" />
  28. </RelativeLayout>

实验结果3

实验内容4

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

实验步骤4

activity_main.xml代码:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <RelativeLayout
  3. xmlns:android="http://schemas.android.com/apk/res/android"
  4. xmlns:tools="http://schemas.android.com/tools"
  5. android:layout_width="match_parent"
  6. android:layout_height="match_parent"
  7. android:paddingBottom="10dp"
  8. android:paddingLeft="10dp"
  9. android:paddingRight="10dp"
  10. android:paddingTop="10dp"
  11. tools:context=".MainActivity" >
  12. <TextView
  13. android:id="@+id/textView1"
  14. android:layout_width="wrap_content"
  15. android:layout_height="wrap_content"
  16. android:text="first_screen" />
  17. <Button
  18. android:layout_width="wrap_content"
  19. android:layout_height="wrap_content"
  20. android:text="20162307张韵琪实验4"
  21. android:id="@+id/btn1"
  22. android:layout_alignParentTop="true"
  23. android:layout_marginTop="31dp"
  24. android:layout_alignParentRight="true"
  25. android:layout_alignParentEnd="true"
  26. android:layout_alignParentLeft="true"
  27. android:layout_alignParentStart="true" />
  28. <FrameLayout
  29. android:layout_width="368dp"
  30. android:layout_height="495dp"
  31. android:orientation="horizontal"
  32. tools:layout_editor_absoluteX="11dp"
  33. tools:layout_editor_absoluteY="16dp">
  34. <Button
  35. android:layout_width="wrap_content"
  36. android:layout_height="wrap_content"
  37. android:layout_marginLeft="160dp"
  38. android:layout_marginTop="150dp"
  39. android:text="20162307实验4" />
  40. <ImageButton
  41. android:id="@+id/imageButton"
  42. android:layout_width="131dp"
  43. android:layout_height="69dp"
  44. android:layout_marginLeft="160dp"
  45. android:layout_marginTop="140dp"
  46. android:alpha="0.4"
  47. android:src="@android:drawable/btn_star_big_on" />
  48. </FrameLayout>
  49. </RelativeLayout>

实验结果4:

实验内容5

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

实验步骤4

activity_main.xml代码:

  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:paddingBottom="40dp"
  6. android:paddingLeft="40dp"
  7. android:paddingRight="40dp"
  8. tools:context=".MainActivity">
  9. <TextView
  10. android:layout_width="wrap_content"
  11. android:layout_height="wrap_content"
  12. android:text="20162307实验5"></TextView>
  13. <AnalogClock
  14. android:id="@+id/analogClock1"
  15. android:layout_width="wrap_content"
  16. android:layout_height="wrap_content"
  17. android:layout_alignParentTop="true"
  18. android:layout_centerHorizontal="true"
  19. android:layout_marginTop="200dp"
  20. android:onClick="changeColor" />
  21. </RelativeLayout>

MainActivity.java代码:

  1. package com.example.zhangyunqi.zhangyunqiapp;
  2. import android.app.Activity;
  3. import android.graphics.Color;
  4. import android.os.Bundle;
  5. import android.view.Menu;
  6. import android.view.View;
  7. import android.widget.AnalogClock;
  8. public class MainActivity extends Activity {
  9. int counter = 0;
  10. int[] colors = {Color.BLACK, Color.BLUE, Color.CYAN, Color.DKGRAY, Color.GRAY, Color.GREEN, Color.LTGRAY, Color.MAGENTA, Color.RED, Color.WHITE, Color.YELLOW};
  11. @Override
  12. protected void onCreate(Bundle savedInstanceState) {
  13. super.onCreate(savedInstanceState);
  14. setContentView(R.layout.activity_main);
  15. }
  16. public void changeColor(View view) {
  17. if (counter == colors.length) {
  18. counter = 0;
  19. }
  20. view.setBackgroundColor(colors[counter++]);
  21. }
  22. }

实验结果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. bzoj 3450 DP

    首先我们设len[i]表示前i位,从第i位往前拓展,期望有多少个'o',那么比较容易的转移 len[i]=len[i-1]+1 s[i]='o' len[i]=0 s[i]='x' len[i]=(l ...

  2. mysql查询语句的执行顺序(重点)

    一 SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOI ...

  3. defconfig file 的 位置

    Platform MSM8917 MSM8937 defconfig file position Android/kernel/msm-3.18/arch/arm/configs/

  4. python基础===Python 迭代器模块 itertools 简介

    本文转自:http://python.jobbole.com/85321/ Python提供了一个非常棒的模块用于创建自定义的迭代器,这个模块就是 itertools.itertools 提供的工具相 ...

  5. monkey测试===Android测试工具Monkey用法简介(转载)

    Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序进行压力测试.Monkey ...

  6. 1438. Shopaholic

    Constraints Time Limit: 1 secs, Memory Limit: 32 MB Description Lindsay is a shopaholic. Whenever th ...

  7. c++设计模式系列----单例模式(Singleton模式

    单例模式是为了解决唯一对象实例问题而提出来的,许多时候整个系统只需要拥有一个全局对象,这样有利于我们协调系统整体的行为.比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单 ...

  8. linux命令(3):rpm命令

    查询当前环境是否已安装软件包,如下命令: [root@cloud ~]# rpm -qa | grep httpd httpd-2.4.6-31.el7.centos.1.x86_64 httpd-t ...

  9. C#发送Post请求,带参数,不带参数,指定参数

    1.不带参数发送Post请求 /// <summary> /// 指定Post地址使用Get 方式获取全部字符串 /// </summary> /// <param na ...

  10. hdu5798

    官方题解: 考虑去掉abs符号,发现只有相邻两个数的最高位被影响了才会影响abs的符号,所以可以按照最高位不一样的位置分类,之后考虑朴素枚举x从0到2^20,每次的复杂度是O(400),无法通过,考虑 ...