《Android操作系統(tǒng)及應(yīng)用》期末作業(yè)總結(jié)報(bào)告_第1頁
《Android操作系統(tǒng)及應(yīng)用》期末作業(yè)總結(jié)報(bào)告_第2頁
《Android操作系統(tǒng)及應(yīng)用》期末作業(yè)總結(jié)報(bào)告_第3頁
《Android操作系統(tǒng)及應(yīng)用》期末作業(yè)總結(jié)報(bào)告_第4頁
《Android操作系統(tǒng)及應(yīng)用》期末作業(yè)總結(jié)報(bào)告_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、南 陽 理 工 學(xué) 院計(jì) 算 機(jī) 與 信 息 工 程 學(xué) 院Android操作系統(tǒng)及應(yīng)用大作業(yè)總結(jié)報(bào)告題目: 便簽的設(shè)計(jì)與開發(fā) 姓 名: 鄒長江 學(xué) 號(hào): 班 級(jí): 14計(jì)科(信息) 目 錄一 作品概述1二 分析12.1功能分析12.2、數(shù)據(jù)分析1三 設(shè)計(jì)23.1、模塊設(shè)計(jì)23.2、UI設(shè)計(jì)33.3、數(shù)據(jù)庫設(shè)計(jì)3四 系統(tǒng)實(shí)現(xiàn)34.1Android工程程序結(jié)構(gòu)34.2代碼實(shí)現(xiàn)6五 系統(tǒng)測(cè)試10六 設(shè)計(jì)體會(huì)11七 參考文獻(xiàn)11一 作品概述現(xiàn)在的生活節(jié)奏正在變快,人們除了工作和學(xué)習(xí)之外,還要花費(fèi)不少的時(shí)間在往返的路上,這一現(xiàn)狀自然而然的激發(fā)了手機(jī)移動(dòng)終端的崛起。各種各樣方便、精美的手機(jī)軟件已經(jīng)走進(jìn)我

2、們的生活。手機(jī)與人們的生活緊密的結(jié)合起來,可以說現(xiàn)在人們已經(jīng)離不開手機(jī)了,手機(jī)軟件會(huì)成為手機(jī)多媒體時(shí)代最受歡迎并且是最有價(jià)值的應(yīng)用。Android手機(jī)應(yīng)用程序開發(fā)是一項(xiàng)復(fù)雜的工程。 本文研究了Android的系統(tǒng)架構(gòu),并在Android Studio開發(fā)環(huán)境下,使用JAVA語言,設(shè)計(jì)了一個(gè)個(gè)性化便簽軟件,該軟件可以通過簡單的手勢(shì)添加便簽。二 分析為了跟上現(xiàn)代日益加快的生活節(jié)奏,電子工藝技術(shù)也在飛速的發(fā)展,就目前而言的手機(jī)功能已經(jīng)無法滿足人們?cè)絹碓蕉嗟男枨罅耍瑸榱藵M足需求市場上出現(xiàn)了各種不同的操作系統(tǒng),Windowsmobile、塞班和谷歌的Android操作系統(tǒng)是目前市場上最主要的三個(gè)手機(jī)操作

3、系統(tǒng)。其中Android 因?yàn)橛虚_發(fā)源代碼的優(yōu)勢(shì)使其成為有最大 的發(fā)展前景的系統(tǒng)。不同手機(jī)平臺(tái)的手機(jī),所支持的便簽軟件也是各不相同,目前市場上最流行的手機(jī)平臺(tái)是google的Android 手機(jī)平臺(tái),本課題致力于開發(fā)出一款基于Android手機(jī)平臺(tái)的個(gè)性化便簽,來滿足用戶的使用需求。2.1功能分析本軟件屬于用戶常用的便簽??梢苑奖阌脩羝綍r(shí)對(duì)便簽的操作。本系統(tǒng)應(yīng)達(dá)到以下目標(biāo): (1)軟件采用人機(jī)交互的方式,界面美觀大方,操作靈活、方便。(2)能夠?qū)Ρ愫炦M(jìn)行有效的管理。(3)系統(tǒng)應(yīng)該能夠最大程度地實(shí)現(xiàn)易維護(hù)性和易操作性。具體功能有:(1) 添加:添加方便,具有有效的手勢(shì)操作;(2) 編輯:對(duì)便簽進(jìn)

4、行隨時(shí)修改;(3) 刪除:對(duì)舊的便簽進(jìn)行刪除;(4) 查看:可通過手勢(shì)對(duì)一覽表進(jìn)行上下滑動(dòng)瀏覽。2.2、數(shù)據(jù)分析SQLite最大的特點(diǎn)是你可以把各種類型的數(shù)據(jù)保存到任何字段中,而不用關(guān)心字段聲明的數(shù)據(jù)類型是什么。Android提供了一個(gè)名為SQLiteDatabase的類,該類封裝了一些操作數(shù)據(jù)庫的API,使用該類可以完成對(duì)數(shù)據(jù)進(jìn)行添加(Create)、查詢(Retrieve)、更新(Update)和刪除(Delete)操作(這些操作簡稱為CRUD)。在Android系統(tǒng),為我們提供了一個(gè)名為SQLiteOpenHelper的抽象類,必須繼承它才能使用,它是通過對(duì)數(shù)據(jù)庫版本進(jìn)行管理來實(shí)現(xiàn)前面提

5、出的需求。為了實(shí)現(xiàn)對(duì)數(shù)據(jù)庫版本進(jìn)行管理,SQLiteOpenHelper類提供了兩個(gè)重要的方法,分別是onCreate(SQLiteDatabasedb)和onUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion),前者用于初次使用軟件時(shí)生成數(shù)據(jù)庫表,后者用于升級(jí)軟件時(shí)更新數(shù)據(jù)庫表結(jié)構(gòu)。當(dāng)調(diào)用SQLiteOpenHelper的getWritableDatabase()或者getReadableDatabase()方法獲取用于操作數(shù)據(jù)庫的SQLiteDatabase實(shí)例的時(shí)候,如果數(shù)據(jù)庫不存在,Android系統(tǒng)會(huì)自動(dòng)生成一個(gè)數(shù)據(jù)庫,接著調(diào)用o

6、nCreate()方法,onCreate()方法在初次生成數(shù)據(jù)庫時(shí)才會(huì)被調(diào)用,在onCreate()方法里可以生成數(shù)據(jù)庫表結(jié)構(gòu)及添加一些應(yīng)用使用到的初始化數(shù)據(jù)。onUpgrade()方法在數(shù)據(jù)庫的版本發(fā)生變化時(shí)會(huì)被調(diào)用,一般在軟件升級(jí)時(shí)才需改變版本號(hào),而數(shù)據(jù)庫的版本是由程序員控制的。三 設(shè)計(jì)3.1、模塊設(shè)計(jì)整個(gè)系統(tǒng)大體可以分成三大模塊,一是主界面,主要按照時(shí)間顯示便簽;二是新建界面,想要新建便簽時(shí),可以點(diǎn)擊便簽新建符新建項(xiàng),會(huì)彈出該界面;三是編輯界面,點(diǎn)擊已有的便簽即可進(jìn)入編輯狀態(tài)。總的系統(tǒng)組織結(jié)構(gòu)圖如下圖所示:3.2、UI設(shè)計(jì) 主界面設(shè)計(jì): 新建界面設(shè)計(jì): 編輯界面設(shè)計(jì):3.3、數(shù)據(jù)庫設(shè)計(jì)便

7、簽軟件只有一個(gè)簡單的數(shù)據(jù)表,id為主鍵,對(duì)數(shù)據(jù)庫的更改都在這個(gè)表中進(jìn)行,具體如下圖所示:四 系統(tǒng)實(shí)現(xiàn)4.1Android工程程序結(jié)構(gòu)Android工程的基本結(jié)構(gòu)目錄包括:編寫源代碼的src 、用來存放程序界面的布局配置(.xml)文件和圖片資源的資源文件res,代碼測(cè)試文件test,jar包存放文件External Libraries。Android資源的類型和布局圖如下:圖4-1 資源類型和布局圖1、 便簽代碼結(jié)構(gòu)如下圖4-2所示。其中src文件夾包含著整個(gè)便簽實(shí)現(xiàn)的源代碼,res文件夾下面是便簽軟件實(shí)現(xiàn)的一個(gè)資源,像是界面的布局和界面上需要用到的一些圖片,標(biāo)志等。圖4.2代碼結(jié)構(gòu)圖2、 便

8、簽.Java文件如下圖所示。其中包c(diǎn)n.feixianblue.stickynote下的是便簽個(gè)界面實(shí)現(xiàn)的代碼,其中MainActivity.java文件中的是主界面的代碼,EditeActivity.java文件中的是創(chuàng)建便簽后的界面代碼;UpdateActivity.java文件是文本編輯的界面代碼。3、 便簽軟件需要的字符串等配置文件,在values的strings.xml文件中是整個(gè)便簽軟件界面中需要用到的所有字符串,colors.xml文件中是整個(gè)便簽軟件界面中需要到的顏色,styles.xml文件中是整個(gè)便簽軟件界面中頁面的樣式。4、 便簽的圖像資源,drawable-hdpi文件

9、下存放的是便簽軟件中需要用到的一些圖片標(biāo)識(shí)。5、AndroidManifest.xml文件 AndroidMainfest.xml 是四大組件的驅(qū)動(dòng)配置文件,有了它的存在,Android程序的四大組件才能夠順利正常的跳轉(zhuǎn)。任意一個(gè)的Android系統(tǒng)的程序啟動(dòng)都要靠AndroidManifest.xml文件來啟動(dòng)程序,每次新建好一個(gè)的工程,在其目錄都會(huì)自動(dòng)生成一個(gè)AndroidManifest.xml文件,這個(gè)配置文件為程序能夠正常運(yùn)行提供了保證,是整個(gè)工程的核心部分,它里面包括了Android SDK的版本,程序運(yùn)行的默認(rèn)Activity,當(dāng)程序中的任何一個(gè)組件觸發(fā)事件后,系統(tǒng)都會(huì)自動(dòng)的在A

10、ndroidManifest.xml文件中找出正確的標(biāo)識(shí)從而作出相應(yīng)的操作。每一個(gè)AndroidManifest.Xml文件的格式都應(yīng)該是這樣的:4.2代碼實(shí)現(xiàn)1、實(shí)現(xiàn)主界面功能的代碼:public class MainActivity extends AppCompatActivity private DBManager dbManager; private ListView listView; Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); set

11、ContentView(R.layout.activity_main); Toolbar toolbar = (Toolbar) findViewById(R.id.toolBar); setSupportActionBar(toolbar); listView = (ListView) findViewById(R.id.list_item); /初始化DBManager dbManager = new DBManager(MainActivity.this); listView.setOnItemClickListener(new AdapterView.OnItemClickListen

12、er() SuppressWarnings(unchecked) Override public void onItemClick(AdapterView parent, View view, int position, long id) HashMap map = (HashMap) parent.getItemAtPosition(position); String noteTitle = map.get(title); Intent intent = new Intent(MainActivity.this,UpdateActivity.class); /傳數(shù)據(jù)(將數(shù)據(jù)傳到intent中

13、的bundle類中) intent.putExtra(title, noteTitle); startActivity(intent); finish();/解決在MainActivity頁面下返回鍵失效問題 ); Override protected void onStart() super.onStart(); List notes = dbManager.queryAll(); ArrayListMap list = new ArrayListMap(); for (Note note : notes) HashMap map = new HashMap(); map.put(title

14、, note.getTitle(); map.put(content, note.getContent(); map.put(info, note.getInfo(); list.add(map); SimpleAdapter adapter = new SimpleAdapter(this, list, android.R.layout.simple_list_item_2, new Stringtitle, content, new intandroid.R.id.text1, android.R.id.text2); listView.setAdapter(adapter); publi

15、c void onAddClick(View view) dbManager.closeDB(); startActivity(new Intent(this, EditActivity.class); finish(); Override protected void onDestroy() super.onDestroy(); /應(yīng)用的最后一個(gè)Activity關(guān)閉時(shí)應(yīng)釋放DB dbManager.closeDB(); 2、 實(shí)現(xiàn)便簽添加頁面代碼:public class EditActivity extends AppCompatActivity private DBManager dbM

16、anager; private EditText editTitle; private EditText editContent; Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_edit); Toolbar toolbar = (Toolbar) findViewById(R.id.toolBar); setSupportActionBar(toolbar); editTitle =

17、(EditText) findViewById(R.id.edit_title); editContent = (EditText) findViewById(R.id.edit_content); dbManager = new DBManager(this); public void onSaveClick(View view) Note note = new Note(); if(dbManager.queryByTitle(editTitle.getText().toString() = null) note.setTitle(editTitle.getText().toString(

18、); note.setContent(editContent.getText().toString(); dbManager.add(note); dbManager.closeDB(); startActivity(new Intent(this, MainActivity.class); finish(); else Toast.makeText(EditActivity.this, 保存失敗,Title 已存在!, Toast.LENGTH_LONG).show(); 3、實(shí)現(xiàn)頁面編輯代碼:public class UpdateActivity extends AppCompatActi

19、vity private DBManager dbManager; private EditText editTitle; private EditText editContent; private Note note; private String ownTitle; Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_update); Toolbar toolbar = (Toolbar

20、) findViewById(R.id.toolBar); setSupportActionBar(toolbar); editTitle = (EditText) findViewById(R.id.edit_title); editContent = (EditText) findViewById(R.id.edit_content); dbManager = new DBManager(this); Intent intent = getIntent(); /獲取數(shù)據(jù)(從intent對(duì)象中獲取bundle中的數(shù)據(jù)) Bundle bundle = intent.getExtras();

21、/獲取數(shù)據(jù)(從bundle中依據(jù)id獲取數(shù)據(jù)值) ownTitle = bundle.getString(title); note = dbManager.queryByTitle(ownTitle); if(note = null) Log.d(uuuuuuuuuuuuuuuuu, note = null); Log.d(idididididididididid, note_id = + note.getId(); editTitle.setText(note.getTitle(); editContent.setText(note.getContent(); public void onU

22、pdateClick(View view) Note n = dbManager.queryByTitle(editTitle.getText().toString(); if(n = null | n.getTitle().equals(ownTitle) note.setTitle(editTitle.getText().toString(); note.setContent(editContent.getText().toString(); dbManager.update(note); dbManager.closeDB(); startActivity(new Intent(this

23、, MainActivity.class); finish(); else Toast.makeText(UpdateActivity.this, 保存失敗,Title 已存在!, Toast.LENGTH_LONG).show(); public void onDeleteClick(View view) dbManager.delete(note.getId(); dbManager.closeDB(); startActivity(new Intent(this, MainActivity.class); finish(); 五 系統(tǒng)測(cè)試1、用戶在啟動(dòng)便簽軟件時(shí)進(jìn)去便簽主界面,最上面是便簽名稱“便簽”,右下角的紅色“+”符號(hào)點(diǎn)是添加新的便簽按鈕,白色區(qū)域內(nèi)排列的是已建的便簽,具體如下圖所示:2、 進(jìn)入添加界面后,紅色底線是標(biāo)題欄,灰色底線是

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論