




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、1.android dvm 的進(jìn)程和Linux的進(jìn)程,應(yīng)用程序的進(jìn)程是否為同一個概念:答:dvm是dalivk虛擬機(jī)。每一個android應(yīng)用程序都在自己的進(jìn)程中運(yùn)行,都擁有一個dalivk虛擬機(jī)實例。而每一個dvm都是在linux的一個進(jìn)程。所以說可以認(rèn)為是同一個概念。2.android的動畫有哪幾種?他們的特點(diǎn)和區(qū)別是什么?答:兩種,一種是tween動畫,一種是frame動畫。tween動畫,這種實現(xiàn)方式可以使視圖組件移動,放大或縮小以及產(chǎn)生透明度的變化。frame動畫,傳統(tǒng)的動畫方法,通過順序的播放排列好的圖片來實現(xiàn),類似電影。3.handler進(jìn)制的原理:答:android提供了han
2、dler和looper來滿足線程間的通信。Handler先進(jìn)先出原則。looper用來管理特定線程內(nèi)對象之間的消息交換(message Exchange). 1)looper:一個線程可以產(chǎn)生一個looper對象,由它來管理此線程里的message queue(消息隊列) 2)handler:你可以構(gòu)造一個handler對象來與looper溝通,以便push新消息到messagequeue里;或者接收looper(從messagequeue里取出)所送來的消息。 3)messagequeu
3、e:用來存放線程放入的消息。 4)線程:UI thread 通常就是main thread,而android啟動程序時會為它建立一個message queue.4.android view的刷新:答:Android中對View的更新有很多種方式,使用時要區(qū)分不同的應(yīng)用場合。我感覺最要緊的是分清:多線程和雙緩沖的使用情況。 1).不使用多線程和雙緩沖 這種情況最簡單了,一般只是希望在View發(fā)生改變時對UI進(jìn)行重繪。你只需在Activity中顯式地調(diào)用View對象中的invalidate()方法即可。
4、系統(tǒng)會自動調(diào)用 View的onDraw()方法。 2).使用多線程和不使用雙緩沖 這種情況需要開啟新的線程,新開的線程就不好訪問View對象了。強(qiáng)行訪問的話會報:android.view.ViewRoot$CalledFromWrongThreadException:Only the originalthread that created a view hierarchy can touch its views. 這時候你需要創(chuàng)建一個繼承了android.os.Handler的子類,并重
5、寫handleMessage(Messagemsg)方法。android.os.Handler是能發(fā)送和處理消息的,你需要在Activity中發(fā)出更新UI的消息,然后再你的Handler(可以使用匿名內(nèi)部類)中處理消息(因為匿名內(nèi)部類可以訪問父類變量,你可以直接調(diào)用View對象中的invalidate()方法 )。也就是說:在新線程創(chuàng)建并發(fā)送一個Message,然后再主線程中捕獲、處理該消息。 3).使用多線程和雙緩沖 Android中SurfaceView是View的子類,她同時也實現(xiàn)了雙緩沖。你可以定義一個她的子類并實
6、現(xiàn)SurfaceHolder.Callback接口。由于實現(xiàn)SurfaceHolder.Callback接口,新線程就不需要android.os.Handler幫忙了。SurfaceHolder中l(wèi)ockCanvas()方法可以鎖定畫布,繪制玩新的圖像后調(diào)用unlockCanvasAndPost(canvas)解鎖(顯示),還是比較方便得。 5.說說mvc模式的原理,它在android中的運(yùn)用:答:android的官方建議應(yīng)用程序的開發(fā)采用mvc模式。何謂mvc? mvc是model,view,controller的縮寫,mvc包含三個部分: l模型(model)
7、對象:是應(yīng)用程序的主體部分,所有的業(yè)務(wù)邏輯都應(yīng)該寫在該層。2視圖(view)對象:是應(yīng)用程序中負(fù)責(zé)生成用戶界面的部分。也是在整個mvc架構(gòu)中用戶唯一可以看到的一層,接收用戶的輸入,顯示處理結(jié)果。3控制器(control)對象:是根據(jù)用戶的輸入,控制用戶界面數(shù)據(jù)顯示及更新model對象狀態(tài)的部分,控制器更重要的一種導(dǎo)航功能,想用用戶出發(fā)的相關(guān)事件,交給m哦得了處理。 android鼓勵弱耦合和組件的重用,在android中mvc的具體體現(xiàn)如下: 1)視圖層(view):一般采用xml文件進(jìn)行界面的描述,使用的時候可以非常方便的引入,當(dāng)然,如何你對an
8、droid了解的比較的多了話,就一定 可以想到在android中也可以使用javascript+html等的方式作為view層,當(dāng)然這里需要進(jìn)行java和javascript之間的通 信,幸運(yùn)的是,android提供了它們之間非常方便的通信實現(xiàn)。2)控制層(controller):android的控制層的重 任通常落在了眾多的acitvity的肩上,這句話也就暗含了不要在acitivity中寫代碼,要通過activity交割model業(yè)務(wù)邏輯層處理, 這樣做的另外一個原因是android中的acitivity的響應(yīng)時間是5s,如果耗時的操作放在這里,程序就很容易被回收掉。3)模型層(model
9、):對數(shù)據(jù)庫的操作、對網(wǎng)絡(luò)等的操作都應(yīng)該在model里面處理,當(dāng)然對業(yè)務(wù)計算等操作也是必須放在的該層的。 6.Activity的生命周期:答:onCreate: 在這里創(chuàng)建界面,做一些數(shù)據(jù) 的初始化工作 onStart: 到這一步變成用戶可見不可交互的 onResume:變成和用戶可交互 的,(在activity 棧系統(tǒng)通過棧的方式管理這些個Activity的最上面,運(yùn)行完彈出棧,則回到上一個Activity)onPause: 到這一步是可見但不可交互的,系統(tǒng)會停止動畫 等消耗CPU 的事情從上文的描述已經(jīng)知道,應(yīng)該在這里保存你的一些數(shù)據(jù)
10、,因為這個時候你的程序的優(yōu)先級降低,有可能被系統(tǒng)收回。在這里保存的數(shù)據(jù),應(yīng)該在onstop: 變得不可見,被下一個activity覆蓋了onDestroy: 這是activity被干掉前最后一個被調(diào)用方法了,可能是外面類調(diào)用finish方法或者是系統(tǒng)為了節(jié)省空間將它暫時性的干掉 7.讓Activity變成一個窗口:答:Activity屬性設(shè)定:有時候會做個應(yīng)用程序是漂浮在手機(jī)主界面的。這個只需要在設(shè)置下Activity的主題theme,即在Manifest.xml定義Activity的地方加一句:android :theme="android:style/Theme.Dia
11、log"如果是作半透明的效果:android:theme="android:style/Theme.Translucent"8.Android中常用的五種布局:答:LinearLayout線性布局;AbsoluteLayout絕對布局;TableLayout表格布局;RelativeLayout相對布局;FrameLayout幀布局;9.Android的五種數(shù)據(jù)存儲方式:答:sharedPreferences;文件;SQLite;contentProvider;網(wǎng)絡(luò)10.請解釋下在單線程模型中Message、Handler、Message Queue、Looper
12、之間的關(guān)系:答:Handler獲取當(dāng)前線程中的looper對象,looper用來從存有Message的Message Queue里取出message,再由Handler進(jìn)行message的分發(fā)和處理。11.AIDL的全稱是什么?如何工作?能處理哪些類型的數(shù)據(jù)?答:AIDL(AndroidInterface Definition Language)android接口描述語言12.系統(tǒng)上安裝了多種瀏覽器,能否指定某瀏覽器訪問指定頁面?請說明原由:答:通過直接發(fā)送Uri把參數(shù)帶過去,或者通過manifest里的intentfilter里的data屬性。代碼如下:
13、Intent intent = new Intent();Intent.setAction(“ent.action.View”);Uri uriBrowsers = Uri.parse(“”);Intent.setData(uriBrowsers);/包名、要打開的activity intent.setClassName(“com.android.browser”,”com.android.browser.BrowserActivity”);startActivity(intent);13.什么是ANR,如何避免?答:ANR的定義:在a
14、ndroid上,如果你的應(yīng)用程序有一段時間響應(yīng)不移靈敏,系統(tǒng)會向用戶提示“應(yīng)用程序無響應(yīng)”(ANR:application Not Responding)對話框。因此,在程序里對響應(yīng)性能的設(shè)計很重要,這樣,系統(tǒng)不會顯示ANR給用戶。如何避免:首先來研究下為什么它會在android的應(yīng)用程序里發(fā)生和如何最佳構(gòu)建應(yīng)用程序來避免ANR. android應(yīng)用程序通常是運(yùn)行在一個單獨(dú)的線程(例如:main)里,這就意味你的應(yīng)用程序所做的事情如果在主線程里占用了大長時間的話,就會引發(fā)ANR對話框,因為你的應(yīng)用程序并沒有給自己機(jī)會來處理輸入事件或者Intent廣播。
15、60; 因此,運(yùn)行在主線程里的任何訪求都盡可能少做事情。特別是,activity應(yīng)該在它的關(guān)鍵生命周期方法(onCreate()和onResume())里盡可能少的去作創(chuàng)建操作。潛在的耗時操作,例如網(wǎng)絡(luò)或數(shù)據(jù)庫操作,或者高耗時的計算如改變位圖尺寸,應(yīng)該在子線程里(或者以數(shù)據(jù)庫操作為例,通過異步請求的方式)來完成。然而,不是說你的主線程阻塞在那里等待子線程的完成-也不是調(diào)用Thread.wait()或者Thread.sleep()。替代的方法是:主線程應(yīng)該為子線程提供一個Handler,以便完成時能夠提交給主線程。以這種方式設(shè)計你的應(yīng)用程序,將能保證你的主線程保持對輸入的
16、響應(yīng)性并能避免由5秒輸入事件的超時引發(fā)的ANR對話框。這種做法應(yīng)該在其它顯示UI的線程里效仿,因為它們都受相同的超時影響。 IntentReceiver執(zhí)行時間的特殊限制意味著它應(yīng)該做:在后臺里做小的、瑣碎的工作,如保存設(shè)定或注冊一個Notification。和在主線程里調(diào)用的其它方法一樣,應(yīng)用程序應(yīng)該避免在BroadcastReceiver里做耗時的操作或計算,但也不是在子線程里做這些任務(wù)(因為BroadcastReceiver的生命周期短),替代的是,如果響應(yīng)Intent廣播需要執(zhí)行一個耗時的動作的話,應(yīng)用程序應(yīng)該啟動一個Service。順便提及一句,你
17、也應(yīng)該避免在Intent Receiver里啟動一個Activity,因為它會創(chuàng)建一個新的畫面,并從當(dāng)前用戶正在運(yùn)行的程序上搶奪焦點(diǎn)。如果你的應(yīng)用程序在響應(yīng)Intent廣播時需要向用戶展示什么,你應(yīng)該使用Notification Manager來實現(xiàn)。 一般來說,在應(yīng)用程序里,100到200ms是用戶能感知阻滯的時間閾值,下面總結(jié)了一些技巧來避免ANR,并有助于讓你的應(yīng)用程序看起來有響應(yīng)性。 如果你的應(yīng)用程序為響應(yīng)用戶輸入正在后臺工作的話,可以顯示工作的進(jìn)度(ProgressBar和ProgressDialog對這種情況來
18、說很有用)。特別是游戲,在子線程里做移動的計算。如果你的程序有一個耗時的初始化過程的話,考慮可以顯示一個Splash Screen或者快速顯示主畫面并異步來填充這些信息。在這兩種情況下,你都應(yīng)該顯示正在進(jìn)行的進(jìn)度,以免用戶認(rèn)為程序被凍結(jié)了。 14.什么情況會導(dǎo)致Force Close?如何避免?能否捕獲導(dǎo)致其的異常?答:如空指針等可以導(dǎo)致ForceClose;可以看Logcat,然后找到對應(yīng)的程序代碼來解決錯誤。15.橫豎屏切換時候的activity的生命周期:答:1) 新建一個activity,并把各個生命周期打印出來2) 運(yùn)行activity,得到如下信息:onCreate()&
19、#224;onStart()àonResume()à 3) 按ctrl+F12切換成橫屏?xí)r onSaveInstanceState()à onPause()à onStop()à
20、; onDestroy()à onCreate()à onStart()à onRestoreInstanceState()à onResume()à 4) 再按ct
21、rl+f12切換成豎屏?xí)r,發(fā)現(xiàn)打印了兩次相同的Log onSaveInstanceState()à onPause()à onStop()à onDestroyà &
22、#160; onCreate()à onStart()à onRestoreInstanceState()à onResume()à onSaveInstanceState()à
23、 onPause()à onStop()à onDestroyà onCreate()à onStart()à
24、0; onRestoreInstanceState()à onResume()à 5) 修改AndroidManifest.xml,把該Activity添加android:configChanges=“orientation”,執(zhí)行步驟3 onSaveInstanceState()à
25、; onPause()à onStop()à onDestroy()à onCreate()à onStart()à &
26、#160; onRestoreInstanceState()à onResume()à 6) 修改AndroidManifest.xml,把該Activity添加android:configChanges=“orientation”,執(zhí)行步驟4,發(fā)現(xiàn)不會再打印相同信息,但多打印了一行onConfigChanged onSave
27、InstanceState()à onPause()à onStop()à onDestroy()à onCreate()à on
28、Start()à onRestoreInstanceState()à onResume()à onConfigurationChanged()à 7) 把步驟5的android:configChanges=“orientation”改成android:conf
29、igChanges=“orientation|keyboradHidden”,執(zhí)行步驟3,就只打印onConfigChanged onConfigurationChanged()à 8) 把步驟5的android:configChanges=“orientation”改成android:configChanges=“orientation|keyboradHidden”,執(zhí)行步驟4 &
30、#160; onConfigurationChanged()à onConfigurationChanged()à 總結(jié):1) 不設(shè)置activity的android:configChanges時,切屏?xí)匦抡{(diào)用各個生命周期,切橫屏?xí)r會執(zhí)行一次,切豎屏?xí)r會執(zhí)行兩次。2) 設(shè)置activity的android:configChanges=“orientation”時, 切屏?xí)匦抡{(diào)用各個生命周期,切橫屏、豎屏?xí)r都只會執(zhí)行一次,但是豎屏最后多打印一條onCon
31、figurationChanged()3) 設(shè)置activity的android:configChanges=“orientation|keyboardHidden”時,切屏不會重新調(diào)用各個生命周期,只會執(zhí)行onConfigurationChanged(),橫屏一次,豎屏兩次再總結(jié)下整個activity的生命周期:1) 當(dāng)前activity產(chǎn)生事件彈出Toast和AlertDialog的時候Activity的生命周期不會有改變2) Activity運(yùn)行時按下HOME鍵(跟被完全覆蓋一樣的)onSavaInstanceStateàonPauseàonS
32、topà onRestartàonStartàonResumeà 3) 未被完全覆蓋,只是失去焦點(diǎn): onPauseà onResumeà16.如何將SQLite數(shù)據(jù)庫(.db文件)與apk文件一起發(fā)布?答:可以將.db文件復(fù)制到Eclipse Android工程中的res aw目錄中。所有在res aw目錄中的
33、文件不會被壓縮,這樣可以直接提取該目錄中的文件。可以將.db文件復(fù)制到res aw目錄中17.如何將打開res aw目錄中的數(shù)據(jù)庫文件?答:在Android中不能直接打開res aw目錄中的數(shù)據(jù)庫文件,而需要在程序第一次啟動時將該文件復(fù)制到手機(jī)內(nèi)存或SD卡的某個目錄中,然后再打開該數(shù)據(jù)庫文件。復(fù)制的基本方法是使用getResources().openRawResource方法獲得res aw目錄中資源的 InputStream對象,然后將該InputStream對象中的數(shù)據(jù)寫入其他的目錄中相應(yīng)文件中。在Android SDK中可以使用SQLiteDatabase.openOrCreateDat
34、abase方法來打開任意目錄中的SQLite數(shù)據(jù)庫文件。18.android 中有哪幾種解析xml的類?官方推薦哪種?以及它們的原理和區(qū)別:答:XML解析主要有三種方式,SAX、DOM、PULL。常規(guī)在PC上開發(fā)我們使用Dom相對輕松些,但一些性能敏感的數(shù)據(jù)庫或手機(jī)上還是主要采用SAX方 式,SAX讀取是單向的,優(yōu)點(diǎn):不占內(nèi)存空間、解析屬性方便,但缺點(diǎn)就是對于套嵌多個分支來說處理不是很方便。而DOM方式會把整個XML文件加載到內(nèi)存 中去,這里Android開發(fā)網(wǎng)提醒大家該方法在查找方面可以和XPath很好的結(jié)合如果數(shù)據(jù)量不是很大推薦使用,而PULL常常用在J2ME對于節(jié)點(diǎn)處 理比較好,類似SA
35、X方式,同樣很節(jié)省內(nèi)存,在J2ME中我們經(jīng)常使用的KXML庫來解析。19.DDMS和TraceView的區(qū)別?答:DDMS是一個程序執(zhí)行查看器,在里面可以看見線程和堆棧等信息,TraceView是程序性能分析器20.談?wù)凙ndroid的IPC機(jī)制:答:IPC是內(nèi)部進(jìn)程通信的簡稱,是共享"命名管道"的資源。Android中的IPC機(jī)制是為了讓Activity和Service之間可以隨時的進(jìn)行交互,故在Android中該機(jī)制,只適用于Activity和Service之間的通信,類似于遠(yuǎn)程方法調(diào)用,類似于C/S模式的訪問。通過定義AIDL接口文件來定義IPC接口。Servier端
36、實現(xiàn)IPC接口,Client端調(diào)用IPC接口本地代理。21.NDK是什么:答:NDK是一系列工具的集合 NDK提供了一系列的工具,幫助開發(fā)者迅速的開發(fā)C/C+的動態(tài)庫,并能自動將so和java應(yīng)用打成apk包 NDK集成了交叉編譯器,并提供了相應(yīng)的mk文件和隔離cpu,平臺等的差異,開發(fā)人員只需簡單的修改mk文件就可以創(chuàng)建出so22.描述一下android的系統(tǒng)架構(gòu):答:android系統(tǒng)架構(gòu)分從下往上為Linux內(nèi)核層、運(yùn)行庫、應(yīng)用程序框架層和應(yīng)用程序?qū)印?#160; Linux內(nèi)核層:負(fù)責(zé)硬件的
37、驅(qū)動程序、網(wǎng)絡(luò)、電源、系統(tǒng)安全以及內(nèi)存管理等功能。運(yùn)行庫和androidruntion:運(yùn)行庫:即c/c+函數(shù)庫部分,大多數(shù)都是開放源代碼的函數(shù)庫,例如webkit,該函數(shù)庫負(fù)責(zé)android網(wǎng)頁瀏覽器的運(yùn)行;例如標(biāo)準(zhǔn)的c函數(shù)庫libc、openssl、sqlite等,當(dāng)然也包括支持游戲開發(fā)的2dsgl和3dopengles,在多媒體方面有mediaframework框架來支持各種影音和圖形文件的播放與顯示,如mpeg4、h.264、mp3、aac、amr、jpg和png等眾多的多媒體文件格式。Androidruntion負(fù)責(zé)解釋和執(zhí)行生成的dalvik格式的字節(jié)碼應(yīng)用軟件架構(gòu):java應(yīng)用程
38、序開發(fā)人員主要是使用該層封裝好的api進(jìn)行快速開發(fā)的。應(yīng)用程序?qū)樱涸搶邮莏ava的應(yīng)用程序?qū)樱琣ndroid內(nèi)置的googlemaps、email、IM、瀏覽器等,都處于該層,java開發(fā)人員工發(fā)的程序也處于該層,而且和內(nèi)置的應(yīng)用程序具有平等的地位,可以調(diào)用內(nèi)置的應(yīng)用程序,也可以替換內(nèi)置的應(yīng)用程序23.Activity 與 Task的啟動模式有哪些,它們含義具體是什么?答:在一個activity中,有多次調(diào)用startActivity來啟動另一個activity,要想只生成一個activity實例,可以設(shè)置啟動模式。 一個activity有四種啟動模式:st
39、anded,signleTop,singleTask,singleInstance Standed:標(biāo)準(zhǔn)模式,一調(diào)用startActivity()方法就會產(chǎn)生一個新的實例。 SingleTop:如果已經(jīng)有一個實例位于activity棧頂,就不產(chǎn)生新的實例,而只是調(diào)用activity中的newInstance()方法。如果不位于棧頂,會產(chǎn)生一個新的實例。 singleTask:會在一個新的task中產(chǎn)生這個實例,以后每次調(diào)用都會使用這個,不會去產(chǎn)生新的實例了。
40、60; SingleInstance:這個和singleTask基本一樣,只有一個區(qū)別:在這個模式下的activity實例所處的task中,只能有這個activity實例,不能有其他實例24.Application類的作用:答:API里的第一句是:Base class for those who need to maintain global application state 如果想在整個應(yīng)用中使用全局變量,在java中一般是使用靜態(tài)變量,public類型;而在android中如果使用這樣的全局變量就不符合Android的框架架構(gòu),但是可以使用一種更優(yōu)雅的方式就是使用Applica
41、tion context。 首先需要重寫Application,主要重寫里面的onCreate方法,就是創(chuàng)建的時候,初始化變量的值。然后在整個應(yīng)用中的各個文件中就可以對該變量進(jìn)行操作了。 啟動Application時,系統(tǒng)會創(chuàng)建一個PID,即進(jìn)程ID,所有的Activity就會在此進(jìn)程上運(yùn)行。那么我們在Application創(chuàng)建的時候初始化全局變量,同一個應(yīng)用的所有Activity都可以取到這些全局變量的值,換句話說,我們在某一個Activity中改變了這些全局變量的值,那么在同一個應(yīng)用的其他Activity中值就會改變25.說明onSaveIn
42、stanceState() 和 onRestoreInstanceState()在什么時候被調(diào)用:答:Activity的 onSaveInstanceState() 和 onRestoreInstanceState()并不是生命周期方法,它們不同于 onCreate()、onPause()等生命周期方法,它們并不一定會被觸發(fā)。當(dāng)應(yīng)用遇到意外情況(如:內(nèi)存不足、用戶直接按Home鍵)由系統(tǒng)銷毀一個Activity時,onSaveInstanceState()才會被調(diào)用。但是當(dāng)用戶主動去銷毀一個Activity時,例如在應(yīng)用中按返回鍵,onSaveInstanceState()就不會被調(diào)用。因為在
43、這種情況下,用戶的行為決定了不需要保存Activity的狀態(tài)。通常onSaveInstanceState()只適合用于保存一些臨時性的狀態(tài),而onPause()適合用于數(shù)據(jù)的持久化保存。另外,當(dāng)屏幕的方向發(fā)生了改變, Activity會被摧毀并且被重新創(chuàng)建,如果你想在Activity被摧毀前緩存一些數(shù)據(jù),并且在Activity被重新創(chuàng)建后恢復(fù)緩存的數(shù)據(jù)??梢灾貙慉ctivity的 onSaveInstanceState() 和 onRestoreInstanceState()方法。26.android的service的生命周期?哪個方法可以多次被調(diào)用:答:1)與采用Context.startS
44、ervice()方法啟動服務(wù)有關(guān)的生命周期方法onCreate() -> onStart() -> onDestroy()onCreate()該方法在服務(wù)被創(chuàng)建時調(diào)用,該方法只會被調(diào)用一次,無論調(diào)用多少次startService()或bindService()方法,服務(wù)也只被創(chuàng)建一次。onStart() 只有采用Context.startService()方法啟動服務(wù)時才會回調(diào)該方法。該方法在服務(wù)開始運(yùn)行時被調(diào)用。多次調(diào)用startService()方法盡管不會多次創(chuàng)建服務(wù),但onStart() 方法會被多次調(diào)用。onDestroy()該方法在服務(wù)被終止時調(diào)用。2)與采用Context.bindService()方法啟動服務(wù)有關(guān)的生命周期方法onCreate() -> onBind() -> onUnbind() -> onDestroy()onBind()只有采用Context.bindService()方法啟動服務(wù)時才會回調(diào)該方法。該方法在調(diào)用者與服務(wù)綁定時被調(diào)用,當(dāng)調(diào)用者與服務(wù)已經(jīng)綁定,多次調(diào)用Context.bindService(
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 責(zé)令改正法律適用研究
- SLM成形HfO2@TiCp-GH3536復(fù)合材料組織性能研究
- 基于VR-AR的編程課程教學(xué)設(shè)計與應(yīng)用研究-以中職C語言為例
- 糖尿病酮癥病人的個案護(hù)理
- 婦女兩癌健康知識
- 幼兒健康蔬菜知識啟蒙
- 頜面部骨折護(hù)理課件
- 某企業(yè)客戶關(guān)系管理分析
- 2025護(hù)理質(zhì)量控制計劃
- 傅玄教育思想體系解析
- 《上帝擲骰子嗎:量子物理史話》導(dǎo)讀學(xué)習(xí)通超星課后章節(jié)答案期末考試題庫2023年
- 初中三年英語單詞表全冊(人教版)
- 中考經(jīng)典計算題100道
- GB/T 42046-2022載人航天器載荷運(yùn)輸要求
- JJF 1059.1-2012測量不確定度評定與表示
- 工程管理辦法實施細(xì)則
- 低年級語文識字教學(xué)課件
- 鋼筋桁架式樓板施工方案鋼筋混凝土
- 測量工具使用精品課件
- 雙排扣件式鋼管落地腳手架施工方案(2)
- 心電監(jiān)護(hù)課件精品PPT課件
評論
0/150
提交評論