第一篇:Android實(shí)習(xí)總結(jié)報(bào)告
實(shí)習(xí)時(shí)間:學(xué)院:專業(yè)名稱:學(xué)號:姓名:指導(dǎo)老師:實(shí)習(xí)地點(diǎn):
Xxxxxx大學(xué)
專業(yè)實(shí)習(xí)報(bào)告
——201X.XX.XX
XXXXXXXXXXX學(xué)院 計(jì)算機(jī)通信
信息技術(shù)有限公司 201X.XX.X XXXXXXXXXX XXXX XXXX XXXXXXXX
一、實(shí)訓(xùn)地點(diǎn)
XXXXXXXX信息技術(shù)有限公司是一家隸屬于XXXXXXXX集團(tuán)主要從事軟件開發(fā)、技術(shù)咨詢與服務(wù)、IT教育投資、大學(xué)生實(shí)習(xí)實(shí)訓(xùn)等業(yè)務(wù)的民營科技型企業(yè)。
二、實(shí)訓(xùn)目的
到實(shí)際生產(chǎn)中的種種Android
Android現(xiàn)對androidAndroid
Android
android實(shí)習(xí)可以讓我們與時(shí)代最目的:
1、培養(yǎng)學(xué)生運(yùn)用所學(xué)課程Java語言程序設(shè)計(jì)的理論知識和技能,分析解決計(jì)算機(jī)實(shí)際應(yīng)用中的問題的能力。
培養(yǎng)學(xué)生在Java語言程序設(shè)計(jì)的基礎(chǔ)上,開發(fā)Android應(yīng)用程序的思想和方法。培養(yǎng)學(xué)生調(diào)查研究、查閱技術(shù)文獻(xiàn)、資料、手冊以及編寫技術(shù)文獻(xiàn)的能力。通過課程設(shè)計(jì),要求學(xué)生在指導(dǎo)教師的指導(dǎo)下,獨(dú)立完成課程設(shè)計(jì)的全部內(nèi)容 包括:
1、確定開發(fā)的程序,收集和調(diào)查有關(guān)技術(shù)資料。
2、按軟件工程步驟進(jìn)行程序設(shè)計(jì)。
3、對完成的程序進(jìn)行測試和完善。
4、完成課程設(shè)計(jì)報(bào)告。
三、實(shí)訓(xùn)內(nèi)容
學(xué)習(xí)實(shí)訓(xùn)的內(nèi)容主要包括如下:
? 開發(fā)環(huán)境:了解了android的起源與發(fā)展,學(xué)習(xí)安裝 Eclipse 插件(ADT)學(xué)習(xí)AndroidSDK包含了開發(fā)Android應(yīng)用所依賴的jar文件、運(yùn)行環(huán)境及相關(guān)工具
? Android項(xiàng)目結(jié)構(gòu):src/ java原代碼存放目錄 gen/ 自動生成目錄 gen 目錄中存放所有由Android開發(fā)工具自動生成的文件。目錄中最重要的就是R.java文件。這個(gè)文件由Android開發(fā)工具自動產(chǎn)生的。res/ 資源(Resource)目錄 在這個(gè)目錄中我們可以存放應(yīng)用使用到的各種資源,如xml界面文件,圖片或數(shù)據(jù)。assets資源目錄Android除了提供/res目錄存放資源文件外,在/assets目錄也可以存放資源文件。AndroidManifest.xml 項(xiàng)目清單文件。
? 基礎(chǔ)開發(fā)
一、1.Activity:是Android系統(tǒng)中的四大組件之一。2.Activity生命周期:void onCreate(Bundle savedInstanceState)void onStart()void onRestart()void onResume()void onPause()void onStop()void onDestroy()這七個(gè)方法定義了Activity的完整生命周期
二、Intent: Intent對他要完成操作的一種抽象描述,我們可以用intent來啟動一個(gè)activity,發(fā)起一個(gè)broadcast和啟動或綁定一個(gè)service。Intent使應(yīng)用程序代碼在運(yùn)行時(shí)動態(tài)綁定成為可能,這也降低了不同代碼之間的耦合性。Intent最常使用的方法是用來啟動一個(gè)activity。Intent封裝了他要執(zhí)行動作的屬性,這些屬性最常見的是action和data Intent主要有以下四個(gè)重要屬性:dssAction:Action屬性的值為一個(gè)字符串,它代表了系統(tǒng)中已經(jīng)定義了一系列常用的動作。通過setAction()方法或在清單文件AndroidManifest.xml中設(shè)置。默認(rèn)為:DEFAULT。
Data:Data通常是URI格式定義的操作數(shù)據(jù)。例如:tel://。通過setData()方法設(shè)置。
Category:Category屬性用于指定當(dāng)前動作(Action)被執(zhí)行的環(huán)境。通過addCategory()方法或在清單文件AndroidManifest.xml中設(shè)置。默認(rèn)為:CATEGORY_DEFAULT。
Extras:Extras屬性主要用于傳遞目標(biāo)組件所需要的額外的數(shù)據(jù)。通過putExtras()方法設(shè)置。
三、Service四大主鍵職業(yè),服務(wù)一般沒有用戶操作界面,它運(yùn)行于系統(tǒng)中不容易被用戶發(fā)覺,可以使用它開發(fā)如監(jiān)控之類的程序。要完成比較耗時(shí)的任務(wù);不需要用戶界面;
四、BroadcastRecever 生命周期
1.在廣播到達(dá)接收者時(shí)調(diào)用onRecever();方法
2.注冊廣播的幾種方式包括:代碼注冊;項(xiàng)目清單注冊;
五、Handler 1.Handler、Message、MessageQueue和Looper之間的關(guān)系的關(guān)系,Handler的作用: Handler(一個(gè)線程可以有多個(gè)Handler但是只能有一個(gè)Looper), 關(guān)系:向消息對列(MessageQueue封裝在Looper中)發(fā)送消息,Handler在創(chuàng)建時(shí)就會關(guān)聯(lián)以個(gè)Looper默認(rèn)關(guān)聯(lián)當(dāng)前Looper.作用:發(fā)送消息(Handler在主線程啟動一個(gè)子線程,在子線程調(diào)用SendMassager(),發(fā)送到主線程的HandlerMessage()方法);處理消息(調(diào)用HandlerMessage()方法處理)。
? 數(shù)據(jù)存儲
一、Sharepreference:保存應(yīng)用系統(tǒng)的配置信息等的鍵值存儲機(jī)制。(使用鍵值機(jī)制:Bundle ContentValues Map JSONObjecdt)
二、存儲方式 1)是一種鍵值存儲方式,可以持久化存儲變量的值(Sharepreference存儲的值都是基本類型的數(shù)據(jù))存儲的數(shù)據(jù)是以xml文件的形式存在,存儲在/data/data/packagename/shared_prefs目錄中文件存儲
I/O存儲,主要是用于大文件的數(shù)據(jù)的存取,比如視頻、圖片等,該中存儲方式在使用的過程當(dāng)中更新比較困難。
文件存儲的使用:Activity提供了openFileOutput(name,mode)方法和openFileInput()方法,用于讀寫文件數(shù)據(jù).第一個(gè)參數(shù)name中不能包含路徑分隔符“/”
三、Sqlite
自定義一個(gè)數(shù)據(jù)庫的操作類,該類要extends SQLiteOpenHelper類
public class MyHelper extends SQLiteOpenHelper { //類沒有實(shí)例化,是不能用作父類構(gòu)造器的參數(shù),必須聲明為靜態(tài)
private static final String name = “china”;//數(shù)據(jù)庫名稱 private static final int version = 1;//數(shù)據(jù)庫版本 public MyHelper(Context context){ //第三個(gè)參數(shù)CursorFactory指定在執(zhí)行查詢時(shí)獲得一個(gè)游標(biāo)實(shí)例的工廠類,設(shè)置為null,代表使用系統(tǒng)默認(rèn)的工廠類
super(context, name, null, version);} public void onCreate(SQLiteDatabase db){
//該方法是在第一次實(shí)例化數(shù)據(jù)庫操作對象的時(shí)候被調(diào)用
//可以在其中做一些初始化的工作,比如創(chuàng)建數(shù)據(jù)庫表等
} public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){
//在數(shù)據(jù)庫的版本發(fā)生改變的時(shí)候會被調(diào)用
} }
四、ContentProvider 實(shí)現(xiàn)不同應(yīng)用之間數(shù)據(jù)的訪問和共享: 1)通過實(shí)現(xiàn)一個(gè)ContentProvider的抽象借口,將本應(yīng)用的數(shù)據(jù)完全暴露出去,其中數(shù)據(jù)是以表的形式暴露的,暴露數(shù)據(jù)的時(shí)候要提供公共的URI。
2)其它應(yīng)用通過android提供的ContentResolver接口訪問ContentProvider暴露的數(shù)據(jù)。
五、網(wǎng)絡(luò)存儲
一、通過網(wǎng)絡(luò)提供的存儲空間來上傳或者是下載那些存儲在網(wǎng)絡(luò)空間的數(shù)據(jù)信息。
網(wǎng)絡(luò)編程:分為兩種 1)基于Socket的網(wǎng)絡(luò)編程:該網(wǎng)絡(luò)編程使用的協(xié)議主要是TCP和UDP協(xié)議
面試題:TCP和UDP區(qū)別:TCP:面向連接 可靠 延時(shí)長 效率低UDP:面向無連接 不可靠 延時(shí)短 效率高Socket+ServerSocket+TCP(套接字)UDP+DatagrarmSocket+DatagramPackage(數(shù)據(jù)報(bào))2)基于Http的網(wǎng)絡(luò)編程:
? 該網(wǎng)絡(luò)編程使用的協(xié)議是面向Http協(xié)議; ? 該網(wǎng)絡(luò)編程是以xml/json格式的數(shù)據(jù)為載體,來進(jìn)行相互通信數(shù)據(jù); ? Android基于http協(xié)議的網(wǎng)絡(luò)編程,使用的標(biāo)準(zhǔn)接口有兩個(gè):HttpURLConnection以及apatch的接口HttpClient Http協(xié)議通信分為兩種方式:get請求方式和post請求方式
六、Xml格式數(shù)據(jù)解析Json格式數(shù)據(jù)解析:
Dom解析:dom解析一般是把xml文檔轉(zhuǎn)換成一棵文檔節(jié)點(diǎn)樹,存儲在內(nèi)存中
優(yōu)點(diǎn):xml文檔樹在內(nèi)存中完整存儲,可以直接對該文檔樹的數(shù)據(jù)和結(jié)構(gòu)進(jìn)行修改;可以通過解析器去訪問節(jié)點(diǎn)樹上的任何一個(gè)節(jié)點(diǎn);Dom解析的API使用簡單方便。
缺點(diǎn):當(dāng)xml文檔比較大的時(shí)候,該解析方式消耗內(nèi)存資源 Sax解析:
優(yōu)點(diǎn):對內(nèi)存的要求較低,方便解析xml的部分;
缺點(diǎn):當(dāng)xml文檔結(jié)構(gòu)復(fù)雜的采用SAX解析,編碼過程比較復(fù)雜 Pull解析:sdk提供的內(nèi)置解析方式,解析過程類似于sax解析,節(jié)省內(nèi)存資源,而且比sax解析更加簡單方便。
JSON格式數(shù)據(jù):(1)key-value鍵值對象(無序的)(2)數(shù)組(有序的)
用到的內(nèi)容包含:4個(gè)類一個(gè)異常
JSON格式數(shù)據(jù)的解析可以使用Google提供的gson解析工具 問題:xml格式數(shù)據(jù)解析和JSON格式數(shù)據(jù)解析的比較
四、實(shí)訓(xùn)心得:
1通過幾個(gè)月的android實(shí)習(xí),基本掌握了Android應(yīng)用程序開發(fā)的一般流程。對常用控件基本掌握其用法,對其事件的監(jiān)聽方法也基本掌握。學(xué)習(xí)Android不僅是對前沿開發(fā)技術(shù)的了解,也是對編程知識的一次提升。
2通過學(xué)習(xí)Android的控件、布局、Activity、Service等一系列基礎(chǔ)知識,對整個(gè)Android的開發(fā)有了大致的了解。例如: 要的布局(或者控件),在學(xué)習(xí)界面中,我發(fā)現(xiàn)Android為我們提供了很好的類似反射機(jī)制,通過Layout文件夾下的配置文件,可以快速的形成界面,在配置文件可以設(shè)置屬性或者樣式都是很快捷方便。對比較特殊的界面也可以通過處理嵌入到指定的界面,同樣你可以通過java代碼直接創(chuàng)建View進(jìn)行添加,不過這種方式比較復(fù)雜。對一些點(diǎn)擊、選中、按鍵等處理的事件,界面之間的 跳轉(zhuǎn)Intent管理,通過Bundle對數(shù)據(jù)在界面之間進(jìn)行傳輸。
4在手機(jī)交互式通信服務(wù)中,學(xué)習(xí)了Android手機(jī)之間進(jìn)行短信發(fā)送、廣播、對廣播的監(jiān)聽、服務(wù)等,在Service類中沒有context,可以通過Handler來每秒反復(fù)運(yùn)行,自動送出系統(tǒng)廣播信息,同時(shí)在這里我們也知道可以設(shè)計(jì)一個(gè)常用的變量類,設(shè)計(jì)一個(gè)當(dāng)前的CurrentActivity這個(gè)變量進(jìn)行控制,進(jìn)行處理。
在Android編程過程中鞏固熟悉了Java的編程。由于Android應(yīng)用程序的開發(fā)離不開Java的支持,所以基礎(chǔ)的Java知識是必須的。Android系統(tǒng)是基于Linux的手機(jī)操作系統(tǒng)平臺,要深入系統(tǒng)的學(xué)習(xí)Android,不僅僅是有Java和Android應(yīng)用開發(fā),必須要具備Linux,C/C++高級編程才能深入的涉及Android Framework和Android內(nèi)核開發(fā)。成為Android開發(fā)的高素質(zhì)人才。所以,在后續(xù)對Android的學(xué)習(xí)中可能會看一些較底層的書籍。
第二篇:android實(shí)習(xí)
21日
今天是實(shí)習(xí)的第一天,上午聽了專家的講座,并分組和項(xiàng)目立項(xiàng)。下午的時(shí)候,開始了對于Android的學(xué)習(xí),我知道了Android系統(tǒng)的概述和特性,并且了解到了Android的體系結(jié)構(gòu)和常用系統(tǒng)庫,使我對Android有了簡單的了解。
22日
今天開始正式接觸Android軟件的開發(fā),先是要把開發(fā)的環(huán)境配好,工具(Eclipse)安裝好。了解了Android應(yīng)用程序的組成和目錄結(jié)構(gòu)。在下午的時(shí)候,開始學(xué)習(xí)Activity的系統(tǒng)原理和生命周期,并創(chuàng)建了Activity,對了Activity之間的跳轉(zhuǎn)這,我遇到了問題,沒有辦法跳轉(zhuǎn),經(jīng)過仔細(xì)盤查,原來是在跳轉(zhuǎn)到的Activity中沒有創(chuàng)建Intentintent = getIntent().在開發(fā)中要注意每一點(diǎn),出現(xiàn)一點(diǎn)錯(cuò)誤就可能使整個(gè)項(xiàng)目出現(xiàn)錯(cuò)誤。
通過今天的學(xué)習(xí),根據(jù)自己的項(xiàng)目,創(chuàng)建了項(xiàng)目所需要的Activity,并在需要的地方加入了跳轉(zhuǎn)。
23日
今天上午,學(xué)習(xí)了文本框和編輯框:TextView,EditText;還有按鈕Button和ImageButton,發(fā)現(xiàn)TextView是顯示文本的,而EditText是輸入文本的,通過EditText,我自己編寫了一個(gè)計(jì)算器,使用了Intent傳值,實(shí)現(xiàn)了簡單的計(jì)算。在ImageButton中發(fā)現(xiàn)設(shè)置背景圖標(biāo)Background和src的不同,一個(gè)是設(shè)置按鈕背景,一個(gè)是在按鈕上加入了圖片。我在自己項(xiàng)目的主頁使用了ImageButton,使我的主頁更加炫了。
下午的時(shí)候?qū)W習(xí)到了怎么樣去布局,感覺使用RelativeLayout比LinearLayout方便,因?yàn)榭梢噪S便的設(shè)置布局,更加的隨意,LinearLayout就會有很多的限制。不過LinearLayout布局相對簡單,不繁瑣,RelativeLayout布局相對麻煩,容易出現(xiàn)錯(cuò)誤。
通過今天的學(xué)習(xí),在自己的項(xiàng)目中的Activity中根據(jù)需要修改了布局,在我的主頁中我使用了RelativeLayout,這樣可以使我對主頁的布局控制更加簡單,更加隨意,使我可以把主頁布置的更吸引人。而其他的一些次要界面,我使用的是LinearLayout,這樣更加方便。24日
今天學(xué)習(xí)到了Toast提示類,這個(gè)可以在點(diǎn)擊按鈕的時(shí)候顯示提示內(nèi)容,例如 Toast.makeText(first.this,”后退”,Toast.LENGTH_LONG).show();(first是我自己的文件名)。
對于menu類的用法和怎么取創(chuàng)建menu的監(jiān)控方法有了了解,就是在public boolean onOptionsItemSelected(MenuItem item)中加入監(jiān)控方法。在表單中我還用到了RadioButton和CheckBox。在下午的時(shí)候我知道了如何在內(nèi)存卡中存數(shù)據(jù)。RadioButton 和 CheckBox和java web表單中的這些功能幾乎一樣。
在項(xiàng)目中的主界面中的,我加入了menu菜單,在里面加入了兩個(gè)按鍵,一個(gè)是“關(guān)于 ”界面,是介紹項(xiàng)目的開發(fā)者和項(xiàng)目的版本的,還有一個(gè)是“退出”按鍵,并對其加入了Alert對話框,防止使用者不小心退出。而且也對返回鍵加入了對話框,在主界面中的按鈕加入了Toast提示,提示的時(shí)間是SHORT,不是LONG,這樣可以提醒使用者按下的是什么按鍵。
25日
今天老師講解了圖形框架,讓我知道了如何去使用Canvas類,Paint類。并且學(xué)會了如何繪制自定義UI、控件。
在下午的時(shí)候,學(xué)習(xí)了繪制文字,圖形和圖像,并且自己動手制作了軟件中的一些界面 26日
今天聽了企業(yè)專家講座,然后,老師為我們講解了如何去創(chuàng)建證書和簽名,并且指導(dǎo)我們在即動手去簽名打包,最后告訴我們軟件做的好的會發(fā)布到移動MM上去
27日
今天學(xué)習(xí)到了類似于Java中的Alert對話框,那就是AlertDialog,感覺Android和Java更加相似了,名字都差不多。當(dāng)然,還知道了用Dialog顯示的View是什么樣的。雖然之前我就在自己的項(xiàng)目中用到了對話框,但是這次的學(xué)習(xí)使我對對話框的了解更加深入了,使用更加靈活了。
下午學(xué)習(xí)到的東西非常重要,那就是Spinner,Gallery,TabHost還有ListView類,知道了Gallery可以使多張圖片通過滑動顯示在手機(jī)上。項(xiàng)目的主頁上有一個(gè)圖集,就是使用的Gallery,才使大量的圖片有了更好的操作。TabHost類似于網(wǎng)頁的標(biāo)簽,項(xiàng)目的“英雄”顯
示界面中的“技能介紹”和“出裝”介紹就是使用了TabHost,才可以在一個(gè)頁面上顯示出來。
28日
今天是Android數(shù)據(jù)庫的學(xué)習(xí),今天學(xué)會了如何去創(chuàng)建數(shù)據(jù)表,如何在表中實(shí)現(xiàn)增刪改查。下午的時(shí)候,通過創(chuàng)建ContentProvider來學(xué)習(xí)和了解ContentProvider。
29日
今天主要學(xué)習(xí)廣播,知道了如何發(fā)送廣播,監(jiān)聽廣播,注冊和取消廣播,并且通過廣播監(jiān)聽了手機(jī)接收短信。還學(xué)習(xí)了服務(wù),了解了創(chuàng)建服務(wù),啟動服務(wù),怎么樣綁定服務(wù)和進(jìn)程間通信,明白了服務(wù)的生命周期。
30日
今天是最后一天,有項(xiàng)目答辯,所以項(xiàng)目需要完成,我講我小組的所有的內(nèi)容集合起來,形成一個(gè)完整的項(xiàng)目,并簽名打包
雖然這次培訓(xùn)時(shí)間很短,但是我從中學(xué)到了很多內(nèi)容。我知道了安卓的一些基本知識,并對其有了一定的了解,可以對其進(jìn)行簡單的使用,可以
第三篇:Android實(shí)習(xí)心得
Android實(shí)習(xí)心得
剛開始接觸Android感覺到它很有意思,在界面開發(fā)上和web也可以形成了相通的架構(gòu),更加方便,視覺上也是非常的酷,在前期我通過的大量的Android SDK開發(fā)范例大全中的例子以及Android提供的APIDEMOS進(jìn)行學(xué)習(xí),盡管例子之間的連接比較零散,不過通過這些例子的學(xué)習(xí)我可以學(xué)習(xí)到了很多和以前java上相通的思想。
我在為期半個(gè)月的實(shí)習(xí)中學(xué)到了很多在課堂上根本就學(xué)不到的知識,收益非淺.現(xiàn)在我對這半個(gè)月的實(shí)習(xí)做一個(gè)工作小結(jié)。
1通過半個(gè)月的android實(shí)習(xí),基本掌握了Android應(yīng)用程序開發(fā)的一般流程。對常用控件基本掌握其用法,對其事件的監(jiān)聽方法也基本掌握。學(xué)習(xí)Android不僅是對前沿開發(fā)技術(shù)的了解,也是對編程知識的一次提升。
2通過學(xué)習(xí)Android的控件、布局、Activity、Service等一系列基礎(chǔ)知識,對整個(gè)Android的開發(fā)有了大致的了解。例如: 要的布局(或者控件),在學(xué)習(xí)界面中,我發(fā)現(xiàn)Android為我們提供了很好的類似反射機(jī)制,通過Layout文件夾下的配置文件,可以快速的形成界面,在配置文件可以設(shè)置屬性或者樣式都是很快捷方便。對比較特殊的界面也可以通過處理嵌入到指定的界面,同樣你可以通過java代碼直接創(chuàng)建View進(jìn)行添加,不過這種方式比較復(fù)雜。對一些點(diǎn)擊、選中、按鍵等處理的事件,界面之間的跳轉(zhuǎn)Intent管理,通過Bundle對數(shù)據(jù)在界面之間進(jìn)行傳輸。
4在手機(jī)交互式通信服務(wù)中,學(xué)習(xí)了Android手機(jī)之間進(jìn)行短信發(fā)送、廣播、對廣播的監(jiān)聽、服務(wù)等,在Service類中沒有context,可以通過Handler來每秒反復(fù)運(yùn)行,自動送出系統(tǒng)廣播信息,同時(shí)在這里我們也知道可以設(shè)計(jì)一個(gè)常用的變量類,設(shè)計(jì)一個(gè)當(dāng)前的CurrentActivity這個(gè)變量進(jìn)行控制,進(jìn)行處理。
在Android編程過程中鞏固熟悉了Java的編程。由于Android應(yīng)用程序的開發(fā)離不開Java的支持,所以基礎(chǔ)的Java知識是必須的。Android系統(tǒng)是基于Linux的手機(jī)操作系統(tǒng)平臺,要深入系統(tǒng)的學(xué)習(xí)Android,不僅僅是有Java和Android應(yīng)用開發(fā),必須要具備Linux,C/C++高級編程才能深入的涉及Android Framework和Android內(nèi)核開發(fā)。成為Android開發(fā)的高素質(zhì)人才。所以,在后續(xù)對Android的學(xué)習(xí)中可能會看一些較底層的書籍。
由于這次實(shí)習(xí)時(shí)間較短,對于Android應(yīng)用程序的高級編程講的很少,是這次實(shí)習(xí)中的不足。要想開發(fā)一些好的應(yīng)用程序,還需要更多的知識支持。在做實(shí)習(xí)最后的項(xiàng)目時(shí),遇到了很多平時(shí)沒有遇到或者沒有特別關(guān)注的問題,如常見的Activity忘記注冊,對SD卡存取需要權(quán)限,在寫SQL語句時(shí)細(xì)微的錯(cuò)誤就可能導(dǎo)致程序運(yùn)行錯(cuò)誤。這些問題只有自己在實(shí)際開發(fā)中才能體會到并且解決,并且在解決后可以長時(shí)間的記住。
通過Android的實(shí)習(xí),我們在大四畢業(yè)前,我們又掌握了一項(xiàng)新的前沿的開發(fā)技能,也有了更多的發(fā)展方向,這在以后的找工作的過程中無疑為我們增加了砝碼,也可以成為我們的一項(xiàng)興趣愛好,可以根據(jù)我們自己的需要設(shè)計(jì)一些小的程序。總之,在這次實(shí)習(xí)中,我獲得了很多東西,提高了自己的編程技巧和編程方法,并且認(rèn)識了Android應(yīng)用程序的開發(fā),以及加深了對Java的認(rèn)識。
最后,通過實(shí)習(xí),我收獲了很多東西,特別是編程方面的,這對即將畢業(yè)的我們來說,這次實(shí)習(xí)是一次較為珍貴的充電,
第四篇:android實(shí)習(xí)報(bào)告
實(shí)習(xí)報(bào)告
實(shí)習(xí)目的:
生產(chǎn)實(shí)習(xí)是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)重要的實(shí)踐性教學(xué)活動,其目的是使學(xué)生們進(jìn)一步加深對所學(xué)知識的理解,理論聯(lián)系實(shí)際,鞏固所學(xué)有關(guān)計(jì)算機(jī)基礎(chǔ)理論知識和基本技能,學(xué)習(xí)有關(guān)計(jì)算機(jī)最新技術(shù)方面的應(yīng)用,增強(qiáng)學(xué)生對計(jì)算機(jī)在社會生活,社會生產(chǎn)中應(yīng)用的感性認(rèn)識,深入了解計(jì)算機(jī)在各個(gè)領(lǐng)域中的應(yīng)用狀況,學(xué)生在實(shí)習(xí)的同時(shí),進(jìn)行一定的社會實(shí)踐與調(diào)查活動,對于提高學(xué)生的綜合能力和全面素質(zhì)具有重要意義。
實(shí)習(xí)內(nèi)容:
Android主要有四大組件,分別為:Activity 活動、Service 服務(wù)、Broadcast receivers 廣播接受者、Content Provider 內(nèi)容提供者。還有上激活組件Intent。
1.Activity
Activity就是一個(gè)用戶可以直接接觸并看到的窗口,當(dāng)新建一個(gè)Android Project后可以
看到在工程文件下的src中有一個(gè)已建好的java類FirstActivity,系統(tǒng)也會自動為他配備一個(gè)布局文件main.xml,并在AndroidManifest中對此Activity進(jìn)行注冊。
用戶想要自己創(chuàng)建一個(gè)Activity,首先創(chuàng)建一個(gè)java類繼承自Activity,可以為他配備一個(gè)布局文件用來顯示Activity創(chuàng)建后的布局。最后在主配置文件manifest.xml中對創(chuàng)建的Activity進(jìn)行注冊,這一步是必不可少的,沒有注冊Activity無法運(yùn)行。
在manifest.xml中會有許多的Activity,但系統(tǒng)一次只能運(yùn)行一個(gè)Activity,因此必須修選定一個(gè)最先運(yùn)行的Activity。在注冊Activity是加入
可指定當(dāng)前的Activity為主Activity最先被執(zhí)行。其他Activity可借助激活組件Intent
進(jìn)行啟動。通過Intent還可實(shí)現(xiàn)來了兩個(gè)Activity之間傳遞數(shù)據(jù)
Activity具有生命周期,他有三種狀態(tài):運(yùn)行狀態(tài)、暫停信息和停止?fàn)顟B(tài)。運(yùn)行態(tài)是在屏幕臺前位于當(dāng)前任務(wù)堆棧的頂部,即獲取焦點(diǎn)的Activity。暫停信息是指失去了焦點(diǎn)但對于用戶仍可見,此狀態(tài)下當(dāng)程序處于低內(nèi)存是仍有可能被消除。停止?fàn)顟B(tài)是指完全被另一個(gè)Activity覆蓋,但他仍然保留所有的信息與狀態(tài)。
2.Android圖形設(shè)計(jì)UI
Android UI控件一般寫在布局文件中,此次實(shí)習(xí)所學(xué)控件主要有:TextView,EditText
Button、AlertDialog、RadioButton、CheckBox、Spinner和TableRow等。將這些控件及相應(yīng)的屬性寫在layout下的布局文件中就可在與其綁定的Activity中顯示相應(yīng)的對話框,文本框,按鈕等。
Android的界面布局是為了使控件能夠更友好的呈現(xiàn)在用戶的眼中。主要有:絕對布局Absolutelayout、線形布局LinearLayout、框架布局FramLayout、相對布局RelativeLayout和
表格布局TableLayout。其中框架布局適合于單張圖片的顯示。
3.Service 服務(wù)
Service事實(shí)運(yùn)行在后臺的一段代碼。他與Activity一樣有相似的生命周期,但不同的是他不能自己運(yùn)行,必須通過某一個(gè)Activity或者其他的Context對象來調(diào)用。
Service可通過調(diào)用Context.StartService()啟動,還可以通過ServiceConnection來訪問Service。可以將其他的組件綁定到Service上。
4.數(shù)據(jù)存儲
Activity提供了openFileOutput()方法可以用于把數(shù)據(jù)輸出到文件中,具體的實(shí)現(xiàn)過程與在J2SE環(huán)境中保存數(shù)據(jù)到文件中是一樣的。
openFileOutput()方法的第一參數(shù)用于指定文件名稱,不能包含路徑分隔符“/”,如果文件不存在,Android 會自動創(chuàng)建它。創(chuàng)建的文件保存在/data/data/
/files目錄,如: /data/data/cn.itcast.action/files/itcast.txt,通過點(diǎn)擊Eclipse菜單“Window”-“Show View”-“Other”,在對話窗口中展開android文件夾,選擇下面的File Explorer視圖,然后在File Explorer視圖中展開/data/data/
/files目錄就可以看到該文件。
openFileOutput()方法的第二參數(shù)用于指定操作模式,有四種模式android有一套自己的安全模型,當(dāng)應(yīng)用程序(.apk)在安裝時(shí)系統(tǒng)就會分配給他一個(gè)userid,當(dāng)該應(yīng)用要去訪問其他資源比如文件的時(shí)候,就需要userid匹配。默認(rèn)情況下,任何應(yīng)用創(chuàng)建的文件,sharedpreferences,數(shù)據(jù)庫都應(yīng)該是私有的(位于/data/data/
/files),其他程序無法訪問。除非在創(chuàng)建時(shí)指定了Context.MODE_WORLD_READABLE或者Context.MODE_WORLD_WRITEABLE,只有這樣其他程序才能正確訪問。
實(shí)習(xí)流程:
2月18——2月27日,老師對于ANDROID開發(fā)進(jìn)行了詳細(xì)的講解,其內(nèi)容包括:ANDROID 的背景介紹,發(fā)展過程,自身的優(yōu)勢與不足.Android的控件、布局、Activity、Service等一系列基礎(chǔ)知識,對整個(gè)Android的開發(fā)有了大致的了解
2月28日——3月2日: 學(xué)生自己開發(fā)ANDROID 3GABS項(xiàng)目,老師答疑及驗(yàn)收
實(shí)習(xí)心得:
時(shí)間過的飛快,半個(gè)月的實(shí)習(xí)就要結(jié)束了,在這次實(shí)習(xí)中我們不僅學(xué)習(xí)了相關(guān)的專業(yè)知識而且讓我對Android系統(tǒng)又有了一個(gè)更加深入的了解,它也是我們計(jì)算機(jī)專業(yè)的一個(gè)新的方向并且發(fā)展很迅速,為了今后的發(fā)展我們還需不斷努力學(xué)習(xí)!我國的信息產(chǎn)業(yè)還很落后,隨著社會的發(fā)展和國家的支持,手機(jī)上網(wǎng)是社會發(fā)展的趨勢,到時(shí)候手機(jī)上網(wǎng)將無處不在!之前我對Android系統(tǒng)的了解之停留在應(yīng)用的層次上,對于更深層次的了解是很少的,通過這次實(shí)習(xí),讓我對Android系統(tǒng)有了一個(gè)更深層次的了解,同時(shí)它頁使我意識到無論朝哪個(gè)方向發(fā)展,主要還是要扎實(shí)深刻地學(xué)習(xí),同時(shí)也得不斷努力探索!
IT業(yè)發(fā)展速度一直都是相當(dāng)驚人的,不想被社會淘汰,我們就得必須不斷地學(xué)習(xí),現(xiàn)在的社會不再是一勞永逸,其他行業(yè)也是如此,我們必須不斷地拿知識來武裝自己,不然被淘汰那是肯定的!現(xiàn)在就業(yè)難原因其實(shí)在于競爭的家具,為了在競爭中得到成功,我們必須時(shí)時(shí)刻刻學(xué)習(xí),還學(xué)到了很多做人做事的道理,不僅懂得了要想在計(jì)算機(jī)這一行立足必須具備扎實(shí)的技術(shù)理論知識,還必須學(xué)會與人溝通,合作的能力,同時(shí)更懂得了嘗試的重要性,很多事情不是聽說是困難的它就是困難的,只有親自去做親自去體會才知道,其實(shí)它并沒有那么困難,這就是實(shí)踐的重要性!無論做什么事情都必須要堅(jiān)持,只有堅(jiān)持下去,才會成功!事在人為,就怕不做!我們不能怕失敗,關(guān)鍵是要從失敗中總結(jié)經(jīng)驗(yàn),帶著勇氣,帶著自信,堅(jiān)持不懈,踏踏實(shí)實(shí)。這一次的實(shí)習(xí)是短暫的,但我收獲良多。回顧以前所走過的路,太多的無奈和迷茫,這次實(shí)習(xí)就像是我人生道路上的航標(biāo),為我指明了前景的方向,是我對自己的前途充滿了信心,我不僅知道了在人生的岔道口更適合朝哪個(gè)方向前進(jìn)!更知道了在今后的道路上怎么去武裝自己!
實(shí)習(xí)結(jié)果:
第五篇:《Android應(yīng)用開發(fā)》個(gè)人總結(jié)報(bào)告
《Android應(yīng)用開發(fā)》個(gè)人總結(jié)報(bào)告
剛開始接觸Android感覺到它很有意思,在界面開發(fā)上和web也可以形成了相通的架構(gòu),更加方便,視覺上也是非常的酷,在前期我通過的大量的Android SDK開發(fā)范例大全中的例子以及Android提供的APIDEMOS進(jìn)行學(xué)習(xí),盡管例子之間的連接比較零散,不過通過這些例子的學(xué)習(xí)我可以學(xué)習(xí)到了很多和以前java上相通的思想,因?yàn)锳ndroid在現(xiàn)在也是全新的技術(shù)和框架,在其中我也學(xué)到了如何用單例模式、工廠模式等常用的設(shè)計(jì)模式進(jìn)行學(xué)習(xí),通過API進(jìn)行開發(fā)客戶端,對Request發(fā)送,Response處理中通過比較方便的JSON對象傳輸,以及對XML、JSON、圖片、業(yè)務(wù)等下載處理,對API接口調(diào)用等問題處理。
首先在界面上,我們同樣可以通過不同布局進(jìn)行設(shè)計(jì)非常酷的界面,這些界面可以通過include進(jìn)行引入,和jsp、html也有相通的地方,同樣在android上可以用到自定義的樣式這和css也有比較相通的地方,我們可以通過一些公用的方法寫個(gè)BaseActivity這個(gè)基類,通過繼承方式比較不錯(cuò)的實(shí)現(xiàn)了Activity的界面,因?yàn)檫@樣你可以Header(頭部)和Footer(尾部)進(jìn)行處理一些觸發(fā)事件或者特效等。布局模式以相對模式為主,線線布局模式可以在比較簡單的include進(jìn)行完成,最重要的一點(diǎn)就是:我們可以自己通過重寫方法或者通過實(shí)現(xiàn)View或者Layout等類進(jìn)行擴(kuò)充項(xiàng)目需
要的布局(或者控件),在學(xué)習(xí)界面中,我發(fā)現(xiàn)Android為我們提供了很好的類似反射機(jī)制,通過Layout文件夾下的配置文件,可以快速的形成界面,在配置文件可以設(shè)置屬性或者樣式都是很快捷方便。對比較特殊的界面也可以通過處理嵌入到指定的界面,同樣你可以通過java代碼直接創(chuàng)建View進(jìn)行添加,不過這種方式比較復(fù)雜。對一些點(diǎn)擊、選中、按鍵等處理的事件,界面之間的 跳轉(zhuǎn)Intent管理,通過Bundle對數(shù)據(jù)在界面之間進(jìn)行傳輸。
Android的界面顯示同樣也是基于控件的。通常是用View(包括ViewGroup)控件配上XML的樣式來做的。具體細(xì)節(jié)不想說了,可以參考 Samples里的ApiDemos/View,和View的Doc,以及Implementing a UI這篇Doc。其他還有很多,感覺算是SDK講述的最多的內(nèi)容。從控件的使用上,和網(wǎng)頁的設(shè)計(jì)類似,盡量用parent_width之類的抽象長度,用Theme來做風(fēng)格,抽取所有的字串等信息做本地化設(shè)計(jì)。相關(guān)內(nèi)容參看Implementing a UI就好。
一類比較重要的是數(shù)據(jù)綁定控件。如果做過ASP.Net會從中看到很多類似的地方。一個(gè)支持?jǐn)?shù)據(jù)綁定的控件,比如ListView。可以通過一個(gè) ListAdapter綁定到一個(gè)數(shù)據(jù)源上。ListAdapter是一個(gè)抽象類,主要的實(shí)現(xiàn)類包括SimpleAdapter和 SimpleCursorAdapter。前者是綁定一個(gè)靜態(tài)的Array,后者是綁定一個(gè)動態(tài)的Cursor。Cursor前面說過,是一個(gè)指向數(shù)據(jù)源的隨機(jī)迭代器,將View綁定到Cursor通常要設(shè)置這樣幾個(gè)參數(shù)。一個(gè)是每一行的樣式,稱作Row Layout,其實(shí)就是一個(gè)普通的Layout的XML文件。還有就是一個(gè)列和現(xiàn)實(shí)控件的對應(yīng)關(guān)系。那個(gè)控件顯示哪個(gè)列的值,這是需要配置的。為了定制一個(gè)良好的數(shù)據(jù)顯示控件,最簡單你可以定制很PP的Row Layout,復(fù)雜一點(diǎn)就是可以重載綁定控件View,或者是適配器ListAdapter。如果是一個(gè)數(shù)據(jù)顯示密集的應(yīng)用,且你對UI有些追求,這個(gè)工作估計(jì)是必不可少的。
一個(gè)主要用于顯示數(shù)據(jù)內(nèi)容的Activity,可以選擇派生自ListActivity。它提供了一個(gè)具有
ListView 的Layout,還有
simple_list_item_1, simple_list_item_2, two_line_list_item等默認(rèn)的Row Layout,還有一些比較不錯(cuò)的API,和可供響應(yīng)選擇Item的事件。可以滿足你比較基礎(chǔ)的需求。如果你覺得只有一個(gè)ListView的界面太突兀,你可以為這個(gè)ListActivity指定一個(gè)Layout,需要注意的是,你需要提供一個(gè)id為@android:id/list的ListView控件,避免Activity在內(nèi)部偷偷尋找該控件的時(shí)候失敗。
除了這些要求,做好UI還有注意易用性和效率。快捷鍵是一個(gè)比較不錯(cuò)的選擇,在 Activity中調(diào)用setDefaultkeyMode(SHORTCUT_DEFAULT_KEYS),可以開啟快捷鍵模式,然后你可以將菜單綁定到指定快捷鍵上就OK了。個(gè)人覺得Tip也是一個(gè)比較重要的東西,但目前觀察看來,這個(gè)東西只能夠自己提供了。界面的動態(tài)性有時(shí)候是不可避免的,比如說菜單就是一個(gè)需要經(jīng)常根據(jù)光標(biāo)位置提供不同的選項(xiàng)。這個(gè)東西Android很人道的考慮到了,你可以參看NodeList這個(gè)Sample。它采取的應(yīng)該是一個(gè)靜態(tài)模擬動態(tài)的方式,這樣有助于提高速度。你也可以利用ViewInflate,動態(tài)從一個(gè)XML創(chuàng)建一個(gè)控件。成本據(jù)Doc說很大,不到萬不得已不要使