2017-2018-2 20165315 實驗四《Android程式設計》實驗報告

來源:互聯網
上載者:User

標籤:uid   ack   idt   描述   實驗   圖片   details   有一個   new   

2017-2018-2 20165315 實驗四《Android程式設計》實驗報告第24章:初識Android
  • Android Studio項目的分類樹

1 build:該目錄包含了自動產生的檔案,這些檔案包括了編譯設定項、R類等

2 libs:該目錄包含了開發Android應用所需要的庫檔案

3 src:該目錄存放了應用的原始碼.java檔案。預設情況下,它包含了MainActivity.java檔案,這個原始碼j有一部分是執行了你點擊應用表徵圖時啟動應用所需要功能

4 res:該目錄存放了所有的資源檔

5 drawable:該目錄存放了項目的drawable對象和一些圖片資源

6 layout:該目錄存放了各個介面的布局檔案

7 menu:該目錄存放了應用中設計的菜單對象

8 mipmap:該目錄存放了應用的主要圖片資源

9 values:該目錄存放了字串、顏色等定義的資源集合

10 AndroidManifest.xml:該檔案是描述應用基礎特性的檔案,定義了每個組件。

任務一:
- 參考```http://www.cnblogs.com/rocedu/p/6371315.html#SECANDROID```,安裝 Android Stuidio- 完成Hello World, 要求修改res目錄中的內容,Hello World後要顯示自己的學號,自己學號前後一名同學的學號- 學習Android Stuidio調試應用程式

實驗過程:

  • 將布局檔案activity_main.xml中的android:text="Hello World!"改為android:text="Hello World20165315!"

運行:

  • 學習Android Stuidio調試應用程式

調試過程如下:Tools->Android->Android Device Monitor

第25章:活動
  • Android中的四大組件
    • Activity
    • Service
    • ContentProvider
    • Broadcast Receiver
  • 對於Activity,它是Android系統中最常用、最常見的一個組件
  • 一個應用通常包含了多個Activity
  • Activity類定義了如下的回調事件
    • onCreate():這是第一個回調方法。當Activity首次被建立時會調用它
    • onStart:當Activity對於使用者來說變為可視狀態時會回調此方法
    • onResume():當使用者開始與應用互動時會調用此方法
    • onPause():當前的Activity正在暫停中,並且先前的Activity正在恢複時,被暫停這個Activity不會再接收使用者的輸入,也不再執行任何代碼和調用
    • onStop():當Activity不再為可視狀態時會調用該回調方法
    • onDestroy():該方法會在Activity被系統銷毀前被調用
    • onRestart():當Activity在被停止後重新啟動時,會調用該回調方法
任務二
建立 ThirdActivity, 在ThirdActivity中顯示自己的學號,修改代碼讓MainActivity啟動ThirdActivity
  • 配置Activity
    • 在檔案AndroidManifest.xml中,只要為application元素添加activity子項目,即可配置Activity
    • 在這個任務中,我們需要調用ThirdActivity,所以在AndroidManifest.xml中再添加一個activity即可
  • 啟動、關閉Activity
    • 每一個控制檔案的Activity都需要有對應的啟動程式檔案(.java)和相應的布局檔案(.xml)
    • 在這個任務中,要求讓MainActivity啟動ThirdActivity,所以還需要修改MainActivity

運行:

第26章:UI組件
  • Android提供了許多的UI組件,你能按需構建應用的使用者互動介面
    • TextView:文字標籤,該控制項用於顯示文本
    • EditText:文字框,是預定義好的TextView的一個子類,有富文本編輯能力
    • AutoCompleteTextView:自動完成的文字標籤,類似於EditText。當使用者在輸入的時候會自動給出一些完整的建議
    • Button:按鈕,可以按壓、點擊,由使用者完成一個動作
    • ImageButton:圖片按鈕,顧名思義
    • CheckBox:複選框,可以作為使用者使用的一個開關。當有一系列可供選擇的選項時,建議使用該控制項
    • ToggleButton:帶有一個“燈泡”效果的開關按鈕
    • RadioButton:選項按鈕,只有選中和未選中狀態
    • RadioGroup:是RadioButton的集合,在同組內只能選中一個選項按鈕
    • Spinner:下拉式清單,允許使用者在多個選項中選擇一個
    • TimePicker:時間選取器,能讓使用者輸入時間,有12小時和24小時模式
    • DatePicker:日期選取器,能讓使用者輸入日期
    • ProgressBar:進度條,為使用者提供某項工作的進度,比如後台正在做的事情
任務三
修改代碼讓Toast訊息中顯示自己的學號資訊

修改MainActivity代碼如下:

package yh.is.besti.edu.cn.uitest;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.Gravity;import android.view.View;import android.widget.Button;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.RelativeLayout;import android.widget.TextView;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, "20165211", Toast.LENGTH_LONG);                toast.show();            }        });    }}

運行:

第27章:布局
  • 布局的類型
    • 線性布局LinearLayout:線性布局是一個視圖組(ViewGroup),能在水平或者垂直的單一方向上將所有子項目排成一行
    • 相對布局RelativeLayout:相對布局是一個將子視圖顯示在相對的位置上的布局
    • 表格版面配置TableLayout:表格版面配置是在行、列中組合子項目的視圖
    • 絕對布局AbsoluteLayout:絕對布局能讓你指定子項目的精確位置
    • 幀布局FrameLayout:幀布局是一個螢幕上的預留位置,你可以用它來顯示單一視圖
    • 列表視圖ListView:列表布局是可以滾動的,是用於顯示子項目列表的視圖組
    • 網格視圖GridView:網格視圖是在二維可滾動的網格中顯示子項目的視圖組
任務四
修改布局讓P290頁的介面與教材不同
  • 修改activity_main.xml中內容,代碼如下:
<?xml version="1.0" encoding="utf-8"?><FrameLayout 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="horizontal">    <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_marginLeft="100dp"        android:layout_marginTop="100dp"        android:text="20165211" />    <FrameLayout        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="20165211"></FrameLayout>    <Button        android:id="@+id/button"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="Button" /></FrameLayout>

運行:

第28章:監聽器任務五
構建項目,運行教材相關代碼

運行:

遇到的問題及解決方案
  • 安裝完AndroidStudio,出現gradle project sync failed報錯

解決過程:
在網上尋找到一篇部落格,裡面詳細的描述瞭解決方法:

開啟網頁http://services.gradle.org/distributions/,選擇你想要的對應版本的gradle,然後放到C:\Users\使用者名稱.gradle\wrapper\dists\gradle-4.1-all的檔案夾中即可(這個壓縮包不用解壓)

  • 在解決上述問題的過程中,我發現Mac電腦會自動解壓下載的壓縮包

解決過程:
未解壓的zip檔案在垃圾桶裡找到了:)

  • 第一次運行Hello World時,R類一直標紅,提示檔案裡找不到R類

解決過程:

在網路上查詢後,在一篇部落格中找到了答案:

1、clean project:Build->Clean Project

2、rebuild project:Build->Rebuild Project

3、以及重啟應用乃至系統:File->Invalidata Caches/Restart->Invalidata and Restart

  • 虛擬安卓手機啟動失敗

解決過程:

貌似是手機型號的問題,使用Nexus 5X API 27×86會出現這個問題,但是使用Nexus 5 API 27就不會出現此問題

實驗體會與總結

這次實驗是全新的內容,將java用在了我們之前從未接觸過的領域——Android開發。完成這次實驗,我們大致瞭解了Android開發的流程和架構,為今後深入學習打下了基礎,拓寬了視野。在安裝Android Studio時出現了很多問題,我在不斷尋找解決方案的過程中,更加體會到了安裝成功的自豪感hh當運行結果出現在虛擬手機頁面上時,我真正感受到了Java在安卓應用上的廣泛使用,對Java的興趣更加深厚了。

PSP(Personal Software Process)時間
步驟 耗時 百分比
步驟 耗時 百分比
需求分析 60min 26%
設計 30min 13%
代碼實現 90min 39%
測試 20min 9%
分析總結 30min 13%
碼雲連結

https://gitee.com/BESTI-IS-JAVA-2018/20165315AndroidStudio

2017-2018-2 20165315 實驗四《Android程式設計》實驗報告

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.