標籤:uid ack idt 描述 實驗 圖片 details 有一個 new
2017-2018-2 20165315 實驗四《Android程式設計》實驗報告第24章:初識Android
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!"
運行:
調試過程如下: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程式設計》實驗報告