課程:程序設計與數據結構html
班級:1623java
姓名:張韻琪android
學號:20162307git
指導教師:婁佳鵬老師、王志強老師網絡
實驗日期:2017年5月26號數據結構
實驗密級:非密級app
實驗時間:一週編輯器
必修/選修:必修ide
實驗名稱:Android程序設計工具
實驗儀器:電腦
實驗目的與要求:
目的:
學習Android程序設計
要求:
1.沒有Linux基礎的同窗建議先學習《Linux基礎入門(新版)》《Vim編輯器》 課程 2.完成實驗、撰寫實驗報告,實驗報告以博客方式發表在博客園,注意實驗報告重點是運行結果,遇到的問題(工具查找,安裝,使用,程序的編輯,調試,運行等)、解決辦法(空洞的方法 如「查網絡」、「問同窗」、「看書」等一概得0分)以及分析(從中能夠獲得什麼啓示,有什麼收穫,教訓等)。報告能夠參考範飛龍老師的指導 3. 嚴禁抄襲,有該行爲者實驗成績歸零,並附加其餘懲罰措施。
安裝 Android Studio (Mac版)
- 到官網安裝Android Studio 官網地址:https://developer.android.google.cn/studio/index.html
- 選擇 我已閱讀並贊成上述條款及條件
- 下載完畢以後,將 Android Studio 拖放到「Applications」文件夾中,而後啓動 Android Studio。
- 選擇是否想要導入以前的 Android Studio 設置,而後點擊 OK。
- 以後 Android Studio 設置嚮導將指導您完成餘下的設置,包括下載開發所需的 Android SDK 組件
關於git push問題
- 先參考此篇博客
- 再打開終端,具體命令:
localhost:~ zhangyunqi$ history 注意:前面序號不要管 32 cd AndroidStudioProjects/ 33 ls 34 cd zhangyunqiapp2(你的AndroidStudio 本身起的名字) 35 ls 36 ls -a 37 git push 38 ls 39 cd zhangyunqiapp2 40 ls 41 git status 42 git add . 43 git commit -m "gradle" 44 git push 45 git push --set-upstream origin master 46 git pull 47 git branch 48 git status 49 git pull 50 git branch 51 git branch /? 52 ls 53 git status 54 cd .. 55 ls 56 ls 57 mkdir Tiffany4 58 cd Tiffany4 59 ls 60 git clone http://git.oschina.net/pdds2017/20162307androidapp.git(碼雲上的連接) 61 ls 62 cd 20162307androidapp 63 ls 64 cd .. 65 ls 66 cd .. 67 ls 68 cd zhangyunqiapp2 69 ls 70 git clone http://git.oschina.net/pdds2017/20162307androidapp.git 71 ls 72 ls -a 73 rm.git 74 rm -rf .git 75 ls 76 ls -a 77 rm .gitignore 78 ls -a 79 mv *.* 20162307androidapp/ 80 ls 81 mv build/ 20162307androidapp/ 82 mv gradle 20162307androidapp/ 83 mv gradlew 20162307androidapp/ 84 mv app/ 20162307androidapp/ 85 ls 86 ls -a 87 mv .gradle/ 20162307androidapp/ 88 mv .idea/ 20162307androidapp/ 89 ls 90 cd 20162307androidapp/ 91 ls 92 git add . 93 ls 94 git commit -m "finish android projects" 95 git push
Android Studio的安裝測試: 參考《Java和Android開發學習指南(第二版)(EPUBIT,Java for Android 2nd)》第二十四章: - 安裝 Android Studio - 完成Hello World, 要求修改res目錄中的內容,Hello World後要顯示本身的學號,提交代碼運行截圖和碼雲Git連接,截圖沒有學號要扣分 - 學習Android Studio調試應用程序
1.按照婁老師所給的博客,建立a new Android Studio project . 博客連接:http://www.cnblogs.com/rocedu/p/6824965.html
2.而後 res目錄-->layout目錄-->activity_main.xml將android:text="Hello World!" 改成android:text="Hello World!20162307"
Activity測試: 參考《Java和Android開發學習指南(第二版)(EPUBIT,Java for Android 2nd)》第二十五章: - 構建項目,運行教材相關代碼 - 建立 ThirdActivity, 在ThirdActivity中顯示本身的學號,修改代碼讓MainActivity啓動ThirdActivity - 提交代碼運行截圖和碼雲Git連接,截圖要有學號水印,不然會扣分
1.app右鍵--> new-->Activity-->Gallery,選擇Empty Activity而後點擊next
2.接下來的界面
3.點擊finish
4.在MainActivity原有的代碼的基礎上加上下面的代碼
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onTouch(View v, MotionEvent event) { Intent intent = new Intent(this, ThirdActivity.class); intent.putExtra("message", "20162307張韻琪實驗2"); startActivity(intent); return true; }
5.將ThirdActivity改成
public class ThirdActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_third); Intent intent = getIntent(); String message = intent.getStringExtra("message"); ((TextView) findViewById(R.id.textView1)).setText(message); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); return true; } }
6.在activity_third.xml中添加一段代碼:
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/textView1" />
7.在AndroidManifest.xml添加下面的代碼
<intent-filter> <action android:name="com.blackay.test.helloworld.ThirdActivity" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity>
UI測試: 參考《Java和Android開發學習指南(第二版)(EPUBIT,Java for Android 2nd)》第二十六章: - 構建項目,運行教材相關代碼 - 修改代碼讓Toast消息中顯示本身的學號信息 - 提交代碼運行截圖和碼雲Git連接,截圖要有學號水印,不然會扣分
MainActivity.java代碼:
package com.example.zhangyunqi.zhangyunqiapp; import android.content.Context; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.app.Activity; import android.util.AttributeSet; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; 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, "20162307張韻琪實驗3", Toast.LENGTH_LONG); toast.show(); } }); } }
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="10dp" android:paddingLeft="10dp" android:paddingRight="10dp" android:paddingTop="10dp" tools:context=".MainActivity" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="first_screen" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="20162307張韻琪實驗3" android:id="@+id/btn1" android:layout_alignParentTop="true" android:layout_marginTop="31dp" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" /> </RelativeLayout>
佈局測試: 參考《Java和Android開發學習指南(第二版)(EPUBIT,Java for Android 2nd)》第二十七章: - 構建項目,運行教材相關代碼 - 修改佈局讓P290頁的界面與教材不一樣 - 提交代碼運行截圖和碼雲Git連接,截圖要有學號水印,不然會扣分
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="10dp" android:paddingLeft="10dp" android:paddingRight="10dp" android:paddingTop="10dp" tools:context=".MainActivity" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="first_screen" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="20162307張韻琪實驗4" android:id="@+id/btn1" android:layout_alignParentTop="true" android:layout_marginTop="31dp" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" /> <FrameLayout android:layout_width="368dp" android:layout_height="495dp" android:orientation="horizontal" tools:layout_editor_absoluteX="11dp" tools:layout_editor_absoluteY="16dp"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="160dp" android:layout_marginTop="150dp" android:text="20162307實驗4" /> <ImageButton android:id="@+id/imageButton" android:layout_width="131dp" android:layout_height="69dp" android:layout_marginLeft="160dp" android:layout_marginTop="140dp" android:alpha="0.4" android:src="@android:drawable/btn_star_big_on" /> </FrameLayout> </RelativeLayout>
事件處理測試: 參考《Java和Android開發學習指南(第二版)(EPUBIT,Java for Android 2nd)》第二十八章: - 構建項目,運行教材相關代碼 - 提交代碼運行截圖和碼雲Git連接,截圖要有學號水印,不然會扣分
activity_main.xml代碼:
<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="40dp" android:paddingLeft="40dp" android:paddingRight="40dp" tools:context=".MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="20162307實驗5"></TextView> <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="200dp" android:onClick="changeColor" /> </RelativeLayout>
MainActivity.java代碼:
package com.example.zhangyunqi.zhangyunqiapp; 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); } public void changeColor(View view) { if (counter == colors.length) { counter = 0; } view.setBackgroundColor(colors[counter++]); } }
步驟 | 耗時 | 百分比 |
---|---|---|
需求分析 | 60min | 14.0% |
代碼實現 | 170min | 39.5% |
測試 | 150min | 34.9% |
分析總結 | 50min | 11.6% |
以爲AndroidStudio是一個新的體驗,和以前學習的不大相同,在AndroidStudio中git是最麻煩的,是最難弄的,因此我把怎麼弄git寫在個人博客裏。