Andriod應(yīng)用開(kāi)發(fā)基礎(chǔ)教程課件 第5章 數(shù)據(jù)存儲(chǔ)_第1頁(yè)
Andriod應(yīng)用開(kāi)發(fā)基礎(chǔ)教程課件 第5章 數(shù)據(jù)存儲(chǔ)_第2頁(yè)
Andriod應(yīng)用開(kāi)發(fā)基礎(chǔ)教程課件 第5章 數(shù)據(jù)存儲(chǔ)_第3頁(yè)
Andriod應(yīng)用開(kāi)發(fā)基礎(chǔ)教程課件 第5章 數(shù)據(jù)存儲(chǔ)_第4頁(yè)
Andriod應(yīng)用開(kāi)發(fā)基礎(chǔ)教程課件 第5章 數(shù)據(jù)存儲(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

Andriod應(yīng)用開(kāi)發(fā)基礎(chǔ)教程第5章數(shù)據(jù)存儲(chǔ)應(yīng)用程序在Android系統(tǒng)運(yùn)行過(guò)程中產(chǎn)生的用戶數(shù)據(jù)、日志、下載的圖片、文件等都需要存儲(chǔ)在Android系統(tǒng)提供的存儲(chǔ)空間里,系統(tǒng)提供了SharePreferences、應(yīng)用專屬存儲(chǔ)、數(shù)據(jù)庫(kù)、共享存儲(chǔ)等方式來(lái)存儲(chǔ)這些產(chǎn)生的數(shù)據(jù)。(1)SharePreferences:將數(shù)據(jù)以鍵值對(duì)形式存儲(chǔ)在XML文件中;(2)應(yīng)用專屬存儲(chǔ):此種存儲(chǔ)方式僅供應(yīng)用使用,可以將應(yīng)用數(shù)據(jù)存儲(chǔ)到內(nèi)部存儲(chǔ)空間的專屬目錄或外部存儲(chǔ)空間中的私有目錄。(3)共享存儲(chǔ):存儲(chǔ)應(yīng)用間能共享的文件,包括媒體、文檔和其他文件;(4)數(shù)據(jù)庫(kù):將結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)在專用數(shù)據(jù)庫(kù)中。表5-1數(shù)據(jù)存儲(chǔ)方式特點(diǎn)存儲(chǔ)方式存儲(chǔ)內(nèi)容類型其它應(yīng)用可否訪問(wèn)卸載應(yīng)用是否移除SharePreferences鍵值對(duì)否是應(yīng)用專屬存儲(chǔ)僅供應(yīng)用使用文件否是數(shù)據(jù)庫(kù)結(jié)構(gòu)化數(shù)據(jù)否是媒體可共享的媒體文件(圖片、音頻文件、視頻)是,但其他應(yīng)用需要READ_EXTERNAL_STORAGE權(quán)限否文檔和其他文件其他類型的可共享內(nèi)容,包括已下載的文件是,可以通過(guò)系統(tǒng)文件選擇器訪問(wèn)否5.1SharePreferencesSharePreferences是一種輕量級(jí)的存儲(chǔ)方式,適合單進(jìn)程、小批量的數(shù)據(jù)存儲(chǔ)與訪問(wèn),可用于保存應(yīng)用的配置信息,大數(shù)據(jù)不合適采用SharedPreferences存放,SharedPreferences用xml文件存放數(shù)據(jù),文件目錄位于/data/data/包名/shared_prefs下。SharedPreferences本身是一個(gè)接口,程序無(wú)法直接創(chuàng)建SharedPreferences的實(shí)例,只能通過(guò)Activity的getSharedPreferences()方法、Context的getPreferences()方法和PreferenceManager的getDefaultSharedPreferences()方法來(lái)獲取SharedPreferences的實(shí)例,這些方法中第一個(gè)參數(shù)用于指定SharedPreferences文件的名稱(格式為xml文件),如果指定的文件不存在則會(huì)創(chuàng)建一個(gè),第二個(gè)參數(shù)用于指定存儲(chǔ)模式。有下面的一些模式:1、MODE_PRIVATE:默認(rèn)模式,創(chuàng)建的文件只能由調(diào)用應(yīng)用程序(或共享相同用戶ID的所有應(yīng)用程序)訪問(wèn);2、MODE_WORLD_READABLE:允許所有其它應(yīng)用程序?qū)?chuàng)建的文件具有讀取權(quán)限,AndroidAPI17之后不再贊成此模式。創(chuàng)建所有應(yīng)用程序可讀的文件非常危險(xiǎn),并可能在應(yīng)用程序中造成安全漏洞,應(yīng)用程序應(yīng)該使用更正式的交互機(jī)制,如ContentProvider、BroadcastReceiver和Service。3、MODE_WORLD_WRITEABLE:允許其它所有應(yīng)用程序?qū)?chuàng)建的文件進(jìn)行讀寫,AndroidAPI17之后不再贊成此模式。同MODE_WORLD_READABLE一樣,創(chuàng)建所有應(yīng)用程序可讀寫的文件非常危險(xiǎn),并可能在應(yīng)用程序中造成安全漏洞。4、MODE_MULTI_PROCESS:允許在應(yīng)用程序有多個(gè)進(jìn)程的情況下,所有進(jìn)程都寫入同一SharedPreferences文件,AndroidAPI23之后不再贊成此模式。在一些版本的Android中工作不可靠,而且沒(méi)有提供任何機(jī)制來(lái)協(xié)調(diào)進(jìn)程之間的并發(fā)修改,應(yīng)盡量避免使用。5、MODE_APPEND:如果文件已存在,則將數(shù)據(jù)寫入現(xiàn)有文件的末尾,而不是擦除它。得到SharedPreferences實(shí)例后,需要調(diào)用SharedPreferences實(shí)例的edit()方法來(lái)獲取一個(gè)SharedPreferences.Editor實(shí)例來(lái)完成數(shù)據(jù)操作。表5-2SharedPreferences.Editor實(shí)例常用方法方法作用clear()從SharedPreferences文件中移除保存的所有值putBoolean(String

key,

booleanvalue)putFloat(String

key,

floatvalue)putInt(String

key,

intvalue)putLong(String

key,

longvalue)putString(String

key,

String

value)putStringSet(String

key,

Set<String>values)向SharedPreferences文件中添加不同類型數(shù)據(jù):布爾型、浮點(diǎn)型、整型、長(zhǎng)整型、字符串、字符串列表remove(String

key)從SharedPreferences文件中移除鍵值相關(guān)聯(lián)數(shù)據(jù)commit()apply()向SharedPreferences文件提交修改。commit()方法是同步的,會(huì)返回一個(gè)布爾值表示是否成功提交;apply()方法是異步的,沒(méi)有返回值,適用于對(duì)性能有較高要求的情況。保存在SharedPreferences文件中的數(shù)據(jù)可直接通過(guò)SharedPreferences實(shí)例來(lái)獲取。表5-3SharedPreferences實(shí)例獲取存儲(chǔ)數(shù)據(jù)常用方法方法作用abstractboolean

contains(String

key)從SharedPreferences文件查找是否包含鍵值關(guān)聯(lián)的數(shù)據(jù)abstractMap<String,?>getAll()從SharedPreferences文件中遍歷所有數(shù)據(jù)abstractboolean

getBoolean(String

key,

booleandefValue)abstractfloat

getFloat(String

key,

floatdefValue)abstractint

getInt(String

key,

intdefValue)abstractlonggetLong(String

key,

longdefValue)abstract

String

getString(String

key,

String

defValue)abstract

Set<String>getStringSet(String

key,

Set<String>defValues)返回SharedPreferences文件中各種類型數(shù)據(jù):布爾型、浮點(diǎn)型、整型、長(zhǎng)整型、字符串、字符串列表。"key"是存儲(chǔ)數(shù)據(jù)時(shí)使用的鍵,"defValue"是一個(gè)默認(rèn)值,如果該鍵不存在,則會(huì)返回這個(gè)默認(rèn)值。案例5.1

使用SharedPreferences存取數(shù)據(jù)(參考代碼見(jiàn):SharedPreferencesActivity)運(yùn)行SharedPreferencesActivity在模擬器生成應(yīng)用,在應(yīng)用界面中文本輸入框輸入姓名和年齡信息,點(diǎn)擊“向SharedPreferences存數(shù)據(jù)”按鈕,將姓名和年齡信息保存到SharedPreferences,返回AndroidStudio在菜單欄中依次點(diǎn)開(kāi)視圖>工具窗口>DeviceExplore,在打開(kāi)的DeviceExplore窗口中,依次點(diǎn)開(kāi)data>data

>com.example.datastorage(本項(xiàng)目的包名)>shared_prefs,在shared_prefs目錄下則可看見(jiàn)新生成的SharedPreferences文件MySharedPreferencesFile.xml,該文件內(nèi)容如下:1<?xmlversion='1.0'encoding='utf-8'standalone='yes'?>2<map>3<stringname="name">啄木鳥(niǎo)</string>4<intname="age"value="18"/>5</map>返回模擬器應(yīng)用,點(diǎn)擊應(yīng)用界面“從SharedPreferences取數(shù)據(jù)”按鈕,從SharedPreferences獲取到的姓名年齡信息5.2內(nèi)部和外部存儲(chǔ)在Android開(kāi)發(fā)常涉及到以下三個(gè)幾個(gè)概念:內(nèi)存,內(nèi)部存儲(chǔ),外部存儲(chǔ)。英文中內(nèi)存為Memory,內(nèi)部存儲(chǔ)為InternalStorage,外部存儲(chǔ)為ExternalStorage,當(dāng)我們翻譯為中文之后,前兩個(gè)都簡(jiǎn)稱為內(nèi)存,容易產(chǎn)生混淆,這三者到底有什么區(qū)別呢?1、內(nèi)存:手機(jī)內(nèi)存用于暫時(shí)存放CPU中的運(yùn)算數(shù)據(jù)以及與硬盤等外部存儲(chǔ)器交換的數(shù)據(jù)。手機(jī)內(nèi)存越大越能流暢地運(yùn)行多個(gè)應(yīng)用。2、內(nèi)部存儲(chǔ):內(nèi)部存儲(chǔ)用目錄來(lái)區(qū)分的話就是/data目錄下的data文件夾:/data/data,普通用戶是無(wú)權(quán)訪問(wèn)的,用戶需要手機(jī)ROOT權(quán)限才可以查看。開(kāi)發(fā)者可以通過(guò)AndroidStudio在菜單欄中依次點(diǎn)開(kāi)視圖>工具窗口>DeviceExplore,在打開(kāi)的DeviceExplore窗口中,依次點(diǎn)開(kāi)data>data來(lái)查看該目錄。每個(gè)應(yīng)用在安裝成功后,會(huì)在/data/data目錄下面創(chuàng)建以該應(yīng)用的包名為名稱的目錄,這個(gè)目錄即為應(yīng)用專屬的內(nèi)部存儲(chǔ)目錄,當(dāng)應(yīng)用被卸載后,該目錄會(huì)被系統(tǒng)自動(dòng)刪除。將數(shù)據(jù)存儲(chǔ)于內(nèi)部存儲(chǔ)中,其實(shí)就是把數(shù)據(jù)存儲(chǔ)到自己應(yīng)用包名對(duì)應(yīng)的內(nèi)部存儲(chǔ)目錄中。每個(gè)應(yīng)用的內(nèi)部存儲(chǔ)目錄都是私有的,也就是說(shuō)內(nèi)部存儲(chǔ)目錄下的文件只能被該應(yīng)用訪問(wèn)到,其他應(yīng)用是沒(méi)有權(quán)限訪問(wèn)的。應(yīng)用訪問(wèn)自己的內(nèi)部存儲(chǔ)目錄時(shí)不需要申請(qǐng)任何權(quán)限。3、外部存儲(chǔ):外部存儲(chǔ)是我們平時(shí)操作最多的,外部存儲(chǔ)目錄就是DeviceExplore窗口中看見(jiàn)的/storage文件夾,也有可能是/mnt文件夾,不同廠家有可能不一樣。外部存儲(chǔ)根據(jù)存儲(chǔ)特點(diǎn)不同分為兩種類型,外部私有存儲(chǔ)和外部共有存儲(chǔ)。私有目錄屬于外部存儲(chǔ)的私有存儲(chǔ)空間,該目錄為/storage/emulated/0/Android/data下的以包名為名稱的文件夾,這些文件夾是應(yīng)用的外部存儲(chǔ)私有目錄。公共目錄屬于外部存儲(chǔ)的共享空間,在/storage/emulated/0目錄下看見(jiàn)的DCIM、Download、Music、Movies、Pictures等系統(tǒng)為我們創(chuàng)建的目錄里面的文件所有應(yīng)用可以共享,這些目錄為外部存儲(chǔ)公共目錄。應(yīng)用的配置信息、數(shù)據(jù)庫(kù)信息、緩存文件等應(yīng)用相關(guān)數(shù)據(jù)在應(yīng)用被卸載后,這些信息也應(yīng)該被隨之刪除,避免占用存儲(chǔ)空間產(chǎn)生不必要的浪費(fèi),這些應(yīng)用相關(guān)數(shù)據(jù)應(yīng)當(dāng)放到外部私有存儲(chǔ)目錄下。用戶在使用應(yīng)用的過(guò)程中產(chǎn)生的圖片、文件等其它應(yīng)用無(wú)關(guān)數(shù)據(jù)一般用戶希望與其他應(yīng)用共享,在應(yīng)用被刪除后仍然保存在設(shè)備中,適合存放在外部存儲(chǔ)空間的公共目錄。應(yīng)用可以無(wú)需權(quán)限訪問(wèn)自己的外部存儲(chǔ)私有目錄,應(yīng)用訪問(wèn)其它應(yīng)用的外部存儲(chǔ)私有目錄在Android7.0前可通過(guò)file://這種形式的Uri直接讀寫該目錄下的文件內(nèi)容,Android7.0開(kāi)始需要通過(guò)FileProvider訪問(wèn)。應(yīng)用在訪問(wèn)外部公有目錄之前需要申請(qǐng)外部存儲(chǔ)權(quán)限,在Android6.0以后,外部存儲(chǔ)權(quán)限還要?jiǎng)討B(tài)申請(qǐng)。表5-4外部存儲(chǔ)和內(nèi)部存儲(chǔ)比較表5-5訪問(wèn)內(nèi)部和外部存儲(chǔ)目錄的方法方法訪問(wèn)路徑內(nèi)部存儲(chǔ)目錄context.getDataDir()/data/data/包名,應(yīng)用內(nèi)部存儲(chǔ)的根目錄context.getFilesDir()/data/data/包名/files,應(yīng)用內(nèi)部存儲(chǔ)的files目錄context.getCacheDir()/data/data/包名/cache,應(yīng)用內(nèi)部存儲(chǔ)的cache目錄context.getDir(Stringname,intmode)/data/data/包名/name,如果該目錄不存在,系統(tǒng)會(huì)自動(dòng)創(chuàng)建該目錄。mode取值可為MODE_APPEND、MODE_PRIVATE、MODE_WORLD_READABLE、MODE_WORLD_WRITABLE。外部私有存儲(chǔ)目錄context.getExternalCacheDir()/storage/emulated/0/Android/data/包名/cacheContext.getExternalFilesDir(Stringtype)1、type=””:/storage/emulated/0/Android/data/package_name/files2、type=”xxx”:(xxx表示目錄名)/storage/emulated/0/Android/data/package_name/files/xxx外部共有存儲(chǔ)目錄Environment.getExternalStorageDirectory()/storage/emulated/0,外部共有存儲(chǔ)目錄的根目錄Environment.getExternalStoragePublicDirectory(Stringtype)1、type=””:/storage/emulated/02、type=”xxx”:(xxx表示目錄名)/storage/emulated/0/xxx3、type=”Environment.DIRECTORY_PICTURES”|”Environment.DIRECTORY_MUSIC”|”Environment.DIRECTORY_DICM”|”Environment.DIRECTORY_ALARM”等:/storage/emulated/0/(系統(tǒng)自己創(chuàng)建的Pictures、Music等目錄)無(wú)論內(nèi)部還是外部存儲(chǔ)空間,只要路徑中有包名,那么就是應(yīng)用私有的存儲(chǔ)路徑,存放應(yīng)用相關(guān)數(shù)據(jù),隨著應(yīng)用的的卸載而被刪除,可通過(guò)調(diào)用Context里面的方法獲取路徑位置,而路徑中不含包名的路徑為應(yīng)用公共存儲(chǔ)空間,存放應(yīng)用無(wú)關(guān)數(shù)據(jù),可通過(guò)Environment里面的方法來(lái)獲取路徑位置。案例5.2

內(nèi)部存儲(chǔ)目錄寫入讀取數(shù)據(jù)(參考代碼見(jiàn):InternalStorageActivity)運(yùn)行InternalStorageActivity在模擬器生成應(yīng)用,在應(yīng)用界面編輯框輸入數(shù)據(jù),點(diǎn)擊“保存”按鈕,在DeviceExplore窗口中,依次點(diǎn)開(kāi)data>data>com.example.datastorage>files,發(fā)現(xiàn)內(nèi)部存儲(chǔ)files目錄下確實(shí)生成一個(gè)名為InternalStorageFile.text的文本文件,打開(kāi)該文本文件,文本文件保存數(shù)據(jù)正為文本框中輸入內(nèi)容。返回應(yīng)用,點(diǎn)擊應(yīng)用界面“讀取”按鈕,讀取到了應(yīng)用內(nèi)部存儲(chǔ)目錄files下的InternalStorageFile.text文件內(nèi)容向外部存儲(chǔ)私有目錄讀寫數(shù)據(jù)時(shí),只需要在案例5-2基礎(chǔ)上在創(chuàng)建File實(shí)例時(shí)將getApplicationContext().getFilesDir()改為getApplicationContext().getExternalFilesDir(“”),文件存儲(chǔ)位置變?yōu)?storage/emulated/0/Android/data/com.example.datastorage/files,過(guò)程和結(jié)果與案例5-2類似案例5.3

向外部存儲(chǔ)公有目錄讀寫數(shù)據(jù)(參考代碼見(jiàn):ExternalStorageActivity)運(yùn)行ExternalStorageActivity在模擬器生成應(yīng)用,應(yīng)用界面彈出動(dòng)態(tài)申請(qǐng)外部存儲(chǔ)公共目錄訪問(wèn)權(quán)限的對(duì)話框,對(duì)話框點(diǎn)擊“允許”進(jìn)入應(yīng)用界面,在輯框輸入數(shù)據(jù),點(diǎn)擊“保存”按鈕,在DeviceExplore窗口中,依次點(diǎn)開(kāi)/storage/emulated/0,發(fā)現(xiàn)該外部存儲(chǔ)公有目錄下確實(shí)生成一個(gè)名為ExternalStorageFile.text的文本文件,打開(kāi)該文本文件,文本文件保存數(shù)據(jù)正為文本框中輸入內(nèi)容。返回應(yīng)用,點(diǎn)擊應(yīng)用界面“讀取”按鈕,讀取外部存儲(chǔ)公有目錄下ExternalStorageFile.text文件內(nèi)容5.3數(shù)據(jù)庫(kù)存儲(chǔ)SQLite是Android內(nèi)置的一個(gè)小型、關(guān)系型、屬于文本型的數(shù)據(jù)庫(kù),是一種輕量級(jí)的嵌入式關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),廣泛應(yīng)用于Android應(yīng)用開(kāi)發(fā)中。Android提供了SQLiteOpenHelper類和SQLiteDatabase類來(lái)管理SQLite數(shù)據(jù)庫(kù)。SQLiteOpenHelper類用于創(chuàng)建和管理數(shù)據(jù)庫(kù)以及版本控制,SQLiteDatabase類用于執(zhí)行創(chuàng)建表、數(shù)據(jù)增刪改查更新等操作。表5-6SQLiteOpenHelper類操作數(shù)據(jù)庫(kù)方法方法作用abstractvoidonCreate(SQLiteDatabasedb)數(shù)據(jù)庫(kù)第一次被創(chuàng)建時(shí)調(diào)用。在該方法中,可以執(zhí)行創(chuàng)建數(shù)據(jù)庫(kù)表的SQL語(yǔ)句voidclose()數(shù)據(jù)庫(kù)關(guān)閉前調(diào)用voidonOpen(SQLiteDatabasedb)數(shù)據(jù)庫(kù)打開(kāi)后調(diào)用voidonConfigure(SQLiteDatabasedb)數(shù)據(jù)庫(kù)被配置時(shí)調(diào)用,以啟用如寫日志、外鍵支持等功能。abstractvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion)當(dāng)數(shù)據(jù)庫(kù)需要升級(jí)時(shí)調(diào)用此方法。在該方法中,可以執(zhí)行升級(jí)數(shù)據(jù)庫(kù)表的SQL語(yǔ)句voidonDowngrade(SQLiteDatabasedb,intoldVersion,intnewVersion)當(dāng)數(shù)據(jù)庫(kù)需要降級(jí)時(shí)調(diào)用此方法。在該方法中,可以執(zhí)行降級(jí)數(shù)據(jù)庫(kù)表的SQL語(yǔ)句href="/reference/android/database/sqlite/SQLiteDatabase"SQLiteDatabasegetWritableDatabase()獲取一個(gè)可讀/寫的數(shù)據(jù)庫(kù)實(shí)例,如果數(shù)據(jù)庫(kù)不存在,則會(huì)調(diào)用onCreate()方法創(chuàng)建href="/reference/android/database/sqlite/SQLiteDatabase"SQLiteDatabasegetReadableDatabase()獲取一個(gè)可讀的數(shù)據(jù)庫(kù)實(shí)例,如果數(shù)據(jù)庫(kù)不存在,則會(huì)調(diào)用onCreate()方法創(chuàng)建表5-7SQLiteDatabase類操作數(shù)據(jù)庫(kù)方法方法作用voidexecSQL(Stringsql)執(zhí)行SQL語(yǔ)句,如創(chuàng)建表、插入數(shù)據(jù)、更新數(shù)據(jù)、刪除數(shù)據(jù)等,不能進(jìn)行查詢操作longinsert(Stringtable,StringnullColumnHack,ContentValuesvalues)插入數(shù)據(jù)int

update(Stringtable,ContentValuesvalues,StringwhereClause,String[]whereArgs)更新數(shù)據(jù)int

delete(Stringtable,StringwhereClause,String[]whereArgs)刪除數(shù)據(jù)long

replace(Stringtable,StringnullColumnHack,ContentValuesinitialValues)替換數(shù)據(jù)庫(kù)中一行數(shù)據(jù)Cursor

query(Stringtable,String[]columns,Stringselection,String[]selectionArgs,StringgroupBy,Stringhaving,StringorderBy)查詢數(shù)據(jù)table:表名;columns:列名稱數(shù)組,指定從哪些列尋找;selection:查詢的條件,相當(dāng)于where后的內(nèi)容;selectionArgs:查詢條件的參數(shù);groupBy:分組列;having:分組條件;orderBy:排序列;Cursor

rawQuery(Stringsql,String[]selectionArgs)執(zhí)行一條SQL查詢語(yǔ)句void

beginTransaction()開(kāi)啟事務(wù)void

setTransactionSuccessful()標(biāo)記事務(wù)成功void

endTransaction()結(jié)束事務(wù)Cursor

rawQueryWithFactory(SQLiteDatabase.CursorFactorycursorFactory,Stringsql,String[]selectionArgs,StringeditTable)執(zhí)行一條SQL查詢語(yǔ)句,并使用指定的CursorFactory創(chuàng)建Cursorclose()關(guān)閉數(shù)據(jù)庫(kù)String

getPath()獲取數(shù)據(jù)庫(kù)文件路徑表5-8Cursor類常用方法方法作用abstractintgetCount()獲得游標(biāo)總項(xiàng)abstractintgetColumnIndexOrThrow(StringcolumnName)由列名稱獲得列索引abstractString[]

getColumnNames()獲得列名稱abstractintgetPosition()獲得游標(biāo)位置abstractbooleanisFir

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論