版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
安卓記事本開發(fā)設(shè)計報告LastupdatedontheafternoonofJanuary3,2021濱江學(xué)院《移動通信程序設(shè)計》
課程設(shè)計題目Android記事本院系計算機系專業(yè)計科3學(xué)生姓名竇同慶二。一四年五月二十九日目錄Android記事本竇同慶南京信息工程大學(xué)計算機系,南京210044摘要:隨著3G技術(shù)的成熟和智能手機的不斷普及,移動應(yīng)用的需求與日俱增,移動應(yīng)用開發(fā)成為當(dāng)下最熱門的技術(shù)之一。在Google和Android手機聯(lián)盟的共同推動下,Android在眾多移動應(yīng)用開發(fā)平臺中脫穎而出。關(guān)鍵詞:android記事本eclipse1概要背景Android是基于Linux開放性內(nèi)核的操作系統(tǒng),是Google公司在2007年11月5日公布的手機操作系統(tǒng)。早期由原名為"Android"的公司開發(fā),谷歌在2005年收購"后,繼續(xù)進行對Android系統(tǒng)開發(fā)運營,它采用了軟件堆層(softwarestack,又名軟件疊層)的架構(gòu),主要分為三部分。底層Linux內(nèi)核只提供基本功能,其他的應(yīng)用軟件則由各公司自行開發(fā),部分程序以Java編寫。2011年初數(shù)據(jù)顯示,僅正式上市兩年的操作系統(tǒng)Android已經(jīng)超越稱霸十年的塞班系統(tǒng),使之躍居全球最受歡迎的智能手機平臺。開放性:在優(yōu)勢方面,Android平臺首先就是其開放性,開發(fā)的平臺允許任何移動終端廠商加入到Android聯(lián)盟中來。顯著的開放性可以使其擁有更多的開發(fā)者,隨著用戶和應(yīng)用的日益豐富,一個嶄新的平臺也將很快走向成熟。開放性對于Android的發(fā)展而言,有利于積累人氣,這里的人氣包括消費者和廠商,而對于消費者來講,最大的受益正是豐富的軟件資源。開放的平臺也會帶來更大競爭,如此一來,消費者將可以用更低的價位購得心儀的手機。掙脫運營商的束縛:在過去很長的一段時間,特別是在歐美地區(qū),手機應(yīng)用往往受到運營商制約,使用什么功能接入什么網(wǎng)絡(luò),幾乎都受到運營商的控制。自從iPhone上市,用戶可以更加方便地連接網(wǎng)絡(luò),運營商的制約減少。隨著EDGE、HSDPA這些2G至3G移動網(wǎng)絡(luò)的逐步過渡和提升,手機隨意接入網(wǎng)絡(luò)已不是運營商口中的笑談。豐富的硬件選擇:這一點還是與Android平臺的開放性相關(guān),由于Android的開放性,眾多的廠商會推出千奇百怪,功能特色各具的多種產(chǎn)品。功能上的差異和特色,卻不會影響到數(shù)據(jù)同步、甚至軟件的兼容。好比你從諾基亞Symbian風(fēng)格手機一下改用蘋果iPhone,同時還可將Symbian中優(yōu)秀的軟件帶到iPhone上使用、聯(lián)系人等資料更是可以方便地轉(zhuǎn)移。不受任何限制的開發(fā)商:Android平臺提供給第三方開發(fā)商一個十分寬泛、自由的環(huán)境。因此不會受到各種條條框框的阻撓,可想而知,會有多少新穎別致的軟件會誕生。但也有其兩面性,血腥、暴力、情色方面的程序和游戲如何控制正是留給Android難題之一。無縫結(jié)合的Google應(yīng)用:如今叱咤互聯(lián)網(wǎng)的Google已經(jīng)走過10年度歷史。從搜索巨人到全面的互聯(lián)網(wǎng)滲透,Google服務(wù)如地圖、郵件、搜索等已經(jīng)成為連接用戶和互聯(lián)網(wǎng)的重要紐帶,而Android平臺手機將無縫結(jié)合這些優(yōu)秀的Google服務(wù)。可行性分析(1) 技術(shù)可行性-----本項目僅需要一臺裝有Eclipse及配置好Android開發(fā)環(huán)境的計算機即可,對計算機本身有一定的要求,它可以使用windowsxp及其以上版本,macos,linux等操作系統(tǒng)。(2) 經(jīng)濟可行性-----由于本軟件開發(fā)只有一個單個人,一臺電腦就行,基本不需要太大的成本.在經(jīng)濟上完全可行。(3) 操作可行性-----界面設(shè)計時充分考慮用戶的習(xí)慣以及手機方面的局限性,程序必須要很簡單;本程序只涉及到開發(fā)環(huán)境配置,安卓組件的熟悉,以及安卓平臺上的數(shù)據(jù)存儲。并沒有太大的難度,所以,該項目完全有可操作性.2開發(fā)環(huán)境的安裝和配置開發(fā)包及其工具的介紹Android以java作為開發(fā)語言,jdk是進行java開發(fā)時必需的開發(fā)包,Eclipse是一款非常優(yōu)秀的開源IDE,在大量插件的配合下,完全可以滿足從企業(yè)級java應(yīng)用到手機終端java游戲的開發(fā)。Google官方也提供了基于Eclipse的Android開發(fā)插件ADT,所以本軟件開發(fā)選擇Eclipse作為開發(fā)IDE。開發(fā)平臺搭建安裝包下載(1) javaJDK下載進入選擇DownloadJDK只下載JDK,無需下載jre。(2) Eclipse下載進入downloads我們選擇第一個,即EclipselDEforjavaEEDevelopers。(3) AndroidSDK下載說明:AndroidSDK兩種下載版本,一種是包含具體版本的SDK的,一種是只有升級工具,而不包含具體的SDK版本。完全版下載(Androidsdkr01)。軟件安裝(1) 安裝JDK安裝完成即可。(2) 解壓EclipseEclipse無需安裝,解壓后,直接打開就行。(3) 解壓AndroidSDK這個也無需安裝,解壓后供后面使。(4) 配置Eclipse打開Eclipse,,在菜單欄上選擇help->InstallNewSoftWare點擊Add按鈕,出現(xiàn)如下界面,輸入網(wǎng)址:android/eclipse/(如果出錯,請將https改成http),名稱:Android(這里可以自定義),點擊OK,點擊Next按鈕,點擊Next按鈕,出現(xiàn)如下界面:選擇lacceptthetermsofthelicenseagreements,點擊Next,進入安裝插件界面安裝完成后,點擊Yes按鈕,重啟Eclips。配置AndroidSDK點擊菜單window->preferences選擇你的AndroidSDK解壓后的目錄,選錯了就會報錯,這個是升級工具,目前還沒有一個版本的SDK升級SDK版本,選擇菜單window->Androidsdkandavdmanager選擇updateall按鈕,出現(xiàn)如下界面選擇左邊的某一項,點擊accept表示安裝,點擊reject表示不安裝,我這里只選了SDK和samplesforapi7,,自己可以任意自定義,確定后,選擇install按鈕,進入安裝界面:安裝完成。新建AVD(Androidvituraldevice)和上面一樣,進入Androidsdkandavdmanager,選中VituralDevices在點擊New按鈕后,名稱可以隨便取,target選擇你需要的SDK版本,SD卡大小自定義,點擊CreateAVD,顯示創(chuàng)建AVD完畢。⑺新建Android項目選擇菜單file->new->other進入如下界面:選擇新建AndroidProject項目,點擊Next按鈕,進入如下界面名稱自定義,應(yīng)用程序名自定義,報名必須包含一個點以上,minSDKversion里面必須輸入整數(shù)(8)配置運行右鍵項目->Runas->RunConfiguration該界面,點擊Browse按鈕,選擇你要運行的項目選擇Target切換到以下界面該界面選擇運行的AVD,將AVD前面的方框設(shè)置為選擇狀態(tài)。⑼測試項目運行右鍵項目名稱->runas->AndroidApplication即可啟動運行該Android程序。3軟件功能規(guī)劃軟件功能能夠提示用戶是否有已寫記事本,能夠進行記事本的標(biāo)題填寫和內(nèi)容填寫,確定后保存。界面設(shè)計進入程序提示“您還沒有開始寫日記呢!點擊下邊的Menu按鈕開始寫日記吧!”,點擊menu菜單后進入標(biāo)題和內(nèi)容的填寫界面。4程序設(shè)計記事本組件的設(shè)計本項目涉及到以下組件:TextView:“記事本”,“新建記事”,“編輯記事”等標(biāo)題。EditView:“記事本的標(biāo)題二“內(nèi)容''等。Button:“確定”按鈕。Menu:“添加新記事”,“編譯內(nèi)容”,“刪除當(dāng)前記事”等。記事本邏輯設(shè)計(1)添加新記事如果當(dāng)前沒有記事,點擊“menu”后只有一個菜單選項“添加新記事”,寫完記事之后,點擊"確定”進行保存。⑵編輯內(nèi)容選中要編輯的那一個記事,然后點擊“menu”菜單,會出現(xiàn)三個選項“新建記事”,“編輯內(nèi)容”,“刪除當(dāng)前記事”,點擊“編輯內(nèi)容”對被選中的記事進行編輯,然后點擊“確定”加以保存。(3)刪除記事點擊上下鍵,選中要刪除的記事,然后點擊“menu”菜單,然后點擊“刪除當(dāng)前記事”,對選中的記事加以刪除。記事本存儲實現(xiàn)Android中一共提供了5種數(shù)據(jù)存儲方式,但是由于存儲的這些數(shù)據(jù)都是其應(yīng)用程序私有的,所以如果需要在其他應(yīng)用程序中使用這些數(shù)據(jù),就要使用Android提供的ContentProvidersoContentProviders:Android提供的一個特殊的存儲數(shù)據(jù)的類型,它提供了一套標(biāo)準(zhǔn)的接口來獲取,操作數(shù)據(jù)。SharedPreference:用來存儲"key-valuepaires”格式的數(shù)據(jù),它是一個輕量級的鍵值存儲機制,只可以存儲基本數(shù)據(jù)類型。Files:它通過FileInputStream和FileOutputStream對文件進行操作,但是在Android中,文件是一個應(yīng)用程序私有的,一個應(yīng)用程序無法讀寫其他應(yīng)用程序的文件。SQLite:Android提供的一個標(biāo)準(zhǔn)的數(shù)據(jù)庫,支持SQL語句。Network:通過網(wǎng)絡(luò)來存儲和獲得數(shù)據(jù)。數(shù)據(jù)存儲之SharedPreferences通過getpreferences()方法來獲得Preference對象,通過=;取得編輯對象,然后通過……()方法添加數(shù)據(jù),最后通過commit()方法來保存數(shù)據(jù)。數(shù)據(jù)存儲之Files我們可以通過自定義的save()方法來保存數(shù)據(jù),同時也可以通過load()方法來獲取文件中的數(shù)據(jù)。booleansave(){Propertiesproperties=newProperties();/*將數(shù)據(jù)打包成Properties*/("bmusic”,(mbMusic));try{FileOutputStreamstream=("”,;/*將打包好的數(shù)據(jù)寫入文件中*/(stream,"");}catch(FileNotFoundExceptione){returnfalse;}catch(IOExceptione){returnfalse;}returntrue;}/*裝載、讀取數(shù)據(jù)*/voidload(){/*構(gòu)建Properties對對象*/Propertiesproperties=newProperties();try{/*開發(fā)文件*/FileInputStreamstream=("");/*讀取文件內(nèi)容*/(stream);}catch(FileNotFoundExceptione){return;}catch(IOExceptione){return;}/*取得數(shù)據(jù)*/mbMusic=("bmusic").toString());}數(shù)據(jù)存儲之Network通過網(wǎng)絡(luò)來獲取和保存數(shù)據(jù)資源,將數(shù)據(jù)存儲到網(wǎng)絡(luò)上的方法很多,比如將要保存的數(shù)據(jù)以文件的方式上傳到服務(wù)器,發(fā)送郵件等。下面我們看下如何實現(xiàn)讀取網(wǎng)絡(luò)文件StringmyString=null;try{/*定義我們要訪問的地址url*/URLuri=");/*打開這個url連接*/URLConnectionucon=();/*從上面的鏈接中取得InputStream*/InputStreamis=();BufferedInputStreambis=newBufferedInputStream(is);ByteArrayBufferbaf=newByteArrayBuffer(100);intcurrent=0;/*一直讀到文件結(jié)束*/while((current=())!=-1){((byte)current);}myString=newString());}catch(Exceptione){myString=();}另外由于在程序中訪問了外部網(wǎng)絡(luò),我們需要在文件中給予權(quán)限,代碼如下:<uses-permissiionAndroid:name=”數(shù)據(jù)存儲之SQLite這個方法在數(shù)據(jù)保存中非常常用.只是它只會被一個程序讀取數(shù)據(jù),不能在不同程序間共享數(shù)據(jù)./*創(chuàng)建和打開數(shù)據(jù)庫*/mSQLiteDatabase=(DATABASE_NAME,MODE_PRIVATE,null);/*創(chuàng)建表*/(CREATE_TABLE);/*刪除數(shù)據(jù)庫*/publicvoidDeleteDataBase(){(DATABASE_NAME);();}/*刪除一個表*/publicvoidDeleteTable(){("DROPTABLE"+TABLE_NAME);();}/*更新一條數(shù)據(jù)*/publicvoidUpData(){ContentValuescv=newContentValues();(TABLE_NUM,miCount);(TABLE_DATA,"修改后的數(shù)據(jù)"+miCount);/*更新數(shù)據(jù)*/(TABLE_NAME,cv,TABLE_NUM+"="+(miCount-1),null);UpdataAdapter();}/*向表中添加一條數(shù)據(jù)*/publicvoidAddData(){ContentValuescv=newContentValues();(TABLE_NUM,miCount);(TABLE_DATA,"測試數(shù)據(jù)庫數(shù)據(jù)"+miCount);/*插入數(shù)據(jù)*/(TABLE_NAME,null,cv);miCount++;UpdataAdapter();}/*從表中刪除指定的一條數(shù)據(jù)*/publicvoidDeleteData(){/*刪除數(shù)據(jù)*/("DELETEFROM"+TABLE_NAME+"WHERE_id="+(miCount));miCount--;if(miCount<0){miCount=0;}UpdataAdapter();}/*更行試圖顯示*/publicvoidUpdataAdapter(){etData());startActivity(intent0);returntrue;etData());;startActivity(intent);returntrue;etData(),getListView().getSelectedItemId());getContentResolver().delete(uri,null,null);renderListView();}(item);}編輯內(nèi)容protectedvoidonCreate(BundlesavedInstanceState){(savedInstanceState);etAction()));setTitle("編輯記事");}elseif(action)){oString();Stringbody=().toString();ContentValuesvalues=newContentValues();DiaryContentProvider.getFormateCreatedDate());title);body);getContentResolver().update(mUri,values,null,null);}}刪除記事privatevoidrenderListView(){Cursorcursor=managedQuery(getIntent().getData(),PROJECTION,null,null,;SimpleCursorAdapteradapter=newSimpleCursorAdapter(this,cursor,newString[]{,},newint[]{});setListAdapter(adapter);}程序執(zhí)行流程文件:packageimport?”.txt”;String?content=().toString();service=newFileService;try{(filename,content);}catch(Exceptione){();}finally{,.show();}}});}}用于文件操作的類:packageimport?布局文件::<xmlversion=""encoding="utf-8”><LinearLayout?xmlns:apk/res/Android"Android:orientation="vertical”Android:layout_width="fill_parent”Android:layout_height="fill_parent”Android:background="@drawable/note1”><TextViewAndroid:id="@+id/text1"Android:layout_width="wrap_content”Android:layout_height="wrap_content”Android:text="@string/theme”Android:textSize="25sp”Android:layout_gravity="center_horizontal”Android:paddingTop="20dip”Android:textColor="#FFaa00”/>?<TextView?Android:id="@+id/text2"Android:layout_width="wrap_content”Android:layout_height="wrap_content”Android:textSize="20sp"Android:text="@string/filename”Android:paddingTop="20dip”Android:textColor="#FFaa00”/><EditText?Android:id="@+id/edit1"Android:layout_width="match_parent”Android:layout_height="wrap_content”Android:maxLines="1"/>?<TextView?Android:id="@+id/text2"Android:layout_width="fill_parent”Android:layout_height="wrap_content”Android:text="@string/content”Android:textSize="20sp"Android:textColor="#FFaa00”/>?<EditText?And
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年溫室大棚內(nèi)植物種植技術(shù)服務(wù)合同3篇
- 2025年云南貨運從業(yè)資格證考試題答案大全及解析
- 2025年荊門大車貨運資格證考試題
- 2024全新車輛頂賬拆分及追償服務(wù)協(xié)議5篇
- 2025年河池怎么考貨運從業(yè)資格證
- 2024年煤礦開發(fā)深度合作協(xié)議模版版B版
- 《男員工站立時,怎》課件
- 安徽省淮北市五校聯(lián)考2022-2023學(xué)年八年級下學(xué)期第一次月考歷史試題(解析版)
- 2024年物業(yè)服務(wù)管理合同(智能化系統(tǒng))
- 2024年水果訂購合同:柑橘專篇
- 書法鑒賞 (浙江財大版)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 電影作品解讀-世界科幻電影智慧樹知到期末考試答案章節(jié)答案2024年成都錦城學(xué)院
- 建筑用砂石料采購 投標(biāo)方案(技術(shù)方案)
- 香文化與養(yǎng)生智慧樹知到期末考試答案章節(jié)答案2024年浙江農(nóng)林大學(xué)
- 小學(xué)四年級上冊勞動期末試卷
- 浙江開放大學(xué)2024年《法律文化》形考作業(yè)1-4答案
- 《福建省安全生產(chǎn)條例》考試復(fù)習(xí)題庫45題(含答案)
- C語言編程新思路智慧樹知到期末考試答案2024年
- 學(xué)習(xí)《中華人民共和國反電信網(wǎng)絡(luò)詐騙法》
- (2024)政府采購評審專家考試題庫及答案
- 煤礦井下集中大巷皮帶機安裝施工組織設(shè)計及措施
評論
0/150
提交評論