第一篇:安卓實(shí)習(xí)周記
生產(chǎn)實(shí)習(xí)周記
激動(dòng)人心的時(shí)刻終于到了,為期三周的生產(chǎn)實(shí)習(xí)終于開始了。在這寶貴的三周時(shí)間里,我們會(huì)將理論付諸實(shí)踐,完成老師安排的任務(wù)的同時(shí),學(xué)習(xí)新的知識(shí)。
第一周實(shí)驗(yàn)室三位老師啟動(dòng)了二手書租賃系統(tǒng)這個(gè)項(xiàng)目,我們一起討論了二手書租賃系統(tǒng)的需求。本項(xiàng)目后臺(tái)采用.net mvc4+ms sqlserver2008,分為后臺(tái)管理和前臺(tái)展示,前臺(tái)分為平臺(tái)端和手機(jī)端。手機(jī)端需要有展示圖書和預(yù)訂等功能,我們android組的同學(xué)負(fù)責(zé)手機(jī)端的ui設(shè)計(jì)和功能實(shí)現(xiàn)。
由于首次接觸android開發(fā),接下來我們開始各自學(xué)習(xí)android編程基礎(chǔ)。自己在圖書館借了一些有關(guān)android開發(fā)的圖書,還在網(wǎng)上下了許多android開發(fā)視頻。全心投入android技術(shù)的學(xué)習(xí)之中。
初識(shí)activity,編寫第一個(gè)android程序。學(xué)習(xí)的內(nèi)容主要有:android 基本組件(activity、intent、broadcast receiver、adapter、service)。activity實(shí)際上就是表示的是一個(gè)人機(jī)的交互程序,用于存放各個(gè)顯示控件,也是 android的基本組成,所有的android項(xiàng)目都使用java語言進(jìn)行開發(fā),所以每一個(gè)繼承了android.app.activity的java類都將成為一個(gè)activity程序,而一個(gè)android項(xiàng)目將由多個(gè)activity程序所組成,而所有的顯示組件都必須放在activity上才可以進(jìn)行顯示。activity類的常用方法。android項(xiàng)目中的文件夾作用。android項(xiàng)目中的文件作用。android項(xiàng)目由若干個(gè)activity程序所組成,每一個(gè)activity都是一個(gè)java類;一個(gè)android項(xiàng)目中所有用到的資源都保存在res文件夾之中;android中的組件需要在布局管理器中進(jìn)行配置,之后在activity程序中可以使用findviewbyid()方法查找并進(jìn)行控制;在布局管理器中定義的每一個(gè)組件都有其對(duì)應(yīng)的操作類,用戶可以直接實(shí)例化這些類的對(duì)象進(jìn)行組件的定義顯示;標(biāo)準(zhǔn)的android項(xiàng)目,所有的文字顯示信息應(yīng)該保存在strings.xml文件中保存。android中的基本控件的學(xué)習(xí)。掌握文本顯示組件的配置及使用;掌握文本顯示組件的繼承結(jié);掌握文本顯示組件的基本屬性及操作方法。textview組件的主要功能是用于顯示文本,實(shí)際上這種控件主要就是提供了一個(gè)標(biāo)簽的顯示操作。
(normal)粗體(bold)斜體(italic)。android中設(shè)置文字大小的定義類型。在android中所有的組件可以設(shè)置大小,但是在設(shè)置大小的時(shí)候需要指定其單位,這些單位如下:px(pixels):像素; dip(device independent pixels):依賴于設(shè)備的像素;sp(scaled pixels —— best for text size):帶比例的像素; pt(points):點(diǎn);in(inches):英尺;mm(millimeters):毫米。使用樣式表文件,在android中為了方便美工對(duì)組件進(jìn)行修飾,也可以使用一些樣
式文件對(duì)組件顯示進(jìn)行控制,用戶只需要按照如下的xml文件格式即可定義組件的顯示樣式。textview作為文本組件主要的功能是顯示文本數(shù)據(jù);所有的組件可以直接通過一個(gè)樣式表文件進(jìn)行屬性的配置。
第二周本周張棟老師又啟動(dòng)了一個(gè)新的項(xiàng)目——電子名片管理系統(tǒng)。該項(xiàng)目包括三個(gè)部分:個(gè)人app、企業(yè)版app和管理平臺(tái)。該項(xiàng)目的開發(fā)背景是:名片是商務(wù)交往的紐帶。而制作名片的核心目的就是自我展示和業(yè)務(wù)推介,通過名片建立自己的人脈圈。
傳統(tǒng)的紙質(zhì)名片不易傳遞,存儲(chǔ)和管理。
在商務(wù)場合中很多時(shí)候需要給多名客戶分發(fā)名片,而傳統(tǒng)的紙質(zhì)名片需要準(zhǔn)備一定的數(shù)量和一定的時(shí)間進(jìn)行分發(fā)。同時(shí)分發(fā)和接受的名片并不易存儲(chǔ),極易丟失。大量的紙質(zhì)名片很難對(duì)其進(jìn)行管理,例如很難找到某張名片。
為了達(dá)成以下幾個(gè)目標(biāo)決定開發(fā)該應(yīng)用。1.名片交換方便快捷:1對(duì)1名片交換更加方便 2.多人交換一步即成:多人之間的名片交換更加方便,使用應(yīng)用一
鍵可以達(dá)到目的
3.名片信息清晰易得:對(duì)于用戶的信息可以進(jìn)行實(shí)時(shí)的維護(hù),也可
訂制自己的名片信息
4.云人脈圈智能可控:名片信息可同步到云端,保留信息
項(xiàng)目一啟動(dòng),我們就開始進(jìn)行需求分析,然后開始設(shè)計(jì)和制作原型,在大家熬夜奮戰(zhàn)的情況下,我們終于完成了個(gè)人app、企業(yè)app和平臺(tái)的原型制作。
在完成任務(wù)的同時(shí),我還繼續(xù)深入學(xué)習(xí)android技術(shù),各自開始編寫一些簡單的android應(yīng)用程序。實(shí)現(xiàn)簡單的界面布局功能。
學(xué)習(xí)android中各種基本組件的使用
掌握radiogroup類和radiobutton類的使用,單選鈕在開發(fā)中提供了一種多選一的操作模式,也是經(jīng)常見到的一種組件,例如:在選擇文件編碼的時(shí)候只能從多種編碼中選擇一種,或者是選擇性別的時(shí)候只能從“男”或“女”之中選擇一個(gè),而在android中可以使用radiogroup來定義單選鈕組件。radiogroup類的常用操作方法。radiogroup提供的只是一個(gè)單選鈕的容器,只有在此容器之中配置多個(gè)按鈕組件之后才可以使用,而要想設(shè)置單選鈕的內(nèi)容,則需要使用radiobutton類。掌握radiogroup類相當(dāng)于定義了一個(gè)單選鈕的容器;radiobutton類用于定義單選鈕中的內(nèi)容。
掌握checkbox組件的使用。checkbox的主要功能是完成復(fù)選框的操作,在用戶輸入信息的時(shí)候,可以一次性選擇多個(gè)內(nèi)容,例如:用戶在選擇個(gè)人興趣愛好的時(shí)候一定會(huì)存在多個(gè),則此時(shí)就直接使用checkbox即可完成功能。checkbox類的常用方法。通過程序操作復(fù)選框組件。checkbox組件用于實(shí)現(xiàn)復(fù)
選框的功能。掌握下拉列表spinner的使用;可以通過程序配置spinner顯示內(nèi)容;可以通過配置文件配置spinner顯示內(nèi)容。下拉列表框也是一種常見的圖形組件,它可以為用戶提供列表的選則方式,與復(fù)選框或單選鈕相比還可以節(jié)省手機(jī)的屏幕空間,在android中可以使用android.widget.spinner類實(shí)現(xiàn)。spinner類的常用方法。配置列表項(xiàng):在android中,可以直接在main.xml文件中定義“
“android.r.layout.simple_spinner_item”,下面分別在values文件夾之中定義兩個(gè)資源文件,用于保存所需要的下拉列表信息。使用spinner可以完成下拉列表框的顯示功能;下拉列表框的顯示內(nèi)容可以通過配置文件或程序進(jìn)行填充。掌握時(shí)間選擇器的使用;可以通過程序配置顯示的時(shí)間。在android中使用 timepicker(時(shí)間選擇器),可以進(jìn)行時(shí)間的快速調(diào)整。timepicker的常用方法。掌握日期選擇器的配置及使用。與時(shí)間選擇器對(duì)應(yīng)的還有一個(gè)日期選擇器(datepicker),可以完成年、月、日的設(shè)置。datepicker類的常用方法。日期選擇器可以進(jìn)行日期的配置;可以通過設(shè)置配置不同的顯示風(fēng)格。
線型布局管理器的配置;通過activity程序進(jìn)行線型布局。布局管理器分類:在android中一共有以下四種布局管理器:linearlayout:線性布局管理器(默認(rèn)),分為水平和垂直兩種,只能進(jìn)行單行布局;framelayout:所有的組件放在左上角,一個(gè)覆蓋一個(gè);tablelayout:任意行和列的表格布局管理器,其中tablerow代表一行,可以向行中增加組件;relativelayout:相對(duì)布局管理器,更具最近一個(gè)視圖組件,或是頂層父組件來確定下一個(gè)組件的位置。廢除的布局管理器:在android 2.3.3版本之前還存在著一種絕對(duì)布局管理器
(absolutelayout),此布局管理器使用x、y軸坐標(biāo)的形式排列組件。線型布局有兩種排列方式:水平和垂直可以通過linearlayout 類定義線型布局,而布局參數(shù)可以使用linearlayout.layoutparams類完成。framelayout布局(幀布局)就是在屏幕上開辟一個(gè)區(qū)域以填充所有的組件,但是使用framelayout布局會(huì)將所有的組件都放在屏幕的左上角,而且所有的組件可以層疊進(jìn)行顯示??蚣懿季质窃谝粋€(gè)指定的區(qū)域內(nèi)使用組件進(jìn)行填充;可以使用framelayout和 framelayout.layoutparams類手工配置布局。掌握表格布局管理器的基本使用;掌握tablelayout和tablerow的操作關(guān)系;掌握表格布局管理器中常見屬性的作用。tablelayout是采用表格的形式對(duì)控件的布局進(jìn)行管理的,在tablelayout布局管理器之中,要使用tablerow進(jìn)行表格行的控制,之后所有的組件要在tablerow中增加。表格布局管理器使用tablerow控制表格行;表格布局的幾個(gè)屬性:定義伸縮列:android:shrinkcolumns=3設(shè)置不顯示列:
android:collapsecolumns=0,3增加背景圖
片:android:background=@drawable/mldn_logo表格布局也可以使用 activity程序動(dòng)態(tài)生成。掌握相對(duì)布局管理器的主要特點(diǎn)及使用;可以使用activity程序動(dòng)態(tài)增加組件。相對(duì)布局管理器指的是參考某一其他控件進(jìn)行擺放,可以通過控制,將組件擺放在一個(gè)指定參考組件的上、下、左、右等位置,這些可以直接通過各個(gè)組件提供的屬性完成。相對(duì)布局管理器是以一個(gè)組件進(jìn)行定位的參考;使用relativelayout和relativelayout.layoutparams類可以在activity程序中動(dòng)態(tài)配置布局管理器。android事件處理的學(xué)習(xí)。了解事件處理的作用,了解常用的事件及相關(guān)處理接口。android程序的開發(fā)主要是借助于java語言,其事件的處理流程也是參考了java中的事件處理操作,在java之中,如果要想進(jìn)行圖形界面的事件處理則首先必須有一個(gè)事件源,而造成事件源產(chǎn)生可以有多種形式,例如:單擊按鈕或者是修改下拉列表選項(xiàng),之后根據(jù)此事件源找到相應(yīng)的事件處理操作類,對(duì)事件進(jìn)行處理。事件處理的核心在于如下操作:注冊監(jiān)聽程序;根據(jù)指定的事件編寫指定的處理程序;在事件處理類之中完成事件的處理操作。單擊事件、單選按鈕與oncheckedchangelistener、下拉列表框與onitemselectedlistener、監(jiān)聽日期與時(shí)間的改變、焦點(diǎn)事件、長按事件、鍵盤事件、觸摸事件。expandablelistview。
第三周本周開始編寫電子名片管理系統(tǒng)項(xiàng)目規(guī)格說明書。接著又和同學(xué)們一起分析和設(shè)計(jì)數(shù)據(jù)庫。在這期間,我不僅學(xué)會(huì)了分析問題、撰寫文檔的能力,還學(xué)會(huì)了許多以前沒有使用過得軟件。當(dāng)然在確保完成任務(wù)的同時(shí),我還不忘繼續(xù)學(xué)習(xí)android開發(fā)技術(shù)。
本周還學(xué)習(xí)了android提供的數(shù)據(jù)的存儲(chǔ)方式:在android中一共提供了五種數(shù)據(jù)存儲(chǔ):sharedpreferences存儲(chǔ);文件存儲(chǔ);sqlite數(shù)據(jù)庫存儲(chǔ);contentprovider存儲(chǔ);網(wǎng)絡(luò)存儲(chǔ)。sharedpreferences提供了一些基礎(chǔ)的信息保存功能,所有的信息都是按照“key=value”的形式進(jìn)行保存的,但是android.content.sharedpreferences接口所保存的信息只能是一些基本的數(shù)據(jù)類型,例如:字符串、整型、布爾型等。sharedpreferences可以實(shí)現(xiàn)簡單的數(shù)據(jù)存儲(chǔ)功能實(shí)現(xiàn),可以利用super.getsharedpreferences()方法取得實(shí)例。使用sharedpreferences可以方便的完成數(shù)據(jù)的存儲(chǔ)功能,但是其只能保存一些很簡單的數(shù)據(jù),如果想存儲(chǔ)更多類型的數(shù)據(jù),則可以使用文件的存儲(chǔ)操作,如果要想操作文件,則需要activity類的支持。利用io流操作文件,考慮到用戶要自定義保存目錄,以及在“sdcard”上操作,所以本程序不太適合直接使用activity類提供的文件操作方法,用戶可以直接使用最傳統(tǒng)的io流完成。使用io流完成了文件的保存,但是卻存在一個(gè)最大的問題,因?yàn)楝F(xiàn)在文件的路徑采用的是硬編碼的方式設(shè)置,那么就有可能因?yàn)閟dcard不存在而出現(xiàn)錯(cuò)誤,即:最好的做法就是判斷sdcard是否存在,如果存在則保存,如果不存在則提示用 戶“sdcard”不存在,無法保存,而要想完成這個(gè)判斷的功能就必須通過android.os.environment類取得目錄的信息。dom操作:使用文件保存數(shù)據(jù)固然很方便,但是如果現(xiàn)在數(shù)據(jù)較多的話,則管理起來就不方便了,所以在使用文件保存時(shí),也往往會(huì)采用xml文件形式進(jìn)行數(shù)據(jù)的保存,而一旦使用xml操作,那么就肯定需要對(duì)xml文件進(jìn)行解析,而dom解析就是最常用的一種。sax操作:雖然dom操作使用廣泛,但是并不適合于使用dom進(jìn)行大數(shù)據(jù)文件的操作,而這個(gè)時(shí)候就可以使用sax解析方式進(jìn)行xml文件的讀取。使用xmlpull解析:dom和sax在使用上各有特點(diǎn),但是使用起來也都很不方便,而開發(fā)過java ee程序的讀者應(yīng)該很清楚,在日常的工作之中往往會(huì)用多種開源組件(jdom、dom4j)來完成xml解析的操作,但是在android操作系統(tǒng)之中又提供了一種pull解析的方式。在android中如果要完成pull解析處理需要org.xmlpull.v1.xmlpullparserfactory類和org.xmlpull.v1.xmlpullparser接口的支持,xmlpullparserfactory類的主要功能是可以通過里面提供的newpullparser()方法取得一個(gè)xmlpullparser接口的對(duì)象。以上的程序使用了pull解析方式完成了xml文檔的解析操作,但是android中的pull解析方式也可以同樣完成xml文檔的輸出功能,而這個(gè)時(shí)候就可以利用org.xmlpull.v1.xmlserializer接口完成,此接口主要功能是可以通過程序控制xml文件中的元素、屬性、文字的關(guān)系結(jié)構(gòu)。json數(shù)據(jù)解析:json采用完全獨(dú)立于語言平臺(tái)的文本格式(這一點(diǎn)與xml作用類似),使用json可以將對(duì)象中表示的一組數(shù)據(jù)轉(zhuǎn)換為字符串,然后可以在各個(gè)應(yīng)用程序之間傳遞這些字符串,或者在異步系統(tǒng)中進(jìn)行服務(wù)器和客戶端之間的數(shù)據(jù)傳遞。json操作本身有其自己的數(shù)據(jù)格式,這些數(shù)據(jù)格式,用戶可以自己使用字符串拼湊,也可以直接利用json給出的操作類完成,而在android系統(tǒng)之中,json操作所需要的數(shù)據(jù)包已經(jīng)默認(rèn)集成了,所以用戶不再需要任何導(dǎo)包的操作,即可進(jìn)行開發(fā)使用文件存儲(chǔ)可以保存更加豐富的數(shù)據(jù);在android之中可以使用xml的dom和sax解析方式進(jìn)行文件操作;在android之中提供了pull解析用于完成xml解析;json可以進(jìn)行簡便的信息傳送,性能更高;可以將要讀取的文件配置到項(xiàng)目的res文件目錄之中,這樣可以采用resource直接進(jìn)行資源文件的讀取。了解sqlite數(shù)據(jù)庫的基本作用;掌握數(shù)據(jù)庫操作輔助類:sqlitedatabase的使用;可以使用命令操作sqlite數(shù)據(jù)庫;可以完成數(shù)據(jù)庫的crud操作;掌握數(shù)據(jù)庫查詢及cursor接口的使用。sqlite是一個(gè)輕量級(jí)的、嵌入式的、關(guān)系型數(shù)據(jù)庫,是遵守acid的關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng),其主要的是針對(duì)于嵌入式設(shè)備專門設(shè)計(jì)的數(shù)據(jù)庫,由于其本身占用的存儲(chǔ)空間較小,所以目前已經(jīng)在android操作系統(tǒng)之中廣泛的使用著,而且在sqlite數(shù)據(jù)庫之中可以方便的使用sql語句實(shí)現(xiàn)數(shù)據(jù)的增加、修改、刪除、查詢等操作,最新版本的sqlite數(shù)據(jù)庫為sqlite 3。在android系統(tǒng)之中,一個(gè)android.database.sqlite.sqlitedatabase類的實(shí)例都代表了一個(gè)sqlite數(shù)據(jù)庫的操作,通過sqlitedatabase類可以執(zhí)行sql語句,以完成對(duì)數(shù)據(jù)表的增加、修改、刪除、查詢等操作,在此類之中定義了基本的數(shù)據(jù)庫執(zhí)行sql語句的操作方法以及一些操作的模式常量。sqlite數(shù)據(jù)庫是一個(gè)專門用于嵌入式設(shè)備的數(shù)據(jù)庫;sqlite支持sql語句的操作;可以使用sqliteopenhelper類完成數(shù)據(jù)庫的操作;所有的查詢數(shù)據(jù)使用cursor進(jìn)行接收。在android當(dāng)中,每一個(gè)應(yīng)用程序的數(shù)據(jù)都是采用私有的形式進(jìn)行操作的,篇二:安卓記事本實(shí)習(xí)報(bào)告 android記事本的設(shè)計(jì)與實(shí)現(xiàn)
——sqlite數(shù)據(jù)庫的設(shè)計(jì)和操作
學(xué)生姓名: 指導(dǎo)老師:
摘 要: 隨著智能手機(jī)的快速普及,智能手機(jī)操作系統(tǒng)市場風(fēng)生水起。android的最大特點(diǎn)是其開放性體系架構(gòu),不僅具有非常好的開發(fā)、調(diào)試環(huán)境,而且還支持各種可擴(kuò)展的用戶體驗(yàn),包括豐富的圖形組件、多媒體支持功能以及強(qiáng)大的瀏覽器。
本文主要介紹了一款android記事本sqlite數(shù)據(jù)庫模塊的設(shè)計(jì)與實(shí)現(xiàn)。根據(jù)人們?nèi)粘I畹男枰?,該記事本的?nèi)容包括運(yùn)用sqlite封裝好的方法對(duì)數(shù)據(jù)進(jìn)行添加、刪除、修改、更新和密碼進(jìn)入等功能,并且將查詢到的數(shù)據(jù)傳遞給activity,具有一定的實(shí)用性。關(guān)鍵詞: 記事本;android;手勢密碼;sqlite;activity design and implementation of android notepad — design and operation of the sqlite database student name: advisor: this paper describes the design and implementation of an android notepad sqlite database module.according to the needs of daily life, including the contents of the notepad good way to use sqlite package data to add, delete, modify, update and password to access other functions, and query the data is passed to the activity, has a certain practicality.keywords notepad;android;gesture password;sqlite;activity 目錄
目錄.....................................................................................................................................................................3 1.引言...............................................................................................................................................................4 1.1 項(xiàng)目背景..............................................................................................................................................4 1.2 項(xiàng)目意義..............................................................................................................................................4 1.3 系統(tǒng)可行性分析..................................................................................................................................5 1.4 系統(tǒng)主要任務(wù)....................................................................................................................................5 2.系統(tǒng)方案設(shè)計(jì).................................................................................................................................................6 2.1 搭建android開發(fā)平臺(tái).....................................................................................................................6 2.2 sqlite數(shù)據(jù)庫簡介............................................................................................................................7 2.3 總體方案設(shè)計(jì)...................................................................................................................................10 3.系統(tǒng)軟件開發(fā)環(huán)境.......................................................................................................................................10 3.1 windows開發(fā)環(huán)境...........................................................................................................................10 3.2 java集成開發(fā)環(huán)境eclipse...........................................................................................................11 3.3 adt plugin for eclipse...............................................................................................................11 4.程序設(shè)計(jì).......................................................................................................................................................12 4.1 程序詳細(xì)設(shè)計(jì)...................................................................................................................................12 4.2 程序運(yùn)行及效果截圖.......................................................................................................................13 4.3 對(duì)sqlite數(shù)據(jù)庫增刪改查代碼實(shí)現(xiàn).............................................................................................18 5.工作總結(jié)與展望...........................................................................................................................................23 參考文獻(xiàn)...........................................................................................................................................................24 1.引言
1.1 項(xiàng)目背景 window操作系統(tǒng)的誕生成就了微軟帝國,同時(shí)也造就了pc時(shí)代的繁榮,然而如今,以android和iphone手機(jī)為代表的智能移動(dòng)設(shè)備的發(fā)明與互聯(lián)網(wǎng)云技術(shù)的興起卻敲響了pc時(shí)代的喪鐘!這也預(yù)示著移動(dòng)互聯(lián)網(wǎng)時(shí)代(3g)已經(jīng)來臨。
在這個(gè)互聯(lián)網(wǎng)繁榮的時(shí)代,有一顆超新星,以它獨(dú)特性能優(yōu)勢與人性化的ui設(shè)計(jì)使它在短短的幾年迅速的占領(lǐng)了智能移動(dòng)設(shè)備的市場份額,它就是google的android!這也意味著google在移動(dòng)互聯(lián)網(wǎng)時(shí)代開始搶跑并領(lǐng)跑。
通過調(diào)查顯示,大部分消費(fèi)者都會(huì)使用手機(jī)記事本功能。隨著手機(jī)記事本功能的不斷加強(qiáng)與完善,手機(jī)記事本對(duì)于人們的意義,已不僅僅像一般記事簿一樣簡單記錄,而是向著更個(gè)性化人性化的方向發(fā)展。android[1]系統(tǒng)是開源的,它以迅猛的姿勢已經(jīng)占領(lǐng)了全球一半多的市場。記事本在生活和工作也日益凸顯出它的重要性,它能更好地幫助人們更好地管理自己的工作和生活,極大的方便了人們的生活。因其開源,我們可以在之上開發(fā)安卓記事本軟件,同時(shí)這也符合廣大的市場需求。1.2 項(xiàng)目意義 近幾年來隨著3g技術(shù)成熟和智能手機(jī)的不斷普及,移動(dòng)應(yīng)用的需求與日俱增,移動(dòng)應(yīng)用開發(fā)成為當(dāng)下最熱門的技術(shù)之一。在google和android手機(jī)聯(lián)盟的共同推動(dòng)下,android在眾多移動(dòng)應(yīng)用開發(fā)平臺(tái)中脫穎而出。android是一個(gè)真正意義上的開源智能手機(jī)操作系統(tǒng),該系統(tǒng)一經(jīng)推出立即受到全球移動(dòng)設(shè)備廠商和開發(fā)者的熱捧。
我們都知道,無論是產(chǎn)品還是技術(shù),商業(yè)應(yīng)用都是它最大的發(fā)展動(dòng)力。安卓如此受到廠商與開發(fā)者的青睞,它的前景是一片光明的。國內(nèi)對(duì)于安卓這方面的市場還沒有完全開發(fā)出來。只要我們努力學(xué)習(xí)安卓,對(duì)理想,對(duì)生活都會(huì)有很大的補(bǔ)益。因此,開發(fā)這樣一套很簡單的記事本軟件對(duì)我們來講是一件很有必要的事情,在下面的各章中我們將以開發(fā)安卓記事本軟件為例,談?wù)勂溟_發(fā)過程和所涉及到的問題及解決方法。1.3 系統(tǒng)可行性分析 1.3.1 課題調(diào)研
(1)與實(shí)踐活動(dòng)和相關(guān)的文件和資料由作者本人網(wǎng)絡(luò)查找,以及老師幫助。
(2)具有遇到問題,具有獨(dú)立思考,耐心鉆研,向老師虛心求教的良好態(tài)度。
(3)關(guān)于技術(shù)方面的難題,跟指導(dǎo)老師面談。1.3.2 可行性分析
(1)技術(shù)可行性:本項(xiàng)目僅需要一臺(tái)裝有eclipse及配置好android開發(fā)環(huán)境的計(jì)算機(jī)即可,對(duì)計(jì)算機(jī)本身有一定的要求,它可以使用windows xp及其以上版本,mac os,linux等操作系統(tǒng)。
(2)經(jīng)濟(jì)可行性:由于本軟件開發(fā)只有三個(gè)人,三臺(tái)電腦就行,基本不需要太大的成本.在經(jīng)濟(jì)上完全可行。
(3)操作可行性:界面設(shè)計(jì)時(shí)充分考慮用戶的習(xí)慣以及手機(jī)方面的局限性,程序必須要很簡單;本程序只涉及到開發(fā)環(huán)境配置,安卓組件的熟悉,以及安卓平臺(tái)上的數(shù)據(jù)存儲(chǔ)。并沒有太大的難度,所以,該項(xiàng)目完全有可操作性。1.4 系統(tǒng)主要任務(wù)(1)設(shè)計(jì)實(shí)現(xiàn)”添加新記事”,”編輯內(nèi)容”,”刪除當(dāng)前記事”這三個(gè)主要的功能模塊。(2)分析并解決實(shí)現(xiàn)中的若干技術(shù)問題,像組件的選擇以及保存方式的選擇。(3)進(jìn)行測試并分析結(jié)果。
當(dāng)然記事本的基本功能,建立新文件、修改現(xiàn)有文件、刪除文件、查看已建立文件等功能是首先必須完成的??梢跃帉憙?nèi)容,編輯及刪除,讓記事的方式多樣化。記事本軟件的界面設(shè)計(jì)力求簡潔,給人清爽的感覺,讓圖標(biāo)及按鈕以協(xié)調(diào)的布局呈現(xiàn)出了,菜單功能要相對(duì)簡單,讓用戶操作方便,從而讓用戶體會(huì)到此款軟件的實(shí)用。因?yàn)樯鲜霾僮魃婕暗降臄?shù)據(jù)量不大,所以將數(shù)據(jù)庫定為安卓系統(tǒng)自帶的sqlite數(shù)據(jù)庫[3],所以這就要求我們要實(shí)現(xiàn)在sqlite數(shù)據(jù)庫上面的增刪改查。不少人希望自己記事本上面的內(nèi)容不被被人查看,所以要以設(shè)置密碼的形式來實(shí)現(xiàn)保密。鑒于各種各樣的密碼實(shí)現(xiàn)方式,我們選擇了用戶體驗(yàn)最好的手勢解鎖方式。以及采用了更加友好的時(shí)間顯示方式,讓用戶在使用過程中更加的舒服方便。記事本軟件要內(nèi)存占用適中,cpu占用也是適中,這樣讓軟件運(yùn)行順暢。篇三:安卓實(shí)習(xí)報(bào)告
太原科技大學(xué) taiyuan university of science and technology 畢 業(yè) 實(shí)習(xí)報(bào) 告
學(xué)生姓名:郭錦濤 學(xué) 號(hào):201120010106 指導(dǎo)教師: 劉靜
所屬系部:計(jì)算機(jī)科學(xué)與技術(shù)
專業(yè)班級(jí):計(jì)算機(jī)112001班
實(shí)習(xí)單位:西安軟件服務(wù)外包學(xué)員 2014 年 9 月 19 日
目錄
一、實(shí)習(xí)的目的意義...........................................................1 1.1目的:.................................................................1 1.2意義:.................................................................1
二、實(shí)習(xí)單位計(jì)算機(jī)應(yīng)用簡介...................................................2
三、實(shí)習(xí)的內(nèi)容...............................................................3 3.1實(shí)習(xí)課題...............................................................3 3.2課題背景和意義.........................................................3 3.3技術(shù)架構(gòu)...............................................................4 3.4系統(tǒng)功能模塊圖(基礎(chǔ)功能).............................................4 3.5項(xiàng)目截圖...............................................................5 3.6 概要設(shè)計(jì)和數(shù)據(jù)庫設(shè)計(jì)...................................................5
四、實(shí)習(xí)感受................................................................10
一、實(shí)習(xí)的目的意義
畢業(yè)實(shí)習(xí)是學(xué)生大學(xué)本科教學(xué)實(shí)踐的主要環(huán)節(jié),對(duì)學(xué)生的實(shí)踐能力的培養(yǎng)具有十分重要的意義。學(xué)生通過本次實(shí)習(xí),能夠了解計(jì)算機(jī)專業(yè)的相關(guān)新技術(shù),了解理論知識(shí)在實(shí)際應(yīng)用中的作用,了解計(jì)算機(jī)技術(shù)的新發(fā)展,體驗(yàn)計(jì)算機(jī)專業(yè)的工作內(nèi)容和工作特點(diǎn),拓寬知識(shí)面,增強(qiáng)人際溝通能力,加強(qiáng)團(tuán)隊(duì)協(xié)作精神,為走向社會(huì)打下基礎(chǔ)。android以linux為核心的android行動(dòng)平臺(tái),使用java作為編程語言。本實(shí)訓(xùn)是在學(xué)習(xí)java語言程序設(shè)計(jì)的基礎(chǔ)上進(jìn)行的一次綜合實(shí)踐。通過綜合訓(xùn)練,要求學(xué)生掌握java語言程序設(shè)計(jì)的基本技能和android編程的應(yīng)用,并較系統(tǒng)地掌握java語言程序設(shè)計(jì)開發(fā)方法以及幫助文件的使用等,使學(xué)生通過本次實(shí)訓(xùn),能夠進(jìn)行獨(dú)立的android應(yīng)用程序開發(fā),能夠在實(shí)際操作中得到進(jìn)一步的提高,為以后的學(xué)習(xí)和工作打下良好的基礎(chǔ)。1.1目的: 1.培養(yǎng)學(xué)生運(yùn)用所學(xué)課程java語言程序設(shè)計(jì)的理論知識(shí)和技能,分析解決計(jì)算機(jī)實(shí)際應(yīng)用中的問題的能力。
2.培養(yǎng)學(xué)生在java語言程序設(shè)計(jì)的基礎(chǔ)上,開發(fā)android應(yīng)用程序的思想和方法。3.培養(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.對(duì)完成的程序進(jìn)行測試和完善。4.完成課程設(shè)計(jì)報(bào)告。1.2意義:
1.鍛煉自己的動(dòng)手能力,將學(xué)習(xí)的理論知識(shí)運(yùn)用于實(shí)踐當(dāng)中,反過來檢驗(yàn)書本
上理論的正確性。將自己的理論知識(shí)與實(shí)踐融合,進(jìn)一步鞏固、深化已經(jīng)學(xué)過的理論知識(shí),提高綜合運(yùn)用所學(xué)過的知識(shí),并且培養(yǎng)自己發(fā)現(xiàn)問題、解決問題的能力,加強(qiáng)對(duì)市場營銷過程的認(rèn)識(shí); 2.更廣泛的直接接觸社會(huì),了解社會(huì)需要,加深對(duì)社會(huì)的認(rèn)識(shí),增強(qiáng)對(duì)社會(huì)的適應(yīng)性,將自己融合到社會(huì)中去,培養(yǎng)自己的實(shí)踐能力,縮短我們從一名大學(xué)生到一名工作人員之間的思想與業(yè)務(wù)距離。為以后進(jìn)一步走向社會(huì)打下堅(jiān)實(shí)的基礎(chǔ); 3.了解公司部門的構(gòu)成和職能,整個(gè)工作流程,從而確立自己在公司里最擅長的工作崗位。為自己未來的職業(yè)生涯規(guī)劃起到關(guān)鍵的指導(dǎo)作用。
二、實(shí)習(xí)單位計(jì)算機(jī)應(yīng)用簡介 西安軟件服務(wù)外包學(xué)院(cissst)是由市政府主導(dǎo),產(chǎn)業(yè)主管部門及教育主管部門出資,共同組建的一所非營利性質(zhì)的民辦教育機(jī)構(gòu);是依托陜西(西安)科教優(yōu)勢、軟件服務(wù)外包產(chǎn)業(yè)基礎(chǔ),創(chuàng)建的新型it人才培養(yǎng)基地。學(xué)院旨在促進(jìn)西安軟件服務(wù)外包產(chǎn)業(yè)發(fā)展,合理利用西安高校資源的優(yōu)勢、為企業(yè)提供人才解決方案服務(wù)、拓寬大學(xué)生就業(yè)通道、打造百萬產(chǎn)業(yè)隊(duì)伍,從而推動(dòng)西安區(qū)域經(jīng)濟(jì)穩(wěn)步增長。西安軟件服務(wù)外包學(xué)院是陜西省軟件服務(wù)外包人才實(shí)訓(xùn)基地、西安市高校大學(xué)生就業(yè)見習(xí)基地、高新區(qū)軟件服務(wù)外包人才實(shí)習(xí)實(shí)訓(xùn)基地,已經(jīng)成為高等教育的有益補(bǔ)充,成為大學(xué)生實(shí)習(xí)實(shí)踐的最佳選擇。
學(xué)院以市場為導(dǎo)向,內(nèi)部實(shí)行企業(yè)化管理模式。從企業(yè)聘請(qǐng)具有十年以上開發(fā)和項(xiàng)目管理經(jīng)驗(yàn),并具備授課能力的軟件開發(fā)工程師擔(dān)任專職教師,從企業(yè)聘請(qǐng)?jiān)诼毠こ處煋?dān)任項(xiàng)目實(shí)訓(xùn)師;建立了ojt-s(on job training for student“面向就業(yè)的培訓(xùn)”)教學(xué)模式;開展對(duì)日軟件開發(fā)、對(duì)歐美軟件開發(fā)、嵌入式技術(shù)、數(shù)字藝術(shù)、軟件測試、3g手機(jī)應(yīng)用、kpo等八大專業(yè)人才培養(yǎng)方向;與oracle、microsoft、hitachi、sap等國際知名it企業(yè)合作,建設(shè)對(duì)日軟件開發(fā)實(shí)訓(xùn)平臺(tái)、對(duì)歐美軟件開發(fā)實(shí)訓(xùn)平臺(tái)、嵌入式開發(fā)實(shí)訓(xùn)平臺(tái)、數(shù)字藝術(shù)實(shí)訓(xùn)平臺(tái);與阿里巴巴、英國倫敦工商會(huì)考試局合作,培養(yǎng)kpo(知識(shí)流程外包)人才,推動(dòng)產(chǎn)業(yè)結(jié)構(gòu)升級(jí);從企業(yè)實(shí)際項(xiàng)目轉(zhuǎn)化的項(xiàng)目案例庫涵蓋有制造、流通、醫(yī)療、金融、政府、零售等行業(yè)的it項(xiàng)目和最新的it技術(shù);自主開發(fā)出40個(gè)針對(duì)應(yīng)屆
畢業(yè)生畢業(yè)設(shè)計(jì)的項(xiàng)目及方案,12個(gè)關(guān)于軟件工程等相關(guān)專業(yè)的實(shí)習(xí)方案,50個(gè)應(yīng)屆畢業(yè)生實(shí)習(xí)項(xiàng)目案例。學(xué)院立足西安、面向全國,培養(yǎng)“實(shí)用化、國際化、個(gè)性化”應(yīng)用型技術(shù)人才,以建設(shè)有特色、高水平it應(yīng)用型職業(yè)培訓(xùn)機(jī)構(gòu)為發(fā)展目標(biāo)。用3-5年左右時(shí)間建成西北地區(qū)較高水平的知名it培訓(xùn)機(jī)構(gòu)。用5-10年左右時(shí)間,辦成國內(nèi)高水平的一流it應(yīng)用型人才培養(yǎng)基地。
三、實(shí)習(xí)的內(nèi)容 3.1實(shí)習(xí)課題
《android移動(dòng)互聯(lián)網(wǎng)訂餐系統(tǒng)》是基于移動(dòng)互聯(lián)網(wǎng)開發(fā)的應(yīng)用項(xiàng)目,項(xiàng)目涉及java、數(shù)據(jù)庫、android等技術(shù)領(lǐng),并在平臺(tái)領(lǐng)上集成了打印系統(tǒng),符合餐飲行業(yè)的工作流程與業(yè)務(wù)需求,極大地提高了現(xiàn)有外賣行業(yè)的工作效率與經(jīng)濟(jì)效益。3.2課題背景和意義 隨著生活水平的提高,學(xué)生對(duì)飲食的要求越來越高,生活節(jié)奏的加快,企業(yè)員工訂餐人數(shù)不斷增加,由于大量的學(xué)生與企業(yè)員工訂餐比例不斷提高,對(duì)訂餐行為的信息化需求十分迫切。急需一個(gè)適合用戶需求的全新便捷訂餐平臺(tái)。這是社會(huì)發(fā)展不可逆轉(zhuǎn)的趨勢。android移動(dòng)互聯(lián)網(wǎng)訂餐系統(tǒng)提供全部餐廳信息,訂餐方便快捷。訂餐用戶無須保留訂餐傳單,全部餐廳信息收入手機(jī)中,隨身攜帶方便快捷。不再為吃什么而煩惱。對(duì)于喜歡的商家與菜品可進(jìn)行收藏,以后可直接完成訂餐。本系統(tǒng)能夠有效地完成用戶分享美食、搜索美食、進(jìn)入該美食所在餐廳進(jìn)行訂餐、餐廳導(dǎo)航等一系列方便用戶享 用美食的服務(wù),為android移動(dòng)互聯(lián)網(wǎng)服務(wù)在餐飲業(yè)上的應(yīng)用提供了一個(gè)可能。系統(tǒng)采用android平臺(tái)開發(fā),可應(yīng)用在規(guī)模龐大的android手機(jī)用戶當(dāng)中,界面 友好,操作簡單。同時(shí),web端基于b/s結(jié)構(gòu),餐廳管理員和網(wǎng)站管理員通過web瀏覽器便可訪問web管理端,具有較好的擴(kuò)展性、可維護(hù)性和移植性。篇四:畢業(yè)實(shí)習(xí)周記 20 篇
第一周:
通過緊張的面試,我終于如愿進(jìn)入到xx公司實(shí)習(xí),實(shí)習(xí)期為三個(gè)月。學(xué)習(xí)相關(guān)的專業(yè)近3年了,但這是我第一次真正的接觸相關(guān)的工作。因?yàn)檫@是我的第一份實(shí)習(xí)工作,心里難免有些忐忑不安。怕自己沒有能夠做好相關(guān)的工作,給該企業(yè)帶來不好的影響以及麻煩。在該企業(yè)安頓下來的時(shí)候,我們首先進(jìn)行了為期5天的培訓(xùn)。在這5天的培訓(xùn)當(dāng)中,我們對(duì)該企業(yè)的環(huán)境以及企業(yè)理念有了初步的了解。但由于我初來乍到,對(duì)我們的工作流程還不太不熟悉,幸好我們實(shí)習(xí)的負(fù)責(zé)人耐心的給我們講解了一些需要注意的地方。在他的引導(dǎo)下我們的實(shí)習(xí)工作也逐步進(jìn)入正軌。這一周學(xué)習(xí)的內(nèi)容不是很多,但是最主要的還是盡快適應(yīng)單位的節(jié)奏以及熟悉各個(gè)部門的工作,以便在工作中能很好的協(xié)作。
第二周
在這一個(gè)星期里,我們結(jié)束了我們的培訓(xùn)。正式開始了我們的實(shí)習(xí)生活。我們的工作就是在基層里做一個(gè)普通的工人,起初不能理解該企業(yè)的用意。后來慢慢就想通了。只有下放到企業(yè)的最基層才能讓我們更好的去了解該企業(yè)的運(yùn)作、了解該企業(yè)的企業(yè)理念。而對(duì)于我們個(gè)人來說,我們之間的大部分人都是第一次參加工作也許只有這樣才能讓我們更好的貫徹吃苦耐勞的精神。這個(gè)社會(huì)不缺少聰明的人,缺少的是能在困難中頂住壓力的人。只有在最艱苦的工作里才能培養(yǎng)我們的抗打擊能力,從而使我們更具社會(huì)競爭力。不過由于是我的第一份實(shí)習(xí)工作,而且是剛完成了從學(xué)生到工人角色的轉(zhuǎn)換,特別是在如此艱苦的條件下所以難免覺得有些無所適從。但是,我會(huì)盡量調(diào)整心態(tài),希望能夠圓滿完成這次的實(shí)習(xí)工作。
第三周
有時(shí)候我們覺得時(shí)間過得很慢,但時(shí)間又總是在不知不覺中過去了。不知不覺,來到這里已經(jīng)有3個(gè)星期。在這3個(gè)星期的實(shí)習(xí)生活里雖然覺得很辛苦但還是覺得有所收獲。經(jīng)過了那么長的時(shí)間總算覺得自己已經(jīng)進(jìn)入了實(shí)習(xí)的正軌,不管是在工作上還是在生活上都在慢慢適應(yīng)。我們的工作相比較學(xué)校生活來說還是有些枯燥,只是每天重復(fù)著一樣的步調(diào)一樣的工作。畢業(yè)和想象中的工作生活有所出入!在我的想象里,每天的工作是充滿著活力以及挑戰(zhàn)的,也許每天會(huì)忙忙碌碌,沒有時(shí)間吃飯沒有時(shí)間好好的休息,但是至少是充實(shí)的。我向往著那樣的生活。但是生活總是事與愿違的,但即使如此我也不希望讓這稍顯枯燥的生活消磨掉我原有的對(duì)生活的向往以及激情。除了,調(diào)整心態(tài)我們別無選擇。第四周
到單位已經(jīng)有一段時(shí)間了,但對(duì)單位的了解緊是片面還需要進(jìn)一步的了解。我本是個(gè)不善于交際的人,這也一直是我的障礙。所以我到單位這么長時(shí)間了,交際圈只限于我們部門,對(duì)于部門的同事也是了解得甚少,由于平時(shí)的生活除了上班和下班沒有多大的交集,因此每次一下班之后和同事之間也就沒有了什么交流。由于一些老員工彼此相處的時(shí)間比較長,對(duì)彼此也要更加的了解地多,在他們之間的友誼會(huì)比我們新來的同事要深厚,于是我明顯感覺到了新老員工之間的區(qū)別。我努力嘗試要改變這樣的狀態(tài),但是即使遇上面熟的同事也只是偶爾打個(gè)招呼,有時(shí)候我只是不知該如何開口,我做過很多這方面的努力,只是效果不佳。我希望在接下來的日子里這種狀態(tài)會(huì)有所改變。我也會(huì)更加努力的融合進(jìn)這個(gè)部門。第五周
在這一周了,我嘗試了很多的方法讓自己融入這個(gè)部門的圈子。于是我盡量找他 們感興趣的話題、盡可能的在上班的空閑時(shí)間里和他們有更多的交流。在工作上,當(dāng)我完成我的工作之時(shí)我也盡可能的去幫助他們。下了班以后,我并沒有像以前一樣整天呆在宿舍玩電腦,更多的我選擇了和同事出去打打球或者是吃吃宵夜。有時(shí)候我們不得不承認(rèn)有很多的感情都是在球場上以及飯桌上產(chǎn)生的。經(jīng)過這一個(gè)星期的努力,我和部門的同事對(duì)彼此之間的了解也越來越深。對(duì)于我,他們也少了剛開始的一點(diǎn)點(diǎn)尷尬及隔閡。也許這個(gè)世界上的人形形色色,但是沒有人會(huì)拒絕善意。只要你拿真心去和別人交往,你一定會(huì)得到相應(yīng)的回報(bào)。在這個(gè)社會(huì)上我們不能總是太過于被動(dòng)要自己去掌握與人交流的主動(dòng)權(quán),只有這樣我們的未來才不會(huì)處處處于被動(dòng)的狀態(tài)。第六周
由于與老員工之間相處的越來越好,于是在工作上也給我?guī)砹撕芏嗟谋憷?。他們很耐心的給我講解了一些工作上的注意事項(xiàng),以及他們多年來的工作經(jīng)驗(yàn)。我們不得不承認(rèn)好的人際關(guān)系對(duì)我們自身的反正來說存在著重要的意義。不僅是個(gè)人也好還是企業(yè)也好,只有在良好的人際關(guān)系下才會(huì)有良好的合作。良好的合作往往有助于我們工作的高效完成。能讓我們事半功倍而不是事倍功半。這些體會(huì)都是在實(shí)習(xí)過程中所得到的,我終于明白在我們真正踏入社會(huì)之前為什么要進(jìn)行實(shí)習(xí)。因?yàn)閷W(xué)校所教與我們的知識(shí)畢竟有限,只有在實(shí)際的工作中我們才能學(xué)到更多的知識(shí)及體驗(yàn)。而這些體驗(yàn)是我們花再多的錢也不能購買的。因?yàn)檫@是只屬于我們自己的,不會(huì)隨著時(shí)間的流逝而被遺忘。
第七周
工作中,我們難免會(huì)犯錯(cuò)所以挨罵也是在所難免的。當(dāng)這件事發(fā)生在我的身上的時(shí)候我才深刻體會(huì)到解釋就是找理由,據(jù)理力爭是沒有用的。你對(duì)領(lǐng)導(dǎo)解釋得越多結(jié)果就會(huì)變得更糟,所以主動(dòng)承認(rèn)錯(cuò)誤是關(guān)鍵。由于認(rèn)錯(cuò)態(tài)度良好于是領(lǐng)導(dǎo)也就隨便罵罵也就算了。我們常常會(huì)做錯(cuò)事,也常常會(huì)被誤解。在工作中不管我們是犯錯(cuò)還是被誤解,我們首先要做的不是跟上級(jí)闡述我們犯錯(cuò)的理由首先要做的是承認(rèn)錯(cuò)誤。當(dāng)被誤解的時(shí)候我們不要忙著去解釋,當(dāng)領(lǐng)導(dǎo)處于憤怒之時(shí),過多的爭論只會(huì)讓事情往更加惡劣的情況發(fā)展,倒不如聽他說完然后道個(gè)歉。其實(shí)對(duì)于我們來說認(rèn)錯(cuò)只不過是一件很簡單的事情。而且關(guān)于誤解,總會(huì)隨著時(shí)間的的推移而水落石出的。所以沒必要和上級(jí)激勵(lì)力爭,因?yàn)槟銈冎g本來就是不平等的!第八周
幸好上次的錯(cuò)誤沒有給領(lǐng)導(dǎo)留下太多的壞的印象,由于這陣子的工作完成的還算是比較好,于是領(lǐng)導(dǎo)在大家面前夸獎(jiǎng)了我,也算是這陣子辛勤工作的回報(bào)吧。所以下班的時(shí)候覺得心情特別舒暢。我想這也許就是為什么馬斯洛把自我價(jià)值的實(shí)現(xiàn)放在人類需要的最頂端的原因吧。每個(gè)人都需要自身的價(jià)值被肯定,當(dāng)我們的價(jià)值得到實(shí)現(xiàn)的時(shí)候我們就會(huì)覺得愉悅,而當(dāng)我們的不能得到他人的認(rèn)可的時(shí)候我們就覺得難過。雖然這只是一個(gè)小小的夸獎(jiǎng),但對(duì)于一個(gè)實(shí)習(xí)生來說,能在眾多的老員工之間得到夸獎(jiǎng)也算是小有成就感吧。因?yàn)椴皇俏覀兯龅呐Χ际悄軌虮蝗藗兯J(rèn)可的,這就是為什么那么多人不能得志的原因。但是我相信上帝都是公平的,我們的努力一定能夠得到回報(bào)的除非我們所做的努力還不夠多。因此,不要放棄的太早不走下去你不知道你接下來遇到的是什么。
第九周
這一周我們的工作比較忙,大部分的時(shí)間里我們都是在加班。加班的時(shí)間多了工人的工資也就比較高了。雖然很累但是大部分的員工還是很高興,也許對(duì)于我們 這些剛出社會(huì)的人來說不太能夠理解。在加班的過程中和一位老員工閑聊,在閑聊的過程中我得知原來他已經(jīng)在這個(gè)廠里面工作了7、8年。我很冒昧的問了他一個(gè)問題:為什么,在這里工作了那么多年還是一個(gè)普通員工。他沒有責(zé)備我如此唐突。而是跟我說:那也沒辦法大字都不認(rèn)識(shí)幾個(gè)呢,怎么能去做那些工作呢?我突然覺得知識(shí)是多么的重要,雖然我們不能說一個(gè)人的學(xué)時(shí)就代表了一個(gè)人的能力,但是在如此功力、競爭如此大的社會(huì)。在一定的程度上一個(gè)人的學(xué)歷代表著一個(gè)人的水平。因?yàn)闆]有企業(yè)有時(shí)間、而且愿意花時(shí)間去驗(yàn)證你到底有沒有能力。所以只能通過一個(gè)人的學(xué)歷來判斷了。第一次覺得原來知識(shí)是那么的重要。第十周 相比上一周,這一周的工作就稍微輕松一點(diǎn)了也沒有忙了。所以下班以后我們就有了更多的時(shí)間做自己的事情了,一般在下班的時(shí)候我們都會(huì)選擇去運(yùn)動(dòng)運(yùn)動(dòng)。盡管上班也有點(diǎn)累了,但是至少能做一些自己喜歡做的事情也算是一種放松的方法。突然在運(yùn)動(dòng)中覺得學(xué)校的生活已經(jīng)離我們越來越遠(yuǎn)了,好好像從來沒有如此的懷念過我們的校園生活。當(dāng)我們還在學(xué)校的時(shí)候我們曾拼命的想要逃離我們的學(xué)校生活但是真正步入社會(huì)以后才能明白,校園的生活是我們一生中最美好的時(shí)光。在上學(xué)的時(shí)候我們常常覺得壓力很大,但是現(xiàn)在才明白原來上學(xué)所帶給我們的壓力是人一生中所有的壓力中最小的一部分。不得不說一句很俗的話:每個(gè)人都是這樣,只有在失去的時(shí)候才會(huì)覺得可貴。
第十一周由于學(xué)校還有一些重要的事情要做的的原因,這個(gè)星期我們領(lǐng)導(dǎo)給我們批了幾天假讓我們回去學(xué)校處理一些事情。當(dāng)我們走進(jìn)學(xué)校,那種熟悉的感覺迎面而來。這種熟悉的感覺讓我們每一個(gè)人都覺得心情特別的愉悅。雖然以后還不知道還有多少次機(jī)會(huì)踏進(jìn)我們的校園,但是每個(gè)人都要成長,而成長中總伴隨著得到與失去。所以我們不應(yīng)該只看到自己失去的那部分,而忽略了自己得到的那一部分。還記得剛上大學(xué)的時(shí)候?qū)@個(gè)學(xué)校的種種嫌棄。突然想起一句話:學(xué)校就是自己在心里罵一千遍但不允許別人罵一遍的地方。對(duì)啊,我們總是對(duì)我們的母校帶著如此復(fù)雜的感情。我們很快就辦完事情在學(xué)校多呆了一天以后我們就回到了工作的地方。不知道為什么的,從學(xué)校回來突然覺得好像覺得沒有那么的累了?? 第十二周
不知不覺中,來這里實(shí)習(xí)已經(jīng)快兩個(gè)月了,雖然時(shí)間已接近兩個(gè)月,對(duì)工作也是越來越熟悉,但是有時(shí)還是會(huì)覺得力不從心。而且也失去了剛開始來實(shí)習(xí)的那種興奮與好奇,覺得心情總是處在低谷當(dāng)中,總是振奮不起來。在和領(lǐng)導(dǎo)的偶然閑聊的時(shí)候他很友好的跟我說:只要我用心地做,就會(huì)左右逢源。越做越覺樂趣,越做越起勁。聽他說完頓時(shí)覺得茅塞頓開。有人說過:凡職業(yè)都具有趣味的,只要你肯干下去,趣味自然會(huì)發(fā)生。切忌不要粗心大意,馬虎了事,心浮氣躁。做任何事都一樣,需要有恒心、細(xì)心和毅力,那才會(huì)到達(dá)成功的彼岸!對(duì)啊,每個(gè)職業(yè)都會(huì)有它的趣味所在的,像我之前所說的不走下去,我們不知道接下來會(huì)遇到什么。所以耐心等候吧。第十三周 在上一周和領(lǐng)導(dǎo)的閑聊之后,在這一周我反省了一下這陣子的工作狀態(tài)。我突然意識(shí)到與其自怨自艾還不如干些別的事情來充實(shí)自己,于是我主動(dòng)要求在空閑的時(shí)間去幫幫別的部門的忙。一方面我可以打發(fā)打發(fā)自己的時(shí)間,讓自己變得充實(shí)而不至于自己的覺得生活無趣。另一方面,既然我們實(shí)習(xí)是為了學(xué)到更多的知識(shí)那就趁著實(shí)習(xí)的期間盡可能的去不同的部門感受一下不同部門的工作。也許這樣對(duì)我們真正踏上社會(huì)的時(shí)候也是有所幫助的。即使是生活無趣,其實(shí)我們也是可
以讓它變得有趣的。其實(shí)大部分的原因不在于生活,而是取決于我們帶著怎么樣的心態(tài)去看待生活。
第十四周由于這一周領(lǐng)導(dǎo)批準(zhǔn)了我提出的要去別的部門幫忙的請(qǐng)求,在這一周我也正式到別的部門去幫忙了。所以會(huì)比以往更加的,忙碌一點(diǎn)。雖然如此,但是和以往的生活相比我倒是更加喜歡現(xiàn)在的生活忙忙碌碌的。通過在別的部門幫忙,我發(fā)現(xiàn)每個(gè)部門的工作都是緊密相連的,而每個(gè)部門的價(jià)值也是相同的,只有在每個(gè)部門的互補(bǔ)之中才能使整個(gè)企業(yè)的利潤達(dá)到最大化。相反的只要任何一個(gè)部門稍有差池都會(huì)讓整個(gè)企業(yè)的利益有所下降。因此,我覺得不管是哪一個(gè)企業(yè)都好,都應(yīng)該加強(qiáng)企業(yè)個(gè)部門之間的聯(lián)系,才能讓企業(yè)在這個(gè)競爭強(qiáng)烈的社會(huì)生存下去。才能讓企業(yè)立于不敗之地。
第十五周慢慢的在別的部門的幫忙工作也慢慢熟悉了,得到了上級(jí)領(lǐng)導(dǎo)的好評(píng)及贊揚(yáng)。相比剛進(jìn)入這個(gè)公司的時(shí)候不管是在為人處世上還是在工作的處理能力上也有所提高了,慢慢覺得一個(gè)人不管工作能力有多強(qiáng)要是不懂得怎么去和別人相處一切都是空談的。這個(gè)實(shí)習(xí)教給我們最多的不是讓我們?nèi)ト绾芜\(yùn)用我們的專業(yè)知識(shí),不是讓我們?nèi)カ@得更多的知識(shí),而是讓我們明白何如去生活。相信沒有一個(gè)人不懂的如何生活,但是卻不是所有人都懂得如何在這個(gè)社會(huì)上生活。通過在這里的觀察我發(fā)現(xiàn)一般個(gè)性太強(qiáng)烈的人都不會(huì)再這里呆的太久,反倒是一些較為平和的人留了下來。我想了很久,也許是因?yàn)檩^為平和的人更加適應(yīng)這個(gè)社會(huì)的發(fā)展趨勢吧。
第十六周在這一個(gè)星期里,我還是像往常一樣工作一樣下班。沒有什么特別的事情發(fā)生。有時(shí)候沒有什么事情發(fā)生也是一件很好的事情。雖然生活沒有什么驚喜但是卻也是至少?zèng)]有什么不好的事情。突然回過頭去想在這里的那么多個(gè)日子,慢慢的好像已經(jīng)很習(xí)慣。習(xí)慣這里的生活、這里的工作。日子好像也比之前想的要過的快一點(diǎn),剛開始的時(shí)候曾經(jīng)想過要快點(diǎn)結(jié)束現(xiàn)在也覺得還好。有時(shí)候我們覺得可能會(huì)很艱難的日子其實(shí)也是很快就過去了。所以我們總要對(duì)生活充滿希望。
第十七周這個(gè)星期又犯了點(diǎn)小小的錯(cuò)。雖然領(lǐng)導(dǎo)沒有過多的責(zé)備但是心里還是覺得又些許的過意不去。人都是這個(gè)樣子難免會(huì)有過錯(cuò),首先要自己學(xué)會(huì)原諒自己。如果自己一直處于糾結(jié)之中不愿意給自己寬恕,那么別人又怎么來寬恕你呢?我們可以犯錯(cuò)但是不能一錯(cuò)再錯(cuò)。于是我這樣安慰自己。在這樣想之后自己也覺得心里好受一點(diǎn),既然過去的事情已經(jīng)不能再挽回了,那至少從現(xiàn)在開始我們還可以好好把握,避免下一個(gè)錯(cuò)誤的發(fā)生。也許生活沒有必要太過于糾結(jié)。
第十八周我們都說社會(huì)這趟水太深。有時(shí)候和朋友閑聊都說說起諸如此類的事情,比如上級(jí)的什么親戚被提升為了什么什么??經(jīng)過在這個(gè)企業(yè)那么長時(shí)間的實(shí)習(xí),我不得不承認(rèn):不管是在任何一個(gè)地方都會(huì)有太多的潛規(guī)則??墒羌词故沁@樣我們還是不能被潛規(guī)則。我始終堅(jiān)信只要是你有能力,只要是你能讓企業(yè)有所發(fā)展,利益有所提高,不管是什么潛規(guī)則都會(huì)給你讓步。與其抱怨還不如讓自己更強(qiáng)一點(diǎn),強(qiáng)大到有一天你會(huì)被別人看到為止?? 第十九周離實(shí)習(xí)結(jié)束的日子不遠(yuǎn)了,而實(shí)習(xí)結(jié)束了也就意味著我們很快就要真正踏入社會(huì)了。其實(shí)我在想在這段時(shí)間的實(shí)習(xí)過程中進(jìn)入這個(gè)社會(huì)的各方面的準(zhǔn)備呢?我想也許我已經(jīng)做好了大部分的準(zhǔn)備了,不管是心態(tài)上也好、生活上、工作上也好。在這個(gè)實(shí)習(xí)的過程中我們每一個(gè)人都在不知不覺中做好了準(zhǔn)備。也許我們從來也沒有發(fā)覺到這一點(diǎn)。我想這也許就是我們實(shí)習(xí)最大的意義吧。對(duì)于每一個(gè)剛出校門的我們,身上有太多的銳氣以及嬌氣。我們就像是剛出山上開鑿下來的石頭,有太多的棱角。而這實(shí)習(xí)的幾個(gè)月就像是刻石把我們打磨得更加的圓滑。只有這樣子才能讓我們更好的去適應(yīng)這個(gè)社會(huì)。而不被社會(huì)所淘汰。我感謝這個(gè)實(shí)習(xí)來得恰到好處,讓我能夠及時(shí)明白:怎么樣的人才是這個(gè)社會(huì)真正需要的人。第二十周
到現(xiàn)在為止我的實(shí)習(xí)工作就要接近尾聲,我也即將結(jié)束在這里的實(shí)習(xí)工作。在這幾個(gè)月里面帶給我的感觸太多太多,連自己也覺得奇怪到最后竟然有點(diǎn)舍不得,但是生活是向前的我們必須要忘前走。也許以后我們不再需要做如此艱辛的工作,也可以脫離低層的工作。但是我不會(huì)忘記這一段時(shí)間的實(shí)習(xí)所帶與我的感受,不會(huì)忘記自己的原來的樣子。也許以后的路不會(huì)比現(xiàn)在更加順暢,但是我堅(jiān)信,這幾個(gè)月的實(shí)習(xí)都挺過來了那么以后的路上還有什么可怕的呢。我相信只要努力未來一定會(huì)越來越美好的。“實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)”,通過這次實(shí)習(xí),我也發(fā)覺自己有許多不足之處,但是所謂真誠所至,金石為開。在今后的生活中,我會(huì)朝著自己的目標(biāo),不斷努力學(xué)習(xí),彌補(bǔ)不足,為自己的理想而奮。篇五:于斌彬?qū)嵙?xí)報(bào)告
畢業(yè)實(shí)習(xí)報(bào)告
關(guān)于在北京翡翠教育科技有限公司從
事java程序員的實(shí)習(xí)報(bào)告
實(shí)習(xí)單 位: 北京翡翠教育科技有限公司
實(shí)習(xí)時(shí) 間: 2013.11.14—2013.12.13 學(xué) 生 姓 名: 余彬斌
學(xué) 號(hào): 1042152145 院 系: 信息工程學(xué)院
專 業(yè): 信息管理與信息系統(tǒng) 2013年 12月13日
題目:關(guān)于在北京翡翠教育科技有限公司從事java程序員的實(shí)習(xí)報(bào)告
一、實(shí)習(xí)單位及崗位簡介
(一)實(shí)習(xí)單位簡介
北京翡翠教育科技有限公司是由教育培訓(xùn)行業(yè)精英和海外歸國留學(xué)人員發(fā)起創(chuàng)辦的專注于移動(dòng)互聯(lián)網(wǎng)及數(shù)字娛樂領(lǐng)域職業(yè)教育的機(jī)構(gòu)。自年成立以來,致力于培養(yǎng)移動(dòng)互聯(lián)網(wǎng)、android 智能手機(jī)應(yīng)用軟件、ios平臺(tái)開發(fā)、游戲研發(fā)、動(dòng)漫設(shè)計(jì)等國家緊缺人才。公司業(yè)務(wù)涵蓋技術(shù)培訓(xùn)、產(chǎn)品開發(fā)、產(chǎn)品孵化、產(chǎn)業(yè)合作等。
擁有翡翠教育研究部門、卓新思創(chuàng)移動(dòng)互聯(lián)網(wǎng)教育聯(lián)盟、上海志趣動(dòng)漫設(shè)計(jì)有限公司、完美空間動(dòng)漫游戲培訓(xùn)中心等。
致力于通過領(lǐng)先的技術(shù)方案、高品位的教育服務(wù)和變革性的創(chuàng)新資源,完善個(gè)體的終生學(xué)習(xí)和學(xué)習(xí)型組織的發(fā)展進(jìn)程,助力于全社會(huì)的創(chuàng)新能力和國民素質(zhì)的提升。
擁有一支具有多年android、ios、symbian、windowsphone、j2me等不同平臺(tái)開發(fā)經(jīng)驗(yàn)的大型研發(fā)團(tuán)隊(duì),已經(jīng)自主研發(fā)了數(shù)百款移動(dòng)互聯(lián)網(wǎng)軟件和游戲,均已在中國移動(dòng)、中國聯(lián)通、中國電信等各大平臺(tái)上商業(yè)運(yùn)行,構(gòu)建自主知識(shí)產(chǎn)權(quán)的產(chǎn)品開發(fā)生產(chǎn)線。
在北京、上海、深圳、廣州、成都、西安等地設(shè)立了分支機(jī)構(gòu),并且與國內(nèi)外頂尖高校和研究機(jī)構(gòu),包括國際知名企業(yè)建立深入合作關(guān)系,并且與中國移動(dòng)通信、中國聯(lián)通、中國電信等大型移動(dòng)互聯(lián)網(wǎng)運(yùn)營商及上百家移動(dòng)互聯(lián)網(wǎng)企業(yè)形成了人才戰(zhàn)略合作伙伴關(guān)系,聯(lián)合培養(yǎng)眾多精通最新移動(dòng)開發(fā)技術(shù)的專業(yè)開發(fā)人才,通過職業(yè)培訓(xùn)建立相關(guān)人才庫,為有潛力的開發(fā)團(tuán)隊(duì)進(jìn)行資金支持,通過整合權(quán)威教育資源和產(chǎn)業(yè)資源,有力地推動(dòng)了自身和行業(yè)企業(yè)的發(fā)展。
(二)實(shí)習(xí)崗位簡介
這次我實(shí)習(xí)的崗位是java程序員,由于之前我學(xué)習(xí)過c++語言,其和java有共通之處。所以學(xué)起來相對(duì)較輕松。每天我和我同學(xué)一起去機(jī)房聽老師給我們講解java上的知識(shí),上課我們認(rèn)真聽講并隨時(shí)做筆記。老師會(huì)給我們布置一些課堂作業(yè)和課后作業(yè)讓我們?nèi)ネ瓿?,我們每個(gè)人都很積極的去完成老師教給我們的任務(wù)。我們需要掌握老師講解的知識(shí),把老師布置的作業(yè)在java上完整的實(shí)現(xiàn)出來,在實(shí)習(xí)結(jié)束的時(shí)候能夠按照老師的要求完成我們學(xué)習(xí)的項(xiàng)目,最后我們需要完整獨(dú)立的做出一個(gè)項(xiàng)目。
二、實(shí)習(xí)內(nèi)容及過程
這次實(shí)習(xí)我學(xué)習(xí)了java和一些安卓方面的知識(shí),實(shí)習(xí)時(shí)間一共四周。我努力的做一個(gè)合格的java程序員。
第一周我們學(xué)習(xí)了java介紹和安裝eclipse(集成開發(fā)工具)。它的作用是方便程序員開發(fā)應(yīng)用和游戲,eclipse的安裝(重點(diǎn)):
1、解壓eclipse到某個(gè)盤下
2、安裝jdk
3、配置環(huán)境變量
符號(hào)
1+號(hào)在數(shù)字和字符串之間起到連接作用;2/號(hào)如果兩個(gè)整數(shù)相除,/號(hào)用來取整;3%號(hào);4==號(hào);5!號(hào)將比較后的結(jié)果反一反;6&&(短路與),||(短路或),&&表示并且的意思,只有當(dāng)兩個(gè)條件全都正確才返回true,否則返回false||表示或者的意思,兩個(gè)條件中如果有一個(gè)或者兩個(gè)條件成立就返回true,否則返回false;7<<(向左移)2<<3 2*2(底數(shù)--不變)的3次方;8++號(hào) 變量和常量
變量:數(shù)值可以隨意變化,在java中每個(gè)變量前必須有一種類型
常量:數(shù)值是固定的,不會(huì)變化 java中的類型
常用類random(隨機(jī)數(shù))scanner(控制臺(tái)文本掃描)
基本數(shù)據(jù)類型 1)整數(shù)類型
--byte(字節(jié))-128~127--short(短整型)-2的15次方到2的15次方-1--int(整型)常量整形省略(int)2--long(長整型)63次方,最后加一個(gè)l標(biāo)識(shí)一下 2)浮點(diǎn)(小數(shù))類型
--float(單精度)加f標(biāo)識(shí)一下 32位--double(雙精度)64位 3)字符類型
--char16范圍:0~65535 4)布爾(邏輯)類型
--boolean 對(duì)或錯(cuò) 作用:判斷
2、引用類型
1、類類型 string字符串 random隨機(jī)數(shù) 在這一周內(nèi)我過得很充實(shí)。早上我們正常起床,吃過早飯我們立馬去教室,上課我們認(rèn)真聽講,一晃一上午過去了。感覺時(shí)間過得特別快,但是我們學(xué)到了很多知識(shí)。我們的學(xué)習(xí)氛圍也特別好。
第二篇:安卓實(shí)習(xí)報(bào)告
通信與電子信息專業(yè)實(shí)訓(xùn)報(bào)告
項(xiàng)目名稱:基于android的游戲開發(fā)
班 級(jí) 10通信1班
姓 名
學(xué) 號(hào)
指導(dǎo)教師
成 績
實(shí)訓(xùn)時(shí)間:年月日—
目錄
一、實(shí)訓(xùn)目的及其意義............................................3 1.1、目的及意義..............................................3 1.2、研究現(xiàn)狀................................................3
二、實(shí)訓(xùn)主要任務(wù)、重點(diǎn)及難點(diǎn)....................................4 2.1、任務(wù)....................................................4 2.2、重點(diǎn)內(nèi)容及實(shí)現(xiàn)途徑......................................4
三、實(shí)訓(xùn)具體內(nèi)容及完成的主要工作................................5 3.1、認(rèn)識(shí)基礎(chǔ)開發(fā)............................................6 3.2、了解數(shù)據(jù)存儲(chǔ)............................................6 3.3、總體實(shí)訓(xùn)過程............................................7
四、實(shí)際遇到的困難,解決問題的方法和措施........................8
(一)、所遇問題.................................................8
(二)、解決方法與措施...........................................9
五、心得體會(huì)....................................................9
一、實(shí)訓(xùn)目的及其意義 1.1、目的及意義 了解現(xiàn)階段互聯(lián)網(wǎng)發(fā)展主流,了解移動(dòng)互聯(lián)網(wǎng),認(rèn)識(shí)移動(dòng)互聯(lián)網(wǎng)的發(fā)展與展望,認(rèn)識(shí)android,了解基于android的應(yīng)用軟件開發(fā)方法及其商業(yè)流程。把理論與實(shí)際結(jié)合,通過對(duì)理論知識(shí)的理解,領(lǐng)悟從而運(yùn)用到生活實(shí)際鞏固所學(xué)的知識(shí),提高對(duì)實(shí)際生活的認(rèn)識(shí),積累經(jīng)驗(yàn)。使學(xué)生在此期間能夠初次體會(huì)到實(shí)際生產(chǎn)中的種種技能與經(jīng)驗(yàn),完成一項(xiàng)項(xiàng)目鍛煉獨(dú)立思考及團(tuán)隊(duì)合作能力。使學(xué)生們進(jìn)一步加深對(duì)所學(xué)知識(shí)的理解,理論聯(lián)系實(shí)際,鞏固所學(xué)有關(guān)計(jì)算機(jī)基礎(chǔ)理論知識(shí)和基本技能,學(xué)習(xí)有關(guān)計(jì)算機(jī)最新技術(shù)方面的應(yīng)用,增強(qiáng)學(xué)生對(duì)計(jì)算機(jī)在社會(huì)生活,社會(huì)生產(chǎn)中應(yīng)用的感性認(rèn)識(shí),深入了解計(jì)算機(jī)在各個(gè)領(lǐng)域中的應(yīng)用狀況。生產(chǎn)實(shí)習(xí)是學(xué)校教學(xué)的重要補(bǔ)充部分,是區(qū)別于普通學(xué)校教育的一個(gè)顯著特征,是教育教學(xué)體系中的一個(gè)不可缺少的重要組成部分和不可替代的重要環(huán)節(jié)。它是與今后的職業(yè)生活最直接聯(lián)系的,學(xué)生在生產(chǎn)實(shí)習(xí)過程中將完成學(xué)習(xí)到就業(yè)的過渡,因此生產(chǎn)實(shí)習(xí)是培養(yǎng)技能型人才,實(shí)現(xiàn)培養(yǎng)目標(biāo)的主要途徑。它不僅是校內(nèi)教學(xué)的延續(xù),而且是校內(nèi)教學(xué)的總結(jié)。生產(chǎn)實(shí)習(xí)一方面鞏固了書本上學(xué)到的理論知識(shí),另一方面,可獲得在書本上不易了解和不易學(xué)到的生產(chǎn)現(xiàn)場的實(shí)際知識(shí),使我們在實(shí)踐中得到提高實(shí)訓(xùn)環(huán)節(jié)對(duì)于提高學(xué)生的綜合能力和全面素質(zhì)具有重要意義。1.2、研究現(xiàn)狀 android 是google開發(fā)的基于linux平臺(tái)的開源手機(jī)操作系統(tǒng)。它包括操作系統(tǒng)、用戶界面和應(yīng)用程序 —— 移動(dòng)電話工作所需的全部軟件,而且不存在任何以往阻礙移動(dòng)產(chǎn)業(yè)創(chuàng)新的專有權(quán)障礙。google與開放手機(jī)聯(lián)盟合作開發(fā)了 android,這個(gè)聯(lián)盟由包括中國移動(dòng)、摩托羅拉、高通、宏達(dá)電和 t-mobile 在內(nèi)的 30 多家技術(shù)和無線應(yīng)用的領(lǐng)軍企業(yè)組成。google通過與運(yùn)營商、設(shè)備制造商、開發(fā)商和其他有關(guān)各方結(jié)成深層次的合作伙伴關(guān)系,希望借助建立標(biāo)準(zhǔn)化、開放式的移動(dòng)電話軟件平臺(tái),在移動(dòng)產(chǎn)業(yè)內(nèi)形成一個(gè)開放式的生態(tài)系統(tǒng)。android主要使用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦,由google公司和開放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開發(fā)。尚未有統(tǒng)一中文名稱,中國大陸地區(qū)較多人使用“安卓”或“安致”。android操作系統(tǒng)最初由andy rubin開發(fā),主要支持手機(jī)。2005年8月由google收購注資。2007年11月,google與84家硬件制造商、軟件開發(fā)商及電信營運(yùn)商組建開放手機(jī)聯(lián)盟共同研發(fā)改良android系統(tǒng)。隨后google以apache開源許可證的授權(quán)方式,發(fā)布了android的源代碼。第一部android智能手機(jī)發(fā)布于2008年10月。android逐漸擴(kuò)展到平板電腦及其他領(lǐng)域上,如電視、數(shù)碼相機(jī)、游戲機(jī)等。2011年第一季度,android在全球的市場份額首次超過塞班系統(tǒng),躍居全球第一。2012年11月數(shù)據(jù)顯示,android占據(jù)全球智能手機(jī)操作系統(tǒng)市場76%的份額,中國市場占有率為90%。目前基于android的移動(dòng)終端上的軟件應(yīng)用開發(fā)很火熱,android平臺(tái)的開發(fā)已越來越強(qiáng)大。android是一種以linux為基礎(chǔ)的開放源碼操作系統(tǒng),主要使用于便攜設(shè)備。android操作系統(tǒng)最初由andy rubin創(chuàng)辦,最初只支持手機(jī)。2005年由google收購注資,并拉攏多家制造商組成開放手機(jī)聯(lián)盟(open handset alliance)開發(fā)改良,逐漸擴(kuò)展到到平板電腦及其他領(lǐng)域上。
二、實(shí)訓(xùn)主要任務(wù)、重點(diǎn)及難點(diǎn) 2.1、任務(wù)
認(rèn)識(shí)移動(dòng)互聯(lián)網(wǎng),了解移動(dòng)互聯(lián)網(wǎng)的開發(fā),認(rèn)識(shí)及了解android,在給定時(shí)間內(nèi)完成基于android平臺(tái)的游戲項(xiàng)目的開發(fā),實(shí)現(xiàn)預(yù)想游戲效果,熟悉項(xiàng)目開發(fā)的商業(yè)流程,給出游戲全套文檔及代碼。
2.2、重點(diǎn)內(nèi)容及實(shí)現(xiàn)途徑 2.2.1、重點(diǎn)內(nèi)容:熟悉游戲開發(fā)代碼,了解項(xiàng)目流程,對(duì)android游戲開發(fā)有基本了解。2.2.2、實(shí)現(xiàn)途徑:
所需運(yùn)行硬件環(huán)境:
安卓系統(tǒng)2.2以上 3.5寸以上移動(dòng)設(shè)備
軟件開發(fā)環(huán)境的配置:
(1)配置java程序開發(fā)環(huán)境
(2)安裝并漢化eclipse(jdk)(3)android sdk的安裝
(4)adt的安裝及配置
(5)android模擬器的配置
(6)office2003以上版本的軟件(繪圖visio)然后運(yùn)用eclipse完成項(xiàng)目代碼的編寫,運(yùn)行與調(diào)試; 最終在實(shí)體終端上進(jìn)行測試,最終完成項(xiàng)目
三、實(shí)訓(xùn)具體內(nèi)容及完成的主要工作
實(shí)訓(xùn)前期,有老師給我們講解了現(xiàn)階段移動(dòng)互聯(lián)網(wǎng)的發(fā)展,了解移動(dòng)互聯(lián)網(wǎng)的發(fā)展主流,說明了現(xiàn)階段移動(dòng)互聯(lián)的發(fā)展重要性。老師著重給我們講解了android的發(fā)展,以及現(xiàn)階段移動(dòng)互聯(lián)中android所扮演的角色。接下來我們將針對(duì)基于android的游戲開發(fā)進(jìn)行學(xué)習(xí),由于時(shí)間的原因,我們主要了解了一下游戲開發(fā)的基本項(xiàng)目流程,具體的操作將在實(shí)訓(xùn)過程中一一講解驗(yàn)證。
接下來老師為我們講解了實(shí)訓(xùn)的具體內(nèi)容,對(duì)于一個(gè)游戲開發(fā)項(xiàng)目,首先我們需要進(jìn)行游戲開發(fā)的前期準(zhǔn)備,主要是游戲開發(fā)環(huán)境的配置,以及團(tuán)隊(duì)開發(fā)過程中的任務(wù)分配,之后緊張的游戲項(xiàng)目開發(fā)拉開了帷幕。在第一天我們主要學(xué)習(xí)了eclipse軟件的使用,包括游戲工程的創(chuàng)建等等。并且針對(duì)eclipse中的 android項(xiàng)目結(jié)構(gòu)進(jìn)行了講解:android項(xiàng)目結(jié)構(gòu):src/ java原代碼存放目錄 gen/ 自動(dòng)生成目錄 gen 目錄中存放所有由android開發(fā)工具自動(dòng)生成的文件。目錄中最重要的就是r.java文件。這個(gè)文件由android開發(fā)工具自動(dòng)產(chǎn)生的。res/ 資源(resource)目錄 在這個(gè)目錄中我們可以存放應(yīng)用使用到的各種資源,如xml界面文件,圖片或數(shù)據(jù)。assets資源目錄android除了提供/res目錄存放資源文件外,在/assets目錄也可以存放資源文件。androidmanifest.xml 項(xiàng)目清單文件。篇二:android實(shí)習(xí)報(bào)告
實(shí)習(xí)報(bào)告
實(shí)習(xí)目的:
生產(chǎn)實(shí)習(xí)是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)重要的實(shí)踐性教學(xué)活動(dòng),其目的是使學(xué)生們進(jìn)一步加深對(duì)所學(xué)知識(shí)的理解,理論聯(lián)系實(shí)際,鞏固所學(xué)有關(guān)計(jì)算機(jī)基礎(chǔ)理論知識(shí)和基本技能,學(xué)習(xí)有關(guān)計(jì)算機(jī)最新技術(shù)方面的應(yīng)用,增強(qiáng)學(xué)生對(duì)計(jì)算機(jī)在社會(huì)生活,社會(huì)生產(chǎn)中應(yīng)用的感性認(rèn)識(shí),深入了解計(jì)算機(jī)在各個(gè)領(lǐng)域中的應(yīng)用狀況,學(xué)生在實(shí)習(xí)的同時(shí),進(jìn)行一定的社會(huì)實(shí)踐與調(diào)查活動(dòng),對(duì)于提高學(xué)生的綜合能力和全面素質(zhì)具有重要意義。
實(shí)習(xí)內(nèi)容: android主要有四大組件,分別為:activity 活動(dòng)、service 服務(wù)、broadcast receivers 廣播接受者、content provider 內(nèi)容提供者。還有上激活組件intent。1.activity activity就是一個(gè)用戶可以直接接觸并看到的窗口,當(dāng)新建一個(gè)android project后可以
看到在工程文件下的src中有一個(gè)已建好的java類firstactivity,系統(tǒng)也會(huì)自動(dòng)為他配備一個(gè)布局文件main.xml,并在androidmanifest中對(duì)此activity進(jìn)行注冊。
用戶想要自己創(chuàng)建一個(gè)activity,首先創(chuàng)建一個(gè)java類繼承自activity,可以為他配備一個(gè)布局文件用來顯示activity創(chuàng)建后的布局。最后在主配置文件manifest.xml中對(duì)創(chuàng)建的activity進(jìn)行注冊,這一步是必不可少的,沒有注冊activity無法運(yùn)行。在manifest.xml中會(huì)有許多的activity,但系統(tǒng)一次只能運(yùn)行一個(gè)activity,因此必須修選定一個(gè)最先運(yùn)行的activity。在注冊activity是加入
/files目錄,如: /data/data/cn.itcast.action/files/itcast.txt,通過點(diǎn)擊eclipse菜單“window”-“show view”-“other”,在對(duì)話窗口中展開android文件夾,選擇下面的file explorer視圖,然后在file explorer視圖中展開/data/data/
/files目錄就可以看到該文件。openfileoutput()方法的第二參數(shù)用于指定操作模式,有四種模式android有一套自己的安全模型,當(dāng)應(yīng)用程序(.apk)在安裝時(shí)系統(tǒng)就會(huì)分配給他一個(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日,老師對(duì)于android開發(fā)進(jìn)行了詳細(xì)的講解,其內(nèi)容包括:android 的背景介紹,發(fā)展過程,自身的優(yōu)勢與不足.android的控件、布局、activity、service等一系列基礎(chǔ)知識(shí),對(duì)整個(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è)知識(shí)而且讓我對(duì)android系統(tǒng)又有了一個(gè)更加深入的了解,它也是我們計(jì)算機(jī)專業(yè)的一個(gè)新的方向并且發(fā)展很迅速,為了今后的發(fā)展我們還需不斷努力學(xué)習(xí)!我國的信息產(chǎn)業(yè)還很落后,隨著社會(huì)的發(fā)展和國家的支持,手機(jī)上網(wǎng)是社會(huì)發(fā)展的趨勢,到時(shí)候手機(jī)上網(wǎng)將無處不在!之前我對(duì)android系統(tǒng)的了解之停留在應(yīng)用的層次上,對(duì)于更深層次的了解是很少的,通過這次實(shí)習(xí),讓我對(duì)android系統(tǒng)有了一個(gè)更深層次的了解,同時(shí)它頁使我意識(shí)到無論朝哪個(gè)方向發(fā)展,主要還是要扎實(shí)深刻地學(xué)習(xí),同時(shí)也得不斷努力探索!it業(yè)發(fā)展速度一直都是相當(dāng)驚人的,不想被社會(huì)淘汰,我們就得必須不斷地學(xué)習(xí),現(xiàn)在的社會(huì)不再是一勞永逸,其他行業(yè)也是如此,我們必須不斷地拿知識(shí)來武裝自己,不然被淘汰那是肯定的!現(xiàn)在就業(yè)難原因其實(shí)在于競爭的家具,為了在競爭中得到成功,我們必須時(shí)時(shí)刻刻學(xué)習(xí),還學(xué)到了很多做人做事的道理,不僅懂得了要想在計(jì)算機(jī)這一行立足必須具備扎實(shí)的技術(shù)理論知識(shí),還必須學(xué)會(huì)與人溝通,合作的能力,同時(shí)更懂得了嘗試的重要性,很多事情不是聽說是困難的它就是困難的,只有親自去做親自去體會(huì)才知道,其實(shí)它并沒有那么困難,這就是實(shí)踐的重要性!無論做什么事情都必須要堅(jiān)持,只有堅(jiān)持下去,才會(huì)成功!事在人為,就怕不做!我們不能怕失敗,關(guān)鍵是要從失敗中總結(jié)經(jīng)驗(yàn),帶著勇氣,帶著自信,堅(jiān)持不懈,踏踏實(shí)實(shí)。這一次的實(shí)習(xí)是短暫的,但我收獲良多?;仡櫼郧八哌^的路,太多的無奈和迷茫,這次實(shí)習(xí)就像是我人生道路上的航標(biāo),為我指明了前景的方向,是我對(duì)自己的前途充滿了信心,我不僅知道了在人生的岔道口更適合朝哪個(gè)方向前進(jìn)!更知道了在今后的道路上怎么去武裝自己!
實(shí)習(xí)結(jié)果:篇三:android生產(chǎn)實(shí)習(xí)報(bào)告
生產(chǎn)實(shí)習(xí)報(bào)告
一 實(shí)習(xí)目地
生產(chǎn)實(shí)習(xí)是把理論與實(shí)際結(jié)合,通過對(duì)理論知識(shí)的理解,領(lǐng)悟從而運(yùn)用到生活實(shí)際,鞏固所學(xué)的知識(shí),提高對(duì)實(shí)際生活的認(rèn)識(shí),積累經(jīng)驗(yàn)。同時(shí)生產(chǎn)實(shí)習(xí)也是大學(xué)生以學(xué)生身份到工作者身份的一個(gè)重要過度階段。在此期間,學(xué)生能夠初次體會(huì)到實(shí)際生產(chǎn)中的種種技能與經(jīng)驗(yàn)。完成一項(xiàng)項(xiàng)項(xiàng)目,能體現(xiàn)出獨(dú)立思考能力。android生產(chǎn)實(shí)習(xí)對(duì)目前應(yīng)用現(xiàn)狀進(jìn)行了分析與比較,進(jìn)而研究分析了android平臺(tái)的系統(tǒng)架構(gòu)和組件模型,在此基礎(chǔ)上,基于android平臺(tái)設(shè)計(jì)和開發(fā),實(shí)現(xiàn)對(duì)android編程的理解與應(yīng)用,特別是在對(duì)于控件的應(yīng)用產(chǎn)生很深的理解。android平臺(tái)是目前最普遍的手機(jī)應(yīng)用平臺(tái),android實(shí)習(xí)可以讓我們與時(shí)代最新最廣泛的軟件開發(fā)聯(lián)系起來,鍛煉我們的學(xué)習(xí)能力,并且讓我們可以更加人性化,清晰的為用戶考慮。
二 實(shí)習(xí)內(nèi)容
此次實(shí)習(xí)是對(duì)android的簡單的應(yīng)用與開發(fā),也是對(duì)android各個(gè)控件的學(xué)習(xí)與實(shí)踐。在java的環(huán)境中對(duì)界面,應(yīng)用進(jìn)行編程。本次實(shí)習(xí)重點(diǎn)完成了安卓開發(fā)計(jì)算器、安卓開發(fā)學(xué)生注冊界面、安卓開發(fā)音樂播放器和安卓開發(fā)游戲連連看這四個(gè)項(xiàng)目。
做學(xué)生注冊界面的時(shí)候?qū)W習(xí)了linearlayout,tablelayout, absolutelayout, relativelayout四種布局,分別為線型布局,表格布局,絕對(duì)布局和相對(duì)布局,并知道了如何通過這四種布局的相互嵌套來使程序的界面更加的友好,更加的讓用戶接受。并簡單的了解了安卓目錄下src,gen,res等文件夾中的文件在項(xiàng)目中的作用,學(xué)習(xí)了切換界面的類intent。
然后學(xué)習(xí)了button,textview,seekbar等android開發(fā)的控件,并且將這些控件都運(yùn)用到了所作的學(xué)生注冊界面中。
做音樂播放器時(shí)學(xué)習(xí)了關(guān)于音樂文件的調(diào)用,也學(xué)習(xí)了在主文件main.java中先創(chuàng)建多媒體對(duì)象后,然后通過sd卡的文件路徑來創(chuàng)建一個(gè)播放資源,然后在創(chuàng)建按鈕對(duì)象,同時(shí)添加6個(gè)按鈕對(duì)象創(chuàng)造各自的偵聽方法,我們用listactivity來布局播放界面,用imagebutton來實(shí)現(xiàn)播放器的開始,暫停的操作。最后在開發(fā)連連看游戲時(shí),將前面所學(xué)的知識(shí)進(jìn)行綜合與加深,也學(xué)習(xí)到了新的函數(shù)與控件,該游戲主要包括classgameview(游戲視類,處理游戲中出現(xiàn)的情況,包括界面生成,算法等)classgameactivity(處理游戲中的消息提示),classstartactivity(游戲菜單設(shè)計(jì)),classsetactivity(菜單中游戲難度設(shè)定)這些類。比如用random函數(shù)來對(duì)連連看進(jìn)行重排列,還有用menu對(duì)游戲里的功能進(jìn)行操作,還有用之前學(xué)到關(guān)于多媒體對(duì)象的調(diào)用將連連看游戲進(jìn)行配樂。并且選用了網(wǎng)格對(duì)游戲界面進(jìn)行了規(guī)劃,以及對(duì)于相同圖片的的消去,必須滿足情況:1,圖片相同;2,兩個(gè)圖片之間必須沒有障礙物,可以用若干個(gè)垂直的直線連接起來;3,連接兩個(gè)圖片的直線線段的轉(zhuǎn)折點(diǎn)不超過兩個(gè)(連接線由x軸和y軸 的平行線組成,即無拐點(diǎn),一個(gè)拐點(diǎn),兩個(gè)拐點(diǎn))。
三 實(shí)習(xí)流程
此次對(duì)android應(yīng)用與開發(fā)的實(shí)習(xí)分為以下幾個(gè)階段。
首先,由老師帶領(lǐng)我們對(duì)android以及開發(fā)軟件eclimpse進(jìn)行了一個(gè)大概的了解與操作,并且對(duì)開發(fā)語言基礎(chǔ)java的基礎(chǔ)知識(shí)和編程思想進(jìn)行了一次簡單的復(fù)習(xí)與加深。
然后老師開始帶領(lǐng)我們學(xué)習(xí)android界面的開發(fā),并且告訴我們?nèi)绾慰梢詫⒔缑姹M量做得美觀與方便,告訴我們作為程序的開發(fā)人員要為用戶考慮,在這一階段,我們開始試著學(xué)習(xí)和操作android的簡單控件,包括textview,button等。
接著我們開始自己開發(fā)計(jì)算器,第一次將自己學(xué)到的控件進(jìn)行組合搭配,并且開始學(xué)會(huì)怎么去監(jiān)聽按鈕,通過對(duì)安卓常用類的學(xué)習(xí),我們完成了計(jì)算器的常用功能。然而,對(duì)于計(jì)算機(jī)功能的實(shí)現(xiàn),我感覺自己還沒有辦法做到自己想到的所有功能這讓我對(duì)android更加滿興趣的學(xué)習(xí)下去。
當(dāng)初步接觸到了控件的開發(fā)與搭配后,我們開始開發(fā)學(xué)生注冊界面,并且將所輸入的信息反應(yīng)到下一個(gè)界面中,在做這個(gè)的時(shí)候,我們又新學(xué)習(xí)了seekbar,checkbox等控件,讓我們進(jìn)一步學(xué)習(xí)了android中的常用控件。
然后是對(duì)音樂播放器的開發(fā),此階段我開始真正的接觸到了生活中自己經(jīng)常用到的軟件的開發(fā),并且也讓我第一次感覺到需要將自己開發(fā)的軟件做的美觀,于是我們開始學(xué)會(huì)調(diào)用背景圖片,調(diào)用歌曲,并且學(xué)習(xí)了radiobutton控件,以及播放器中對(duì)音樂的下跳,循環(huán)播放等功能的學(xué)習(xí)與實(shí)現(xiàn)。
最后是開發(fā)游戲“連連看”,在此之前老師先向我們介紹了對(duì)于圖片的處理等相關(guān)知識(shí)。
對(duì)于連連看,我們很熟悉,也明白其中的游戲規(guī)則;然而把它們用計(jì)算機(jī)語言展示出來卻比用文字語言展示出來要難上很多。因此這個(gè)項(xiàng)目也是用時(shí)最多的一個(gè)項(xiàng)目,期間融合了算法設(shè)計(jì)以及之前幾個(gè)項(xiàng)目所學(xué)的知識(shí)。雖然在參考資料
下,完成了項(xiàng)目;但是也存在很多不足。當(dāng)然也有自己特點(diǎn)的地方,比如添加了成功幾步就獎(jiǎng)勵(lì)時(shí)間,比如游戲的配備音樂,以及音樂的開關(guān)按鈕。
四 實(shí)習(xí)心得
通過這三個(gè)星期的畢業(yè)實(shí)習(xí),我學(xué)到了很多關(guān)于android系統(tǒng)的技術(shù)知識(shí),雖然實(shí)習(xí)的時(shí)間短暫但我仍舊收獲很多。首先,在每一天我認(rèn)識(shí)了新的控件及相關(guān)的使用;其次,我們了解android系統(tǒng)的歷史和今后的發(fā)展以及相關(guān)android系統(tǒng)的總體構(gòu)成,然后,我們學(xué)會(huì)了android編譯系統(tǒng)的搭建,以及在這個(gè)環(huán)境下編寫代碼,最后制作了簡單的音樂播放器以及連連看游戲等軟件;在這個(gè)過程中,我真正的了解到了理論與實(shí)際相結(jié)合的必要性以及獨(dú)立思考的重要性。
生成實(shí)習(xí)是為將來打基礎(chǔ)的重要階段,珍惜自己每一個(gè)工作的機(jī)會(huì),不論什么人,什么學(xué)歷,從事什么工作,好好的表現(xiàn)、展示自己的能力,不要錯(cuò)過好的機(jī)遇。沒有一件事情是輕輕松松的,但每一件事都是讓人成長的,經(jīng)歷一段過程,喜悅或是艱辛,盡管經(jīng)歷的方式不盡相同,但它的結(jié)果是相同的,我們都會(huì)因涉事而成長。通過這次實(shí)習(xí),開闊了我的視野。這次的實(shí)習(xí)初步為我解開了安卓的神秘面紗,對(duì)于腦海中的那個(gè)可望而不可即,可玩兒不可解的安卓平臺(tái)初步走入了它的神秘世界;既感到興奮又感到驚奇,更感到壓力,方知知識(shí)海洋的廣大,學(xué)員任重道遠(yuǎn)。這次實(shí)習(xí)讓我看清自己需要什么,同時(shí)也讓我吸取了許多學(xué)習(xí)以及和人相處的經(jīng)驗(yàn),這將對(duì)我以后踏足社會(huì),謀生立業(yè)有很好的借鑒和幫助作用。今后,我會(huì)珍惜這些寶貴的經(jīng)驗(yàn),在人生的旅途中勇往直前,迎接時(shí)代的挑戰(zhàn)。篇四:安卓實(shí)訓(xùn)報(bào)告
實(shí)習(xí)報(bào)告書
專 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) 系 別
報(bào)告題目
安卓
報(bào)告人 班
級(jí)
指導(dǎo)教師
帶隊(duì)教師 實(shí)習(xí)時(shí)間 實(shí)習(xí)地點(diǎn)
教務(wù)處監(jiān)制 篇五:安卓記事本實(shí)習(xí)報(bào)告 android記事本的設(shè)計(jì)與實(shí)現(xiàn) ——sqlite數(shù)據(jù)庫的設(shè)計(jì)和操作
學(xué)生姓名: 指導(dǎo)老師:
摘 要: 隨著智能手機(jī)的快速普及,智能手機(jī)操作系統(tǒng)市場風(fēng)生水起。android的最大特點(diǎn)是其開放性體系架構(gòu),不僅具有非常好的開發(fā)、調(diào)試環(huán)境,而且還支持各種可擴(kuò)展的用戶體驗(yàn),包括豐富的圖形組件、多媒體支持功能以及強(qiáng)大的瀏覽器。
本文主要介紹了一款android記事本sqlite數(shù)據(jù)庫模塊的設(shè)計(jì)與實(shí)現(xiàn)。根據(jù)人們?nèi)粘I畹男枰?,該記事本的?nèi)容包括運(yùn)用sqlite封裝好的方法對(duì)數(shù)據(jù)進(jìn)行添加、刪除、修改、更新和密碼進(jìn)入等功能,并且將查詢到的數(shù)據(jù)傳遞給activity,具有一定的實(shí)用性。關(guān)鍵詞: 記事本;android;手勢密碼;sqlite;activity design and implementation of android notepad — design and operation of the sqlite database student name: advisor: this paper describes the design and implementation of an android notepad sqlite database module.according to the needs of daily life, including the contents of the notepad good way to use sqlite package data to add, delete, modify, update and password to access other functions, and query the data is passed to the activity, has a certain practicality.keywords notepad;android;gesture password;sqlite;activity 目錄 目錄.....................................................................................................................................................................3 1.引言...............................................................................................................................................................4 1.1 項(xiàng)目背景..............................................................................................................................................4 1.2 項(xiàng)目意義..............................................................................................................................................4 1.3 系統(tǒng)可行性分析..................................................................................................................................5 1.4 系統(tǒng)主要任務(wù)....................................................................................................................................5 2.系統(tǒng)方案設(shè)計(jì).................................................................................................................................................6 2.1 搭建android開發(fā)平臺(tái).....................................................................................................................6 2.2 sqlite數(shù)據(jù)庫簡介............................................................................................................................7 2.3 總體方案設(shè)計(jì)...................................................................................................................................10 3.系統(tǒng)軟件開發(fā)環(huán)境.......................................................................................................................................10 3.1 windows開發(fā)環(huán)境...........................................................................................................................10 3.2 java集成開發(fā)環(huán)境eclipse...........................................................................................................11 3.3 adt plugin for eclipse...............................................................................................................11 4.程序設(shè)計(jì).......................................................................................................................................................12 4.1 程序詳細(xì)設(shè)計(jì)...................................................................................................................................12 4.2 程序運(yùn)行及效果截圖.......................................................................................................................13 4.3 對(duì)sqlite數(shù)據(jù)庫增刪改查代碼實(shí)現(xiàn).............................................................................................18 5.工作總結(jié)與展望...........................................................................................................................................23 參考文獻(xiàn)...........................................................................................................................................................24 1.引言
1.1 項(xiàng)目背景 window操作系統(tǒng)的誕生成就了微軟帝國,同時(shí)也造就了pc時(shí)代的繁榮,然而如今,以android和iphone手機(jī)為代表的智能移動(dòng)設(shè)備的發(fā)明與互聯(lián)網(wǎng)云技術(shù)的興起卻敲響了pc時(shí)代的喪鐘!這也預(yù)示著移動(dòng)互聯(lián)網(wǎng)時(shí)代(3g)已經(jīng)來臨。在這個(gè)互聯(lián)網(wǎng)繁榮的時(shí)代,有一顆超新星,以它獨(dú)特性能優(yōu)勢與人性化的ui設(shè)計(jì)使它在短短的幾年迅速的占領(lǐng)了智能移動(dòng)設(shè)備的市場份額,它就是google的android!這也意味著google在移動(dòng)互聯(lián)網(wǎng)時(shí)代開始搶跑并領(lǐng)跑。
通過調(diào)查顯示,大部分消費(fèi)者都會(huì)使用手機(jī)記事本功能。隨著手機(jī)記事本功能的不斷加強(qiáng)與完善,手機(jī)記事本對(duì)于人們的意義,已不僅僅像一般記事簿一樣簡單記錄,而是向著更個(gè)性化人性化的方向發(fā)展。android[1]系統(tǒng)是開源的,它以迅猛的姿勢已經(jīng)占領(lǐng)了全球一半多的市場。記事本在生活和工作也日益凸顯出它的重要性,它能更好地幫助人們更好地管理自己的工作和生活,極大的方便了人們的生活。因其開源,我們可以在之上開發(fā)安卓記事本軟件,同時(shí)這也符合廣大的市場需求。1.2 項(xiàng)目意義 近幾年來隨著3g技術(shù)成熟和智能手機(jī)的不斷普及,移動(dòng)應(yīng)用的需求與日俱增,移動(dòng)應(yīng)用開發(fā)成為當(dāng)下最熱門的技術(shù)之一。在google和android手機(jī)聯(lián)盟的共同推動(dòng)下,android在眾多移動(dòng)應(yīng)用開發(fā)平臺(tái)中脫穎而出。android是一個(gè)真正意義上的開源智能手機(jī)操作系統(tǒng),該系統(tǒng)一經(jīng)推出立即受到全球移動(dòng)設(shè)備廠商和開發(fā)者的熱捧。
我們都知道,無論是產(chǎn)品還是技術(shù),商業(yè)應(yīng)用都是它最大的發(fā)展動(dòng)力。安卓如此受到廠商與開發(fā)者的青睞,它的前景是一片光明的。國內(nèi)對(duì)于安卓這方面的市場還沒有完全開發(fā)出來。只要我們努力學(xué)習(xí)安卓,對(duì)理想,對(duì)生活都會(huì)有很大的補(bǔ)益。因此,開發(fā)這樣一套很簡單的記事本軟件對(duì)我們來講是一件很有必要的事情,在下面的各章中我們將以開發(fā)安卓記事本軟件為例,談?wù)勂溟_發(fā)過程和所涉及到的問題及解決方法。1.3 系統(tǒng)可行性分析 1.3.1 課題調(diào)研
(1)與實(shí)踐活動(dòng)和相關(guān)的文件和資料由作者本人網(wǎng)絡(luò)查找,以及老師幫助。
(2)具有遇到問題,具有獨(dú)立思考,耐心鉆研,向老師虛心求教的良好態(tài)度。
(3)關(guān)于技術(shù)方面的難題,跟指導(dǎo)老師面談。1.3.2 可行性分析
(1)技術(shù)可行性:本項(xiàng)目僅需要一臺(tái)裝有eclipse及配置好android開發(fā)環(huán)境的計(jì)算機(jī)即可,對(duì)計(jì)算機(jī)本身有一定的要求,它可以使用windows xp及其以上版本,mac os,linux等操作系統(tǒng)。
(2)經(jīng)濟(jì)可行性:由于本軟件開發(fā)只有三個(gè)人,三臺(tái)電腦就行,基本不需要太大的成本.在經(jīng)濟(jì)上完全可行。
(3)操作可行性:界面設(shè)計(jì)時(shí)充分考慮用戶的習(xí)慣以及手機(jī)方面的局限性,程序必須要很簡單;本程序只涉及到開發(fā)環(huán)境配置,安卓組件的熟悉,以及安卓平臺(tái)上的數(shù)據(jù)存儲(chǔ)。并沒有太大的難度,所以,該項(xiàng)目完全有可操作性。1.4 系統(tǒng)主要任務(wù)(1)設(shè)計(jì)實(shí)現(xiàn)”添加新記事”,”編輯內(nèi)容”,”刪除當(dāng)前記事”這三個(gè)主要的功能模塊。(2)分析并解決實(shí)現(xiàn)中的若干技術(shù)問題,像組件的選擇以及保存方式的選擇。(3)進(jìn)行測試并分析結(jié)果。
當(dāng)然記事本的基本功能,建立新文件、修改現(xiàn)有文件、刪除文件、查看已建立文件等功能是首先必須完成的。可以編寫內(nèi)容,編輯及刪除,讓記事的方式多樣化。記事本軟件的界面設(shè)計(jì)力求簡潔,給人清爽的感覺,讓圖標(biāo)及按鈕以協(xié)調(diào)的布局呈現(xiàn)出了,菜單功能要相對(duì)簡單,讓用戶操作方便,從而讓用戶體會(huì)到此款軟件的實(shí)用。因?yàn)樯鲜霾僮魃婕暗降臄?shù)據(jù)量不大,所以將數(shù)據(jù)庫定為安卓系統(tǒng)自帶的sqlite數(shù)據(jù)庫[3],所以這就要求我們要實(shí)現(xiàn)在sqlite數(shù)據(jù)庫上面的增刪改查。不少人希望自己記事本上面的內(nèi)容不被被人查看,所以要以設(shè)置密碼的形式來實(shí)現(xiàn)保密。鑒于各種各樣的密碼實(shí)現(xiàn)方式,我們選擇了用戶體驗(yàn)最好的手勢解鎖方式。以及采用了更加友好的時(shí)間顯示方式,讓用戶在使用過程中更加的舒服方便。記事本軟件要內(nèi)存占用適中,cpu占用也是適中,這樣讓軟件運(yùn)行順暢。
第三篇:安卓記事本實(shí)習(xí)報(bào)告
Android記事本的設(shè)計(jì)與實(shí)現(xiàn)
Android記事本的設(shè)計(jì)與實(shí)現(xiàn)
——SQLite數(shù)據(jù)庫的設(shè)計(jì)和操作
學(xué)生姓名:
指導(dǎo)老師:
摘 要: 隨著智能手機(jī)的快速普及,智能手機(jī)操作系統(tǒng)市場風(fēng)生水起。Android的最大特點(diǎn)是其開放性體系架構(gòu),不僅具有非常好的開發(fā)、調(diào)試環(huán)境,而且還支持各種可擴(kuò)展的用戶體驗(yàn),包括豐富的圖形組件、多媒體支持功能以及強(qiáng)大的瀏覽器。
本文主要介紹了一款A(yù)ndroid記事本SQLite數(shù)據(jù)庫模塊的設(shè)計(jì)與實(shí)現(xiàn)。根據(jù)人們?nèi)粘I畹男枰?,該記事本的?nèi)容包括運(yùn)用SQLite封裝好的方法對(duì)數(shù)據(jù)進(jìn)行添加、刪除、修改、更新和密碼進(jìn)入等功能,并且將查詢到的數(shù)據(jù)傳遞給activity,具有一定的實(shí)用性。關(guān)鍵詞: 記事本;Android;手勢密碼;SQLite;Activity
Android記事本的設(shè)計(jì)與實(shí)現(xiàn)
Design and implementation of Android
notepad — Design and operation of the SQLite database
Student name:
Advisor:
Abstract
With the rapid proliferation of smart phones, smart phone operating system market burgeoned.Android's biggest feature is its open architecture, not only has a very good development, debugging environment, but also supports a variety of scalable user experience, including rich graphical components, multimedia support and powerful browser.This paper describes the design and implementation of an Android notepad SQLite database module.According to the needs of daily life, including the contents of the notepad good way to use SQLite package data to add, delete, modify, update and password to access other functions, and query the data is passed to the activity, has a certain practicality.Keywords Notepad;Android;gesture password;SQLite;Activity 2
Android記事本的設(shè)計(jì)與實(shí)現(xiàn)
目錄
目錄.....................................................................................................................................................................3 1.引言...............................................................................................................................................................4 1.1 項(xiàng)目背景..............................................................................................................................................4 1.2 項(xiàng)目意義..............................................................................................................................................4 1.3 系統(tǒng)可行性分析..................................................................................................................................5 1.4 系統(tǒng)主要任務(wù)....................................................................................................................................5 2.系統(tǒng)方案設(shè)計(jì).................................................................................................................................................6 2.1 搭建Android開發(fā)平臺(tái).....................................................................................................................6 2.2 SQLite數(shù)據(jù)庫簡介............................................................................................................................7 2.3 總體方案設(shè)計(jì)...................................................................................................................................10 3.系統(tǒng)軟件開發(fā)環(huán)境.......................................................................................................................................10 3.1 Windows開發(fā)環(huán)境...........................................................................................................................10 3.2 JAVA集成開發(fā)環(huán)境eclipse...........................................................................................................11 3.3 ADT Plugin for Eclipse...............................................................................................................11 4.程序設(shè)計(jì).......................................................................................................................................................12 4.1 程序詳細(xì)設(shè)計(jì)...................................................................................................................................12 4.2 程序運(yùn)行及效果截圖.......................................................................................................................13 4.3 對(duì)SQLite數(shù)據(jù)庫增刪改查代碼實(shí)現(xiàn).............................................................................................18 5.工作總結(jié)與展望...........................................................................................................................................23 參考文獻(xiàn)...........................................................................................................................................................24
Android記事本的設(shè)計(jì)與實(shí)現(xiàn)
1.引言
1.1 項(xiàng)目背景
Window操作系統(tǒng)的誕生成就了微軟帝國,同時(shí)也造就了PC時(shí)代的繁榮,然而如今,以Android和iPhone手機(jī)為代表的智能移動(dòng)設(shè)備的發(fā)明與互聯(lián)網(wǎng)云技術(shù)的興起卻敲響了PC時(shí)代的喪鐘!這也預(yù)示著移動(dòng)互聯(lián)網(wǎng)時(shí)代(3G)已經(jīng)來臨。
在這個(gè)互聯(lián)網(wǎng)繁榮的時(shí)代,有一顆超新星,以它獨(dú)特性能優(yōu)勢與人性化的UI設(shè)計(jì)使它在短短的幾年迅速的占領(lǐng)了智能移動(dòng)設(shè)備的市場份額,它就是Google的Android!這也意味著Google在移動(dòng)互聯(lián)網(wǎng)時(shí)代開始搶跑并領(lǐng)跑。
通過調(diào)查顯示,大部分消費(fèi)者都會(huì)使用手機(jī)記事本功能。隨著手機(jī)記事本功能的不斷加強(qiáng)與完善,手機(jī)記事本對(duì)于人們的意義,已不僅僅像一般記事簿一樣簡單記錄,而是向著更個(gè)性化人性化的方向發(fā)展。Android[1]系統(tǒng)是開源的,它以迅猛的姿勢已經(jīng)占領(lǐng)了全球一半多的市場。記事本在生活和工作也日益凸顯出它的重要性,它能更好地幫助人們更好地管理自己的工作和生活,極大的方便了人們的生活。因其開源,我們可以在之上開發(fā)安卓記事本軟件,同時(shí)這也符合廣大的市場需求。
1.2 項(xiàng)目意義
近幾年來隨著3G技術(shù)成熟和智能手機(jī)的不斷普及,移動(dòng)應(yīng)用的需求與日俱增,移動(dòng)應(yīng)用開發(fā)成為當(dāng)下最熱門的技術(shù)之一。在Google和Android手機(jī)聯(lián)盟的共同推動(dòng)下,Android在眾多移動(dòng)應(yīng)用開發(fā)平臺(tái)中脫穎而出。Android是一個(gè)真正意義上的開源智能手機(jī)操作系統(tǒng),該系統(tǒng)一經(jīng)推出立即受到全球移動(dòng)設(shè)備廠商和開發(fā)者的熱捧。
我們都知道,無論是產(chǎn)品還是技術(shù),商業(yè)應(yīng)用都是它最大的發(fā)展動(dòng)力。安卓如此受到廠商與開發(fā)者的青睞,它的前景是一片光明的。國內(nèi)對(duì)于安卓這方面的市場還沒有完全開發(fā)出來。只要我們努力學(xué)習(xí)安卓,對(duì)理想,對(duì)生活都會(huì)有很大的補(bǔ)益。因此,開發(fā)這樣一套很簡單的記事本軟件對(duì)我們來講是一件很有必要的事情,在下面的各章中我們將以開發(fā)安卓記事本軟件為例,談?wù)勂溟_發(fā)過程和所涉及到的問題及解決方法。
Android記事本的設(shè)計(jì)與實(shí)現(xiàn)
1.3 系統(tǒng)可行性分析
1.3.1 課題調(diào)研
(1)與實(shí)踐活動(dòng)和相關(guān)的文件和資料由作者本人網(wǎng)絡(luò)查找,以及老師幫助。
(2)具有遇到問題,具有獨(dú)立思考,耐心鉆研,向老師虛心求教的良好態(tài)度。(3)關(guān)于技術(shù)方面的難題,跟指導(dǎo)老師面談。1.3.2 可行性分析
(1)技術(shù)可行性:本項(xiàng)目僅需要一臺(tái)裝有Eclipse及配置好Android開發(fā)環(huán)境的計(jì)算機(jī)即可,對(duì)計(jì)算機(jī)本身有一定的要求,它可以使用Windows Xp及其以上版本,Mac os,Linux等操作系統(tǒng)。
(2)經(jīng)濟(jì)可行性:由于本軟件開發(fā)只有三個(gè)人,三臺(tái)電腦就行,基本不需要太大的成本.在經(jīng)濟(jì)上完全可行。
(3)操作可行性:界面設(shè)計(jì)時(shí)充分考慮用戶的習(xí)慣以及手機(jī)方面的局限性,程序必須要很簡單;本程序只涉及到開發(fā)環(huán)境配置,安卓組件的熟悉,以及安卓平臺(tái)上的數(shù)據(jù)存儲(chǔ)。并沒有太大的難度,所以,該項(xiàng)目完全有可操作性。
1.4 系統(tǒng)主要任務(wù)
(1)設(shè)計(jì)實(shí)現(xiàn)”添加新記事”,”編輯內(nèi)容”,”刪除當(dāng)前記事”這三個(gè)主要的功能模塊。
(2)分析并解決實(shí)現(xiàn)中的若干技術(shù)問題,像組件的選擇以及保存方式的選擇。(3)進(jìn)行測試并分析結(jié)果。
當(dāng)然記事本的基本功能,建立新文件、修改現(xiàn)有文件、刪除文件、查看已建立文件等功能是首先必須完成的??梢跃帉憙?nèi)容,編輯及刪除,讓記事的方式多樣化。記事本軟件的界面設(shè)計(jì)力求簡潔,給人清爽的感覺,讓圖標(biāo)及按鈕以協(xié)調(diào)的布局呈現(xiàn)出了,菜單功能要相對(duì)簡單,讓用戶操作方便,從而讓用戶體會(huì)到此款軟件的實(shí)用。因?yàn)樯鲜霾僮魃婕暗降臄?shù)據(jù)量不大,所以將數(shù)據(jù)庫定為安卓系統(tǒng)自帶的SQLite數(shù)據(jù)庫[3],所以這就要求我們要實(shí)現(xiàn)在SQLite數(shù)據(jù)庫上面的增刪改查。不少人希望自己記事本上面的內(nèi)容不被被人查看,所以要以設(shè)置密碼的形式來實(shí)現(xiàn)保密。鑒于各種各樣的密碼實(shí)現(xiàn)方式,我們選擇了用戶體驗(yàn)最好的手勢解鎖方式。以及采用了更加友好的時(shí)間顯示方式,讓用戶在使用過程中更加的舒服方便。記事本軟件要內(nèi)存占用適中,CPU占用也是適中,這樣讓軟件運(yùn)行順暢。
Android記事本的設(shè)計(jì)與實(shí)現(xiàn)
2.系統(tǒng)方案設(shè)計(jì)
2.1 搭建Android開發(fā)平臺(tái)
2.1.1 安裝包下載(1)java JDK下載
進(jìn)入http://java.sun.com/javase/downloads/index.jsp選擇Download JDK只下載JDK,無需下載jre。
(2)Eclipse下載
進(jìn)入http://www.tmdps.cn/downloads我們選擇第一個(gè),即Eclipse IDE for java EE Developers。
(3)Android SDK下載
說明:Android SDK兩種下載版本,一種是包含具體版本的SDK的,一種是只有升級(jí)工具,而不包含具體的SDK版本,完全版下載(Android sdk 2.01)。
2.1.2 軟件安裝(1)安裝JDK 安裝完成即可。(2)解壓Eclipse Eclipse無需安裝,解壓后,直接打開就行。(3)解壓Android SDK 這個(gè)也無需安裝,解壓后供后面使。(4)配置Eclipse 打開Eclipse,在菜單欄上選擇 help->Install New SoftWare點(diǎn)擊Add按鈕,出現(xiàn)如下界面,輸入網(wǎng)址:https://dl-ssl.google.com/android/eclipse/(如果出錯(cuò),請(qǐng)將https改成http),名稱:Android(這里可以自定義),點(diǎn)擊OK,點(diǎn)擊Next按鈕,點(diǎn)擊Next按鈕,出現(xiàn)如下界面:選擇I accept the terms of the license agreements,點(diǎn)擊Next,進(jìn)入安裝插件界面安裝完成后,點(diǎn)擊Yes按鈕,重啟Eclips。
(5)配置Android SDK 點(diǎn)擊菜單window->preferences選擇你的Android SDK解壓后的目錄,選錯(cuò)了就會(huì)報(bào) 6
Android記事本的設(shè)計(jì)與實(shí)現(xiàn)
錯(cuò),這個(gè)是升級(jí)工具,目前還沒有一個(gè)版本的SDK。
升級(jí)SDK版本,選擇菜單window->Android sdk and avd manager。選擇update all按鈕,出現(xiàn)如下界面選擇左邊的某一項(xiàng),點(diǎn)擊accept表示安裝,點(diǎn)擊reject表示不安裝,我這里只選了SDK 2.1和samples for api 7。自己可以任意自定義,確定后,選擇install按鈕,進(jìn)入安裝界面:安裝完成。
(6)新建AVD(Android vitural device)和上面一樣,進(jìn)入Android sdk and avd manager,選中Vitural Devices 在點(diǎn)擊New按鈕后,名稱可以隨便取,target選擇你需要的SDK版本,SD卡大小自定義,點(diǎn)擊Create AVD,顯示創(chuàng)建AVD完畢。
(7)新建Android項(xiàng)目
選擇菜單file->new->other 進(jìn)入如下界面:選擇新建Android Project項(xiàng)目,點(diǎn)擊Next按鈕,進(jìn)入如下界面名稱自定義,應(yīng)用程序名自定義,報(bào)名必須包含一個(gè)點(diǎn)以上,min SDK version里面必須輸入整數(shù)
(8)配置運(yùn)行
右鍵項(xiàng)目->Run as->Run Configuration該界面,點(diǎn)擊Browse按鈕,選擇你要運(yùn)行的項(xiàng)目選擇Target切換到以下界面該界面選擇運(yùn)行的AVD,將AVD前面的方框設(shè)置為選擇狀態(tài)。
(9)測試項(xiàng)目運(yùn)行右鍵項(xiàng)目名稱->run as->Android Application即可啟動(dòng)運(yùn)行該Android程序。
2.2 SQLite數(shù)據(jù)庫簡介
SQLite是一款輕型的數(shù)據(jù)庫,是遵守ACID的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它包含在一個(gè)相對(duì)小的C庫中。它是D.RichardHipp建立的公有領(lǐng)域項(xiàng)目。它的設(shè)計(jì)目標(biāo)是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設(shè)備中,可能只需要幾百K的內(nèi)存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統(tǒng),同時(shí)能夠跟很多程序語言相結(jié)合,比如 Tcl、C#、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開源的世界著名數(shù)據(jù)庫管理系統(tǒng)來講,它的處理速度比他們都快。SQLite第一個(gè)Alpha版本誕生于2000年5月。至2015年已經(jīng)有15個(gè)年頭,SQLite也迎來了一個(gè)版本SQLite 3已經(jīng)發(fā)布。
Android記事本的設(shè)計(jì)與實(shí)現(xiàn)
2.2.1 SQLite功能特性 1.ACID事務(wù)
2.零配置–無需安裝和管理配置
3.儲(chǔ)存在單一磁盤文件中的一個(gè)完整的數(shù)據(jù)庫 4.數(shù)據(jù)庫文件可以在不同字節(jié)順序的機(jī)器間自由的共享 5.支持?jǐn)?shù)據(jù)庫大小至2TB 6.足夠小,大致13萬行C代碼,4.43M 7.比一些流行的數(shù)據(jù)庫在大部分普通數(shù)據(jù)庫操作要快 8.簡單,輕松的API 9.包含TCL綁定,同時(shí)通過Wrapper支持其他語言的綁定 10.良好注釋的源代碼,并且有著90%以上的測試覆蓋率 11.獨(dú)立:沒有額外依賴
12.源碼完全的開源,你可以用于任何用途,包括出售它
13.支持多種開發(fā)語言,C, C++, PHP, Perl, Java, C#,Python, Ruby等
同時(shí)它還支持事務(wù)處理功能等等。也有人說它象Microsoft的Access,有時(shí)候真的覺得有點(diǎn)象,但是事實(shí)上它們區(qū)別很大。比如SQLite 支持跨平臺(tái),操作簡單,能夠使用很多語言直接創(chuàng)建數(shù)據(jù)庫,而不象Access一樣需要Office的支持。如果你是個(gè)很小型的應(yīng)用,或者你想做嵌入式開發(fā),沒有合適的數(shù)據(jù)庫系統(tǒng),那么你可以考慮使用SQLite。到2013年10月17日最新版本是 3.8.1。能在上面獲得源代碼和文檔。同時(shí)因?yàn)閿?shù)據(jù)庫結(jié)構(gòu)簡單,系統(tǒng)源代碼也不是很多,也適合想研究數(shù)據(jù)庫系統(tǒng)開發(fā)的專業(yè)人士.2.2.2 Java連接SQLite數(shù)據(jù)庫:
publicclass TestSQLite { publicstaticvoid main(String[] args){ try { 8
Android記事本的設(shè)計(jì)與實(shí)現(xiàn)
//連接SQLite的JDBC Class.forName(“org.sqlite.JDBC”);//建立一個(gè)數(shù)據(jù)庫名zieckey.db的連接,如果不存在就在當(dāng)前目錄下創(chuàng)建之 Connection conn =DriverManager.getConnection(“jdbc:sqlite:zieckey.db”);Statement stat = conn.createStatement();stat.executeUpdate(“create table tbl1(name varchar(20), salary int);”);//創(chuàng)建一個(gè)表,兩列 stat.executeUpdate(“insert into tbl1values('ZhangSan',8000);”);//插入數(shù)據(jù) stat.executeUpdate(“insert into tbl1values('LiSi',7800);”);stat.executeUpdate(“insert into tbl1values('WangWu',5800);”);stat.executeUpdate(“insert into tbl1values('ZhaoLiu',9100);”);ResultSet rs = stat.executeQuery(“select * from tbl1;”);//查詢數(shù)據(jù) while(rs.next()){//將查詢到的數(shù)據(jù)打印出來
System.out.print(“name = ”+ rs.getString(“name”)+“ ”);//列屬性一 System.out.println(“salary = ”+ rs.getString(“salary”));//列屬性二 } rs.close();conn.close();//結(jié)束數(shù)據(jù)庫的連接 } catch(Exception e){ e.printStackTrace();} } }
Android記事本的設(shè)計(jì)與實(shí)現(xiàn)
2.3 總體方案設(shè)計(jì)
在本模塊中,主要設(shè)計(jì)到三個(gè)文件,第一個(gè)是與數(shù)據(jù)庫表相對(duì)應(yīng)的實(shí)體類,第二個(gè)是創(chuàng)建數(shù)據(jù)庫、創(chuàng)建表的類,第三個(gè)是對(duì)應(yīng)的增刪改查的方法。下面是整個(gè)項(xiàng)目的總體方案設(shè)計(jì):
本次Android項(xiàng)目中運(yùn)用的技術(shù)比較廣,從基礎(chǔ)的Activity、SQLite到開源的手勢密碼組件,因此將項(xiàng)目盡可能完美的整合到一起成了很重要的一部,如何將總體方案設(shè)計(jì)的規(guī)范以及高校是必不可少。
從人員安排上,我們?nèi)朔诸^進(jìn)行,各不影響,我主要負(fù)責(zé)的是Activity的展示,也就是將其他組員的勞動(dòng)成果展示出來,那么如何美觀以及高性能的展示變成了難點(diǎn)。
從設(shè)計(jì)模式上,我們嚴(yán)格遵循Android Design的規(guī)格,并且使用Google在I/O大會(huì)上推薦的一些開發(fā)方法,從而盡可能的講模塊規(guī)范化。
從時(shí)間分配上,我們進(jìn)行了敏捷性開發(fā),充分合理的利用了大家的時(shí)間。
3.系統(tǒng)軟件開發(fā)環(huán)境
3.1 Windows開發(fā)環(huán)境
1.用戶界面統(tǒng)一、友好、漂亮:
Windows應(yīng)用程序大多符合IBM公司提出的CUA(Common User Acess)標(biāo)準(zhǔn),所有的程序擁有相同的或相似的基本外觀,包括窗口、菜單、工具條等。用戶只要掌握其中一個(gè),就不難學(xué)會(huì)其他軟件,從而降低了用戶培訓(xùn)學(xué)習(xí)的費(fèi)用。2.豐富的設(shè)備無關(guān)的圖形操作:
Windows的圖形設(shè)備接口(GDI)提供了豐富的圖形操作函數(shù),可以繪制出諸如線、圓、框等的幾何圖形,并支持各種輸出設(shè)備。設(shè)備無關(guān)意味著在針式打印機(jī)上和高分辨率的顯示器上都能顯示出相同效果的圖形。3.多任務(wù):
Windows是一個(gè)多任務(wù)的操作環(huán)境,它允許用戶同時(shí)運(yùn)行多個(gè)應(yīng)用程序,或在一個(gè)程序中同時(shí)做幾件事情。每個(gè)程序在屏幕上占據(jù)一塊矩形區(qū)域,這個(gè)區(qū)域稱為窗口,窗口是可以重疊的。用戶可以移動(dòng)這些窗口,或在不同的應(yīng)用程序之間進(jìn)行切換,并可以在程序
Android記事本的設(shè)計(jì)與實(shí)現(xiàn)
之間進(jìn)行手工和自動(dòng)的數(shù)據(jù)交換和通信。
雖然同一時(shí)刻計(jì)算機(jī)可以運(yùn)行多個(gè)應(yīng)用程序,但僅有一個(gè)是處于活動(dòng)狀態(tài)的,其標(biāo)題欄呈現(xiàn)高亮顏色。一個(gè)活動(dòng)的程序是指當(dāng)前能夠接收用戶鍵盤輸入的程序。
3.2 JAVA集成開發(fā)環(huán)境eclipse Eclipse 是一個(gè)開放源代碼的、基于Java 的可擴(kuò)展開發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,Eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括Java開發(fā)工具(Java Development Kit,JDK)。
雖然大多數(shù)用戶很樂于將 Eclipse 當(dāng)作 Java 集成開發(fā)環(huán)境(IDE)來使用,但 Eclipse 的目標(biāo)卻不僅限于此。Eclipse 還包括插件開發(fā)環(huán)境(Plug-in Development Environment,PDE),這個(gè)組件主要針對(duì)希望擴(kuò)展 Eclipse 的軟件開發(fā)人員,因?yàn)樗试S他們構(gòu)建與 Eclipse 環(huán)境無縫集成的工具。由于 Eclipse 中的每樣?xùn)|西都是插件,對(duì)于給 Eclipse 提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場所。
這種平等和一致性并不僅限于 Java 開發(fā)工具。盡管 Eclipse 是使用Java語言開發(fā)的,但它的用途并不限于 Java 語言;例如,支持諸如C/C++、COBOL、PHP等編程語言的插件已經(jīng)可用,或預(yù)計(jì)將會(huì)推出。Eclipse 框架還可用來作為與軟件開發(fā)無關(guān)的其他應(yīng)用程序類型的基礎(chǔ)。
[7]
[6]3.3 ADT Plugin for Eclipse ADT Plugin for Eclipse 是Eclipse插件,作用是關(guān)聯(lián)Android SDK,使Eclipse能夠創(chuàng)建Android工程。
Android開發(fā)工具(ADT)是一個(gè)Eclipse IDE,目的是給你一個(gè)強(qiáng)大的插件,集成環(huán)境中構(gòu)建Android應(yīng)用程序。
Eclipse的ADT延伸的能力,可以快速建立新的Android
[10]
[9]
項(xiàng)目,創(chuàng)建一個(gè)應(yīng)用程序的用戶界面,添加組件基于Android框架API,使用Android SDK工具調(diào)試程序,甚至出口簽名(或無)APKs以分發(fā)你的應(yīng)用。
Android記事本的設(shè)計(jì)與實(shí)現(xiàn)
4.程序設(shè)計(jì)
4.1 程序詳細(xì)設(shè)計(jì)
開始繪制修改密碼否繪制密碼是保存or繪制成功新建記事本成功失敗登陸更新記事本刪除記事本
圖4.1 系統(tǒng)流程圖
安卓記事本本人涉及到的是SQLite的設(shè)計(jì)與操作,主要設(shè)計(jì)到的文件有三個(gè)。分別是:MemoItem.java(與數(shù)據(jù)庫表相對(duì)應(yīng)的實(shí)體類)、MemoService.java(對(duì)SQLite數(shù)據(jù)庫進(jìn)行增刪改查的方法)、DBHelper.java(建立數(shù)據(jù)庫、建立表的方法)。
在SQLite上建數(shù)據(jù)庫,建表主要要繼承SQLiteOpenHelper這個(gè)類。在構(gòu)造方法中實(shí)現(xiàn)建數(shù)據(jù)庫,在onCreate方法中進(jìn)行建表。
實(shí)現(xiàn)數(shù)據(jù)的增刪改查,先用dbOpenHelper獲得WritableDatabase,再進(jìn)行相應(yīng)的操作。還要用到cursor來移動(dòng)游標(biāo),MemoItem返回每一條記錄,List
Android記事本的設(shè)計(jì)與實(shí)現(xiàn)
在設(shè)計(jì)SQLite數(shù)據(jù)庫的同時(shí),還進(jìn)行了幾個(gè)簡單的Activity的編寫。Activity是Android開發(fā)的重點(diǎn),它與XML一個(gè)負(fù)責(zé)界面,一個(gè)負(fù)責(zé)界面實(shí)現(xiàn)。此外,在寫Activity的時(shí)候充分利用JAVA的繼承特性,將MainActivity作為基類,讓其他Activity繼承它,雖然整個(gè)項(xiàng)目比較小,但是這種利用JAVA特征的設(shè)計(jì)模式還是充分利用了。
4.2 程序運(yùn)行及效果截圖
圖4.2 程序的首頁
Android記事本的設(shè)計(jì)與實(shí)現(xiàn)
圖4.3 繪制手勢
圖4.4 通過手勢登錄
Android記事本的設(shè)計(jì)與實(shí)現(xiàn)
圖4.5 登錄成功
圖4.6 創(chuàng)建新筆記
Android記事本的設(shè)計(jì)與實(shí)現(xiàn)
圖4.7 創(chuàng)建成功
圖4.8 更新筆記
Android記事本的設(shè)計(jì)與實(shí)現(xiàn)
圖4.9 更新成功
圖4.10 所有筆記顯示頁面
Android記事本的設(shè)計(jì)與實(shí)現(xiàn)
4.3 對(duì)SQLite數(shù)據(jù)庫增刪改查代碼實(shí)現(xiàn)
增刪改查:
package com.example.others;import java.util.ArrayList;import java.util.List;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;public class MemoService { private DBOpenHelper dbOpenHelper;private SQLiteDatabase db;private Cursor cursor;
public MemoService(Context context){
this.dbOpenHelper = new DBOpenHelper(context);}
public long save(MemoItem item)//保存每一條數(shù)據(jù) { db = dbOpenHelper.getWritableDatabase();String sql = “insert into memo(content, time)values(?,?)”;db.execSQL(sql, new Object[]{item.getContent(),item.getTime()});//將時(shí)間插入
cursor= db.rawQuery(“SELECT last_insert_rowid()”, null);
cursor.moveToFirst();//每次插入保證都在最前面一個(gè)
long result = cursor.getLong(0);
cursor.close();
db.close();
return result;}
public MemoItem getMemoById(long time)//顯示每一條具體的記錄 { db = dbOpenHelper.getReadableDatabase();
cursor = db.rawQuery(“select * from memo where memoid=?”,new String[]{time+“"});if(cursor.moveToFirst()){ String content
=
Android記事本的設(shè)計(jì)與實(shí)現(xiàn)
cursor.getString(cursor.getColumnIndex(”content“));
long times = cursor.getLong(cursor.getColumnIndex(”time“));
cursor.close();
db.close();
return new MemoItem(content, times);
}
cursor.close();
db.close();
return null;}
public void updateContent(MemoItem item)//更新每一條記錄 { db = dbOpenHelper.getWritableDatabase();db.execSQL(”update memo set content=? where time=?“,new Object[] { item.getContent(), item.getTime()
});db.close();}
public void delete(long time)//刪除一條記錄 { db = dbOpenHelper.getWritableDatabase();db.execSQL(”delete from memo where time=?“, new Object[] {time});db.close();}
public long getCount()//得到所有的記錄數(shù) { db = dbOpenHelper.getReadableDatabase();cursor = db.rawQuery(”select count(*)from memo“, null);cursor.moveToFirst();long result = cursor.getLong(0);cursor.close();db.close();return result;} public List
{
List
db = dbOpenHelper.getReadableDatabase();
Android記事本的設(shè)計(jì)與實(shí)現(xiàn)
cursor = db.rawQuery(”select * from memo order by time desc limit ?,?“,new String[] { String.valueOf(offset),String.valueOf(maxResult)});
while(cursor.moveToNext())
{
long time = cursor.getLong(cursor.getColumnIndex(”time“));
String content cursor.getString(cursor.getColumnIndex(”content“));
books.add(new MemoItem(content,time));
}
cursor.close();
db.close();
return books;} }
建數(shù)據(jù)庫、建表
package com.example.others;
import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;
public class DBOpenHelper extends SQLiteOpenHelper { public DBOpenHelper(Context context){
super(context, ”csust.db“, null, 1);//創(chuàng)建一個(gè)數(shù)據(jù)庫 } public void onCreate(SQLiteDatabase db){ db.execSQL(”CREATE TABLE memo(memoid integer primary autoincrement, content varchar,time interger)“);//創(chuàng)建一個(gè)memo表 } public void onUpgrade(SQLiteDatabase db, int oldVersion, newVersion){
db.execSQL(null);//更新數(shù)據(jù)庫
} }
表所對(duì)應(yīng)的實(shí)體類
package com.example.others;
= key
int Android記事本的設(shè)計(jì)與實(shí)現(xiàn)
import android.os.Parcel;import android.os.Parcelable;
public class MemoItem implements Parcelable { private String content;private long time;public MemoItem(){} public MemoItem(String content, long time){
this.content = content;
this.time = time;} public String getContent(){
return content;} public void setContent(String content){
this.content = content;} public long getTime(){
return time;} public void setTime(long time){
this.time = time;} @Override public String toString(){
return ”BaseItem [content=“ + content + ”, time=“ + time + ”]";} @Override public int describeContents(){
return 0;} @Override public void writeToParcel(Parcel dest, int flags){
dest.writeString(content);
Android記事本的設(shè)計(jì)與實(shí)現(xiàn)
dest.writeLong(time);} public static final Parcelable.Creator
@Override
public MemoItem createFromParcel(Parcel source)
{
MemoItem item = new MemoItem();
item.content = source.readString();
item.time = source.readLong();
return item;
}
@Override
public MemoItem[] newArray(int size)
{
return new MemoItem[size];
} };}
Android記事本的設(shè)計(jì)與實(shí)現(xiàn)
5.工作總結(jié)與展望
整個(gè)過程中,我總結(jié)了一些經(jīng)驗(yàn): 1.體會(huì)感觸最深的一點(diǎn)
事先必須制定計(jì)劃。這樣即使出現(xiàn)問題,解決時(shí)也會(huì)像修改幾個(gè)元素一樣簡單。最簡單的原因是,當(dāng)真正開始項(xiàng)目后,毫無疑問自己將充分了解自己正在嘗試著作什么。通過前期的規(guī)劃,會(huì)讓自己的工作變得輕松。2.選擇合適的開發(fā)環(huán)境
好的工具可以給我們帶來方便,減少工作量。最好使用集成的開發(fā)環(huán)境,我使用ADT這個(gè)集成的開發(fā)環(huán)境對(duì)安卓記事本進(jìn)行制作,它的功能強(qiáng)大,增強(qiáng)了功能并節(jié)省了應(yīng)用開發(fā)的時(shí)間。
3.不可忽視界面的設(shè)計(jì)
從真正的使用方面來講,一個(gè)系統(tǒng)的界面是十分重要的,好的界面可大大刺激顧客的購買欲,收到以像不到的效果,所以可千萬不要設(shè)計(jì)得太單調(diào)乏味,而要盡量友好一些。4.一定要做好調(diào)試工作
倘若像開發(fā)一個(gè)成功的安卓記事本,那么一定要設(shè)置好菜單,其原則是簡單、美觀和實(shí)用,最重要的是可靠。在安卓記事本投入運(yùn)行之前,一定要做大量的調(diào)試工作,除了在自己的機(jī)上調(diào)試外,還應(yīng)在別的機(jī)上測試,保證萬無一失 5.相互討論,虛心求教
這是相互學(xué)習(xí)的好方法,也是節(jié)約開發(fā)時(shí)間的一個(gè)有力途徑,同時(shí)我們可以利用網(wǎng)絡(luò)這個(gè)有利的條件在網(wǎng)上求教。6.本次實(shí)踐的收獲
由于實(shí)踐的機(jī)會(huì)太少,對(duì)編程不夠熟悉,這次實(shí)習(xí)設(shè)計(jì)給了我一個(gè)很好的動(dòng)手機(jī)會(huì)。通過自己的努力,我學(xué)會(huì)了如何構(gòu)建一個(gè)安卓記事本,數(shù)據(jù)庫的基本構(gòu)架,基本掌握了Android的編程技術(shù),了解一個(gè)系統(tǒng)的整個(gè)開發(fā)調(diào)試過程。在這一次設(shè)計(jì)中,翻閱大量資料,雖然結(jié)果還未盡完美,但在設(shè)計(jì)過程中,亦使我專業(yè)技能上有了很大的提高,對(duì)系統(tǒng)開發(fā)過程、步驟有了比較深刻的認(rèn)識(shí)。開發(fā)的過程中,我遇到了不少疑難問題,除了向指導(dǎo)老師請(qǐng)教外,更多的時(shí)候是請(qǐng)教同學(xué),共同探討,一起尋找解決問題的方案。這些寶貴的經(jīng)驗(yàn)對(duì)于我今后走上工作崗位將有很大的幫助。
Android記事本的設(shè)計(jì)與實(shí)現(xiàn)
參考文獻(xiàn)
[1]熊剛.基于Android的智能手機(jī)的設(shè)計(jì)與實(shí)現(xiàn)[D].武漢: 武漢理工大學(xué),2010.[2]周恒民譯.Java TCP/IP Socket編程(原書第2版)[M].北京: 機(jī)械工業(yè)出版,2009.[3]張桂珠 劉麗 陳愛國 Java面向?qū)ο蟪绦蛟O(shè)計(jì)(第2版)北京郵電大學(xué)出版社.[4]Joshua Bloch.Effective Java: Second Edition[M].Addison-Wesley,2008.[5]胡偉編著 .Android系統(tǒng)架構(gòu)及其驅(qū)動(dòng)研究[J].廣州.廣州廣播電視大學(xué)學(xué)報(bào).2008 [6]余志龍.Google Android SDK 開發(fā)范例大全[M].北京:人民郵電出版社.2009-7-1 [7]靳巖,姚尚朗.Google Android 開發(fā)入門與實(shí)戰(zhàn)[M].北京:人民郵電出版社.2009-7-1.[8]畢廣吉.Java程序設(shè)計(jì)實(shí)例教程[M].北京:冶金工業(yè)出版社,2007年 [9]林邦杰,徹底研究java.北京:電子工業(yè)出版社,2002年
[10]王保羅.Java面向?qū)ο蟪绦蛟O(shè)計(jì)[M].北京:清華大學(xué)出版社,2003年
第四篇:弱電安防實(shí)習(xí)周記第一周
安防實(shí)習(xí)日志
第一周
離開學(xué)校后,回到家中待了一個(gè)多星期,終于找到了一份專業(yè)對(duì)口的實(shí)習(xí)工作。今天,我進(jìn)公司已經(jīng)一周了,按照學(xué)校的要求,我也開始了我的周記。
****電子工程有限公司,沒錯(cuò)是我的實(shí)習(xí)單位,它的規(guī)模并不大,所做的工程大的也沒有,都是些小中型的。當(dāng)然這也是我第一周對(duì)公司的了解。
初來咋到,公司并沒有急著讓我去現(xiàn)場,而是讓我花兩天時(shí)間,對(duì)公司做一個(gè)了解,了解公司的部門分屬,工程涉及,人員的大概認(rèn)知和一些常規(guī)。
兩天的學(xué)習(xí)后,公司派我跟一小隊(duì)去了一個(gè)施工現(xiàn)場。他是一個(gè)剛建成不久的超市,而且工程施工也到了收尾階段,就是做一些安防系統(tǒng)工程的完善。在這里第一次知道,原來收銀臺(tái)那里存在針孔攝像機(jī),到了機(jī)房才知道,一個(gè)偌大的超市一眼看去很是刺激。當(dāng)然了,由于是工程的結(jié)尾工作,主要的就是將布線做的更加規(guī)范,還在樓梯道加了幾個(gè)槍機(jī)。加上橋架做的非常到位,所以各個(gè)點(diǎn)位間的布線工作就變得十分簡單。
連同我一行四人,兩個(gè)大師傅,一個(gè)已經(jīng)熟悉工作的流程,而我就是一個(gè)初生的新生,我的工作也是一些比較簡單的拉線啊,遞工具之類的小活。由于對(duì)自己的身份很清楚,我并沒有任何抱怨,就當(dāng)熱身了。
也許公司的工作任務(wù)并不重,所以周末也沒有談及到加班。對(duì)我來說,這五天的工作很是輕松。但我也知道繁重的任務(wù)那些日子遠(yuǎn)遠(yuǎn)沒有到來。我理當(dāng)做好準(zhǔn)備。沒有朝九晚五,沒有辦公室的安逸。但是一周下來我并沒有認(rèn)為我的工作有什么不長之處休息一下,為下周的工作做好充分準(zhǔn)備吧
第五篇:安卓學(xué)習(xí)心得
Android學(xué)習(xí)心得
-----093380117
計(jì)算機(jī)應(yīng)用(1)
張峰
1.關(guān)于Activity
1.在一個(gè)Activity中使用多個(gè)View
如果把Activity看作MVC中的Control?它負(fù)責(zé)管理UI和接受事件(包括用戶的輸入),雖然說一個(gè)Activity通常對(duì)應(yīng)一個(gè)屏幕,但事實(shí)上,我們是可以只用一個(gè)Activity管理多個(gè)不同的View來實(shí)現(xiàn)簡單的邏輯。首先,我們增加一個(gè)新的資源描述layout/second.xml。
除了一個(gè)“Hello中國”以外,增加一個(gè)按鈕可以返回前一個(gè)界面。然后,在代碼中我們要為helloTwo增加兩個(gè)方法,setViewOneCommand和setViewTwoCommand,分別處理一下在不同界面時(shí),從資源里加載組件并為組件綁定一個(gè)事件處理器最后,我們需要在onCreate的時(shí)候,也就是啟動(dòng)后的main界面上設(shè)置一下按鈕事件處理器。2.還是回到正道上,多個(gè)Activity之間的跳轉(zhuǎn)
Android中提供一個(gè)叫Intent的類來實(shí)現(xiàn)屏幕之間的跳轉(zhuǎn),按文檔的說法,似乎他們也建議采用這種方法,Intent的用法比較復(fù)雜,現(xiàn)在我先看看它最簡單的用法。
這里的跳轉(zhuǎn)功能用Intent來操作,它的最簡單用法就是用函數(shù)setClass()設(shè)置跳轉(zhuǎn)前后兩個(gè)Activity類的實(shí)例,然后調(diào)用Activity自己的startActivity(intent)即可。最后一句finish()表示將當(dāng)前Activity關(guān)掉(如果不關(guān)掉會(huì)如何?你可以自己試一下看效果,事實(shí)上有時(shí)我們是不需要關(guān)掉當(dāng)前Activity的)。
然后,我們同樣弄一個(gè)Activity類HelloThreeB,代碼與前面的差不多,只是將setClass的兩個(gè)參數(shù)反一下,這樣就可以簡單地實(shí)現(xiàn)在兩個(gè)Activity界面中來回切換的功能了。
2.關(guān)于 Intent的使用
Intent分為兩大類,顯性的(Explicit)和隱性的(Implicit)。一般來說,intent要定位事件的目的地,無外乎需要以下幾個(gè)信息: 1.種類(category),比如我們常見的 LAUNCHER_CATEGORY 就是表示這是一類應(yīng)用程序。
2.類型(type),在前面的例子中沒用過,表示數(shù)據(jù)的類型,這是隱性Intent定位目標(biāo)的重要依據(jù)。
3.組件(component),前面的例子中用的是setClass,不過也可以用setComponent來設(shè)置intent跳轉(zhuǎn)的前后兩個(gè)類實(shí)例。4.附加數(shù)據(jù)(extras),在ContentURI之外還可以附加一些信息,它是Bundle類型的對(duì)象。
其實(shí),如果是在一個(gè)應(yīng)用內(nèi)部,這種隱性的intent實(shí)在有點(diǎn)別扭,個(gè)人覺得,這種松藕合的實(shí)現(xiàn)方法,只適用于那些較大的系統(tǒng)或者多個(gè)不同的應(yīng)用之間的調(diào)用,可手機(jī)上又有什么“較大”的系統(tǒng)呢?無非是可以與不同來源的多個(gè)應(yīng)用之間方便地互操作而已,那么會(huì)是什么樣的場景呢?比如,給QQ好友發(fā)送gmail郵件,用GoogleMap查找QQ好友所在的位置?看上去挺不錯(cuò)的。
關(guān)于這個(gè)ContentProvider,其實(shí)還有話說,它主要是的那些看似數(shù)據(jù)庫操作的方法我們都沒真正去實(shí)現(xiàn)呢。不過今天就到這里了,等下回再去研究吧。
3.關(guān)于ListActivity
準(zhǔn)備一個(gè)List對(duì)象并借助Adapter就可以構(gòu)造出一個(gè)列表。重載onListItemClick方法可以響應(yīng)選擇事件,利用第一個(gè)參數(shù)可以訪問到這個(gè)ListView實(shí)例以得到選中的條目信息。這里有一點(diǎn)要說明的,就是如果更簡單的話,其實(shí)連那個(gè)setContentView都可以不要了,Android也會(huì)自動(dòng)幫我們構(gòu)造出一個(gè)全屏的列表。但是本例中我們需要一個(gè)TextView來顯示選中的條目,所以我們需要一個(gè)layout.mainb描述一下這個(gè)列表窗口。
這里需要注意的是那個(gè)ListView的ID,是系統(tǒng)自定義的android:list,不是我們隨便取的,否則系統(tǒng)會(huì)說找不到它想要的listview了。然后,在這個(gè)listview之外,我們又增加了一個(gè)TextView,用來顯示選中的條目。
再來說說這里用到的ArrayAdapter,它的構(gòu)造函數(shù)中第二個(gè)參數(shù)是一個(gè)資源ID,ArrayAdapter的API文檔中說是要求用一個(gè)包含TextView的layout文件,平臺(tái)用它來顯示每個(gè)選擇條目的樣式,這里的取值是R.layout.list_row,所以,我們還有一個(gè)list_row.xml文件來描述這個(gè)布局,相當(dāng)簡單。
從ArrayAdapter上溯到BaseAdapter,發(fā)現(xiàn)還有幾個(gè)同源的Adapter也應(yīng)該可以使用,象SimpleAdapter和CursorAdapter,還是做個(gè)例子來實(shí)驗(yàn)一下吧。
然后,在HelloTwoB中的onCreate函數(shù)中,修改代碼,有幾個(gè)不同:items的元素是HashMap實(shí)例,這是一點(diǎn)變化,然后構(gòu)造函數(shù)除了要求items以外,還要求提供一個(gè)string[]來說明用hash表中的哪個(gè)字段顯示在列表中,而后是一個(gè)資源ID的數(shù)組。
因?yàn)閱渭兊腃ursorAdapter是抽象類,所以我用的是它的子類SimpleCursorAdapter,很好理解,先用ContentResolver查詢通訊簿得到一個(gè)游標(biāo),然后告訴SimpleCursorAdapter要用其中的People.NAME作為顯示項(xiàng)來構(gòu)造出一個(gè)adapter即可。4.關(guān)于Dialog
注意到android.app包下除了Dialog(可用于制作復(fù)雜的對(duì)話框)以外,還包括了幾個(gè)系統(tǒng)定義好的對(duì)話框類,如DatePickerDialog、TimePickerDialog及AlertDialog。
其中AlertDialog我上回用過一次,基本上就那樣子了,今天看看另外兩個(gè)對(duì)話框的使用吧。
很簡單的,無非是需要一個(gè)OnDateSetListener接口的實(shí)現(xiàn)而已,在它里面的dateSet方法中就可以得到選擇的日期了。而TimePickerDialog與DatePickerDialog使用如出一轍。
看看另一個(gè)ProgressDialog的用法吧,這個(gè)類與AlertDialog一樣包含了多個(gè)static的方法,所以使用起來是非常方便的。比如說,如果我們需要用它來表示一個(gè)長時(shí)間的操作。
5.關(guān)于Service和Notification
大略地看了一下android.app下的Service類,覺得它與Activity非常相似,只是要注意幾個(gè)地方:
1.生命周期,Service的從onCreate()->onStart(int,Bundle)->onDestroy()顯得更為簡單。但是它的onStart是帶參數(shù)的,第一個(gè)ID可用來標(biāo)識(shí)這個(gè)service,第二個(gè)參數(shù)顯示是用來傳遞數(shù)據(jù)的了。比較Activity,傳遞數(shù)據(jù)的Bundle是在onCreate就帶進(jìn)入的。
2.Service的啟動(dòng)由Context.startService開始,其實(shí)Activity或者Service都是Context的派生類。結(jié)束于Context.stopService()或者它自己的stopSelf()。
3.Service還有一個(gè)與Activity不一樣的是它可以由另一個(gè)Context去綁定一個(gè)已存在的Service。就是這個(gè)方法Context.bindService(),被綁定的Service要求是已經(jīng)onCreate了但可以沒有onStart。在Service類中有個(gè)抽象方法getBinder()可以得到這個(gè)IBinder對(duì)象。關(guān)于這方面的細(xì)節(jié),以后再看,這里只做個(gè)記錄罷。
4.與Service有關(guān)的還有一個(gè)安全的問題,可以在AndroidManifest.xml中用
6.GridView與ImageView
簡單一點(diǎn)吧,就瞧瞧那個(gè)Grid的效果,Android提供了一個(gè)GridView,不過從APIDemo中看來,它似乎與PC上的GRID差別還是挺大的,更像那個(gè)IconView的感覺。不知道Android中如何實(shí)現(xiàn)表格界面?雖然在移動(dòng)終端上,表格一般不會(huì)有誰使用,大家似乎更傾向于使用ListView,而Android對(duì)于ListView則有更簡單的實(shí)現(xiàn)ListActivity。
很簡單,只要重載幾個(gè)方法就可以了,關(guān)鍵是那個(gè)getView方法,它負(fù)責(zé)構(gòu)建出每個(gè)單元格中的對(duì)象實(shí)例。這里我們構(gòu)造的是一個(gè)ImageView實(shí)例。
然后就是同樣的將這個(gè)Adapter賦給GridView即可,大家可以看看效果,注意在做這個(gè)例子前,先放幾個(gè)小圖片到res/drawable目錄下,buildproject一下就可以得到那個(gè)R.drawable.a了(這里的a是圖像文件名,如a.png)。
在getView方法中我們使用了ImageView類,這又是一個(gè)widget。除了上面用到的幾個(gè)方法以外,還有以下幾個(gè)方法值得注意: 與圖像來源有關(guān)的方法,我們只用了資源文件的方式。
還是習(xí)慣性跑題了,其實(shí),我是想通過我對(duì)這個(gè)類的無數(shù)次Debugger跟進(jìn),說說它的多線程異步處理的解決策略的。他的基本策略如下: 1.當(dāng)你實(shí)例化一個(gè)AsyncQueryHandler類時(shí)(包括其子類...),它會(huì)單件構(gòu)造一個(gè)線程(后面會(huì)詳述...),這個(gè)線程里面會(huì)構(gòu)建一個(gè)消息循環(huán)。
2.獲得該消息循環(huán)的指針,用它做參數(shù)實(shí)例化另一個(gè)Handler類,該類為內(nèi)部類。至此,就有了兩個(gè)線程,各自有一個(gè)Handler來處理消息。3.當(dāng)調(diào)用onXXX的時(shí)候,在XXX函數(shù)內(nèi)部會(huì)將請(qǐng)求封裝成一個(gè)內(nèi)部的參數(shù)類,將其作為消息的參數(shù),將此消息發(fā)送至另一個(gè)線程。4.在該線程的Handler中,接受該消息,并分析傳入的參數(shù),用初始化時(shí)傳入的ContentResolver進(jìn)行XXX操作,并返回Cursor或其他返回值。
5.構(gòu)造一個(gè)消息,將上述返回值以及其他相關(guān)內(nèi)容綁定在該消息上,發(fā)送回主線程。
6.主線程默認(rèn)的AsyncQueryHandler類的handleMessage方法(可自定義,但由于都是內(nèi)部類,基本沒有意義...)會(huì)分析該消息,并轉(zhuǎn)發(fā)給對(duì)應(yīng)的onXXXComplete方法。
7.用戶重寫的onXXXComplete方法開始工作。
這就是它偷偷摸摸做過的事情,基本還是很好理解的。我唯一好奇的是它的線程管理方式,我猜測他是用的單件模式。第一個(gè)AsyncQueryHandler的實(shí)例化會(huì)導(dǎo)致創(chuàng)建一個(gè)線程,從此該線程成為不死老處男,所有的ContentResolver相關(guān)的工作,都由該線程統(tǒng)一完成。個(gè)人覺得這種解決方式很贊。本來這個(gè)線程的生命周期就很難估量,并且,當(dāng)你有一個(gè)ContentProvider的請(qǐng)求的時(shí)候,判斷你會(huì)做更多的類似操作并不過分。就算錯(cuò)了,花費(fèi)的也只是一個(gè)不死的線程(與進(jìn)程同生死共存亡...),換來的卻是簡單的生命周期管理和無數(shù)次線程生死開銷的節(jié)約。同時(shí)另外一個(gè)很重要的問題,他并會(huì)涉及到單件中數(shù)據(jù)同步的問題,每個(gè)類都有各自的Handler類,彼此互不干擾,分發(fā)可以分別進(jìn)行。當(dāng)多個(gè)數(shù)據(jù)請(qǐng)求的時(shí)候,在同一個(gè)ContentResolver上進(jìn)行的可能微乎其微,這就避免了堵塞??偠灾?,這套解決辦法和Android的整體設(shè)計(jì)算是天作之合了。
所以建議,如果你有什么非ContentProvider操作,卻需要異步多線程執(zhí)行的話,模擬一套,是個(gè)不錯(cuò)的策略,當(dāng)然,具體情況具體分析,生搬硬套是學(xué)不好馬列主義的。
7.顯示控件使用
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會(huì)從中看到很多類似的地方。一個(gè)支持?jǐn)?shù)據(jù)綁定的控件,比如ListView。可以通過一個(gè) ListAdapter綁定到一個(gè)數(shù)據(jù)源上。ListAdapter是一個(gè)抽象類,主要的實(shí)現(xiàn)類包括SimpleAdapter和 SimpleCursorAdapter。前者是綁定一個(gè)靜態(tài)的Array,后者是綁定一個(gè)動(dòng)態(tài)的Cursor。Cursor前面說過,是一個(gè)指向數(shù)據(jù)源的隨機(jī)迭代器,將View綁定到Cursor通常要設(shè)置這樣幾個(gè)參數(shù)。一個(gè)是每一行的樣式,稱作Row Layout,其實(shí)就是一個(gè)普通的Layout的XML文件。還有就是一個(gè)列和現(xiàn)實(shí)控件的對(duì)應(yīng)關(guān)系。那個(gè)控件顯示哪個(gè)列的值,這是需要配置的。為了定制一個(gè)良好的數(shù)據(jù)顯示控件,最簡單你可以定制很PP的Row Layout,復(fù)雜一點(diǎn)就是可以重載綁定控件View,或者是適配器ListAdapter。如果是一個(gè)數(shù)據(jù)顯示密集的應(yīng)用,且你對(duì)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的事件??梢詽M足你比較基礎(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è)東西只能夠自己提供了。界面的動(dòng)態(tài)性有時(shí)候是不可避免的,比如說菜單就是一個(gè)需要經(jīng)常根據(jù)光標(biāo)位置提供不同的選項(xiàng)。這個(gè)東西Android很人道的考慮到了,你可以參看NodeList這個(gè)Sample。它采取的應(yīng)該是一個(gè)靜態(tài)模擬動(dòng)態(tài)的方式,這樣有助于提高速度。你也可以利用ViewInflate,動(dòng)態(tài)從一個(gè)XML創(chuàng)建一個(gè)控件。成本據(jù)Doc說很大,不到萬不得已不要使用。
8.Intent消息傳遞
在前面寫Android的ContentProvider時(shí)候,可以看到那是基于觀察者模式的一個(gè)消息傳遞方法。每一個(gè)Cursor、ContentResolver做為一個(gè)小的注冊中心,相關(guān)觀察者可以在這個(gè)中心注冊,更新消息由注冊中心分發(fā)給各個(gè)觀察者。而在MFC或Winform中,都會(huì)形成一個(gè)消息網(wǎng),讓消息在網(wǎng)中流動(dòng),被各節(jié)點(diǎn)使用、吃掉或者在出口死掉。
相比之下,我個(gè)人覺得基于Intent的Android核心消息傳遞機(jī)制是有所不同的。它應(yīng)該會(huì)有一個(gè)全局性的注冊中心,這個(gè)注冊中心是隱性的,整個(gè)Android系統(tǒng)中就那么一個(gè)。所有的消息接收者,都被隱形的注冊到這個(gè)中心。包括Activity,Service和IntentReceiver。其實(shí)說隱形注冊是不確切的,所有注冊都還是我們手動(dòng)告訴注冊中心的,只是與傳統(tǒng)的方式不一樣,我們通常不是通過代碼,而是通過配置文件來做。在應(yīng)用的Manifest中,我們會(huì)為一些Activity或Service添加上Intent-filter,或在配置文件中添加
當(dāng)程序有一個(gè)消息希望發(fā)出去的時(shí)候,它需要將消息封裝成一個(gè)Intent,并發(fā)送。這時(shí)候,應(yīng)該是有一個(gè)統(tǒng)一的中心(恩,有可能Android底層實(shí)現(xiàn)的時(shí)候不是,但簡單這樣看是沒問題的...)接受到這個(gè)消息,并對(duì)它進(jìn)行解析、判定消息類型(這個(gè)步驟降低了耦合...),然后檢查注冊了相匹配的filter或receiver,并創(chuàng)建或喚醒接收者,將消息分發(fā)給它。這樣做有很多好處。雖然這種傳遞有的時(shí)候不如點(diǎn)對(duì)點(diǎn)的傳遞快(這有些需要速度的地方,我們看到Android會(huì)通過直接通信來做),但有時(shí)候又因?yàn)樗唤?jīng)過一跳(姑且這么叫吧...),比復(fù)雜的流動(dòng)又要更快。更重要的是,它耦合性低,在手機(jī)平臺(tái)這種程序組件多變的條件下使用十分適合。并且它可以很容易實(shí)現(xiàn)消息的精確或模糊匹配,彈性很大。(我個(gè)人曾想在開發(fā)一個(gè)C++二次平臺(tái)的時(shí)候引入這樣的機(jī)制,但在C++中,建立一套完整的數(shù)據(jù)marshal機(jī)制不容易,相比之下,用java來做會(huì)簡單很多...)
恩,廢話說了很多,具體講講Android中Intent的使用。當(dāng)你有一個(gè)消息需要傳遞,如果你明確知道你需要哪個(gè)Activity或者其他Class來響應(yīng)的話,你可以指定這個(gè)類來接受該消息,這被稱為顯性發(fā)送。你需要將Intent的class屬性設(shè)置成目標(biāo)。這種情況很常見,比如startActivity的時(shí)候,會(huì)清楚當(dāng)前Activity完了應(yīng)該是哪個(gè)Activity,那就明確的發(fā)送這個(gè)消息。
但是,有的時(shí)候你并不確定你的消息是需要具體哪個(gè)類來執(zhí)行,而只是知道接收者該符合哪些條件。比如你只需要有一個(gè)接收者能顯示用戶所選的數(shù)據(jù),而不想制定某個(gè)具體的方法,這時(shí)候你就需要用到隱形發(fā)送(傳統(tǒng)上,我們可能會(huì)考慮用多態(tài),但顯然這種方式更為靈活...)。在Android中,你可以為Intent指定一個(gè)action,表示你這個(gè)指令需要處理的事情。系統(tǒng)為我們定義了很多Action類型,這些類型使系統(tǒng)與我們通信的語言(比如在Activity里面加一個(gè)Main的filter,該activity就會(huì)做成該應(yīng)用的入口點(diǎn)),當(dāng)然你也可以用于你自己的應(yīng)用之間的通信(同樣當(dāng)然,也可以自定義...)。強(qiáng)烈建議,在自己程序接收或發(fā)出一個(gè)系統(tǒng)action的時(shí)候,要名副其實(shí)。比如你響應(yīng)一個(gè)view動(dòng)作,做的確實(shí)edit的勾當(dāng),你發(fā)送一個(gè)pick消息,其實(shí)你想讓別人做edit的事,這樣都會(huì)造成混亂。當(dāng)然只有Action有時(shí)候是不夠的,在Android中我們還可以指定catalog信息和type/data信息,比如所有的顯示數(shù)據(jù)的Activity,可能都會(huì)響應(yīng)View action。但很多與我們需要顯示的數(shù)據(jù)類型不一樣,可以加一個(gè)type信息,明確的指出我們需要顯示的數(shù)據(jù)類型,甚至還可以加上一個(gè)catalog信息,指明只有你只有按的是“中鍵”并發(fā)出這樣的消息才響應(yīng)。從上面可以看出,Android的Intent可以添加上class, action, data/type, catalog等消息,注冊中心會(huì)根據(jù)這些信息幫你找到符合的接收者。其中class是點(diǎn)對(duì)點(diǎn)的指示,一旦指明,其他信息都被忽略。Intent中還可以添加key/value的數(shù)據(jù),發(fā)送方和接收方需要保持統(tǒng)一的key信息和value類型信息,這種數(shù)據(jù)的marshal在java里做,是不費(fèi)什么力氣的。
Android的Intent發(fā)送,可以分成單播和廣播兩種。廣播的接收者是所有注冊了的符合條件的IntentReceiver。在單播的情況下,即使有很多符合條件的接收者,也只要有一個(gè)出來處理這個(gè)消息就好(恩,個(gè)人看法,沒找到確切條款或抉擇的算法,本來想實(shí)驗(yàn)一下,沒來得及...),這樣的情況很容易理解,當(dāng)你需要修改某個(gè)數(shù)據(jù)的時(shí)候,你肯定不會(huì)希望有十個(gè)編輯器輪流讓你來處理。當(dāng)廣播不是這樣,一個(gè)receiver沒有辦法阻止其他receiver進(jìn)行對(duì)廣播事件的處理。這種情況也很容易理解,比如時(shí)鐘改變了,鬧鐘、備忘錄等很多程序都需要分別進(jìn)行處理。在自己的程序的使用中,應(yīng)該分清楚區(qū)別,合理的使用。
9.ContentProvider數(shù)據(jù)模型
數(shù)據(jù)庫操作
從我目前掌握的知識(shí)來看,SQLite比較輕量(沒有存儲(chǔ)過程之類的繁雜手段),用起來也比較簡單。實(shí)例化一個(gè)SQLiteDatabase類對(duì)象,通過它的APIs可以搞定大部分的操作。從sample中看,Android中對(duì)db的使用有一種比較簡單的模式,即派生一個(gè) ContentProviderDatabaseHelper類來進(jìn)行SQLiteDatabase對(duì)象實(shí)例的獲取工作?;旧?,ContentProviderDatabaseHelper類扮演了一個(gè)singleton的角色,提供單一的實(shí)例化入口點(diǎn),并屏蔽了數(shù)據(jù)庫創(chuàng)建、打開升級(jí)等細(xì)節(jié)。在ContentProvider中只需要調(diào)用ContentProviderDatabaseHelper的openDatabase方法獲取SQLiteDatabase的實(shí)例就好,而不需要進(jìn)行數(shù)據(jù)庫狀態(tài)的判斷。URI 像進(jìn)行數(shù)據(jù)庫操作需要用SQL一樣,對(duì)ContentProivder進(jìn)行增刪改查等操作都是通過一種特定模式的URI來進(jìn)行的(ig:content: //provider/item/id),URI的能力與URL類似,具體細(xì)節(jié)可以查看SDK。建立自己的ContentProvider,只需要派生 ContentProivder類并實(shí)現(xiàn)insert, delete, update等抽象函數(shù)即可。在這些接口中比較特殊的是getType(uri)。根據(jù)傳入的uri,該方法按照MIME格式返回一個(gè)字符串(==!沒聽過的詭異格式...)唯一標(biāo)識(shí)該uri的類型。所謂uri的類型,就是描述這個(gè)uri所進(jìn)行的操作的種類,比如content://xx/a與 content://xx/a/1不是一個(gè)類型(前者是多值操作,后者是單值),但content://xx/a/1和content://xx/a/2 就會(huì)是一個(gè)類型(只是id號(hào)不同而已)。
在ContentProvider通常都會(huì)實(shí)例化一個(gè)ContentURIPraser來輔助解析和操作傳入的URI。你需要事先(在static域內(nèi))為該ContentURIPraser建立一個(gè)uri的語法樹,之后就可以簡單調(diào)用 ContentURIPraser類的相關(guān)方法進(jìn)行uri類型判斷(match方法),獲取加載在uri中的參數(shù)等操作。但我看來,這只是在使用上簡化了相關(guān)操作(不然就需要自己做人肉解析了...),但并沒有改變類型判定的模式。你依然需要用switch...case...對(duì)uri的類型進(jìn)行判斷,并進(jìn)行相關(guān)后續(xù)的操作。從模式來看,這樣無疑是具有強(qiáng)烈的壞味道,類似的switch...case...代碼要出現(xiàn)N此,每次一個(gè) ContentProvider做uri類型的增減都會(huì)需要遍歷修改每一個(gè)switch...case...,當(dāng)然,如果你使用模式(策略模式...)進(jìn)行改造對(duì)手機(jī)程序來說無疑是崩潰似的(類型膨脹,效率降低...),所以,只能是忍一忍了(恩,還好不會(huì)擴(kuò)散到別的類中,維護(hù)性上不會(huì)有殺人性的麻煩...)。增刪改查
ContentProvider 和所有數(shù)據(jù)源一樣,向外提供增刪改查操作接口,這些都是基于uri的指令。進(jìn)行insert操作的時(shí)候,你需要傳入一個(gè)uri和 ContentValues。uri的作用基本就限于指明增減條目的類型(從數(shù)據(jù)庫層面來看就是table名),ContentValues是一個(gè) key/value表的封裝,提供方便的API進(jìn)行插入數(shù)據(jù)類型和數(shù)據(jù)值的設(shè)置和獲取。在數(shù)據(jù)庫層面上來看,這應(yīng)該是column name與value的對(duì)應(yīng)。但為了屏蔽ContentProvider用戶涉及到具體數(shù)據(jù)庫的細(xì)節(jié),在Android的示例中,用了一個(gè)小小的模式。它為每一個(gè)表建一個(gè)基于BaseColumn類的派生類(其實(shí)完全可以不派生自BaseColumn,特別當(dāng)你的表不基于默認(rèn)的自動(dòng)id做主鍵的時(shí)候),這個(gè)類通常包括一個(gè)描述該表的ContentURI對(duì)象和形如 public static final TITLE = “title”這樣的column到類數(shù)據(jù)的對(duì)應(yīng)。從改變上角度來看,你可以修改column的名字而不需要更改用戶上層代碼,增加了靈活性。insert方法如果成功會(huì)返回一個(gè)uri,該uri會(huì)在原有的uri基礎(chǔ)上增加有一個(gè)row id。對(duì)于為什么使用row id而不是key id我想破了腦袋。到最后,我發(fā)現(xiàn)我傻了,因?yàn)镃ontentProvider不一定需要使用數(shù)據(jù)庫,使用數(shù)據(jù)庫對(duì)應(yīng)的表也可以沒有主鍵,只有row id,才能在任何底層介質(zhì)下做索引標(biāo)識(shí)。
但,基于row id在刪除和修改操作是會(huì)造成一定的混亂。刪除和修改操作類似。刪除操作需要傳入一個(gè)uri,一個(gè)where字串,一組where的參數(shù)(做條件判定...),而修改操作會(huì)多一個(gè)ContentValues做更新值。著兩個(gè)操作的uri都支持在末尾添加一個(gè)row id。于是混亂就出現(xiàn)了。當(dāng)在where參數(shù)中指明了key id,而在uri中提供了row id,并且row id和key id所指函數(shù)不一致的時(shí)候,你聽誰的?示例代碼中的做法是完全無視r(shí)ow id(無語...),如此野蠻的方式我估計(jì)也只能在示例中出現(xiàn),在實(shí)際中該如何用,恩,我也不知道。幸運(yùn)的是,我看了下上層對(duì) ContentProvider的刪除操作,其實(shí)都不會(huì)直接進(jìn)行,而是通過調(diào)用Cursor的delete方法進(jìn)行,在這前提下,我想Cursor會(huì)處理好這些東西吧。
最后一個(gè)操作是查詢操作,可以想見,查詢的參數(shù)是最多的,包括uri和一組條件參數(shù)。條件參數(shù)類型和標(biāo)準(zhǔn)的sql類似,包括 sort, projection 之類的。從這些參數(shù)到sql語句的生成,可以尋求QueryBuilder類的幫助,它提供了一組操作接口,簡化了參數(shù)到sql的生成工作,哪怕你不懂 sql都完全沒有問題(這話說的我自己都覺得有點(diǎn)懸...)。查詢返回一個(gè)Cursor。Cursor是一個(gè)支持隨機(jī)讀寫的指針,不僅如此,它還提供了方便的刪除和修改的API,是上層對(duì)ContentProvider進(jìn)行操作一個(gè)重要對(duì)象,需要仔細(xì)掌握(Cursor還可以綁定到view上,直接送顯,并與用戶進(jìn)行交互,真是程序越往上,封裝越好,工作越機(jī)械沒有復(fù)雜性了...)。數(shù)據(jù)模型
在與界面打交道的Cursor、ContentResolver等數(shù)據(jù)操作層中,大量采用觀察者模式建立數(shù)據(jù)層與顯示層的聯(lián)系。一個(gè)顯示層的視圖,可以做成某一種觀察者注冊到Cursor或ContentResolver等數(shù)據(jù)中間層中,在實(shí)現(xiàn)底層ContentProvider中,我們需要特別注意在對(duì)數(shù)據(jù)進(jìn)行修改操作(包括增刪改...)后,調(diào)用相應(yīng)類型的notify函數(shù),幫助表層對(duì)象進(jìn)行刷新(還有一種刷新方式是從一個(gè)view發(fā)起的)。可以看到 Android的整體數(shù)據(jù)顯示框架有點(diǎn)像MVC的方式。Cursor、ContentResolver相當(dāng)于控制層,數(shù)據(jù)層和顯示層的交互通過控制層來掌管,而且控制層很穩(wěn)定不需要特別定制,通常工作只在定制數(shù)據(jù)層和顯示層空間,還是比較方便和清晰的。
10.學(xué)習(xí)感想
通過這學(xué)期對(duì)安卓的學(xué)習(xí),大概了解了以上一些知識(shí),對(duì)安卓有了初步的了解,這幾個(gè)月給我的東西我想用有形的和無形的兩部分概敘,形的當(dāng)然就是技術(shù)水平的長進(jìn),雖然其中肯定有很多的不足,相信慢慢會(huì)體會(huì)到。