班級:1753班
姓名:許鈺瑋
學號:20175329
指導教師:婁嘉鵬
實驗日期:2019年5月13日
實驗時間:13:45 - 15:25
實驗序號:21
實驗名稱:Android程序設計html
1. Android Stuidio的安裝測試
2. Activity測試
3. UI測試
4.佈局測試
5.事件處理測試java
學習Android Stuidio調試應用程序android
此時你能夠看到Android Studio的歡迎頁已經出來了,就像下面這樣:
左側的Recent Projects將會顯示你在這裏編輯作的最近項目。右側的Quick Start則是快速開始選項。app
紅色方框選中的Start a new Android Studio project
選項一般是咱們課程裏最常使用的,用於建立一個新的Android項目。ide
在此介紹一下其餘的選項:工具
1.Open an existing Android Studio Project
:打開已有的Android Studio項目。在經歷一段時間的學習後,若是你想繼續編輯以前的項目,或者打開一個從網上下載的例子,你能夠點擊此選項。
2.Check out project from Version Control
:從版本控制庫中獲取項目。對於團隊開發來講,版本控制是必不可少的工具。此選項容許你從GitHub
、Google Cloud
以及TortoiseSVN
等處同步項目。事實上,Android Studio對於這些版本控制工具的支持也是很好的,你能夠在設置中進行設定。
3.Import project(Eclipse ADT, Gradle, etc.)
:導入其餘開發環境中的項目。經過該選項你能夠將在Eclipse等處生成的項目遷移到Android Studio的開發環境中。
4.Import an Android code sample
:導入Android代碼樣例。該功能將從Google及其合做夥伴那裏讀取示例的列表,你能夠下載並查看一些優秀的項目並繼續編輯它們。
在該對話框中你須要填寫待建立的項目名稱、公司域名和項目的存放位置。佈局
在填寫時,有如下事項你須要注意:學習
應用的命名應採用駝峯命名法,首字母必需要大寫。
此處的Company Domain
在商業開發中是經常使用的,目的是便於歸檔。對於初學者而言,你能夠理解爲下面的Package name
是域名的反轉,好比個人域名多是ljp.is.besti.edu.cn
, 包名最好是cn.edu.besti.is.ljp
(上圖中沒倒過來)
根據實際狀況,你能夠設置Project location
,也就是項目的位置。一般狀況下咱們使用默認值就行。測試
res/layout
文件夾中能夠找到。設置好後,點擊Finish
按鈕完成項目的建立工做。ui
Android Studio會根據這些信息來建立項目,耐心等候它自動建立項目並進入主界面。這時你會在下圖所示的對話框中看到一些關於Gradle
的信息。
Gradle是一款獲業界高度評價自動化構建工具,它的用處不少,好比引入外部庫等等。你能夠訪問Gradle官網瞭解更多信息。
稍候一下子,你便能看到Android Studio的主界面了,以下圖所示。
配置和啓動模擬器
Android模擬器是能夠運行在電腦上的虛擬設備,可讓你不需使用物理設備便可預覽、開發和測試Android應用程序。當你身邊並無合適的Android設備時,模擬器就是一個不錯的選擇。
那麼如何使用Android模擬器呢?
在Android Studio的主界面上方的工具欄中,你能夠看到一個名爲AVD Manager
的按鈕,點擊它你就能打開Android虛擬設備管理器(AVD: Android Virtual Device)。
咱們常說某個Android手機是4.1
或5.0
的系統,這裏的4.1或5.0就是指系統鏡像的版本。一樣,對於模擬器而言,也須要爲其配置某個版本的系統鏡像。你能夠看到這裏只有3個鏡像可供選擇,請選擇第一項——發佈名爲Lolipop
的Android 5.1.1
鏡像。
若是你須要其餘版本的系統,你能夠在Android SDK Manager中下載對應的系統鏡像包,再進入AVD Manager就能看到它們了。
接着,點擊右下角的Next
按鈕,進入到確認配置的一步。
項目的編譯與運行
編譯模擬運行以下
Activity
是包含了用戶界面組件的一個窗口。一個典型的Android應用程序,都是從啓動一個 Activity
開始的。應用程序所建立的第一個窗口,叫作主活動。Activity
涉及到的方法:onCreat()
onPause()
onStart()
onResume()
onStop()
onRestart()
onDestory()
MyActivity.java
代碼以下package cn.edu.besti.is.myapplication; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class MyActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); } }
activity_my.xml
代碼以下
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:id="@+id/textView" android:text="20175329 許鈺瑋" android:layout_width="200dp" android:layout_height="132dp" tools:layout_editor_absoluteX="255dp" tools:layout_editor_absoluteY="255dp" tools:ignore="MissingConstraints" /> </android.support.constraint.ConstraintLayout>
運行效果
MainActivity.java
代碼package cn.edu.besti.is.myapplication; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.Toast; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toast toast = Toast.makeText(MainActivity.this, "20175221曾祥傑", Toast.LENGTH_LONG); toast.show(); } }
activity_main.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" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="cn.edu.besti.is.myapplication.MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="歡迎!" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> </android.support.constraint.ConstraintLayout>
實驗截圖
activity_main.xml
代碼<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:text="20175221" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="400dp" android:layout_marginLeft="160dp" /> <Button android:text="曾祥傑" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="450dp" android:layout_marginLeft="160dp" /> <ImageButton android:src="@android:drawable/btn_star_big_on" android:background="@android:color/black" android:alpha="0.55" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="160dp" android:layout_marginLeft="183dp" /> <ImageView android:src="@android:drawable/presence_audio_away" android:background="@android:color/holo_blue_bright" android:alpha="0.70" android:layout_width="120dp" android:layout_height="120dp" android:layout_marginTop="200dp" android:layout_marginLeft="140dp" android:padding="4dp" android:id="@+id/imageView" android:layout_centerHorizontal="true" /> <TableRow android:layout_width="match_parent" android:layout_height="match_parent"> <Space android:layout_width="wrap_content" android:layout_height="wrap_content" /> <ImageView android:id="@+id/imageView2" android:layout_width="wrap_content" android:layout_height="wrap_content" app:srcCompat="@android:drawable/arrow_down_float" /> <Switch android:id="@+id/switch1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Switch" /> </TableRow> </FrameLayout>
運行以下
MainActivity.java
中代碼package cn.edu.besti.is.myapplication; import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import android.view.Menu; import android.view.View; 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"?> <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="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" 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" /> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="20175329 許鈺瑋" android:textSize="30dp" android:layout_marginLeft="90dp" android:layout_marginTop="290dp" android:textColor="#bbbb57"/> </RelativeLayout>
實驗效果以下