




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Android平臺的3G應用開發什么是3G3G,全稱為3rd Generation,中文含義就是指第三代數字通信。所謂3G,是指將無線通信與國際互聯網等多媒體通信結合的新一代移動通信系統。 3G只是一種通信技術標準,符合這個標準的技術有WCDMA、CDMA2000、TD-SCDMA三種無線接口標準。中國聯通使用的是WCDMA(世界上大部分3G網絡都采用的是該標準) ;中國電信使用的是CDMA2000 (日、韓和北美使用);中國移動使用的是具有自主知識產權的TD-SCDMA(只有中國才使用) 。相對第一代模擬制式手機(1G)和第二代GSM、CDMA等數字手機(2G),3G手機能處理圖像、音樂、視
2、頻等多種媒體形式,提供包括網頁瀏覽、電話會議、電子商務等多種信息服務。 3G網絡與前兩代的主要區別是在傳輸聲音和數據的速度上有很大的提升。目前中國正在建設3G網絡,大城市的3G網絡基本上已經鋪設好,像北京鋪設了超過2000個基站,深圳鋪設了1000多個基站。但是要全民普及到3G 手機尚且需要幾年時間?,F在,大家使用的手機大多還是2.5G手機,符合2.5G網絡的接口標準有CDMA2000 1X和GPRS,中國聯通使用的是CDMA2000 1X標準,中國移動使用的是GPRS標準。目前,可以把2.5G移動通信技術看作是2G邁向3G的銜接性技術,在2.5G網絡下出現了如WAP、藍牙(Bluetoot)
3、 等技術。對于2.5G網絡,應該也要有所了解,如:wap項目。智能手機軟件平臺智能手機軟件平臺有:Symbian, Windows Mobile, RIM BlackBerry, Android, iPhone, Java/J2ME。2009年市場份額:Symbian 51%RIM BlackBerry 18%iPhone 13.3windows Mobile 9.3%linux 4.6%Android 1.8%什么是AndroidAndroid是Google于2007年11月5日宣布的基于Linux平臺的開源手機操作系統,它包括一個操作系統,中間件和一些重要的應用程序。它采用軟件堆層(Sof
4、tware Stack,又名軟件疊層)的架構,主要分為三部分。底層以Linux內核工作為基礎,由C語言開發,只提供基本功能;中間層包括函數庫Library和Dalvik虛擬機,由C+開發。最上層是各種應用軟件,包括通話程序,短信程序等,應用軟件則由各公司自行開發,以Java作為編程的一部分。號稱是首個為移動終端打造的真正開放和完整的移動軟件??梢园補ndroid看作是一個類似于windows的操作系統。學習android平臺下的軟件開發正如以前學習windows平臺下的軟件開發一樣。在國內,android的前景十分廣闊,國內很多的廠商和運營商也紛紛加入了android陣營,包括中國移動,中國聯
5、通,華為通訊,聯想等大企業。同時android應用的范圍不僅僅在手機,國內一些廠家也陸續推出了采用android系統的MID產品,比較著名的包括由Rockchip和藍魔推出的同時具備高清播放和智能系統的音悅匯W7,可以預見android也將會被廣泛應用在國產智能上網設備上,將進一步擴大Andorid系統的應用范圍。如何安裝 Android SDK 和Eclipse 插件所需開發環境:JDK 5 或 JDK 6 (僅有JRE不夠) 、Eclipse 3.5 (galileo)下載用于在Eclipse 開發android應用的ADT 插件 在企業開發中,很多程序員使用Eclipse IDE作為應用
6、的開發環境。為了使得Android應用的創建,運行和調試更加方便快捷。Android的開發團隊專門針對Eclipse IDE定制了一個插件:Android Development Tools(ADT) 下載地址:安裝 Eclipse 插件 (ADT)啟動 Eclipse,選擇 Help Install New Software,在出現的對話框里,點擊Add按鈕,在對話框的name一欄輸入“ADT”, 然后點擊Archive.,瀏覽和選擇已經下載的ADT插件壓縮文件。 點擊 OK.。返回可用軟件的視圖,你會看到這個插件,然后選擇Developer Tools (會選中下面的“Android De
7、veloper Tools”和 “Android Editors“),點擊 Next,最后重啟 Eclipse。下載安裝Android SDK:Android SDK包含了開發Android應用所依賴的jar文件、運行環境及相關工具。 下載地址: 下載完SDK后,把.zip文件解壓到你電腦上合適位置。啟動 Eclipse,選擇window-preferences,在打開的視圖左邊點擊android,在右邊的SDK Location中選擇Android SDK所在位置。開發第一個Android應用(打開Eclipse,新建項目點擊FileNewProject),在項目列表中展開Android目錄
8、,選擇Android Project,如下圖:開發第一個Android應用開發第一個Android應用點擊”finish”即可完成項目的創建,創建后的項目已經是一個可運行的Android應用,可以通過下面方式運行此應用:點擊工具欄上機器人形狀的虛擬設備管理器(簡稱“AVD“),如下:開發第一個Android應用在打開的虛擬設備管理器中創建一個虛擬手機:開發第一個Android應用在項目上右鍵點擊run as Android application,如下圖:Android應用程序架構src/ java原代碼存放目錄gen/ 自動生成目錄gen 目錄中存放所有由Android開發工具自動生成的文件
9、。目錄中最重要的就是R.java文件。 這個文件由Android開發工具自動產生的。Android開發工具會自動根據res目錄的xml界面文件、圖標與常量,同步更新修改R.java文件。因為R.java文件是由開發工具自動生成的,應避免手工修改R.java。R.java在應用中起到了字典的作用,它包含了界面、圖標、常量等各種資源的id,通過R.java,應用可以很方便地找到對應資源。另外編繹器也會檢查R.java列表中的資源是否被使用到,沒有被使用到的資源不會編繹進軟件中,這樣可以減少應用在手機占用的空間。res/ 資源(Resource)目錄在這個目錄中可以存放應用使用到的各種資源,如xml
10、界面文件,圖片或數據。具體請看ppt下方備注欄。assets資源目錄Android除了提供/res目錄存放資源文件外,在/assets目錄也可以存放資源文件,而且/assets目錄下的資源文件不會在R.java自動生成ID,所以讀取/assets目錄下的文件必須指定文件的路徑,如:AndroidManifest.xml 項目清單文件 這個文件列出了應用程序所提供的功能,以后開發好的各種組件需要在該文件中進行配置,如果應用使用到了系統內置的應用(如電話服務、互聯網服務、短信服務、GPS服務等等),還需在該文件中聲明使用權限。perties 項目環境信息,一般是不需要修改此文件電話拔號器效果圖:電
11、話拔號器因為應用要使用手機的電話服務,所以要在清單文件AndroidManifest.xml中添加電話服務權限: 略. 電話拔號器界面布局: LinearLayout (線性布局)、AbsoluteLayout(絕對布局)、RelativeLayout(相對布局)、TableLayout(表格布局)、FrameLayout(幀布局)Android中的顯示單位 px (pixels)像素 一般HVGA代表320 x480像素,這個用的比較多。 dip或dp (device independent pixels)設備獨立像素 這個和設備硬件有關,一般為了支持WVGA、HVGA和QVGA 推薦使用這
12、個,不依賴像素。 sp (scaled pixels best for text size)比例像素 主要處理字體的大小,可以根據系統的字體自適應。除了上面三個顯示單位,下面還有幾個不太常用: in (inches)英寸 mm (millimeters)毫米 pt (points)點,1/72英寸為了適應不同分辨率,不同的像素密度,推薦使用dip ,文字使用sp。電話拔號器Activity:public class DialerAction extends Activity Override public void onCreate(Bundle savedInstanceState) sup
13、er.onCreate(savedInstanceState); setContentView(R.layout.main); Button button = (Button)findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener()public void onClick(View v) EditText editText = (EditText)findViewById(R.id.mobile); Intent intent = new Intent(Intent.ACTION_CALL, U
14、ri.parse(tel:+ editText.getText(); DialerAction.this.startActivity(intent); ); 電話拔號器測試步驟: 1在Eclipse中運行此應用 2在Dos窗口中進入android SDK安裝路徑的tools目錄,輸入以下命令再開啟一個Android模擬器: emulator -data itcast 注:itcast為用戶數據存取文件,如果該文件不存在,默認在tools目錄創建該文件 3在電話擾號器中輸入上圖現顯的電話號碼“尚未注冊網絡”錯誤信息的解決辦法打開Android模擬器時,出現無信號,拔打電話或發短信時,提示“尚未注
15、冊網絡”錯誤信息的解決方案如下。 場景一:你的電腦沒有連接上互聯網,同時也沒有在局域網。 解決辦法:右鍵點擊網上鄰居,選擇屬性,在網絡連接窗口中右鍵點擊本地連接,選擇屬性,設置TCP/IP屬性如下: IP地址:00 子網掩碼: 默認網關:00 首選DNS服務器:00 場景二:你的電腦沒有連接上互聯網,但在局域網。 解決辦法:右鍵點擊網上鄰居,選擇屬性,在網絡連接窗口中右鍵點擊本地連接,選擇屬性,設置TCP/IP屬性如下: IP地址:設置成你所在局域網的IP,如:00 子網掩碼:設置成你所在局域網的掩碼,如: 默認網關:設置成你所在局域網的網關,一般網關的IP格式為:*.*.*.1,如: 首選D
16、NS服務器:設置成你所在局域網的路由器IP,一般路由器的IP格式為:*.*.*.1,如: 最后一種解決方案是:讓你的電腦連接上互聯網。短信發送器效果圖:短信發送器因為應用要使用手機的短信服務,所以要在清單文件AndroidManifest.xml中添加短信服務權限: 略. 短信發送器界面布局: 短信發送器Activity主要代碼: String mobile = mobileView.getText().toString(); String content = contentView.getText().toString(); SmsManager smsManager = SmsManage
17、r.getDefault(); PendingIntent sentIntent = PendingIntent.getBroadcast(SMSSender.this, 0, new Intent(), 0); /如果字數超過70,需拆分成多條短信發送 List msgs = smsManager.divideMessage(content); for(String msg : msgs) smsManager.sendTextMessage(mobile, null, msg, sentIntent, null); /最后二個參數為短信已發送的廣播意圖,最后一個參數為短信對方已收到短信的廣
18、播意圖 Toast.makeText(SMSSender.this, 短信發送完成, Toast.LENGTH_LONG).show();短信發送器測試步驟: 1在Eclipse中運行此應用 2在Dos窗口中進入android SDK安裝路徑的tools目錄,輸入以下命令再開啟一個Android模擬器: emulator -data itcast 注:itcast為用戶數據存取文件,如果該文件不存在,默認在tools目錄創建該文件 3在短信發送器的手機號中輸入上圖現顯的電話號碼注:目前Android系統對中文短信尚未支持,所以發送中文短信會有亂碼,這個問題日后會被解決的。對應用進行單元測試在實
19、際開發中,開發android軟件的過程需要不斷地進行測試。而使用Junit測試框架,則是正規Android開發的必用技術,在Junit中可以得到組件,可以模擬發送事件和檢測程序處理的正確性。第一步:首先在AndroidManifest.xml中加入下面紅色代碼: . 上面targetPackage指定的包要和應用的package相同。第二步:編寫單元測試代碼(選擇要測試的方法,右鍵點擊“Run As”-“Android Junit Test” ):import android.test.AndroidTestCase;import android.util.Log;public class X
20、MLTest extends AndroidTestCase public void testSomething() throws Throwable Assert.assertTrue(1 + 1 = 3); 數據存儲與訪問很多時候軟件需要對處理后的數據進行存儲或再次訪問。Android為數據存儲提供了如下幾種方式:文件SharedPreferences(參數)SQLite數據庫內容提供者(Content provider)網絡使用文件進行數據存儲首先介紹使用文件如何對數據進行存儲,Activity提供了openFileOutput()方法可以用于把數據輸出到文件中,具體的實現過程與在J2S
21、E環境中保存數據到文件中是一樣的。public class FileActivity extends Activity Override public void onCreate(Bundle savedInstanceState) . FileOutputStream outStream = this.openFileOutput(itcast.txt, Context.MODE_PRIVATE); outStream.write(傳智播客.getBytes(); outStream.close(); openFileOutput()方法的第一參數用于指定文件名稱,不能包含路徑分隔符“/”
22、,如果文件不存在,Android 會自動創建它。創建的文件保存在/data/data/files目錄,如: /data/data/cn.itcast.action/files/itcast.txt ,通過點擊Eclipse菜單“Window”-“Show View”-“Other”,在對話窗口中展開android文件夾,選擇下面的File Explorer視圖,然后在File Explorer視圖中展開/data/data/files目錄就可以看到該文件。openFileOutput()方法的第二參數用于指定操作模式,有四種模式,分別為: Context.MODE_PRIVATE = 0Con
23、text.MODE_APPEND = 32768Context.MODE_WORLD_READABLE = 1Context.MODE_WORLD_WRITEABLE = 2使用文件進行數據存儲Context.MODE_PRIVATE:為默認操作模式,代表該文件是私有數據,只能被應用本身訪問,在該模式下,寫入的內容會覆蓋原文件的內容,如果想把新寫入的內容追加到原文件中??梢允褂肅ontext.MODE_APPENDContext.MODE_APPEND:模式會檢查文件是否存在,存在就往文件追加內容,否則就創建新文件。Context.MODE_WORLD_READABLE和Context.MOD
24、E_WORLD_WRITEABLE用來控制其他應用是否有權限讀寫該文件。MODE_WORLD_READABLE:表示當前文件可以被其他應用讀取;MODE_WORLD_WRITEABLE:表示當前文件可以被其他應用寫入。如果希望文件被其他應用讀和寫,可以傳入: openFileOutput(itcast.txt, Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE);android有一套自己的安全模型,當應用程序(.apk)在安裝時系統就會分配給他一個userid,當該應用要去訪問其他資源比如文件的時候,就需要userid匹配。默
25、認情況下,任何應用創建的文件,sharedpreferences,數據庫都應該是私有的(位于/data/data/files),其他程序無法訪問。除非在創建時指定了Context.MODE_WORLD_READABLE或者Context.MODE_WORLD_WRITEABLE ,只有這樣其他程序才能正確訪問。讀取文件內容如果要打開存放在/data/data/files目錄應用私有的文件,可以使用Activity提供openFileInput()方法。FileInputStream inStream = this.getContext().openFileInput(itcast.txt);L
26、og.i(FileTest, readInStream(inStream);readInStream()的方法請看本頁下面備注?;蛘咧苯邮褂梦募慕^對路徑:File file = new File(/data/data/cn.itcast.action/files/itcast.txt);FileInputStream inStream = new FileInputStream(file);Log.i(FileTest, readInStream(inStream);注意:上面文件路徑中的“cn.itcast.action”為應用所在包,當你在編寫代碼時應替換為你自己應用使用的包。對于私有文
27、件只能被創建該文件的應用訪問,如果希望文件能被其他應用讀和寫,可以在創建文件時,指定Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE權限。Activity還提供了getCacheDir()和getFilesDir()方法:getCacheDir()方法用于獲取/data/data/cache目錄getFilesDir()方法用于獲取/data/data/files目錄把文件存放在SDCard使用Activity的openFileOutput()方法保存文件,文件是存放在手機空間上,一般手機的存儲空間不是很大,存放些小文件還行,如果
28、要存放像視頻這樣的大文件,是不可行的。對于像視頻這樣的大文件,可以把它存放在SDCard。 SDCard可以把它看作是移動硬盤或U盤。在模擬器中使用SDCard,需要先創建一張SDCard卡(當然不是真的SDCard,只是鏡像文件)。創建SDCard可以在Eclipse創建模擬器時隨同創建,也可以使用DOS命令進行創建,如下:在Dos窗口中進入android SDK安裝路徑的tools目錄,輸入以下命令創建一張容量為2G的SDCard,文件后綴可以隨便取,建議使用.img:mksdcard 2048M D:AndroidToolsdcard.img在程序中訪問SDCard,你需要申請訪問SDC
29、ard的權限。在AndroidManifest.xml中加入訪問SDCard的權限如下:把文件存放在SDCard要往SDCard存放文件,程序必須先判斷手機是否裝有SDCard,并且可以進行讀寫。注意:訪問SDCard必須在AndroidManifest.xml中加入訪問SDCard的權限if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED) File sdCardDir = Environment.getExternalStorageDirectory();/獲取SDCard目錄 File save
30、File = new File(sdCardDir, “itcast.txt”);FileOutputStream outStream = new FileOutputStream(saveFile);outStream.write(傳智播客.getBytes();outStream.close();Environment.getExternalStorageState()方法用于獲取SDCard的狀態,如果手機裝有SDCard,并且可以進行讀寫,那么方法返回的狀態等于Environment.MEDIA_MOUNTED。Environment.getExternalStorageDirecto
31、ry()方法用于獲取SDCard的目錄,當然要獲取SDCard的目錄,你也可以這樣寫:File sdCardDir = new File(/mnt/sdcard); /獲取SDCard目錄File saveFile = new File(sdCardDir, itcast.txt); /上面兩句代碼可以合成一句: File saveFile = new File(/mnt/sdcard/itcast.txt);FileOutputStream outStream = new FileOutputStream(saveFile);outStream.write(傳智播客test.getBytes
32、();outStream.close();使用SAX或者DOM或者pull解析XML文件在Android平臺上可以使用Simple API for XML(SAX) 、 Document Object Model(DOM)和Android附帶的pull解析器解析XML文件。 下面是本例子要解析的XML文件:文件名稱:itcast.xml liming 30 zhangxiaoxiao 25 例子定義了一個javabean用于存放上面解析出來的xml內容, 這個javabean為Person,代碼請見本頁下面備注:使用SAX讀取XML文件SAX是一個解析速度快并且占用內存少的xml解析器,非常適
33、合用于Android等移動設備。 SAX解析XML文件采用的是事件驅動,也就是說,它并不需要解析完整個文檔,在按內容順序解析文檔的過程中,SAX會判斷當前讀到的字符是否合法XML語法中的某部分,如果符合就會觸發事件。所謂事件,其實就是一些回調(callback)方法,這些方法(事件)定義在ContentHandler接口。下面是一些ContentHandler接口常用的方法:startDocument() 當遇到文檔的開頭的時候,調用這個方法,可以在其中做一些預處理的工作。endDocument() 和上面的方法相對應,當文檔結束的時候,調用這個方法,可以在其中做一些善后的工作。 startE
34、lement(String namespaceURI, String localName, String qName, Attributes atts) 當讀到一個開始標簽的時候,會觸發這個方法。namespaceURI就是命名空間,localName是不帶命名空間前綴的標簽名,qName是帶命名空間前綴的標簽名。通過atts可以得到所有的屬性名和相應的值。要注意的是SAX中一個重要的特點就是它的流式處理,當遇到一個標簽的時候,它并不會紀錄下以前所碰到的標簽,也就是說,在startElement()方法中,所有你所知道的信息,就是標簽的名字和屬性,至于標簽的嵌套結構,上層標簽的名字,是否有子元
35、屬等等其它與結構相關的信息,都是不得而知的,都需要你的程序來完成。這使得SAX在編程處理上沒有DOM來得那么方便。endElement(String uri, String localName, String name) 這個方法和上面的方法相對應,在遇到結束標簽的時候,調用這個方法。characters(char ch, int start, int length) 這個方法用來處理在XML文件中讀到的內容,第一個參數為文件的字符串內容,后面兩個參數是讀到的字符串在這個數組中的起始位置和長度,使用new String(ch,start,length)就可以獲取內容。使用SAX讀取XML文件只
36、要為SAX提供實現ContentHandler接口的類,那么該類就可以得到通知事件(實際上就是SAX調用了該類中的回調方法)。因為ContentHandler是一個接口,在使用的時候可能會有些不方便,因此,SAX還為其制定了一個Helper類:DefaultHandler,它實現了ContentHandler接口,但是其所有的方法體都為空,在實現的時候,你只需要繼承這個類,然后重寫相應的方法即可。使用SAX解析itcast.xml的代碼如下:public static List readXML(InputStream inStream) try SAXParserFactory spf = S
37、AXParserFactory.newInstance(); SAXParser saxParser = spf.newSAXParser(); /創建解析器 /設置解析器的相關特性, = true 表示開啟命名空間特性 /saxParser.setProperty(,true); XMLContentHandler handler = new XMLContentHandler(); saxParser.parse(inStream, handler); inStream.close(); return handler.getPersons(); catch (Exception e) e.
38、printStackTrace(); return null;SAX 支持已內置到JDK1.5中,你無需添加任何的jar文件。關于XMLContentHandler的代碼實現請看本頁下面備注。使用DOM讀取XML文件除了使用 SAX可以解析XML文件,也可以使用熟悉的DOM來解析XML文件。 DOM解析XML文件時,會將XML文件的所有內容以文檔樹方式存放在內存中,然后允許使用DOM API遍歷XML樹、檢索所需的數據。使用DOM操作XML的代碼看起來是比較直觀的,并且在編碼方面比基于SAX的實現更加簡單。但是,因為DOM需要將XML文件的所有內容以文檔樹方式存放在內存中,所以內存的消耗比較大
39、,特別對于運行Android的移動設備來說,因為設備的資源比較寶貴,所以建議還是采用SAX來解析XML文件,當然,如果XML文件的內容比較小采用DOM也是可行的。使用Pull解析器讀取XML文件除了可以使用 SAX或DOM解析XML文件之外,也可以使用Android內置的Pull解析器解析XML文件。 Pull解析器是一個開源的java項目,既可以用于android,也可以用于JavaEE。如果用在javaEE需要把其jar文件放入類路徑中,因為Android已經集成進了Pull解析器,所以無需添加任何jar文件。android系統本身使用到的各種xml文件,其內部也是采用Pull解析器進行解
40、析的。 Pull解析器的運行方式與 SAX 解析器相似。它提供了類似的事件,如:開始元素和結束元素事件,使用parser.next()可以進入下一個元素并觸發相應事件。 跟SAX不同的是, Pull解析器產生的事件是一個數字,而非方法,因此可以使用一個switch對感興趣的事件進行處理。當元素開始解析時,調用parser.nextText()方法可以獲取下一個Text類型節點的值。Pull解析器的源碼及文檔下載網址:使用Pull解析器生成XML文件有些時候,需要生成一個XML文件,生成XML文件的方法有很多,如:可以只使用一個StringBuilder組拼XML內容,然后把內容寫入到文件中;或
41、者使用DOM API生成XML文件,或者也可以使用pull解析器生成XML文件,這里推薦使用Pull解析器。使用Pull解析器生成一個與itcast.xml文件內容相同的myitcast.xml文件,代碼在本頁下方備注使用代碼如下(生成XML文件):File xmlFile = new File(myitcast.xml);FileOutputStream outStream = new FileOutputStream(xmlFile);OutputStreamWriter outStreamWriter = new OutputStreamWriter(outStream, UTF-8);
42、BufferedWriter writer = new BufferedWriter(outStreamWriter);writeXML(persons, writer);writer.flush();writer.close();如果只想得到生成的xml字符串內容,可以使用StringWriter:StringWriter writer = new StringWriter();writeXML(persons, writer);String content = writer.toString();使用SharedPreferences進行數據存儲 很多時候開發的軟件需要向用戶提供軟件參數設
43、置功能,例如常用的QQ,用戶可以設置是否允許陌生人添加自己為好友。對于軟件配置參數的保存,如果是window軟件通常會采用ini文件進行保存,如果是j2se應用,會采用properties屬性文件或者xml進行保存。如果是Android應用,最適合采用什么方式保存軟件配置參數呢?Android平臺提供了一個SharedPreferences類,它是一個輕量級的存儲類,特別適合用于保存軟件配置參數。使用SharedPreferences保存數據,其背后是用xml文件存放數據,文件存放在/data/data/shared_prefs目錄下:SharedPreferences sharedPreferences = getSharedPreferences(itcast, Context.MODE_PRIVATE);Editor editor = sharedPreferences.edit();/獲取編輯器editor.putString(name, 傳智播客);editor.putInt(a
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 計算器產品召回與質量控制考核試卷
- 銅壓延加工中的質量控制體系考核試卷
- 酒吧服務酒品陳列與展示技巧考核試卷
- 綠色交通與城市出行方式的投資考核試卷
- 保健醫急救知識培訓
- 深靜脈感染預防控制要點
- 妊娠期甲狀腺疾病診治
- 二手交易電商平臺信用評價與信用評分模型構建報告
- 綠色供應鏈管理在制造業中的綠色供應鏈與綠色供應鏈管理培訓課程開發報告
- 鹽湖提鋰技術2025年成本優化與產能擴張產業競爭力研究報告
- 血管導管相關感染預防與控制指南課件
- 胃癌教育課件
- 《光伏電站運行與維護》課件-項目五 光伏電站常見故障處理
- 《食物在身體里的旅行》(教案)四年級上冊科學教科版
- 汽車以租代購合同
- 人教版二年級下冊口算題1000題大全
- 工程圖制作規范
- 2024年河南省機關單位工勤技能人員培訓考核高級工技師《職業道德》題庫
- 道路、公共廣場清掃保潔作業服務投標方案(技術方案)
- 馬清河灌區灌溉系統規劃設計
- 四川省南充市2023-2024學年高二下學期期末考試語文試題(解析版)
評論
0/150
提交評論