




已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
智能終端軟件開發(fā),浙江大學(xué)計算機學(xué)院/軟件學(xué)院 2010.06.,5、數(shù)據(jù)存取,智能終端開發(fā),2010.06.,浙江大學(xué)計算機學(xué)院,3,數(shù)據(jù)存取,Android有四種方式: SharePreference 輕量級鍵-值方式存儲,以XML文件方式保存。 文件 采用java.io.*庫所提供有I/O接口,讀寫文件。 SQLit數(shù)據(jù)庫 SQLite是輕量級嵌入式內(nèi)置數(shù)據(jù)庫。 ContentProvider ContentProvider可為數(shù)據(jù)封裝,為多個應(yīng)用共享。,2010.06.,浙江大學(xué)計算機學(xué)院,4,1、SharedPreferences,創(chuàng)建 以鍵值 方式加入數(shù)據(jù) 以 String Key 為索引來取出數(shù)據(jù) 清除,SharedPreferences settings = this.getSharedPreferences(“Demo“, MODE_PRIVATE); SharedPreferences.Editor editor = settings.edit();,editor.putString(“name“, “value”); mit();,String str = settings.getString(“name“, “);,editor.clear().commit();,XML文件名,2010.06.,浙江大學(xué)計算機學(xué)院,5,SharedPreferences,存入XML后的內(nèi)容 目錄:/data/data/包/shared_prefs/*.xml,XML文件名,2010.06.,浙江大學(xué)計算機學(xué)院,6,Intent,Android中提供了Intent機制來協(xié)助應(yīng)用間的交互與通訊,或者采用更準(zhǔn)確的說法是,Intent不僅可用于應(yīng)用程序之間,也可用于應(yīng)用程序內(nèi)部的Activity/Service之間的交互。 與簡單函數(shù)/方法調(diào)用,或者通過庫調(diào)用接口的方式不太一樣。在Intent的使用中你看不到直接的函數(shù)調(diào)用,相對函數(shù)調(diào)用來說,Intent是更為抽象的概念,利用Intent所實現(xiàn)的軟件復(fù)用的粒度是Activity/Service,比函數(shù)復(fù)用更高一些,另外耦合也更為松散。,2010.06.,浙江大學(xué)計算機學(xué)院,7,2、文件存取,文件用來存儲大數(shù)量的數(shù)據(jù) 采用java.io.*庫所提供有I/O接口,讀寫文件。 只有本地文件可以被訪問 優(yōu)點:可以存儲大容量的數(shù)據(jù) 缺點:文件更新或是格式改變可能會導(dǎo)致巨大的編程工作,2010.06.,浙江大學(xué)計算機學(xué)院,8,文件操作(讀),讀文件 Context.openFileInput(String name)打開一個與應(yīng)用程序聯(lián)系的私有文件輸入流 當(dāng)文件不存在時拋出FileNotFoundException 異常,FileInputStream in = this.openFileInput(“rt.txt“);/打開文件“rt.txt“ in.close();/關(guān)閉輸入流,2010.06.,浙江大學(xué)計算機學(xué)院,9,文件操作(寫),寫文件 Context.openFileOutput(String name,int mode)開啟一個與應(yīng)用程序聯(lián)系的私有文件輸出流 當(dāng)文件不存在時該文件將被創(chuàng)建 文件輸出流可以在添加模式中打開,這意味新的數(shù)據(jù)將被添加到文件的末尾,FileOutputStream out = this.openFileOutput(“wt.txt“,MODE_APPEND); /打開文件“wt.txt“進行寫操作、使用MODE_APPEND 在添加模式中打開文件 out.close();/關(guān)閉輸出流,2010.06.,浙江大學(xué)計算機學(xué)院,10,讀取靜態(tài)文件,要打開打包在應(yīng)用程序中的靜態(tài)文件,使用Resources.openRawResource(R.raw.mydatafile) 該文件必須放在文件夾res/raw/中,InputStreamin = this.getResources().openRawResource(R.raw.my); /獲得Context資源 in.close(); /關(guān)閉輸入流,2010.06.,浙江大學(xué)計算機學(xué)院,11,把文件存放在SDCard,訪問SDCard,需要申請訪問SDCard的權(quán)限。在AndroidManifest.xml中加入訪問SDCard的權(quán)限如下:,2010.06.,浙江大學(xué)計算機學(xué)院,12,SDCard讀寫,要進行SDCard讀寫,必須先判斷手機是否裝有SDCard,并且可以進行讀寫。,if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED) File sdCardDir = Environment.getExternalStorageDirectory();/獲取SDCard目錄 File saveFile = new File(sdCardDir, “itcast.txt”); FileOutputStream outStream = new FileOutputStream(saveFile); outStream.write(“Android開發(fā)“.getBytes(); outStream.close(); ,2010.06.,浙江大學(xué)計算機學(xué)院,13,3、SQLite數(shù)據(jù)庫編程,在某些情況下,文件不是有效的 如果多線程數(shù)據(jù)訪問是相關(guān)的 如果應(yīng)用程序處理可能變化的復(fù)雜數(shù)據(jù)結(jié)構(gòu) 等等 內(nèi)置SQLite 數(shù)據(jù)庫支持 數(shù)據(jù)庫對于創(chuàng)建它們的包套件是私有的 數(shù)據(jù)庫不應(yīng)該用來存貯文件 SQLite 是一個輕量級的軟件庫 原子量性 堅固性 獨立性 耐久性 體積大小只用幾千字節(jié) 一些SQL 的指令只是部分支持,例如:ALTER、TABLE,2010.06.,浙江大學(xué)計算機學(xué)院,14,SQLite數(shù)據(jù)庫,Android提供了一個名為SQLiteDatabase的類,該類封裝了一些操作數(shù)據(jù)庫的API,使用該類可以完成對數(shù)據(jù)進行添加(Create)、查詢(Retrieve)、更新(Update)和刪除(Delete)操作(這些操作簡稱為CRUD)。,2010.06.,浙江大學(xué)計算機學(xué)院,15,SQLiteDatabase的execSQL()和rawQuery()方法。 execSQL()方法:可以執(zhí)行insert、delete、update和CREATE TABLE之類有更改行為的SQL語句; rawQuery()方法:可以執(zhí)行select語句。 execSQL()方法的使用例子:,SQLiteDatabase db = ; db.execSQL(“insert into person(name, age) values(Android開發(fā), 4)“); db.close();,2010.06.,浙江大學(xué)計算機學(xué)院,16,創(chuàng)建數(shù)據(jù)庫,Context.createDatabase(String name,int version ,int mode,CursorFactory factory)創(chuàng)建一個新的數(shù)據(jù)庫并返回SQLiteDatabase 對象 假如不能被創(chuàng)建,則拋出FileNotFoundException,SQLiteDatabase mydataBase=SQLiteDatabase.create(new CursorFactory() /創(chuàng)建一個數(shù)據(jù)庫 /工廠類,當(dāng)查詢時調(diào)用來實例化一個光標(biāo) Override public Cursor newCursor(SQLiteDatabase db, SQLiteCursorDriver masterQuery, String editTable, SQLiteQuery query) / TODO Auto-generated method stub return null; );,2010.06.,浙江大學(xué)計算機學(xué)院,17,創(chuàng)建數(shù)據(jù)庫,創(chuàng)建新的數(shù)據(jù)庫,SQLiteDatabase myDataBase=this.openOrCreateDatabase(“myDataBase.db“, MODE_PRIVATE, new CursorFactory() /創(chuàng)建新的數(shù)據(jù)庫,名稱myDatabase,模式MODE_PRIVATE,鼠標(biāo)工廠 /工廠類,一個可選工廠類,當(dāng)查詢時調(diào)用來實例化一個光標(biāo) Override public Cursor newCursor(SQLiteDatabase db, SQLiteCursorDriver masterQuery, String editTable, SQLiteQuery query) / TODO Auto-generated method stub return null; );,2010.06.,浙江大學(xué)計算機學(xué)院,18,4、使用ContentProvider共享數(shù)據(jù),當(dāng)應(yīng)用繼承ContentProvider類,并重寫該類用于提供數(shù)據(jù)和存儲數(shù)據(jù)的方法,就可以向其他應(yīng)用共享其數(shù)據(jù)。雖然使用其他方法也可以對外共享數(shù)據(jù),但數(shù)據(jù)訪問方式會因數(shù)據(jù)存儲的方式而不同,如:采用文件方式對外共享數(shù)據(jù),需要進行文件操作讀寫數(shù)據(jù);采用sharedpreferences共享數(shù)據(jù),需要使用sharedpreferences API讀寫數(shù)據(jù)。而使用ContentProvider共享數(shù)據(jù)的好處是統(tǒng)一了數(shù)據(jù)訪問方式。 第一步需要繼承ContentProvider并重寫下面方法:,public class PersonContentProvider extends ContentProvider public boolean onCreate() public Uri insert(Uri uri, ContentValues values) public int delete(Uri uri, String selection, String selectionArgs) public int update(Uri uri, ContentValues values, String selection, String selectionArgs) public Cursor query(Uri uri, String projection, String selection, String selectionArgs, String sortOrder) public String getT
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 裝潢設(shè)計在化妝品試用裝包裝的便捷性考核試卷
- 滌綸纖維在農(nóng)業(yè)紡織品中的應(yīng)用考核試卷
- 自我領(lǐng)導(dǎo)力在團隊管理中的應(yīng)用研究試題及答案
- 2024年玻璃布增強塑料項目資金籌措計劃書代可行性研究報告
- 計算機四級標(biāo)準(zhǔn)法規(guī)試題及答案
- 2024年油炸類制品資金申請報告代可行性研究報告
- 嵌入式系統(tǒng)中的人機交互試題及答案
- 高端裝備制造企業(yè)股權(quán)轉(zhuǎn)讓費用及產(chǎn)業(yè)升級合作協(xié)議
- 2025年中國邊緣計算行業(yè)市場現(xiàn)狀及未來發(fā)展前景預(yù)測分析報告
- 智能零售自助結(jié)算系統(tǒng)租賃與品牌合作推廣合同
- 2025年全國法制宣傳日普法知識競賽題庫及答案(共200題)
- 消防安裝工程重點難點分析及應(yīng)對措施
- 醫(yī)師人員管理制度內(nèi)容
- GB/T 44951-2024防彈材料及產(chǎn)品V50試驗方法
- 2024年公路水運工程試驗檢測師《橋梁隧道工程》考試題庫大全(含真題)-上(單選題)
- 2025屆內(nèi)蒙古鄂爾多斯市康巴什區(qū)鄂爾多斯一中高考考前模擬數(shù)學(xué)試題含解析
- 寧夏銀川市一中2025屆高考數(shù)學(xué)押題試卷含解析
- 高考3500詞匯表(完整版)
- 中國咳嗽基層診療與管理指南(2024年)解讀
- 經(jīng)營高危險性體育項目游泳申請表
- 風(fēng)險管理師-國家職業(yè)技能標(biāo)準(zhǔn)(2022年版)
評論
0/150
提交評論