第一篇:Android實訓報告
Android學院:****** 班級:****** 學號:****** 姓名:******
實訓報告
目錄
一、實訓背景及目的要求.........................................................................................................................3 1.1背景簡介.....................................................................................................................................3 1.2實訓目的及要求...........................................................................................................................3
二、設計思路...........................................................................................................................................3 2.1設計題目.....................................................................................................................................3 2.2功能分析.....................................................................................................................................4 2.3模塊劃分.....................................................................................................................................4
三、設計實現及代碼分析.........................................................................................................................4 3.1第一個Activity.............................................................................................................................4 3.1.1布局文件:main.xml:........................................................................................................4 3.1.2源代碼文件:MainActivity.java............................................................................................7 3.2第二個Activity.............................................................................................................................8 3.2.1布局文件:result.xml..........................................................................................................8 3.2.2源代碼文件:ResultActivity.java...........................................................................................9 3.3字符串資源文件:strings.xml......................................................................................................12 3.4程序清單文件:AndroidManifest.xml...........................................................................................13
四、程序功能測試及截圖.......................................................................................................................14 4.1工程項目目錄............................................................................................................................14 4.2程序運行界面:.........................................................................................................................14 4.3未填身高提示:.........................................................................................................................15 4.4計算示例:................................................................................................................................15
五、課程設計(實訓)總結....................................................................................................................16
一、實訓背景及目的要求
1.1背景簡介
Android(讀音:['?ndr?id])是一種以Linux為基礎的開放源碼操作系統,主要使用于便攜設備,目前尚未有統一中文名稱,中國大陸地區較多人使用安卓或安致。Android操作系統最初由Andy Rubin創辦[5],最初只支持手機。2005年由Google收購注資,并拉攏多家制造商組成開放手機聯盟(Open Handset Alliance)開發改良,逐漸擴展到到平板電腦及其他領域上[6]。2010年末數據顯示,僅正式推出兩年的操作系統的Android已經超越稱霸十年的諾基亞Symbian系統,躍居全球最受歡迎的智慧手機平臺。采用Android系統手機廠商包括HTC、Samsung、Motorola、Lenovo、LG、Sony Ericsson等。1.2實訓目的及要求
Android以Linux為核心的Android行動平臺,使用Java作為編程語言。本實訓是在學習java語言程序設計的基礎上進行的一次綜合實踐。通過綜合訓練,要求學生掌握java語言程序設計的基本技能和Android編程的應用,并較系統地掌握JAVA語言程序設計開發方法以及幫助文件的使用等,使學生通過本次實訓,能夠進行獨立的Android應用程序開發,能夠在實際操作中得到進一步的提高,為以后的學習和工作打下良好的基礎。
目的:
1、培養學生運用所學課程Java語言程序設計的理論知識和技能,分析解決計算機實際應用中的問題的能力。
2、培養學生在Java語言程序設計的基礎上,開發Android應用程序的思想和方法。
3、培養學生調查研究、查閱技術文獻、資料、手冊以及編寫技術文獻的能力。
通過課程設計,要求學生在指導教師的指導下,獨立完成課程設計的全部內容,包括:
1、確定開發的程序,收集和調查有關技術資料。
2、按軟件工程步驟進行程序設計。
3、對完成的程序進行測試和完善。
4、完成課程設計報告。
二、設計思路 2.1設計題目
以Android系統的UI界面開發為基礎,設計一個可以簡單計算標準體重的應用程序,要求以2個Acitivity實現,第一個Activity作為輸入界面,第二個Activity作為結果輸出界面,具體實現細節自行設計。2.2功能分析
該設計題目要求實現可計算輸出標準體重功能的應用程序。通過查閱資料可知,按照世界衛生組織推薦的計算標準體重的方法,需要獲知的輸入信息有性別、身高。故可在第一屏設置有單選框以確定性別,輸入框以獲取身高。另,為了增加程序的實用性,可再設一可選輸入框,用來得到實際體重,與標準體重對比,給出用戶一些健康提議。第二屏設置有結果輸出顯示區域與健康提示顯示區域。
2.3模塊劃分
通過程序功能分析,可將程序劃分為2個模塊,即2個Activity:
第一個Activity:兩個單選框(RadioButton)獲取性別,一個輸入框(EditText)獲取身高,一個可選輸入框(EditText)獲取實際體重,一個按鈕(Button)及一些提示文本。
第二個Activity:一個文本顯示區(TextViw)顯示計算結果,一個可選文本顯示區(TextView)顯示提示信息。
三、設計實現及代碼分析 3.1第一個Activity 3.1.1布局文件:main.xml:
采用絕對布局,以實現控件精準顯示;
RadioGroup包含兩個RadioButton,以實現性別男女選擇;
兩個供輸入的EditText限定了輸入類型為numberDecimal,以確保只接收數字型數據。main.xml完整代碼如下:
android:orientation=“vertical” android:layout_width=“fill_parent” android:layout_height=“fill_parent” > android:id=“@+id/tv1” android:layout_width=“wrap_content” android:layout_height=“wrap_content” android:text=“@string/tv1_t” android:textSize=“20sp” android:layout_x=“50px” android:layout_y=“25px” /> android:layout_width=“wrap_content” android:layout_height=“wrap_content” android:text=“@string/tv_sex” android:layout_x=“50px” android:layout_y=“100px” /> android:layout_width=“wrap_content” android:layout_height=“wrap_content” android:text=“@string/tv_tall” android:layout_x=“50px” android:layout_y=“150px” /> android:id=“@+id/rg” android:layout_width=“wrap_content” android:layout_height=“wrap_content” android:orientation=“horizontal” android:layout_x=“95px” android:layout_y=“90px” > android:id=“@+id/rb_male” android:layout_width=“wrap_content” android:layout_height=“wrap_content” android:text=“@string/male” /> android:id=“@+id/rb_female” android:layout_width=“wrap_content” android:layout_height=“wrap_content” android:text=“@string/female” /> android:id=“@+id/et_tall” android:layout_width=“100px” android:layout_height=“40px” android:layout_x=“100px” android:layout_y=“140px” android:inputType=“numberDecimal” /> android:layout_width=“wrap_content” android:layout_height=“wrap_content” android:layout_x=“200px” android:layout_y=“145px” android:textSize=“20sp” android:text=“cm” />
Toast.makeText(MainActivity.this, R.string.tall_hint, Toast.LENGTH_SHORT).show();實現Activity之間跳轉設置:
intent.setClass(MainActivity.this, ResultActivity.class);實現Activity之間數據封裝傳輸: bundle.putDouble(“height”, height);bundle.putString(“sex”, sex);bundle.putString(“real”, real);intent.putExtras(bundle);MainActivity.java完整代碼如下:
package com.halcyon;
import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.RadioButton;import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener {
private RadioButton rb1 = null;private RadioButton rb2 = null;private EditText et = null;private EditText et_real = null;private Button bt = null;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
rb1 =(RadioButton)findViewById(R.id.rb_male);
rb2 =(RadioButton)findViewById(R.id.rb_female);
rb1.setChecked(true);
et =(EditText)findViewById(R.id.et_tall);
et_real =(EditText)findViewById(R.id.et_real);
bt =(Button)findViewById(R.id.compute);
//默認為男性選中
bt.setOnClickListener(this);}
} @Override
public void onClick(View v){
} // TODO Auto-generated method stub
/**事件響應代碼,獲取性別、身高,判斷是否輸入了實際體重 * 新建Intent對象用于Activity之間跳轉,及傳輸輸入的數據 * **/
if(et.getText().toString().length()==0){
} else {
}
double height = Double.parseDouble(et.getText().toString());String real = et_real.getText().toString();String sex = “";if(rb1.isChecked()){ } else{ } Intent intent = new Intent();intent.setClass(MainActivity.this, ResultActivity.class);
Bundle bundle = new Bundle();bundle.putString(”sex“, sex);bundle.putString(”real“, real);intent.putExtras(bundle);
this.startActivity(intent);
//存放數據,以封裝傳輸
bundle.putDouble(”height“, height);sex = ”F“;sex = ”M“;Toast.makeText(MainActivity.this,//身高未填提示
R.string.tall_hint,//注冊點擊事件監聽
Toast.LENGTH_SHORT).show();3.2第二個Activity 3.2.1布局文件:result.xml 絕對布局,三個TextView,內容用紫色顯示,提示標號用綠色顯示,以達到較醒目的感覺。result.xml完整代碼如下:
xmlns:android=”http://schemas.android.com/apk/res/android“ android:layout_width=”fill_parent“ android:layout_height=”fill_parent“ android:layout_margin=”10px“> android:id=”@+id/tv_1“ android:layout_width=”wrap_content“ android:layout_height=”wrap_content“ android:layout_x=”20px“ android:layout_y=”100px“ android:textSize=”20sp“ android:textColor=”#8855ff“ /> android:id=”@+id/tv_2“ android:layout_width=”wrap_content“ android:layout_height=”wrap_content“ android:layout_x=”20px“ android:layout_y=”200px“ android:textSize=”20sp“ android:textColor=”#00ff00“ /> android:id=”@+id/tv_3“ android:layout_width=”wrap_content“ android:layout_height=”wrap_content“ android:layout_x=”20px“ android:layout_y=”240px“ android:textSize=”20sp“ android:textColor=”#8855ff“ />
3.2.2源代碼文件:ResultActivity.java 使用result.xml布局文件,獲取intent,取得傳入的數據信息,以男性:(身高cm-80)×70﹪=標準體重
女性:(身高cm-70)×60﹪=標準體重 的標準來計算標準體重,方法
private String getWeight(double height, String sex)實現此功能;
可根據用戶是否輸入了實際體重,來選擇是否顯示健康提示信息,方法 private void healthHint(double weight)實現此功能;
方法private String form(double d)實現數據格式化。ResultActivity.java完整代碼如下:
package com.halcyon;
import java.text.NumberFormat;
import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.widget.TextView;
public class ResultActivity extends Activity{
/**男性:(身高cm-80)?á70﹪=標準體重
* 女性:(身高cm-70)?á60﹪=標準體重
* **/
private TextView tv_1 = null;private TextView tv_2 = null;private TextView tv_3= null;private Intent intent = null;private Bundle bundle = null;private double height = 0;private String sex = ”“;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.result);
tv_1 =(TextView)findViewById(R.id.tv_1);
tv_2 =(TextView)findViewById(R.id.tv_2);
tv_3 =(TextView)findViewById(R.id.tv_3);
intent = this.getIntent();
bundle = intent.getExtras();
height = bundle.getDouble(”height“);
sex = bundle.getString(”sex“);
tv_1.setText(this.getWeight(height,sex));
}
private String getWeight(double height, String sex){
} private void healthHint(double weight){
/*根據用戶是否輸入了實際體重來判斷是否添加顯示提示信息 * 如果輸入了實際體重,按以下原則給用戶以健康提示 * 標準體重正負10﹪為正常體重
* 標準體重正負10﹪~ 20﹪為體重過重或過輕 * 標準體重正負20﹪以上為肥胖或體重不足 * */
String result = ”“;String real = bundle.getString(”real“);if(real.equals(”“)){ } else {
double r = Double.parseDouble(real);double rate =(r-weight)/weight;if(rate>0.2){
//過胖
result = this.getString(R.string.very_fat);} else if(rate>=0.1&&rate<=0.2){
} else if(rate>-0.1&&rate<0.1){
} else if(rate>=-0.2&&rate<=-0.1){ } else if(rate<-0.2){
//過瘦
result = this.getString(R.string.very_thin);
//瘦
result = this.getString(R.string.thin);
//正常
result = this.getString(R.string.normal);
//胖
result = this.getString(R.string.fat);result = ”“;double weight = 0;String result = ”“;if(sex.equals(”M“)){
} else {
} healthHint(weight);return result;weight =(height-70)*0.6;result = ”這位女士,n妳的標準體重為“+form(weight)+”公斤。n“;weight =(height-80)*0.7;result = ”這位先生,n你的標準體重為“+form(weight)+”公斤。n“;
}
}
} } tv_2.setText(getString(R.string.hint));tv_3.setText(result);private String form(double d){
}
//格式化數據輸出
String str = NumberFormat.getInstance().format(d);return str;3.3字符串資源文件:strings.xml 在一個Android工程中,我們可能會使用到大量的字符串作為提示信息。這些字符串都可以作為字符串資源聲明在配置文件中,從而實現程序的可配置性。
在代碼中我們使用Context.getString()方法,通過傳遞資源ID參數來得到該字符串,也可以在其他資源文件中引用字符串資源,引用格式為:”@string/字符串資源名稱。
本程序所引用的strings.xml內容為:
它包含了組成應用程序的每一個組件(活動、服務、內容提供器和廣播接收器)的節點,并使用Intent過濾器和權限來確定這些組件之間以及這些組件和其他應用程序是如何交互的。
因本程序使用了2個Activity,故對AndroidManifest.xml有一定的修改,內容如下:
package=“com.halcyon” android:versionCode=“1” android:versionName=“1.0”> android:label=“@string/app_name”>
四、程序功能測試及截圖 4.1工程項目目錄
4.2程序運行界面:
4.3未填身高提示:
4.4計算示例:
五、課程設計(實訓)總結
通過本次實訓:
1)練習、鞏固了所學Java理論知識,提示了編程技巧;
2)體驗到利用網絡查找文檔、解決問題的便利;
3)有幸了解到Android開發平臺已及Android程序設計思想與方法;
4)開拓了視野,了解到計算機應用的廣泛性,為用計算機解決實際問題打下了基礎。
第二篇:Android實訓報告
時間過得飛快,一週的實訓馬上就要結束了。在這次實訓中我不僅學習了相關的專業知識,而且讓我對Android系統有了一個更加深入的瞭解,它也是我們專業的一個新的方向並且發展很迅速,為了今後的發展我們還需不斷努力學習!我國的信息產業還很落後,隨著社會的發展及國家的支持,手機上網必然是社會發展的趨勢,到時候手機上網將無處不在!我對Android系統的瞭解只停留在應用的層次上,對於更深層次的瞭解是很少的,通過這次實訓讓我對Android系統有了一個更深層次的瞭解,同時它也使我意識到無論朝哪個方向發展,主要還是得扎實、深刻的學習,同時也得不斷努力探索。
IT業的發展速度一直都是相當驚人的,不想被社會淘汰,我們就必須不斷的學習,現在的社會不再是一勞永逸,其它行業也是如此,我們必須不斷的拿知識來武裝自己,不然被淘汰那是肯定的!現在就業難的原因其實在於競爭的加劇,為了在競爭中取得成功,我們必須時時刻刻刻學習!
在Android編程過程中鞏固熟悉了Java的編程。由於Android應用程序的開發離不開Java的支持,所以基礎的Java知識是必須的。Android系統是基於Linux的手機操作系統平臺,要深入學習Android,不僅僅是有Java和Android應用開發,必須要具備Linux,C/C++高級編程才能深入的涉及Android Framework和Android內核開發。成為Android開發的高素質人才。所以,在後續對Android的學習中可能會看一些較底層的書籍。
由於這次實訓時間較短,對於Android應用程序的高級編程學的很少,是這次實訓中的不足。要想開發一些好的應用程序,還需要更多的知識支持。在實訓時,遇到了很多平時沒有遇到或者沒有特別關注的問題。這些問題只有自己在實際開發中才能體會到並且解決。
通過對java以及Android的學習,讓我又學會了一門編程語言,這對於我以後的學習工作都會有很大的幫助。回顧以前所走的路,太多的是無奈和迷茫,這次實訓就像是我人生道路上的航標,為我指明了前進的方向,使我對自己的前途充滿了信心,同時也知道了自己的前進方向。
第三篇:Android 實訓總結
Android實訓總結
——XXXX 三周的Android 實訓,已接近尾聲。在這短暫的三周之內,有成功、有失敗;有喜悅、有辛酸。在實訓老師的帶領下,我學會了很多。我們小組在實訓老師的協助下最終成功的完成實訓項目。
實訓前二周,由于我在java基礎方面的知識比較薄弱,學習重點放在了java基礎學習上,兼顧android學習。Java基礎學習: 內容:
(1)1.bean-實體類分析。2.功能分析。3.語義模型、關系模型、界面模型、流程圖。4.代碼分析、DAO接口實現。
(2)完成老師每日給的java 基礎作業,達到復習的目的。每日老師給的練習都有針對性,認真的完成練習,很好的達到了復習java基礎的目的。成果: 能針對一個簡單 java 或Android 項目,(1)分析出對象、實體類,元數據(2)功能分析 并畫出對應的功能界面
(3)數據庫分析: 作出語義模型、關系模型、界面模型、流程圖(4)進行代碼分析,并實現DAO。
獨立完成本次項目的代碼框架、DAO接口以及DAO實現.Java基礎作業
Android學習: 內容:
(1).以新聞客服端為例,講解了android開發的一個典型流程。
(2).android 如何調試 如何使用log類inf(i)、debug(d)、error---logcat
(3).android需要整個應用范圍訪問某類數據(session--user)
Application 的使用 A,靜態變量(單例模式)
B,復寫android Application app = getApplication()app.setxxx()appsetxxx()4.MVC 編輯表單和添加表單公用
(5).android五大布局【LinearLayout、FrameLayout、AbsoulteLayoutRelativeLayout和TableLayout】 主要講解了LinearLayout、FrameLayout,LinearLayout---權重Layout_weight、Layout_grayout(6)Intent 頁面的跳轉,值傳遞,獲取上下文。
(7)數據庫操作【以新聞客服端--Category 新聞類 為例】:
1.創建數據庫和表,進行數據初始化
2.對表的 增刪改查 操作 3.游標Curser 的使用。
(6)項目開發:熟悉項目開發流程,能獨立完成簡單的項目開發。
成果:
練習實現簡單的頁面布局,獨立完成新聞客服端的開發流程---在原有的基礎上擴展業務。
最后一周,項目開發 我們小組抽取的項目是----------個人健康衛士
個人獨立完成的模塊:
1、代碼框架
2、實體類分析、父類方法重寫、構造方法。
3、DAO 接口實現,提供數據。
單元測試,對所有DAO 接口,方法進行測試并編譯通過。
4、登錄、注冊實現。
異常處理:
A、登錄提交時,用戶名、密碼不能為空,否則不與提交。
數據庫返回登錄信息,處理登錄成功與否的異常。B、注冊提交時,檢查注冊用戶名,密碼不能為空,密碼與確認密碼要相同,否則不與提交注冊。
項目完成總結心得體會。
1.個人:
在項目剛啟動時,我只在java 方面比較擅長,做的模塊都是涉及java基礎方面的知識。對UI 方面缺乏信心,但隨著項目的推進,對UI 方面見的多了解的多了,也能獨立完成UI方面的模塊。在這次項目中獨立完成登錄,注冊模塊。
對于每一個項目開發,都需端正態度,量力而行,發揮自己的長處,這樣不僅有利于促進團隊項目開發的進度,還有利于把自己代入這個項目。當自己融入這個項目時,就能多思考。并在不影響項目開發進度的前提下,思考這里為什么要這樣做,這樣做有什么用處。這樣是一個自我學習的過程,這里本來不會做,但是經過這個項目或這個模塊后,這里也會做了,把不會的變成會的,把別人的知識變成自己的。2.團隊合作:
項目啟動時,因為這個項目主要是UI 項目,而我在這方面基礎知識比較差,主要負責了涉及java方面的模塊ODA實現。在項目分析時,提的建議較多與項目組長之間發生摩擦。在項目老師的協助下,確定項目分析,確定分工模塊,最終較為成功的完成了我們組的項目。
當一個團隊合作時,并不是遇到的每個團隊,團隊成員都令你滿意、每個團隊都可以融洽相處。這個團隊之所以形成,主要目的為了成功完成這個項目。進入團隊先要明白進入團隊的目的,這個團隊成立的目的。明白了這兩點,許多在團隊中遇到的問題都可以避開或很好的解決。所有成員都圍繞如何能更好更完善的完成項目為主。當然在遇到必然可能影響到項目開發進度的問題時,還需及時解決。
3、項目開發
在這次項目中,本著利用自己擅長的部分,加工加點的完成了DAO接口實現模塊并實現所有的單元測試。為項目UI 后續進度提供了較為完善的后臺數據、接口服務。每個項目開發的過程,都需實事求是、踏實做事。不為面子,虛報自己的能力,能做什么能做多少、都要根據自己的職業能力來下定論。遇到技術問題,自己能獨立解決就獨立解決,不能就及時向他人求教或自己查找資料自學。在項目開發中若有自己比較好的意見(先自己確定以目前技術是實時可行的、對項目開發或功能實現有利的意見),要向項目管理和項目其他隊員提出,看是否采納。
第四篇:android實訓心得(推薦)
項目總結
時間過的好快,為期三個月的實訓生活即將結束了,每一次的實訓我們都受益匪淺,我們學到的不僅僅是課內還有課外,實訓讓我們的課內知識得到了鞏固,專業知識、編程水平都有很大的提高,我們非常感謝這次實訓。
剛開始二周的高強度的課程安排讓我們受益匪淺;接下來的項目實訓又讓我們可以鞏固了課程。這讓我覺得實習生活充實而有意義。
樂淘購物項目和android優化大師,我更好的學習了UI的設計,如何使界面漂亮,美觀,鞏固了listview,gridview,的使用,學會了動畫進入界面的,和會移動的畫廊等等。在這兩個項目中,除了讓我明白工作中需要能力,素質,知識之外,更重要的是學會了如何去完成一個任務,懂得了享受工作。當遇到問題,冷靜,想辦法一點一點的排除障礙,到最后獲取成功,一種自信心由然而生,這就是工作的樂趣。有時候也需要虛心請教,從別人的身上真得能學習到不自己沒有的東西,每一次的挫折只能使我更接近成功。
音樂播放器項目,我們是七個人組成小組完成的,由組長帶領我們,分配任務,每個人,都發揮自己的長處,更好地去完成任務。對于團隊開發來說,團結一致使我深有體會。團隊的合作注重溝通和信任,不能不屑于做小事,永遠都要保持親和誠信,把專業理論運用到具體實踐中,不僅加深我對理論的掌握和運用,還讓我擁有了一次又一次難忘的開發經歷,這是也是實訓最大的收獲。
這次實訓對于我以后學習、找工作也真是受益菲淺,在這3個月中讓我初步從理性回到感性的重新認識,也讓我初步的認識這個社會,對于以后做人所應把握的方向也有所啟發!相信這些寶貴的經驗會成為我今后成功的重要的基石。
在此,我非常感謝指導老師和同學對我的幫助。
第五篇:android實訓總結
Android實訓總結
黑龍江農業工程職業學院 2011年11月26日星期六
Android實訓總結
經過了將近兩個月的學習,我們的android實訓課也馬上接近了尾聲。在這階段實訓中,我學到了很多,在專業課方面的進展也很大。由于我們剛剛結束了java課程,馬上開了android實訓課,而android和java之間又有很大的聯系,所以,我們學習android也比較容易入門。最終得到的成效也很好。下面,我針對這一陣的學習進行一下總結:
一、android基礎知識:
1.環境的配置:
(1)配置Java程序開發環境
(2)安裝并漢化Eclipse(JDK)
(3)Android SDK的安裝
(4)ADT的安裝及配置
(5)Android模擬器的配置
2.第一個簡單的Android程序(HELLO ANDROID):
(1)創建一個Android應用程序:
打開eclipse開發工具——文件——新建——項目——android——android project——下一步
(2)應用程序編寫:
完成程序資源的設置
完成界面布局的設置
完成程序的事件處理
完成程序的總體配置
應用程序測試
部署應用程序到Android手機(對應用程序進行打包)
3、控件:
在Android學習中,每一個應用都需要一些空間,在這一個月的學習當中,我們也接觸了很多的控件:
(1)TextView:用來顯示文本標簽的控件
(2)ListView:用來顯示一個列表的控件
(3)Toast:是Android提供的“快顯訊息”類
(4)EditText:編輯框,用于輸入信息
(5)RadioGroup、RadioButton:單項選擇
(6)CheckBox:多項選擇
(7)Spinner:下拉菜單
(8)AutoCompleteTextView:自動提示
(9)DataPicker、TimePicker:時間和日期事件
(10)Button:按鈕
通過這些控件,使得我們在編輯程序的時候能夠很完美的顯示在手機上,使之成為一個真正的應用。