2018-2019-2 20175218 實驗四《Android程序設計》實驗報告

2018-2019-2 20175218 實驗四《Android程序設計》實驗報告

姓名 陳敬勇
班級 1752
學號 20175218
實驗序號 實驗四
實驗名稱 Android程序設計

實驗內容與要求html

  • 參考Android開發簡易教程點擊進入連接
  • 完成雲班課中的檢查點,也能夠先完成實驗報告,直接提交。注意不能只有截圖,要有知識點,原理,遇到的問題和解決過程等說明。實驗報告中一個檢查點要有多張截圖。
  • 發表實驗報告博客。

1、Android程序設計-1

一、實驗要求

Android Stuidio的安裝測試: 參考《Java和Android開發學習指南(第二版)(EPUBIT,Java for Android 2nd)》第二十四章:java

  • 參考http://www.cnblogs.com/rocedu/p/6371315.html#SECANDROID,安裝 Android Stuidio
  • 完成Hello World, 要求修改res目錄中的內容,Hello World後要顯示本身的學號,本身學號先後一名同窗的學號,提交代碼運行截圖和碼雲Git連接,截圖沒有學號要扣分
  • 學習Android Studio調試應用程序

二、實驗步驟

一、下載安裝 Android Studioandroid

  1. 由於工具箱裏有Android Studio,因此我是在工具箱裏下載的。首先打開工具箱,找到Android Studio,而後點擊install就能夠下載了。以下圖:

  1. 下載好以後,直接打開,出現 Data Sharing 窗口點擊 Send usage statistics to Google 。以下圖:

  1. 第一次運行會出現警告 SDK 窗口,點擊 Cancel 。以下圖:

  1. 最後達到使用界面,在工具箱裏的下載安裝就算完成了。以下圖:

二、使用 Android Studiogit

先說明一下使用界面的那幾個選項的功能app

  • Start a new Android Studio project 建立一個新的Android項目
  • Open an existing Android Studio Project 打開已有的Android Studio項目
  • Check out project from Version Control 從版本控制庫中獲取項目
  • Import project(Eclipse ADT, Gradle, etc.) 導入其餘開發環境中的項目
  • Import an Android code sample 導入Android代碼樣例
  1. 選擇 Start a new Android Studio project 建立項目。以下圖:

  1. 選擇 Empty Activity 建立一個空的活動。以下圖:

  1. 在 Name 欄填入 HelloWorld ,在 Language 欄選擇 Java ,其餘的不用動,會自動生成。

  1. 到了下面這個界面就成功建立項目了。以下圖:

三、配置和啓動模擬器ide

  1. 首先在工具欄中找到 AVD Manager(右上角比較小的一個圖標),點擊打開它。以下圖:

  1. 點擊 Create Virtual Device... 建立一個虛擬設備。以下圖:

  1. 選擇本身想要的虛擬手機型號。以下圖:

  1. 下載配置的虛擬手機型號的所需。以下圖:

  1. 下載好以後點擊 Finish 便可下一步。以下圖:

  1. 返回到上一界面後,就能夠點 Next了。以下圖:

  1. 到達這一界面時,三角開始標仍是白色的,點擊它會自動彈出一個窗口,而後下載所需的東西。以下圖:

  1. 下載好以後就一直 Next ,最後 Finish 就能夠回到上一界面,此時的那個三角標已經變成綠色的了,虛擬設備也打開了。以下圖:

  1. 根據要求,修改學號,改好後運行,這時會彈出設備選擇窗口,選擇以前選定的設備便可。以下圖:

  1. 運行後,在虛擬設備上,能夠看到學號信息。以下圖:

四、調試程序工具

  1. 跟 IDEA 類似,想要調試程序,首先要設置斷點,而後直接 run >> debug ,在下面 Debug 欄中,就能夠看到調試狀況。以下圖:

五、查看 logcat 日誌佈局

  1. 在下面,也就是 Debug 旁邊有個 logcat ,這個能夠查看操做日誌。以下圖:

三、實驗代碼

activity_main.xml學習

<?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! 20175217 20175218 20175219"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</android.support.constraint.ConstraintLayout>

四、運行截圖

五、碼雲連接

點擊進入連接測試

2、Android程序設計-2

一、實驗要求

Activity測試: 參考《Java和Android開發學習指南(第二版)(EPUBIT,Java for Android 2nd)》第二十五章:

  • 構建項目,運行教材相關代碼
  • 建立 ThirdActivity, 在ThirdActivity中顯示本身的學號,修改代碼讓MainActivity啓動ThirdActivity
  • 提交代碼運行截圖和碼雲Git連接,截圖要有學號水印,不然會扣分

二、實驗步驟

  1. 修改 activity_main.xml 的代碼,增長一個 Button。
  2. 對MainActivity.java 進行修改,建立intent對象。
  3. 新建一個 activity 名字設爲 SecondActivityDemo ,建立好會生成兩個文件,一個 SecondActivityDemo.java ,一個 activity_second_demo.xml ,而後對它們的代碼進行修改,增添學號。

三、實驗代碼

activity_main.xml

<?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">

    <Button
        android:id="@+id/button1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="啓動另外一個activity"
        tools:ignore="MissingConstraints" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="80dp"
        android:layout_marginRight="80dp"
        android:text="Hello! 20175217 20175218 20175219"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        tools:text="Hello World! 20175217 20175218 20175219" />

</android.support.constraint.ConstraintLayout>

MainActivity.java

package com.example.helloworld;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {
    private Button button1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button1 = (Button) findViewById(R.id.button1);
        button1.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(
                        MainActivity.this, SecondActivityDemo.class); // 建立一個Intent對象
                       startActivity(intent);
            }

        })
    ;}
}

SecondActivityDemo.java

package com.example.helloworld;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class SecondActivityDemo extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second_demo);
    }
}

activity_second_demo.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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="vertical">

    <TextView
        android:id="@+id/textView"
        android:layout_width="172dp"
        android:layout_height="139dp"
        android:text="20175218"
        tools:layout_editor_absoluteX="153dp"
        tools:layout_editor_absoluteY="311dp"
        tools:ignore="MissingConstraints" />
</android.support.constraint.ConstraintLayout>

AndroidMainfest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.example.helloworld" >
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme"
        tools:ignore="GoogleAppIndexingWarning">

        <activity

            android:name=".MainActivity"

            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".SecondActivityDemo"
            android:label="Activity">
        </activity><!--在這裏註冊-->
    </application> </manifest>

四、運行截圖

五、碼雲連接

點擊進入連接

3、Android程序設計-3

一、實驗要求

UI測試: 參考《Java和Android開發學習指南(第二版)(EPUBIT,Java for Android 2nd)》第二十六章:

  • 構建項目,運行教材相關代碼
  • 修改代碼讓Toast消息中顯示本身的學號信息
  • 提交代碼運行截圖和碼雲Git連接,截圖要有學號水印,不然會扣分

二、實驗步驟

  1. 在MainActivity.java中,對import android.widget.Toast進行修改,引入方法。
  2. 在MainActivity.java中,對Toast.makeText(MainActivity.this進行修改, 修改學號信息爲"20175218!", Toast.LENGTH_SHORT).show(),快速調用。

三、實驗代碼

MainActivity.java

package com.example.helloworld;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {
    private Button button1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toast.makeText(MainActivity.this, "20175218!", Toast.LENGTH_SHORT).show();
        button1 = (Button) findViewById(R.id.button1);
        button1.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(
                        MainActivity.this, SecondActivityDemo.class); // 建立一個Intent對象
                       startActivity(intent);
            }

        })
    ;}
}

四、運行截圖

五、碼雲連接

點擊進入連接

4、Android程序設計-4

一、實驗要求

佈局測試: 參考《Java和Android開發學習指南(第二版)(EPUBIT,Java for Android 2nd)》第二十七章:

  • 構建項目,運行教材相關代碼
  • 修改佈局讓P290頁的界面與教材不一樣
  • 提交代碼運行截圖和碼雲Git連接,截圖要有學號水印,不然會扣分

二、實驗步驟

經過圖形界面進行操做

  1. 在 activity_second_demo.xml 中,選擇下面的 Design(就在Text旁邊),這就進入了圖形界面設計窗口。在這裏能夠直接對虛擬設備的界面和功能進行設計,好比改個背景,就點擊上面那個界面圖形,而後在右邊的功能欄裏選擇 foreground ,而後就能夠設計本身想要的背景界面。

三、運行截圖

5、Android程序設計-5

一、實驗要求

事件處理測試: 參考《Java和Android開發學習指南(第二版)(EPUBIT,Java for Android 2nd)》第二十八章:

  • 構建項目,運行教材相關代碼
  • 提交代碼運行截圖和碼雲Git連接,截圖要有學號水印,不然會扣分

二、實驗步驟

  1. 對 MainActivity.java 和 activity_main.xml進行修改,增長要修改的界面元素,這裏要設計的是一個鐘,而後加入改變的顏色元素,代碼實現。
  2. 添加一個 menu 文件

三、實驗代碼

MainActivity.java

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;
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.xml

<?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">

    <Button
        android:id="@+id/button1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="啓動另外一個activity"
        tools:ignore="MissingConstraints" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="80dp"
        android:layout_marginRight="80dp"
        android:text="Hello! 20175217 20175218 20175219"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        tools:text="Hello World! 20175217 20175218 20175219" />
    <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>
</android.support.constraint.ConstraintLayout>

menu_main.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

</menu>

四、運行截圖

  1. 最開始白色

  1. 點擊一下變黃色

  1. 再點擊一下變黑色

  1. 再點擊一下變藍色

五、碼雲連接

點擊進入連接

6、實驗過程當中遇到的問題及解決方法

一、問題一

  • 用工具箱安裝時,少了好多配置和下載的東西,致使後期作實驗不順利
  • 解決方法:在實驗中因爲以前是工具箱安裝的,因此不少設置都是系統本身設置的,實驗中,當遇到提醒和警告時,要根據它的要求進行修改,以及下載所須要下載的東西。

二、問題二

  • 在作第四部分實驗時,用代碼作老是有錯誤,而致使運行不了
  • 解決方法:直接在圖形界面作,方便又快捷

三、問題三

  • 作第五部分實驗時,代碼中的 menu 提醒錯誤
  • 解決方法:選擇提醒的 menu ,會出現一個提示,選擇建立一個 menu 文件,直接建立就能夠。建立後, menu 就能夠運行了。

7、代碼託管

碼雲連接

8、實驗心得

對於此次實驗,總的來講不是很難,惟一難點就是自學這些操做,包括這個軟件的用法、實驗步驟等等。可是隻要按照教程,一步一步作下去就基本上能夠作出來。而後就是,能夠本身上網查詢資料,對關於這方面的知識進行拓展學習。經過這個實驗,我也瞭解到了Android程序設計的一些基本知識,包括如何配置本身想要的虛擬設備、如何在虛擬設備上修改界面和建立一些功能等等,這些經驗和知識對我學習Java都有很大的幫助,也讓個人知識面獲得了很好地擴展。最後就是但願本身在之後的實驗中可以作得更好。

相關文章
相關標籤/搜索