版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、-作者xxxx-日期xxxxAndroid修改開關(guān)機(jī)動畫聲音【精品文檔】開機(jī)畫面,按照國際慣例,一般是分為2屏,當(dāng)然也有3屏的說法,不管怎樣,我這里說得就是最后的一屏,按照bootanimation的字面意思翻譯,大概也就是開機(jī)動畫的意思,那這就不說第幾屏了,直接用“開機(jī)動畫”這詞。首先,開機(jī)動畫的地址:systemmediabootanimation.zip。要修改開機(jī)動畫就是修改bootanimation這個文件。如果說你的手機(jī)里沒有這個文件,那就是說明你用的是官方原始版本的rom,開機(jī)動畫沒有被修改過,但這不礙事,沒有就放一個進(jìn)去,到時候想換回最原始的開機(jī)畫面,也可以把bootanima
2、tion這個文件刪了。官方最原始的開機(jī)動畫在system frameworkframework-res.apkassetsimages里面,里面主要是2張圖片,高手面可以去研究一下,說不定通過這個文件可以用代碼實現(xiàn)動畫的過程。接下來,說說bootanimation.zip這個文件的結(jié)構(gòu)。bootanimation里面主要包含一個desc.txt以及N個文件夾。而文件夾里面放著的就是你要的開機(jī)動畫的圖片。decs.txt的作用就是指導(dǎo)系統(tǒng)如何去執(zhí)行你的開機(jī)畫面。下面繼續(xù)說說desc.txt這個文檔要怎么寫。先看例子,如果我的開機(jī)動畫要用到2個文件夾,分別是part1和part2,。我希望開機(jī)的時
3、候,先把part1里面的圖片都播放一遍,然后再循環(huán)播放part2里面的文件,直到進(jìn)入系統(tǒng)。那么decs.txt文檔的內(nèi)容應(yīng)該如下:302 480 5p 1 0 part1p 0 0 part2就這么多,現(xiàn)在解釋一下這些命令吧。第一行,320 480是代表你屏幕的分辨率,因為我們的胖6是320*480的,這就不多說了。后面的5是說,5幀每秒,不懂的可以這么理解,5是代表一秒鐘播放5張圖片。就這么簡單。第二行,p 1 0 part1。p應(yīng)該是play吧,也就是播放的意思。1是播放一次。0是空指令,就是什么都不做。part1就是說,這條指令是針對part1這個文件夾的。整條指令的意思就是,播放par
4、t1里面的圖片1次,然后什么都不做,馬上進(jìn)入下一條指令。第三行,p 0 0 part2。p依然是播放。第一個0這里是代表循環(huán)播放,第二個0和上面第二條指令一樣,代表什么也不做。part2也就不多說了。至于為什么第一個0為什么是代表循環(huán),只能這么說,這事國際慣例,就像用迅雷的時候,0代表不限制速度一樣,系統(tǒng)規(guī)定的,你知道就好,別糾結(jié)??偨Y(jié)公式如下第一條指令:屏幕的分辨率(空格)播放頻率第二條指令:p(空格)播放次數(shù)(空格)后續(xù)操作(空格)作用文件夾第三條指令:同上第N條指令:同上屏幕分辨率的格式是:寬(空格)高,胖6的就是320 480。播放頻率,上面已經(jīng)說清楚了,至于到底要用多大的數(shù)字,視你開
5、機(jī)動畫的張數(shù)而定,比如說,一共有100張圖片,開機(jī)時間是20秒,那么100/20就是5。播放次數(shù),1是代表一次,0代表循環(huán)播放。如果要播放2次的話,就是就是打個2上去,應(yīng)該是這樣吧,反正我是沒試過,只試過0和1.后續(xù)操作,0代表什么都不做,直接進(jìn)入下一條指令。10是代表稍作停頓。至于文件夾里面的圖片,比較簡單,首先,糾正一個說法,之前說必須要是png格式,經(jīng)過我試驗證明,jpg格式的也可以,其他的有待試驗,不過只支持靜態(tài)圖片這點應(yīng)該是真的,動態(tài)圖片同樣有待試驗。其次,關(guān)于圖片的尺寸,是不做要求的,只要在txt文檔里寫好手機(jī)的分辨率即可,開機(jī)的時候系統(tǒng)會自動適配。其其次要按播放循序命名,建議用5
6、位數(shù)字,比如說,第一張圖片是00010,第二張就是00020.。為什么要從00010開始,而不是00001?因為這事預(yù)防以后要在第一張和第二張中間再插一張圖片進(jìn)去的話,就可以把插進(jìn)去的圖片命名為00011,在00010之后,00020之前。就這么簡單。至于圖片那里來嘛,當(dāng)然是自己網(wǎng)上找啦,也可以下載別人的bootanimation,然后修改一下。最后就是壓縮包了,把需要用到的part文件夾跟decs.txt打包成zip格式,必須是zip,不能是rar,而且打包的時候壓縮方式要選擇“存儲”模式。然后改名成為bootanimation.zip,復(fù)制到SD卡里,再通過RE文件管理器復(fù)制到system
7、media下面,重啟。要注意一下,bootanimation不能太大,大了會卡,一般不要超過3M,。1. Linux 系統(tǒng)啟動,出現(xiàn)Linux小企鵝畫面(reboot)(Android 1.5及以上版本已經(jīng)取消加載圖片);2. Android平臺啟動初始化,出現(xiàn)A N D R I O D文字字樣畫面;3. Android平臺圖形系統(tǒng)啟動,出現(xiàn)含閃動的ANDROID字樣的動畫圖片(start)?,F(xiàn)在我們說的是第三種方式(基于模擬器):android開機(jī)動畫叫源碼位于frameworks/base/cmds/bootanimation下,這個程序會將/data/local/bootanimatio
8、n.zip或/system/media/bootanimation.zip里面的png圖片以動畫的形式播放出來。首先,我們先來分析一下源碼:首先看一下定義的常量:1234#define USER_BOOTANIMATION_FILE /data/local/bootanimation.zip#define SYSTEM_BOOTANIMATION_FILE /system/media/bootanimation.zip#define SYSTEM_ENCRYPTED_BOOTANIMATION_FILE /system/media/bootanimation-encrypted.zipBoot
9、Animation:readyToRun()進(jìn)入一個if判斷語句1234567891011if(encryptedAnimation &(access(SYSTEM_ENCRYPTED_BOOTANIMATION_FILE, R_OK) =0) &pen(SYSTEM_ENCRYPTED_BOOTANIMATION_FILE) =NO_ERROR) |(access(USER_BOOTANIMATION_FILE, R_OK) =0) &(mZip.open(USER_BOOTANIMATION_FILE) =NO_ERROR) |(access(SYSTEM_BOOTANIMATION_FI
10、LE, R_OK) =0) &(mZip.open(SYSTEM_BOOTANIMATION_FILE) =NO_ERROR) mAndroidAnimation =false;BootAnimation:threadLoop()12345if(mAndroidAnimation) r =Android(); /執(zhí)行android字體閃動的圖片 else1我們下載的源碼里默認(rèn)是沒有那些個.zip動畫的,所以總會跳到android字體閃動的畫面所以如果你系那個用.zip的動畫那么把你做好的動畫拷貝到編譯好對應(yīng)的目錄下即可,然后執(zhí)行make snod整合進(jìn)img包就可以看到效果了如果你想修改and
11、roid閃動的那兩張圖片的話,最簡單的方法是直接替換圖片,如果你懂openGL的話也可以自己做酷炫的動畫那兩張圖片放在./frameworks/base/core/res/assets/images 目錄下,一張鏤空的android圖,一張發(fā)光效果,動畫效果就是下面那張發(fā)光的效果圖不斷左右移動。我是用Photoshop直接修改的修改完后直接替換,然后再 mmm frameworks/base , make snod 即可以下是我修改后的效果圖:看樣子還想那么回事接下來我們給系統(tǒng)添加開機(jī)聲音由于動畫是在BootAnimation播放的,所以我們的聲音肯定也在這個類中做,照貓畫虎12#includ
12、e #include 添加方法 void bootMusic();然后在BootAnimation.cpp中實現(xiàn)這個方法:123456789101112131415void BootAnimation:bootMusic()intindex;MediaPlayer*mp =new MediaPlayer();if(mp-setDataSource(/system/etc/poweron.wav, NULL) =NO_ERROR) mp-setAudioStreamType(AUDIO_STREAM_ENFORCED_AUDIBLE);mp-prepare();AudioSystem:getSt
13、reamVolumeIndex(AUDIO_STREAM_ENFORCED_AUDIBLE, &index);if(index !=0) mp-seekTo(0);mp-start();請注意這個目錄setDataSource(/system/etc/poweron.wav, NULL)其實這個目錄是隨便寫的,你想從哪個目錄讀這個文件就從哪個目錄讀好了,但是你要把這個文件放在對應(yīng)的目錄下比如,這個目錄是system/etc (這個目錄是android系統(tǒng)的目錄,不是源碼的目錄),這個文件夾是只有讀權(quán)限而沒有寫權(quán)限的,所有你不用試adb shell了,沒用的其實system/etc這個目錄對應(yīng)的
14、是我們編譯后out文件夾下的xxx,然后在system/etc,所以你把poweron.wav放到這里就行了,當(dāng)然如果你這時再emulaor 也同樣是看不到效果的,因為你修改完還沒有編譯,和上面修改圖片一樣,make snod一下然后再修改bootanimation_main.cpp這個文件,因為方法也申明了,也實現(xiàn)了,就是還沒有調(diào)用,所以調(diào)用就在這里調(diào)123/play boot music -ypBootAnimation *animation =new BootAnimation();animation-bootMusic();因為播放聲音還需要引入庫LOCAL_SHARED_LIBRAR
15、IES := libcutils libutils libbinder libui libskia libEGL libGLESv1_CM libgui libmedia請注意,libmedia是新添加的;完事后就ok了,當(dāng)然還是需要編譯的mmm frameworks/base/cmds/bootanimation/make snod大功告成,這樣你就成功的添加了開機(jī)音樂也許有人會問,那android系統(tǒng)自帶的那些音樂和鈴聲在什么地方呢?源碼目錄在framworks/base/data/sounds我們可以看到他又包含了很多mk文件,在同一目錄下就可以找到,上圖中就可以,我們隨便打開一個看看這
16、下你們頓時明白了吧,這些資源編譯后都去了神馬地方所以,在剛才添加poweron.wav的時候,其實可以直接把聲音資源丟到framworks/base/data/sounds這個目錄下然后再mk文件中這樣修改:$(LOCAL_PATH)/poweron.wav:system/etc/poweron.wav 不用我說,當(dāng)然是執(zhí)行mmm還有make snod命令了其實還有一種辦法,如果你不想這么麻煩,你可以之際把poweron.wav 文件丟到./frameworks/base/core/res/assets/sounds下,用的時候怎么用呢?加載的時候路徑是什么呢?我們看看源碼我們可以看到之前我們
17、修改的那兩張圖片是怎么被加載進(jìn)來的而這個方法的兩個參數(shù)是:是不是頓時又明白了?原來精髓所在是有個Asset可以使用,這個和上層開發(fā)中是一樣的,這個文件夾中的東西是不編譯的。12345678Asset*asset =assets.open(name, Asset:ACCESS_BUFFER);if(!asset)returnNO_INIT;SkBitmap bitmap;SkImageDecoder:DecodeMemory(asset-getBuffer(false), asset-getLength(),&bitmap, SkBitmap:kNo_Config, SkImageDecoder
18、:kDecodePixels_Mode);asset-close();delete asset;所以按照這個方法就可以找到poweron.wav 這個文件了,然后修改下bootMusic的代碼就可以了。原創(chuàng)文章,轉(zhuǎn)載請注明出處,謝謝。系統(tǒng)通常默認(rèn)支持開機(jī)動畫,開機(jī)關(guān)機(jī)鈴聲服務(wù)倒是預(yù)先定義了,不過使用時需要在/sysytem/media/下添加相應(yīng)的音頻文件。長按Power鍵彈出關(guān)鍵選項,關(guān)機(jī)時也只是顯示進(jìn)度條,而不是我們期望的關(guān)機(jī)動畫同時伴有關(guān)機(jī)鈴聲,當(dāng)然在做二次開發(fā)的時候,這些都是可以定制的。下面將逐步分析如何實現(xiàn)這些定制化的需求。一.制作開機(jī)動畫開機(jī)畫面是保存在/system/media的
19、bootanimation.zip,下面分析系統(tǒng)開機(jī)畫面的構(gòu)成文件名為bootanimation.zip一定是這個不能修改,里面包含part1 part2文件夾 和desc.txt,part文件夾里面放的是動畫拆分的圖片,格式為png,desc.txt里面是播放的設(shè)置。格式是這樣的480 800 15p 1 0 part0p 0 0 part1480 800是指顯示的分辨率 寬 高15是一秒的幀數(shù)p后面的數(shù)字是指播放次數(shù)0為循環(huán),N為播放N次后面那位數(shù)字 一般為0(空指令),表示播放一遍后稍作停頓的時間part0,part1為文件夾名一般我們只使用part0目錄圖片準(zhǔn)備好了,desc.txt里
20、面的命令也準(zhǔn)備好了,就可以把他們一起打包壓縮成zip格式了。記住,是zip格式,而不是rar格式。另外壓縮的時候注意一點,壓縮的時候壓縮方式要選擇存儲,否則開機(jī)時手機(jī)會不認(rèn)的。當(dāng)然不至于變磚,只是開機(jī)的時候會黑著沒動畫一直到進(jìn)入桌面為止。開機(jī)動畫的替換也很簡單,我們把做好的bootanimation.zip替換掉原來的/system/media/bootanimation.zip文件即可。關(guān)機(jī)動畫其實和開機(jī)動畫的制作一樣,我們命名為shutdownanimation.zip,和bootanimation.zip放在同一目錄下。二.開關(guān)機(jī)動畫實現(xiàn)原理Android系統(tǒng)在init.rc中定義了很多
21、Servic,具體定義格式可以參考Android Platform Developers Guide中的“Android Init Language”。Init.rc中定義的Service將會被Init進(jìn)程創(chuàng)建,其中已經(jīng)定義的服務(wù)就包含了開機(jī)動畫,但沒有關(guān)機(jī)動畫的定義service bootsound /system/bin/mplayer /system/media/bootsounduser mediagroup audiooneshot/開機(jī)鈴聲服務(wù)/system/media/startupsound是鈴聲文件service startupsound /system/bin/mplaye
22、r /system/media/startupsounduser mediagroup audiodisabledoneshot/關(guān)機(jī)鈴聲服務(wù)/system/media/shutdownsound是關(guān)機(jī)鈴聲service shutdownsound /system/bin/mplayer /system/media/shutdownsounduser mediagroup audiodisabledoneshot/定義了一個bootanim的服務(wù),對應(yīng)執(zhí)行/system/bin/bootanimation/disabled表示init進(jìn)程創(chuàng)建只是創(chuàng)建它,但不立刻執(zhí)行/oneshot表示該服務(wù)只
23、執(zhí)行一次service bootanim /system/bin/bootanimationuser graphicsgroup graphicsdisabledoneshot當(dāng)android系統(tǒng)boot時,開始加載動畫和開機(jī)鈴聲,其代碼位于status_t SurfaceFlinger:readyToRun() / start boot animation serviceproperty_set(ctl.start, bootanim);/注char valuePROPERTY_VALUE_MAX;property_get(file.silent, value,
24、 0);if (atoi(value)= 0)LOGI(start:file.silent is soundable);/ start startupsound serviceproperty_set(ctl.start,startupsound);/注 else LOGI(start:file.silent is silent);return NO_ERROR;當(dāng)Android完成boot后,關(guān)閉動畫和開機(jī)鈴聲,代碼位于void SurfaceFlinger:bootFinished() const nsecs_t now = sy
25、stemTime();const nsecs_t duration = now - mBootTime;LOGI(Boot is finished (%ld ms), long(ns2ms(duration) );mBootFinished = true;/stop bootanim serviceproperty_set(ctl.stop, bootanim);char valuePROPERTY_VALUE_MAX;property_get(file.silent, value, 0);if (atoi(value)= 0)LOGI(stop:persist.
26、file.silent is soundable);/stop startupsound serviceproperty_set(ctl.stop,startupsound); else LOGI(stop:file.silent is silent);如何理解ctr.start和ctr.stop系統(tǒng)屬性?每一項服務(wù)必須在/init.rc中定義.Android系統(tǒng)啟動時,init守護(hù)進(jìn)程將解析init.rc和啟動屬性服務(wù),屬性“ ctl.start ”和“ ctl.stop ”是用來啟動和停止服務(wù)的。一旦收到設(shè)置“ ctrl.start ”屬性的請求
27、,屬性服務(wù)將使用該屬性值作為服務(wù)名找到該服務(wù),啟動該服務(wù)。這項服務(wù)的啟動結(jié)果將會放入“ init.svc.“屬性中??蛻舳藨?yīng)用程序可以輪詢那個屬性值,以確定結(jié)果。想更深入了解Android property系統(tǒng)可以參考博文(翻譯)Android屬性系統(tǒng)。property_set(ctl.start,ServiceName);就是啟動ServiceName服務(wù)(在init.rc中定義);property_set(ctl.stop,ServiceName)相對的是關(guān)閉ServiceName服務(wù)。A啟動動畫服務(wù)由于開機(jī)動畫和關(guān)機(jī)動畫除了播放的動畫文件不同,其他的完全一致,這里重復(fù)利用/system/
28、bin/bootanimation代碼,仿照開機(jī)動畫服務(wù),我們新定義關(guān)機(jī)動畫service shutdownanim /system/bin/bootanimation -shutdownuser graphicsgroup graphicsdisabledoneshot唯一要注意的是關(guān)機(jī)動畫使用的/system/bin/bootanimation帶了-shutdown參數(shù),這個參數(shù)用來區(qū)分加載的動畫文件為開機(jī)還是關(guān)機(jī)動畫。當(dāng)bootanimation服務(wù)啟動時,進(jìn)入/frameworks/base/cmds/bootanimation/bootanimation_main.cpp主函數(shù)mai
29、n,int main(int argc, char* argv)#if defined(HAVE_PTHREADS)setpriority(PRIO_PROCESS, 0, ANDROID_PRIORITY_DISPLAY);#endifchar valuePROPERTY_VALUE_MAX;property_get(debug.sf.nobootanimation, value, 0);int noBootAnimation = atoi(value);LOGI_IF(noBootAnimation,boot animation disabled);if (!noBootAnimation
30、) sp proc(ProcessState:self();ProcessState:self()-startThreadPool();/ create the animation objectsp boot = new BootAnimation();/根據(jù)是否有參數(shù),來設(shè)置動畫對象的isShutdown屬性if (argc 1) if (strcmp(argv1, -shutdown)=0) boot-isShutdown(true);IPCThreadState:self()-joinThreadPool();return 0;new BootAnimation();時,如果有參數(shù)-sh
31、utdown,則boot-isShutdown(true);方法isShutdown和isShutdown使我們新加的,所以先要在frameworks/base/cmds/bootanimation/bootanimation/BootAnimation.h頭文件中申明為public,如下:class BootAnimation : public Thread, public IBinder:DeathRecipientpublic:BootAnimation();virtualBootAnimation();sp session() const;boolmShutdown;voidisShu
32、tdown(bool shutdown);.之后修改/首先在構(gòu)造函數(shù)中初始化mShutdown = false;表示默認(rèn)是開機(jī)標(biāo)志BootAnimation:BootAnimation() : Thread(false)mSession = new SurfaceComposerClient();mShutdown = false;實現(xiàn)isShutdown(bool shutdown);方法void BootAnimation:isShutdown(bool shutdown)mShutdown = shutdown;修改status_t BootAnimation:readyToRun()方
33、法來根據(jù)mShutdown值加載動畫文件,如status_t BootAnimation:readyToRun() mAndroidAnimation = false;if (!mShutdown) status_t err = mZip.open(/data/local/bootanimation.zip);if (err != NO_ERROR) err = mZip.open(/system/media/bootanimation.zip);if (err != NO_ERROR) mAndroidAnimation = true;else status_t err = mZip.ope
34、n(/data/local/shutdownanimation.zip);if (err != NO_ERROR) err = mZip.open(/system/media/shutdownanimation.zip);if (err != NO_ERROR) mAndroidAnimation = true;mShutdown = false;return NO_ERROR;以上是動畫定制化C代碼部分的全部修改。B啟動開機(jī)鈴聲服務(wù)startupsound開機(jī)鈴聲服務(wù),shutdownsound關(guān)機(jī)鈴聲服務(wù)init.rc定義,service startupsound /system/bin/
35、mplayer /system/media/startupsound相當(dāng)于用/system/bin/mplayer對象播放媒體文件/system/media/startupsound,init.rc定義,service shutdownsound /system/bin/mplayer /system/media/shutdownsound相當(dāng)于用/system/bin/mplayer對象播放媒體文件/system/media/ shutdownsound.到這里,開機(jī)動畫和開機(jī)鈴聲是正常的,我們還需要修改的是關(guān)機(jī)時候的執(zhí)行流程,因為默認(rèn)的操作時關(guān)機(jī)確認(rèn)后顯示進(jìn)度條。C定制Android關(guān)機(jī)過
36、程在Android系統(tǒng)中,長按Power鍵默認(rèn)會彈出對話框讓你選擇“飛行模式”,“靜音”,“關(guān)機(jī)”等功能。我的目標(biāo)是長按Power鍵,將會關(guān)機(jī),彈出“設(shè)備將要關(guān)機(jī)”選擇對話框。如果可以選擇“是”關(guān)機(jī),和“否”返回系統(tǒng)。彈出對話框的代碼位于:長按Power鍵顯示對話框的代碼如下:Runnable mPowerLongPress = new Runnable() public void run() mShouldTurnOffOnKeyUp = false;performHapticFeedbackLw(null, HapticFeedbackConstants.LONG_PRESS, false
37、);sendCloseSystemWindows(SYSTEM_DIALOG_REASON_GLOBAL_ACTIONS);showGlobalActionsDialog();調(diào)用showGlobalActionsDialog方法將會顯示上面提到的顯示“飛行模式”,“靜音”,“關(guān)機(jī)”,選項的對話框。關(guān)機(jī)的代碼位于:文件的createDialog方法中,有如下代碼:mItems = Lists.newArrayList(/ silent modemSilentModeToggle,/ next: airplane modemAirplaneModeOn,/ last: power offnew
38、SinglePressAction(ernal.R.drawable.ic_lock_power_off,R.string.global_action_power_off) public void onPress() / shutdown by making sure radio and power are handled accordingly.ShutdownThread.shutdown(mContext, true);public boolean showDuringKeyguard() return true;public boolean showBef
39、oreProvisioning() return true);從代碼中我們可以看出,如果選擇上述對話框的“關(guān)機(jī)”選項之后,將會調(diào)用ShutdownThread的shutdown方法來關(guān)機(jī)。shutdown方法的第二個參數(shù)標(biāo)識是否彈出詢問對話框。ShutdownThread代碼位于shutdown方法中有如下代碼public static void shutdown(final Context context, boolean confirm) / ensure that only one thread is trying to power down./ any additional calls
40、 are just returnedsynchronized (sIsStartedGuard)if (sIsStarted) Log.d(TAG, Request to shutdown already running, returning.);return;Log.d(TAG, Notifying thread to start radio shutdown);if (confirm) final AlertDialog dialog = new AlertDialog.Builder(context).setIcon(android.R.drawable.ic_dialog_alert)
41、.setTitle(ernal.R.string.power_off).setMessage(ernal.R.string.shutdown_confirm).setPositiveButton(ernal.R.string.yes,new DialogInterface.OnClickListener() public void onClick(DialogInterface dialog, int which) beginShutdownSequence(context);).setNegativeButton(ernal.R.string.no, null).create();dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);if (!context.getResources().getBoolean(ernal.R.bool.config_sf_slowBlur) dialog.getWindow().addFlag
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《猴子的煩惱》課件制作技巧:2024年新課程培訓(xùn)
- 2024年BIM技術(shù)在建筑翻新工程中的應(yīng)用培訓(xùn)
- 《小青蛙找家》趣味教學(xué)法
- 采油工(中級)證考試題庫及答案
- 構(gòu)成藝術(shù)試題及答案
- 《熱力學(xué)與傳熱學(xué)》課程綜合復(fù)習(xí)資料
- 幼兒園與小學(xué)科學(xué)銜接指導(dǎo)意見培訓(xùn)心得
- 八年級數(shù)學(xué)下冊第十六章二次根式章末復(fù)習(xí)導(dǎo)學(xué)案新版新人教版
- 2024-2025學(xué)年高中數(shù)學(xué)第二章函數(shù)2函數(shù)2.2.1函數(shù)的概念導(dǎo)學(xué)案北師大版必修第一冊
- 九年級物理全冊14.6直流電動機(jī)習(xí)題1新版北師大版
- 廻轉(zhuǎn)窯揮發(fā)法生產(chǎn)氧化鋅作業(yè)指導(dǎo)書
- 急性呼吸窘迫綜合征(ARDS)-公開課課件
- 二年級上冊科學(xué)課件-《8.形狀改變了》蘇教版 (共15張PPT)
- 創(chuàng)三甲資料盒(新)
- 《四季是怎樣形成的》課件1
- 年產(chǎn)100萬米預(yù)應(yīng)力混凝土管樁生產(chǎn)項目可行性研究報告
- 浙江省工程建設(shè)標(biāo)準(zhǔn)《普通幼兒園建設(shè)標(biāo)準(zhǔn)》
- 參賽魚躍前滾翻-完整版PPT
- 新版現(xiàn)代西班牙語第二冊課后答案
- 光明化大理巖礦詳查報告
- 人教版九年級數(shù)學(xué)下冊 《圖形的相似》相似教學(xué)課件
評論
0/150
提交評論