《移動應用程式設計基礎》實 驗 報 告(一)
實驗名稱:
Android環境構建與Activity生命周期
所使用的工具軟體及環境:
JDK1.8,Android Studio
(一)
一、實驗目的:
安裝智能手機開發相關軟體平臺,并在此基礎上測驗Activity的生命周期程序,
- 完成智能手機開發平臺安裝、以及相關配置;
- 并實作Hello World;
- 添加Log日志,通過Log日志驗證Activity生命周期中的7個方法執行程序;
- 了解專案的基本檔案目錄結構,了解Activity周期中的4種狀態,
二、實驗內容:
- 安裝JAVA JDK
- 安裝Android Studio,熟悉AS的基本操作,改變AS的字體,顯示方式;截圖和文字說明,
- 建立新專案,實作Hello World,說明各個檔案的作用,以及各個關鍵陳述句的作用或含義,給出程式的運行結果,
- 設定生命周期的Log日志,分別執行相關操作
- 在MainActivity中復寫onCreate 、onStart、onResume 、onPause 、onStop 、onDestroy 和onRestart;
- 分別在各個方法中添加日志監視陳述句,例如:Log.e(“ActivityLife”, "onCreate");
- 分別執行
- 打開程式,在LogCat的輸出日志中檢查輸出情況,執行順序是否為onCreate()、onStart()、onResume();
- 按下back鍵,在LogCat的輸出日志中檢查輸出情況,執行順序是否為onPause()、onStop()、onDestory();
- 按下home鍵,在LogCat的輸出日志中檢查輸出情況,執行順序是否為onPause()、onStop();
- 再啟動HelloWorld,在LogCat的輸出日志中檢查輸出情況,執行順序是否為onRestart()、onStart()、onResume();
三、源代碼
//activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
//MainActivity.java
package com.example.helloworld;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends Activity {
public MainActivity(){
Log.e("TAG","MainActivity()");
}
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.e("TAG","onCreate()");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
protected void onStart() {
Log.e("TAG","onStart()");
super.onStart();
}
@Override
protected void onResume() {
Log.e("TAG","onResume()");
super.onResume();
}
@Override
protected void onPause() {
Log.e("TAG","onPause()");
super.onPause();
}
@Override
protected void onStop() {
Log.e("TAG","onStop()");
super.onStop();
}
@Override
protected void onDestroy() {
Log.e("TAG","onDestroy()");
super.onDestroy();
}
@Override
protected void onRestart() {
Log.e("TAG","onRestart()");
super.onRestart();
}
}
四、實驗結果測驗

1.此時安裝好的JDK版本

2、3.能夠創建一個新工程專案helloworld且能運行,在Android studio中能夠改變主題和字體樣式和大小,此時我選擇默認不做改變

4.(1)首次打開helloworld查看運行周期日志

(2)點擊back,查看周期日志

(3)重新啟動,查看周期日志

(4)點擊home,查看周期日志
五、識訓與體會
能夠安裝好JDK,收悉了android studio各個工程專案中的檔案,能夠初次運行helloworld,且學習到了app的生存周期并且能夠查看日志,
(二)
一、實驗目的:
安裝智能手機開發相關軟體平臺,并在此基礎上測驗Activity的生命周期程序,
- 完成智能手機開發平臺安裝、以及相關配置;
- 并實作Hello World;
- 添加Log日志,通過Log日志驗證Activity生命周期中的7個方法執行程序;
- 了解專案的基本檔案目錄結構,了解Activity周期中的4種狀態,
二、實驗內容:
5、bug除錯、測驗實驗
以下代碼是實作一個進度條測驗程式,在界面(activity_main.xml)上放置一個水平長條形的進度條(style:progressBarStyleHorizontal,id:horizontal_pbar),以及一個啟動進度條的按鈕,點擊按鈕,進度條從0增加到滿格100,進度條停止,由于代碼中存在各種問題,現請你將代碼修正和除錯正確,
三、源代碼
//activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
tools:context="com.example.helloworld.MainActivity">
<ProgressBar
android:id="@+id/horizontal_pbar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="50dp"
android:max="100" />
<Button
android:id="@+id/start_pbar_btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="啟動進度條" />
</LinearLayout>
//MainActivity.java
package com.example.helloworld;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.Button;
import android.widget.ProgressBar;
public class MainActivity extends AppCompatActivity {
private ProgressBar mProgress;
private Handler mHandler = new Handler();
private Boolean FLAG=true;
private Button startpbarbtn;
int mProgressStatus=0;
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.activity_main);
mProgress = (ProgressBar) findViewById(R.id.horizontal_pbar);
//設定監聽按鈕
startpbarbtn = (Button)findViewById(R.id.start_pbar_btn);
//設定監視內容
startpbarbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//監聽
new Thread(new Runnable() {
public void run() {
//推薦使用標志位使其不執行代碼,不推薦使用true
while (FLAG) {
mProgressStatus = addNum();
// 更新進度條
// post方法推送一個Runnable到Handler,可以在此更新UI
mHandler.post(new Runnable() {
public void run() {
if(mProgressStatus<100) {
mProgress.setProgress(mProgressStatus);
mProgressStatus++;
}
//執行完成后隱藏進度條并將標志設定為false
else {
mProgress.setVisibility(View.INVISIBLE);
FLAG = false;
}
}
});
}
}
private int addNum() {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
return mProgressStatus;
}
}).start();
}
});
}
}
四、實驗結果測驗

1.將bug程式修改完成,啟動

2.點擊啟動進度條,開始啟動

3.進度完成,隱藏進度條
五、識訓與體會
對部分代碼進行修改,增加了按鈕監聽,使得程式可以正常運行,對監聽器的運用和Android studio代碼的撰寫有了進一步的了解和運用,
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/413500.html
標籤:其他
