




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《移動(dòng)互聯(lián)網(wǎng)應(yīng)用新技術(shù)》第一章移動(dòng)互聯(lián)網(wǎng)技術(shù)基礎(chǔ)第一章移動(dòng)互聯(lián)網(wǎng)技術(shù)基礎(chǔ)1969年美軍牽頭組建的ARPA網(wǎng),把美國加利福尼亞大學(xué)洛杉磯分校、史坦福大學(xué)研究學(xué)院、加利福尼亞大學(xué)和猶他州大學(xué)的四臺(tái)主要計(jì)算機(jī)連接起來,后來美國其它一些高校和科研機(jī)構(gòu)也陸續(xù)加入進(jìn)來。1983年,美國國防部將ARPA網(wǎng)分為軍網(wǎng)和民網(wǎng),于是,越來越多的學(xué)校和公司加入其中的民網(wǎng),漸漸擴(kuò)大為今天的互聯(lián)網(wǎng)。1987年9月,CANET在北京計(jì)算機(jī)應(yīng)用技術(shù)研究所正式建成中國第一個(gè)國際互聯(lián)網(wǎng)電子郵件節(jié)點(diǎn),并于9月14日發(fā)出中國第一封電子郵件:“AcrosstheGreatWallwecanreacheverycornerintheworld”,揭開了中國人使用互聯(lián)網(wǎng)的序幕。1994年4月20日,NCFC工程通過美國Sprint公司連入Internet的64K國際專線開通,實(shí)現(xiàn)了與Internet的全功能連接,翻開了中國Internet發(fā)展史的首頁。1995年5月,郵電部宣布向社會(huì)開放接入服務(wù),此后,互聯(lián)網(wǎng)接入經(jīng)歷了電話撥號(hào)、DDN、ADSL、WAP等階段,目前主要以光纖+LAN、FTTH、3G、4G為主。1.1互聯(lián)網(wǎng)技術(shù)1.1.1互聯(lián)網(wǎng)的起源與發(fā)展第一章移動(dòng)互聯(lián)網(wǎng)技術(shù)基礎(chǔ)OSI模型的全稱是開放系統(tǒng)互連參考模型(OpenSystemInterconnectionReferenceModel,OSI/RM),它由國際標(biāo)準(zhǔn)化組織(InternationalStandardOrganization,ISO)提出,用于網(wǎng)絡(luò)系統(tǒng)互連,所以又稱為ISO/OSI模型。OSI參考模型自發(fā)布后,并沒有形成實(shí)際的產(chǎn)品,但是它成為包括TCP/IP協(xié)議在內(nèi)的很多重要通信協(xié)議的思想基礎(chǔ),對(duì)于理解TCP/IP的運(yùn)作機(jī)制必不可少。每一層都為其上一層提供服務(wù),并為其上一層提供一個(gè)訪問接口或界面。不同主機(jī)之間的相同層次稱為對(duì)等層。如主機(jī)A中的表示層和主機(jī)B中的表示層互為對(duì)等層,主機(jī)A中的會(huì)話層和主機(jī)B中的會(huì)話層互為對(duì)等層。對(duì)等層之間互相通信需要遵守一定的規(guī)則,如通信的內(nèi)容、通信的方式等,稱為協(xié)議。1.1.2
ISO/OSI模型OSI參考模型第一章移動(dòng)互聯(lián)網(wǎng)技術(shù)基礎(chǔ)增加每層報(bào)頭2、OSI模型數(shù)據(jù)封裝數(shù)據(jù)要在網(wǎng)絡(luò)上傳輸,必須有一定格式,使通信雙方能夠識(shí)別其首尾,并能有效控制。把數(shù)據(jù)包裝成這種格式的過程就叫數(shù)據(jù)封裝。當(dāng)一臺(tái)主機(jī)需要傳送用戶數(shù)據(jù)時(shí),數(shù)據(jù)首先通過應(yīng)用層接口進(jìn)入應(yīng)用層。在應(yīng)用層,用戶數(shù)據(jù)被加上應(yīng)用層報(bào)頭(ApplicationHeader,AH),形成應(yīng)用層協(xié)議數(shù)據(jù)單元(ProtocolDataUnit,PDU),然后被遞交到下一層表示層。表示層并不關(guān)心應(yīng)用層數(shù)據(jù)內(nèi)容,而是把整個(gè)應(yīng)用層數(shù)據(jù)包看成是一個(gè)整體進(jìn)行封裝,即加上表示層的報(bào)頭(PresentationHeader,PH)。然后遞交到下層會(huì)話層。以此類推,會(huì)話層、傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層也都要分別給上層遞交下來的數(shù)據(jù)加上自己的報(bào)頭第一章移動(dòng)互聯(lián)網(wǎng)技術(shù)基礎(chǔ)1.1.3
TCP/IP模型
TCP/IP模型也是層次結(jié)構(gòu),分為四個(gè)層次:應(yīng)用層、傳輸層、網(wǎng)絡(luò)互連層和網(wǎng)絡(luò)接口層。在TCP/IP模型中,去掉了OSI模型中的會(huì)話層和表示層,這兩層的功能被合并到應(yīng)用層實(shí)現(xiàn),同時(shí)將OSI模型中的數(shù)據(jù)鏈路層和物理層合并為網(wǎng)絡(luò)接口層。1、TCP/IP模型層次結(jié)構(gòu)第一章移動(dòng)互聯(lián)網(wǎng)技術(shù)基礎(chǔ)TCP/IP模型下各層的協(xié)議通過以太網(wǎng)包裝的IP報(bào)文格式第一章移動(dòng)互聯(lián)網(wǎng)技術(shù)基礎(chǔ)
IP協(xié)議是TCP/IP協(xié)議族中的核心協(xié)議,所有的TCP、UDP、ICMP、IGMP數(shù)據(jù)都被封裝在IP數(shù)據(jù)報(bào)中傳送。
IP頭部格式2、IP報(bào)文格式第一章移動(dòng)互聯(lián)網(wǎng)技術(shù)基礎(chǔ)IPv4與IPv6按照TCP/IP協(xié)議,每個(gè)連接在互聯(lián)網(wǎng)上的主機(jī)都應(yīng)該有一個(gè)唯一的地址,這個(gè)地址就作為該主機(jī)的標(biāo)志,叫IP地址。IPv6使用更小的路由表。IPv6的地址分配一開始就遵循聚類原則,這使得路由器能在路由表中用一條記錄表示一片子網(wǎng),大大減小了路由器中路由表的長(zhǎng)度,提高了路由器轉(zhuǎn)發(fā)數(shù)據(jù)包的速度。IPv6增加了增強(qiáng)的組播支持以及對(duì)流的控制,這使得網(wǎng)絡(luò)上的多媒體應(yīng)用有了長(zhǎng)足發(fā)展的機(jī)會(huì),為服務(wù)質(zhì)量控制提供了良好的網(wǎng)絡(luò)平臺(tái)。IPv6加入了對(duì)自動(dòng)配置的支持。這是對(duì)DHCP協(xié)議的改進(jìn)和擴(kuò)展,使得網(wǎng)絡(luò)的管理更加方便和快捷。IPv6具有更高的安全性。在使用IPv6網(wǎng)絡(luò)中用戶可以對(duì)網(wǎng)絡(luò)層的數(shù)據(jù)進(jìn)行加密并對(duì)IP報(bào)文進(jìn)行校驗(yàn),極大地增強(qiáng)了網(wǎng)絡(luò)的安全性。
IP地址:地址長(zhǎng)度地址數(shù)量IPv432IPv61281.1.4IPv4與IPv6
第一章移動(dòng)互聯(lián)網(wǎng)技術(shù)基礎(chǔ)首先,服務(wù)器進(jìn)程啟動(dòng)起來以后,就一直在監(jiān)聽某一TCP端口,比如FTP默認(rèn)為21端口,Web默認(rèn)為80端口,接收這一端口的請(qǐng)求信息。如果某個(gè)客戶,如客戶甲,需要查詢某個(gè)學(xué)生的個(gè)人信息時(shí),它就向服務(wù)器發(fā)出請(qǐng)求(a),告知這個(gè)學(xué)生的編號(hào)及要查詢信息的內(nèi)容。服務(wù)器進(jìn)程監(jiān)聽到這一請(qǐng)求后,啟動(dòng)一個(gè)線程,該線程從關(guān)聯(lián)的數(shù)據(jù)庫、文件等資源庫中搜索到該學(xué)生的信息,經(jīng)過相關(guān)處理后,把結(jié)果返回客戶甲(b)。如果客戶乙、客戶丙也需要查詢某個(gè)學(xué)生的個(gè)人信息,那么服務(wù)器則分別啟動(dòng)另外兩個(gè)線程,處理兩個(gè)客戶的請(qǐng)求。依次類推,如果有N個(gè)客戶請(qǐng)求,服務(wù)器進(jìn)程就啟動(dòng)N個(gè)線程處理客戶的請(qǐng)求。由于計(jì)算機(jī)的CPU和內(nèi)存等資源是有限的,因此,N的大小是受到限制的。一般把N叫做該服務(wù)器能夠處理的最大并發(fā)用戶數(shù)。。。1、C/S模型工作原理1.1.5
C/S模式與B/S模式3、B/S模式與C/S模式的優(yōu)劣勢(shì)比較(1)B/S模式比C/S模式維護(hù)和升級(jí)更簡(jiǎn)單(2)B/S模式比C/S模式成本更低(3)B/S模式服務(wù)器負(fù)載更重(4)B/S模式客戶端不如C/S模式功能強(qiáng)大B/S是一種特殊的C/S,人們也常把C/S結(jié)構(gòu)和B/S結(jié)構(gòu)并列起來,似乎B/S結(jié)構(gòu)和C/S結(jié)構(gòu)分屬兩種不同的結(jié)構(gòu),這樣當(dāng)然是不準(zhǔn)確的。但是由于人們經(jīng)常這樣稱呼,因而這時(shí),我們應(yīng)該把C/S理解為除B/S結(jié)構(gòu)外其余的C/S結(jié)構(gòu)。2、B/S模式與C/S模式的關(guān)系第一章移動(dòng)互聯(lián)網(wǎng)技術(shù)基礎(chǔ)第一章移動(dòng)互聯(lián)網(wǎng)技術(shù)基礎(chǔ)HTML(HypertextMarkupLanguage,超文本標(biāo)記語言)是用于描述網(wǎng)頁文檔的一種標(biāo)記語言,它通過標(biāo)記符號(hào)來標(biāo)記要顯示的網(wǎng)頁中的各個(gè)元素。網(wǎng)頁文件本身是一種文本文件,通過在文本文件中添加標(biāo)記符,可以告訴瀏覽器如何顯示其中的內(nèi)容。HTML5是HTML的最新版本,HTML5不僅大幅提升Web應(yīng)用在交互、系統(tǒng)能力調(diào)用、多媒體、語義化等方面的能力,用戶無需安裝紛繁的插件就可以獲得更為豐富的Web應(yīng)用。HTTP是超文本文件傳輸協(xié)議,是屬于TCP/IP協(xié)議族中的一個(gè),是用來控制HTML在IP網(wǎng)絡(luò)中傳輸?shù)摹?.1.6手機(jī)網(wǎng)頁標(biāo)準(zhǔn)第一章移動(dòng)互聯(lián)網(wǎng)技術(shù)基礎(chǔ)第一代移動(dòng)通信系統(tǒng)(1G)興起于20世紀(jì)70年代末,主要采用模擬技術(shù)和頻分多址(FDMA)技術(shù)。由于受到傳輸帶寬限制,導(dǎo)致其最致命的缺點(diǎn)是不能進(jìn)行大區(qū)域性漫游。第二代移動(dòng)通信系統(tǒng)(2G)興起于20世紀(jì)90年代初期,主要采用數(shù)字時(shí)分多址(TDMA)和碼分多址(CDMA)技術(shù),以數(shù)字傳輸方式實(shí)現(xiàn)語音和數(shù)據(jù)等業(yè)務(wù),完成了模擬技術(shù)向數(shù)字技術(shù)的轉(zhuǎn)變。2008年5月,國際電信聯(lián)盟正式公布第三代移動(dòng)通信系統(tǒng)(3G)標(biāo)準(zhǔn),中國提交的TD-SCDMA正式成為國際標(biāo)準(zhǔn),與歐洲WCDMA、美國CDMA2000成為3G時(shí)代最主流的三大技術(shù)之一。3G提供了前兩代產(chǎn)品所不能提供的各種寬帶信息業(yè)務(wù),比如無線高速上網(wǎng)、視頻等。2010年,海外主流運(yùn)營商開始規(guī)模建設(shè)4G。2013年12月4日,工業(yè)與信息化部正式向三大運(yùn)營商發(fā)布4G牌照,中國移動(dòng)、中國電信和中國聯(lián)通均獲得TD-LTE牌照,標(biāo)志著中國開始全面邁入4G時(shí)代。1.2移動(dòng)通信技術(shù)1.2.1移動(dòng)通信技術(shù)發(fā)展歷程第一章移動(dòng)互聯(lián)網(wǎng)技術(shù)基礎(chǔ)中國電信4G:TD-LTE,F(xiàn)DD-LTE;3G:CDMA2000;2G:CDMA。中國移動(dòng)4G:TD-LTE;3G:TD-SCDMA;2G:GSM。中國聯(lián)通4G:TD-LTE,F(xiàn)DD-LTE;3G:WCDMA;2G:GSM。1.2.2
4G移動(dòng)通信技術(shù)4G包括TD-LTE和FDD-LTE兩種制式,是目前世界占有主導(dǎo)地位的移動(dòng)通信技術(shù)。目前中國移動(dòng)、中國電信和中國聯(lián)通三家國內(nèi)電信運(yùn)營商均已經(jīng)建成4G網(wǎng)絡(luò)。目前,國內(nèi)三大電信運(yùn)營商移動(dòng)網(wǎng)絡(luò)的制式:第一章移動(dòng)互聯(lián)網(wǎng)技術(shù)基礎(chǔ)工信部電信研究院定義:移動(dòng)互聯(lián)網(wǎng)是以移動(dòng)網(wǎng)絡(luò)作為網(wǎng)絡(luò)接入方式的互聯(lián)網(wǎng)及服務(wù),它包括三個(gè)要素:移動(dòng)終端、移動(dòng)網(wǎng)絡(luò)和應(yīng)用服務(wù)。中國電信定義:移動(dòng)互聯(lián)網(wǎng)是移動(dòng)通信和互聯(lián)網(wǎng)從終端技術(shù)到業(yè)務(wù)全面融合的產(chǎn)物,它可以從廣義和狹義兩個(gè)角度來理解:從廣義角度理解,移動(dòng)互聯(lián)網(wǎng)指用戶使用手機(jī)、上網(wǎng)本、筆記本電腦等移動(dòng)終端,通過移動(dòng)或無線網(wǎng)絡(luò)訪問互聯(lián)網(wǎng)并使用互聯(lián)網(wǎng)服務(wù);從狹義角度理解,移動(dòng)互聯(lián)網(wǎng)是指用戶使用手機(jī)通過移動(dòng)網(wǎng)絡(luò)獲取訪問互聯(lián)網(wǎng)并使用互聯(lián)網(wǎng)服務(wù)。一般而言,電信行業(yè)所指的移動(dòng)互聯(lián)網(wǎng)主要是指狹義角度,包括通過2G/3G/4G網(wǎng)絡(luò)使用互聯(lián)網(wǎng)服務(wù)(WAP與Web方式)。1.3
移動(dòng)互聯(lián)網(wǎng)1.3.1
移動(dòng)互聯(lián)網(wǎng)概念與特點(diǎn)第一章移動(dòng)互聯(lián)網(wǎng)技術(shù)基礎(chǔ)1、三者關(guān)系對(duì)比指標(biāo)傳統(tǒng)桌面互聯(lián)網(wǎng)移動(dòng)互聯(lián)網(wǎng)業(yè)務(wù)組織形式分散的應(yīng)用服務(wù)結(jié)構(gòu)用戶圍繞服務(wù)為中心服務(wù)結(jié)構(gòu)以電信運(yùn)營商為中心服務(wù)以用戶為中心接入終端臺(tái)式機(jī)筆記本電腦手機(jī)上網(wǎng)本平板電腦及其它上網(wǎng)終端應(yīng)用網(wǎng)絡(luò)傳統(tǒng)有線網(wǎng)絡(luò)(ADSL、FTTX)WAN等網(wǎng)絡(luò)擴(kuò)展電信運(yùn)營商2G、3G、4G網(wǎng)絡(luò)、WIFI用戶習(xí)慣上網(wǎng)地點(diǎn):辦公室、學(xué)校、家庭等、網(wǎng)吧等固定場(chǎng)所使用時(shí)間:固定、連續(xù)一段時(shí)間上網(wǎng)地點(diǎn):交通工具、戶外使用時(shí)間:碎片化時(shí)間可搭載服務(wù)的特點(diǎn)界面內(nèi)容復(fù)雜的應(yīng)用系統(tǒng)除通過強(qiáng)制認(rèn)證外,系統(tǒng)無法識(shí)別用戶界面內(nèi)容簡(jiǎn)單、易操作的應(yīng)用系統(tǒng)基于位置服務(wù)、身份識(shí)別、身份鑒定的應(yīng)用服務(wù)2、桌面互聯(lián)網(wǎng)與移動(dòng)互聯(lián)網(wǎng)比較1.3.2移動(dòng)互聯(lián)網(wǎng)與桌面互聯(lián)網(wǎng)的比較第一章移動(dòng)互聯(lián)網(wǎng)技術(shù)基礎(chǔ)1.3.3移動(dòng)互聯(lián)網(wǎng)三要素與關(guān)鍵技術(shù)第一章移動(dòng)互聯(lián)網(wǎng)技術(shù)基礎(chǔ)1.4移動(dòng)智能終端與操作系統(tǒng)移動(dòng)智能終端的智能性主要體現(xiàn)在四個(gè)方面:操作系統(tǒng)平臺(tái)開放,支持應(yīng)用程序的靈活開發(fā)、安裝和運(yùn)行;具有高速的互聯(lián)網(wǎng)接入能力,具備PC級(jí)的處理能力,支持桌面互聯(lián)網(wǎng)主流應(yīng)用的移動(dòng)化遷移;人機(jī)交互界面豐富,支持可視化輸入、3D顯示、語音識(shí)別、圖像識(shí)別、觸摸輸入等多種的交互方式。有各種豐富且可以不斷增加的應(yīng)用,包括個(gè)人信息管理,日程記事,任務(wù)安排,多媒體應(yīng)用,網(wǎng)頁瀏覽等等。支持多任務(wù)和復(fù)制、粘貼功能。移動(dòng)芯片技術(shù):集成電路是移動(dòng)通信終端的核心器件,傳統(tǒng)終端芯片包含了基帶芯片、射頻芯片、電源管理芯片和存儲(chǔ)芯片。系統(tǒng)軟件技術(shù):操作系統(tǒng)是移動(dòng)智能終端軟件平臺(tái)體系的核心,向下適配硬件系統(tǒng),向上支撐應(yīng)用軟件決定用戶最終體驗(yàn)。人機(jī)交互技術(shù):人機(jī)交互技術(shù)旨在讓計(jì)算設(shè)備有更好的用戶體驗(yàn)。包括未來顯示技術(shù)、多模態(tài)交互技術(shù)、無處不在的普適交互環(huán)境和支持特殊應(yīng)用的交互技術(shù)。移動(dòng)通信終端涉及很多技術(shù),包括系統(tǒng)和應(yīng)用軟件技術(shù)、微電子微機(jī)電技術(shù)、下一代顯示和語音識(shí)別等人機(jī)交互技術(shù)、新型金屬和高精度玻璃等原材料技術(shù)以及整機(jī)設(shè)計(jì)和制造技術(shù),其分支十分龐雜,其四大核心領(lǐng)域?yàn)椋?.4.1移動(dòng)智能終端及其核心技術(shù)第一章移動(dòng)互聯(lián)網(wǎng)技術(shù)基礎(chǔ)Android:Android是Google公司于2007年11月5日宣布的基于Linux平臺(tái)的開源手機(jī)操作系統(tǒng),由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,同年制造出第一款Google手機(jī)HTCG1。到2010年,Android系統(tǒng)就發(fā)展成為最具潛力智能操作系統(tǒng)。Android系統(tǒng)架構(gòu)為四層結(jié)構(gòu),從下到上分別是Linux內(nèi)核層、系統(tǒng)運(yùn)行庫層、應(yīng)用程序框架層和應(yīng)用程序?qū)印OS:iOS是由蘋果公司為自有的iPhone、iPodtouch及iPad開發(fā)的專用操作系統(tǒng),具有封閉性的特點(diǎn)。iOS的系統(tǒng)架構(gòu)從下到上也分為四個(gè)層次:核心操作系統(tǒng)層、核心服務(wù)層、媒體層和觸摸層。Android與iOS的對(duì)比:1、Android開放,iOS封閉,Android擁有更多共享資源和支持者2、Android對(duì)應(yīng)用的審核不如iOS嚴(yán)格,應(yīng)用在運(yùn)行性能方面保障不如iOS3、iOS應(yīng)用上線需要審核,不如Android方便。4、目前,Android比iOS用戶數(shù)量比例要大得多。1.4.2智能手機(jī)操作系統(tǒng)第二章移動(dòng)互聯(lián)網(wǎng)技術(shù)基礎(chǔ)第二章移動(dòng)互聯(lián)網(wǎng)技術(shù)基礎(chǔ)統(tǒng)一后端的處理與存儲(chǔ),避免重復(fù)開發(fā);抽取出中間的數(shù)據(jù)訪問層,以同時(shí)支持PC用戶界面和手機(jī)用戶界面,降低二者耦合;手機(jī)用戶界面盡量復(fù)用PC用戶界面的后臺(tái)代碼;PC用戶界面和手機(jī)用戶界面最好有單獨(dú)的模塊維護(hù),利于并行開發(fā);PC用戶界面和手機(jī)用戶界面最好支持同機(jī)部署,有利于節(jié)省資源。手機(jī)網(wǎng)站一般不是獨(dú)立存在的,因?yàn)槎鄶?shù)手機(jī)網(wǎng)站在開發(fā)前已經(jīng)存在相應(yīng)的PC網(wǎng)站,因此需要考慮對(duì)原有系統(tǒng)架構(gòu)的兼容,要盡可能節(jié)省開發(fā)和維護(hù)的工作量。具體而言,應(yīng)當(dāng)遵循以下原則:2.1網(wǎng)站架構(gòu)設(shè)計(jì)第二章手機(jī)網(wǎng)站開發(fā)Dreamweaver:是一個(gè)“所見即所得”的網(wǎng)頁編輯工具,它采用浮動(dòng)面版的設(shè)計(jì)風(fēng)格,對(duì)于初學(xué)者來說可能會(huì)感到不適應(yīng)。但當(dāng)習(xí)慣了其操作方式后,就會(huì)發(fā)現(xiàn)Dreamweaver的直觀性與高效性是Frontpage所無法比擬的。Dreamweaver對(duì)于DHTML的支持特別好,可以輕而易舉地做出很多眩目的頁面特效。插件式的程序設(shè)計(jì)使得其功能可以具有良好的擴(kuò)展性。Dreamweaver與Flash、Fireworks并稱為網(wǎng)頁制作三劍客,由于是同一公司的產(chǎn)品,因而在功能上有著非常緊密的結(jié)合。而最新推出的DreamweaverUltraDev更能支持Asp、Jsp等,說Dreamweaver是高級(jí)網(wǎng)頁制作的首選并不為過。Flash和Fireworks:Flash是交互式矢量圖和Web動(dòng)畫的標(biāo)準(zhǔn),網(wǎng)頁設(shè)計(jì)者可以使用Flash做出既漂亮又可改變尺寸的導(dǎo)航界面及其它奇特效果,易學(xué)易用。Fireworks是一個(gè)網(wǎng)頁作圖軟件,它與Dreamweaver結(jié)合很緊密,只要將Dreamweaver的默認(rèn)圖像編輯器設(shè)為Fireworks,那么在Fireworks里修改的文件將立即在Dreamweaver里更新。Frontpage:是微軟公司的產(chǎn)品,也是最簡(jiǎn)單、最容易、卻又功能強(qiáng)大的網(wǎng)頁編輯工具。Frontpage采用典型的Word界面設(shè)計(jì),只要懂得使用Word,就差不多等于已經(jīng)會(huì)使用Frontpage大多數(shù)的開發(fā)技巧。即使不懂Word也沒關(guān)系,“所見即所得”的設(shè)計(jì)方式會(huì)讓初學(xué)者很快上手。2.2開發(fā)環(huán)境的搭建2.2.1網(wǎng)頁編輯工具第二章手機(jī)網(wǎng)站開發(fā)IIS:微軟公司的Web服務(wù)器,內(nèi)含Gopher服務(wù)器和FTP服務(wù)器,與WindowsNTServer完全集成,允許使用WindowsNTServer內(nèi)置的安全性以及NTFS文件系統(tǒng)建立強(qiáng)大靈活的互聯(lián)網(wǎng)站點(diǎn)。IIS支持ASP(ActiveServerPages)、JAVA、VBscript等動(dòng)態(tài)頁面和頁面腳本,還有一些擴(kuò)展功能,支持Frontpage、IndexServer、NetShow等軟件。
經(jīng)典組合:WindowsServer+IIS+SqlServer+ASP/ASP.NETTomcat:一個(gè)JSP和Servlet的運(yùn)行平臺(tái),不僅是一個(gè)Servlet容器,同時(shí)也具有傳統(tǒng)Web服務(wù)器的功能,即處理HTML網(wǎng)頁。但是與Apache相比,它處理靜態(tài)網(wǎng)頁的能力稍遜。但可以將Tomcat和Apache集成到一塊,讓Apache處理靜態(tài)網(wǎng)頁,而Tomcat處理JSP和Servlet。這種集成只需要修改一下Apache和Tomcat的配置文件即可?;赥omcat的開發(fā)其實(shí)主要是JSP和Servlet的開發(fā),開發(fā)JSP和Servlet非常簡(jiǎn)單,可以使用普通文本編輯器或者IDE,然后將其打包成WAR即可。Apache:一種免費(fèi)服務(wù)器,目前市場(chǎng)占有率排名第一。Apache由一個(gè)完全通過互聯(lián)網(wǎng)運(yùn)作的非盈利機(jī)構(gòu)ApacheGroup公布發(fā)行,由它來決定ApacheWeb服務(wù)器的標(biāo)準(zhǔn)發(fā)行版中應(yīng)該包含哪些內(nèi)容,但準(zhǔn)許任何人修改,提供新的特征和將它移植到新的平臺(tái)上。當(dāng)新的代碼提交給ApacheGroup時(shí),該機(jī)構(gòu)會(huì)審核它的具體內(nèi)容并進(jìn)行測(cè)試。如果認(rèn)為滿意,該代碼就會(huì)被集成到Apache的主要發(fā)行版中。經(jīng)典組合:Linux+Apache+Mysql+Php
2.2.2服務(wù)器選擇第二章手機(jī)網(wǎng)站
Java是由SunMicrosystems公司于推出的Java程序設(shè)計(jì)語言和Java平臺(tái)的總稱,是一種可以撰寫跨平臺(tái)應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言。Java是開源較早的面向?qū)ο蟮木幊陶Z言,主要應(yīng)有范圍:個(gè)人PC、數(shù)據(jù)中心、游戲控制臺(tái)、科學(xué)超級(jí)計(jì)算機(jī)、移動(dòng)電話和互聯(lián)網(wǎng)等。
Java的特點(diǎn):通用性、高效性、平臺(tái)移植性和安全性。
Java的應(yīng)用:網(wǎng)站建設(shè)在使用JSP開發(fā)時(shí),以Java為基礎(chǔ)的JSP網(wǎng)站建設(shè)編程語言廣泛應(yīng)用于很多網(wǎng)站,例如一些政府機(jī)構(gòu)的網(wǎng)站、大型平臺(tái)、網(wǎng)絡(luò)辦公系統(tǒng)等。
C#是由微軟公司發(fā)布的一款面向?qū)ο蟮摹⑦\(yùn)行于.Net平臺(tái)中之上的高級(jí)程序設(shè)計(jì)語言,不但繼承了C語言家族的貴族血脈(繼承關(guān)系C->C++->C#),還具有開源和跨平臺(tái)的優(yōu)勢(shì)。C#看起來與Java有著驚人的相似;它包括了諸如單一繼承、界面、與Java幾乎同樣的語法,和編譯成中間代碼再運(yùn)行的過程。
C#的特點(diǎn):可以運(yùn)行在Windows、Linux、iOS、MacOS、Android等各種平臺(tái),即可以開發(fā)網(wǎng)站,也可以開發(fā)桌面軟件、APP應(yīng)用、各種客戶端等
C#的應(yīng)用:C#在網(wǎng)站建設(shè)中使得企業(yè)不必為了擴(kuò)展程序終端,而必須去雇傭其他編程語言的開發(fā)者,大大降低了開發(fā)成本。
PHP是一種通用開源腳本語言,主要開發(fā)方向針對(duì)的是網(wǎng)站,開源免費(fèi)、應(yīng)用輕量、速度較快,但在其他終端上的作為不大,所以使用率不高。
PHP的特點(diǎn):PHP語法語法混合了C、Java、Perl以及PHP自創(chuàng)的語法的特點(diǎn),主要適用于Web開發(fā)領(lǐng)域。用PHP做出的動(dòng)態(tài)頁面與其他的編程語言相比,PHP是將程序嵌入到HTML文檔中去執(zhí)行做出態(tài)頁面,執(zhí)行效率比完全生成HTML標(biāo)記的CGI要高許多;PHP還可以執(zhí)行編譯后代碼。
Python是一種面向?qū)ο蟮慕忉屝陀?jì)算機(jī)程序設(shè)計(jì)語言,以語法簡(jiǎn)潔清晰,并有強(qiáng)大且豐富的類庫而著稱。Python是純粹的自由軟件,源代碼和解釋器CPython遵循GPL(GNUGeneralPublicLicense)協(xié)議。Python被廣泛應(yīng)用于游戲開發(fā)、網(wǎng)站開發(fā)、科學(xué)運(yùn)算、大數(shù)據(jù)分析、云計(jì)算等,圖形開發(fā)等領(lǐng)域。1、Web常用開發(fā)語言介紹第二章手機(jī)網(wǎng)站開發(fā)2、各種開發(fā)語言排名變化情況第二章手機(jī)網(wǎng)站開發(fā)理念上的不同導(dǎo)致了Java和PHP在Web應(yīng)用開發(fā)上顯示了不同的結(jié)果,盡管Java的數(shù)學(xué)計(jì)算和數(shù)據(jù)庫訪問都有優(yōu)勢(shì),架構(gòu)也相當(dāng)完美,但是PHP卻可以簡(jiǎn)單輕松地支持高強(qiáng)度Web訪問,能夠快速開發(fā)應(yīng)用,支持PHP的虛擬主機(jī)多如牛毛,使得用PHP開發(fā)一個(gè)網(wǎng)站比用Java開發(fā)一個(gè)網(wǎng)站要快得多,容易的多。Java所擁有的優(yōu)點(diǎn)只適合傳統(tǒng)的以軟件項(xiàng)目為核心的開發(fā)模式,而PHP更適合于以客戶為核心的SaaS的開發(fā)模式,因此,PHP目前在Web網(wǎng)站開發(fā)的優(yōu)勢(shì)完全是因?yàn)閃eb網(wǎng)站開發(fā)的特殊性而導(dǎo)致的,并非編程語言特性所決定。Java語言相比PHP有明顯的優(yōu)勢(shì),Java使用的是面向?qū)ο蟮南到y(tǒng)設(shè)計(jì)方法,而PHP還是采用面向過程的開發(fā)方法。PHP只能實(shí)現(xiàn)簡(jiǎn)單的分布式兩層或三層的架構(gòu),而JAVA可以實(shí)現(xiàn)多層架構(gòu)。數(shù)據(jù)庫層(持久化層)、應(yīng)用(業(yè)務(wù))邏輯層、表示邏輯層彼此分開,而且現(xiàn)在不同的層都已經(jīng)有一些成熟的開發(fā)框架的支持。例如Struts就是利用Java的web開發(fā)技術(shù)實(shí)現(xiàn)了MVC的設(shè)計(jì)模式,而在業(yè)務(wù)邏輯層也有Spring框架,數(shù)據(jù)庫持久化層有Hibernate等框架。這些框架可以方便開發(fā)者高效、合理、科學(xué)得架構(gòu)多層的商業(yè)應(yīng)用。從數(shù)學(xué)運(yùn)算和數(shù)據(jù)庫訪問速度來講,Java的性能也優(yōu)于PHP.實(shí)際上,對(duì)于跨平臺(tái)的大型的企業(yè)應(yīng)用系統(tǒng)來講,Java幾乎已經(jīng)成為唯一的選擇(微軟.NET不支持跨平臺(tái)),但是在于Web網(wǎng)站應(yīng)用開發(fā)來講,Java卻面臨著被PHP邊緣化的危險(xiǎn),幾乎所有的虛擬主機(jī)都支持PHP+MySQL,而支持Java的卻少之又少,在資源上,網(wǎng)上有不計(jì)其數(shù)的PHP資源,很多著名的大型網(wǎng)站(例如Facebook、Mediawiki等)都是基于PHP的,而成功的Java網(wǎng)站卻寥寥無幾,3、Java和PHP的比較第二章手機(jī)網(wǎng)站開發(fā)服務(wù)器硬件:普通的PC機(jī)或筆記本電腦;操作系統(tǒng):各種版本的Windows;Web服務(wù)器軟件:Tomcat;網(wǎng)頁開發(fā)工具:DreamweaverCS6;智能手機(jī):采用Android操作系統(tǒng)的智能手機(jī);手機(jī)瀏覽器:任意;服務(wù)器的互聯(lián)網(wǎng)連接:普通的PPPoE撥號(hào)上網(wǎng);智能手機(jī)上網(wǎng):4G。簡(jiǎn)易開發(fā)環(huán)境要求確實(shí)很低呀!2.2.3簡(jiǎn)易開發(fā)環(huán)境搭建
第二章手機(jī)網(wǎng)站開發(fā)簡(jiǎn)易開發(fā)環(huán)境搭建過程安裝過程按部就班即可!下載并安裝Tomcat測(cè)試Tomcat服務(wù)器用DreamweaverCS6設(shè)計(jì)和演示一個(gè)簡(jiǎn)單手機(jī)網(wǎng)頁第二章手機(jī)網(wǎng)站開發(fā)心智模式是根深蒂固于心中,影響我們?nèi)绾瘟私膺@個(gè)世界,如何采取行動(dòng)的許多假設(shè)、成見甚至圖像、印象,是對(duì)于周圍世界如何運(yùn)作的既有認(rèn)知。要使界面能更容易地為使用者所理解和使用,就必須使界面符合人們通常的心智模式。人機(jī)交互必須以用戶為中心,使用者能按照自己的想法,去控制系統(tǒng)的順序與速度。移動(dòng)互聯(lián)網(wǎng)與傳統(tǒng)互聯(lián)網(wǎng)功能基本相似,但使用方式卻有著很大差別。傳統(tǒng)互聯(lián)網(wǎng)已經(jīng)使消費(fèi)者養(yǎng)成了一種使用習(xí)慣,比如網(wǎng)址輸入、內(nèi)容搜尋、內(nèi)容選擇、內(nèi)容輸入、軟件下載、軟件安裝、郵件收發(fā)等。若讓消費(fèi)者使用移動(dòng)互聯(lián)網(wǎng),則需對(duì)訪問方式、提供內(nèi)容、輸出界面、收費(fèi)方式等做一系列的改變。手機(jī)交互界面的設(shè)計(jì)原則
平衡原則。注意屏幕上下左右平衡,不要堆擠圖符和圖標(biāo)、文字和數(shù)據(jù),過分擁擠的顯示也會(huì)產(chǎn)生視覺疲勞和接收錯(cuò)誤;預(yù)期原則。屏幕上所有對(duì)象要提供足夠的信息量,使對(duì)象的動(dòng)作可預(yù)期;順序原則。功能對(duì)象顯示的順序應(yīng)依需要排列。通常應(yīng)最先出現(xiàn)使用頻率最高的部分,然后將使用頻率低的部分排列到視覺信息分布較少的位置;規(guī)則化原則。畫面應(yīng)對(duì)稱,顯示命令、對(duì)話及提示行在同一個(gè)窗口中的設(shè)計(jì)盡量統(tǒng)一規(guī)范,具有整齊、干凈的視覺效果;簡(jiǎn)明原則。內(nèi)容要精簡(jiǎn)、易懂及便于瀏覽,注重信息內(nèi)容的顯示而非純粹展示效果。2.3人機(jī)交互界面設(shè)計(jì)2.3.1基于心智模式的界面設(shè)計(jì)理論第二章手機(jī)網(wǎng)站開發(fā)整體設(shè)計(jì):保持顯示內(nèi)容精煉,進(jìn)行有效率且有邏輯性的組織,避免消耗大量空間,在多款主流手機(jī)上對(duì)效果進(jìn)行測(cè)試版面規(guī)劃:保持頁面內(nèi)容量盡量少,網(wǎng)頁內(nèi)容進(jìn)行精心組織來幫助使用者搜尋特定網(wǎng)頁,僅顯示最為重要且必備的信息,避免使用多重縱列的設(shè)計(jì)。影像:不能假定每張影像都能被完整顯示出來,也不能假定瀏覽器會(huì)自行調(diào)整影像的大小,即使該手機(jī)具備影像尺寸自動(dòng)調(diào)整能力,其中信息也有可能因此丟失。不要將影像作為美化網(wǎng)頁的輔助工具,同時(shí)避免使用對(duì)瀏覽性與適讀性毫無幫助的圖像。除非是在該影像有絕對(duì)的存在價(jià)值,否則盡可能避免使用圖形。需要時(shí),可以尋找能夠表達(dá)與圖像相同信息的替代方案。瀏覽部分:網(wǎng)站架構(gòu)應(yīng)該明確、清晰且單純,主頁面的設(shè)計(jì)必須是簡(jiǎn)單的,其余的信息應(yīng)該放置于附加頁面中。2.3.2小屏幕網(wǎng)頁界面要素設(shè)計(jì)方法第二章手機(jī)網(wǎng)站開發(fā)靜態(tài)圖形圖像:形成圖形圖像不同視覺效果的影響因素有空間、運(yùn)動(dòng)、質(zhì)感等。空間感可以通過攝影、繪畫技法獲得,可以運(yùn)用不同的手法對(duì)點(diǎn)線面等元素進(jìn)行組合,使平面圖形圖像的三維空間感得以加強(qiáng),如:疏密、大小、方向、重疊、虛實(shí)、色調(diào)的變化和光影的利用等手法。動(dòng)感采用三種方法產(chǎn)生:采用重復(fù)和漸變,表現(xiàn)運(yùn)動(dòng)軌跡,將物象運(yùn)動(dòng)過程中某一時(shí)刻的片斷形態(tài)或處于不穩(wěn)定狀態(tài)的形態(tài)捕捉下來并選取運(yùn)動(dòng)幅度最大的狀態(tài)。質(zhì)感指松弛感、平滑感、濕潤(rùn)感等,不僅只表現(xiàn)出情感,而且與這種情感融為一體。動(dòng)態(tài)圖形圖像:動(dòng)態(tài)圖像使信息能夠直觀、快速、準(zhǔn)確地表達(dá),緩解了信息接收給使用者帶來的解讀壓力。動(dòng)態(tài)圖像是由相關(guān)并能夠建立起視覺關(guān)系的形態(tài),采用一定的手段進(jìn)行組合并顯示動(dòng)態(tài)的視覺效果。文字的字體與編排:在界面設(shè)計(jì)中,文字的字體、規(guī)格及其編排形式對(duì)網(wǎng)頁的展現(xiàn)效果有非常重要的作用。2.3.2小屏幕網(wǎng)頁界面要素設(shè)計(jì)方法第二章手機(jī)網(wǎng)站開發(fā)智能手機(jī)屏幕指標(biāo):(1)屏幕尺寸,通常是指屏幕的物理尺寸,是屏幕的對(duì)角線長(zhǎng)度,比如3.5英寸,4.3英寸,物理尺寸決定了屏幕的實(shí)際尺寸。(2)屏幕分辨率,指屏幕上擁有的像素的總數(shù)。通常使用“寬度×長(zhǎng)度”來表達(dá),比如320*480等。分辨率可以表示屏幕上能夠呈現(xiàn)的像素?cái)?shù)。(3)屏幕比例,指屏幕的物理長(zhǎng)度與物理寬度比。通常稱16:9或16:10長(zhǎng)寬比例的屏幕為寬屏幕,4:3長(zhǎng)寬比例的屏幕為窄屏幕。(4)屏幕密度等,以每英寸的像素?cái)?shù)表示,如160ppi,屏幕密度決定了屏幕的精細(xì)程度。屏幕適配思路:(1)確定目標(biāo)的屏幕大小,在手機(jī)網(wǎng)頁布局中,最關(guān)心的是寬度值。寬度確定后,高度可以由滾動(dòng)或者翻頁來顯示。(2)適配原則:logo在各種手機(jī)上都應(yīng)該能夠清晰顯示,標(biāo)題或者底部欄必須100%地與手機(jī)寬度適配,文字內(nèi)容可以自動(dòng)適配寬度進(jìn)行折行,圖片可以根據(jù)寬度進(jìn)行自動(dòng)縮放,界面元素的寬高最小值應(yīng)該符合用戶的主觀舒適范圍值,不能完全使用分辨率的絕對(duì)比例來對(duì)界面布局進(jìn)行縮放。(3)Android與iPhone手機(jī)的適配:iPhone分辨率等級(jí)及屏幕大小類型少,可以容易適配;Android分辨率等級(jí)及屏幕大小類型多,需要采用圖片資源的縮放、根據(jù)分辨率和坐標(biāo)自動(dòng)縮放、兼容更大的屏幕大小等方式適配。(4)豎屏橫屏適配:不同的應(yīng)用對(duì)于屏幕有不同的選擇,如普通列表多的應(yīng)用,豎屏更為合適,顯示圖片更多的界面,或者想更好的展示全景的應(yīng)用,橫屏則更合適。2.4.1屏幕適配2.4終端與屏幕適配設(shè)計(jì)第二章手機(jī)網(wǎng)站開發(fā)允許網(wǎng)頁寬度自動(dòng)調(diào)整。不使用絕對(duì)寬度:由于網(wǎng)頁會(huì)根據(jù)屏幕寬度調(diào)整布局,所以不能使用絕對(duì)寬度的布局,也不能使用具有絕對(duì)寬度的元素。采用相對(duì)大小的字體:字體也不能使用絕對(duì)大小(px),而只能使用相對(duì)大小(em)。采用流動(dòng)布局:各個(gè)區(qū)塊的位置都是浮動(dòng)的,不是固定不變的。選擇加載CSS:自動(dòng)探測(cè)屏幕寬度,然后加載相應(yīng)的CSS文件。CSS的@media規(guī)則:同一個(gè)CSS文件中,根據(jù)不同的屏幕分辨率,選擇應(yīng)用不同的CSS規(guī)則。圖片的自適應(yīng):必須實(shí)現(xiàn)圖片的自動(dòng)縮放。2010年,EthanMarcotte提出了自適應(yīng)網(wǎng)頁設(shè)計(jì)概念,基于這種思路設(shè)計(jì)的網(wǎng)頁能夠自動(dòng)識(shí)別屏幕寬度、分辨率等特征并做出相應(yīng)調(diào)整。2.4.2自適應(yīng)網(wǎng)頁設(shè)計(jì)第三章手機(jī)APP開發(fā)第三章手機(jī)APP開發(fā)比較項(xiàng)目手機(jī)網(wǎng)頁手機(jī)APP方便性方便,不需要安裝專門客戶端,通過瀏覽器即可訪問;功能升級(jí)只需平臺(tái)測(cè)升級(jí)即可。不方便,需要安裝專門客戶端,通過瀏覽器才可訪問;功能升級(jí)通常需要更新客戶端。用戶界面可以采用HTML,實(shí)現(xiàn)豐富的多媒體和客戶端動(dòng)畫功能可以設(shè)計(jì)一些瀏覽器無法實(shí)現(xiàn)的界面功能,比如滑屏等對(duì)本機(jī)資源的調(diào)用不能調(diào)用本機(jī)絕大多數(shù)資源,比如讀取本機(jī)號(hào)碼、通信錄、短信、攝像頭等可以調(diào)用本機(jī)絕大多數(shù)資源,比如讀取本機(jī)號(hào)碼、通信錄、短信、攝像頭等手機(jī)網(wǎng)頁與手機(jī)APP比較手機(jī)客戶端應(yīng)用(Application,APP)已經(jīng)成為當(dāng)前最常用的手機(jī)應(yīng)用之一,它采用C/S模式,開發(fā)和運(yùn)行要依托智能手機(jī)本身的各種軟硬件資源,開發(fā)環(huán)境和工具與手機(jī)網(wǎng)站截然不同。第三章手機(jī)APP開發(fā)3.1.1
AndroidStudioAndroidStudio是Google于2013I/O大會(huì)針對(duì)Android開發(fā)推出的新的開發(fā)工具,很多開源項(xiàng)目都已經(jīng)在采用。目前Android已停止支持Eclipse等其他集成開發(fā)環(huán)境,官方推薦AndroidStudio作為Android的集成開發(fā)環(huán)境。AndroidStudio提供了更多可提高Android應(yīng)用構(gòu)建效率的功能。3.1.2
AndroidSDKAndroidSDK是由可采用AndroidSDK管理器單獨(dú)下載的模塊化程序包組成的,例如,當(dāng)SDK工具升級(jí)或Android平臺(tái)發(fā)布新版本時(shí),可以使用SDK管理器快速將它們下載到開發(fā)環(huán)境。AndroidSDK提供多種不同的軟件包。3.1Android開發(fā)和測(cè)試環(huán)境搭建第三章手機(jī)APP開發(fā)3.1.3
Windows系統(tǒng)下AndroidStudio的安裝獲取AndroidStudio和AndroidSDK:AndroidSDK:訪問獲取最新的解壓版的AndroidSDK,解壓即可使用。安裝AndroidStudio:雙擊下載好的安裝包進(jìn)行安裝,安裝過程采用默認(rèn)安裝。更新AndroidSDK:安裝完成后,啟動(dòng)AndroidStudio。點(diǎn)擊File—Settings—LaunchStandaloneSDKManager,打開SDKManager,出現(xiàn)下圖所示窗口,這里需要對(duì)代理和緩存等進(jìn)行一些設(shè)置。代理設(shè)置窗口第三章手機(jī)APP開發(fā)1、點(diǎn)擊File>New>NewProject,打開新建項(xiàng)目窗口,填寫應(yīng)用名稱、公司域名、Package名稱和項(xiàng)目所在位置等,比如HelloWorld3.1.4
Android項(xiàng)目開發(fā)測(cè)試第三章手機(jī)APP開發(fā)2、點(diǎn)擊Next,進(jìn)入對(duì)目標(biāo)設(shè)備,也就是未來將要運(yùn)行應(yīng)用程序的手機(jī),如下圖??梢钥吹絇honeandTablet一項(xiàng)默認(rèn)已選中,只需要在其子選項(xiàng)MinimumSDK選擇最低支持的AndroidAPI版本即可。第三章手機(jī)APP開發(fā)3、點(diǎn)擊Next,選擇合適的Activity模板。第三章手機(jī)APP開發(fā)4、點(diǎn)擊Next——Finish,完成項(xiàng)目新建,默認(rèn)打開MainActivity.java,這便是編寫代碼的窗口。第三章手機(jī)APP開發(fā)5、點(diǎn)擊導(dǎo)航中的App>res>layout,可以看到activity_main.xml,雙擊打開。這里我們只需要將Palette面板中的控件拖動(dòng)至展示區(qū)域的面板中即可,選中面板中的控件,可以在Properties面板中對(duì)控件屬性進(jìn)行編輯,下圖中為“試一試”按鈕的onClick屬性賦了一個(gè)“on_click”的方法。第三章手機(jī)APP開發(fā)6、接下來,進(jìn)入MainActivity.java,開始編寫一點(diǎn)簡(jiǎn)單的代碼,實(shí)現(xiàn)一個(gè)功能:當(dāng)點(diǎn)擊“試一試”按鈕時(shí),隱藏HelloWorld,再次點(diǎn)擊“試一試”按鈕,讓HelloWorld再顯示出來。7、代碼完成后,點(diǎn)擊運(yùn)行按鈕,選擇運(yùn)行方式,如連接手機(jī)測(cè)試,或通過Android模擬器來對(duì)程序進(jìn)行測(cè)試。這里采用模擬器測(cè)試。第三章手機(jī)APP開發(fā)8、對(duì)已開發(fā)完成的程序,我們需要將其導(dǎo)出為“*.apk”安裝文件以便安裝。點(diǎn)擊菜單欄Build>BuildApk即可打包為安裝包。電腦連接手機(jī)后,用各種手機(jī)助手,將導(dǎo)出的apk安裝文件拷貝到手機(jī)中,即可進(jìn)行安裝。這樣一個(gè)簡(jiǎn)單的演示性開發(fā)過程就完成了!第三章手機(jī)APP開發(fā)
.http.nsd.rtp.sip.wifi.wifi.p2p.wifi.p2p.nsdAPP作為一種C/S模式的應(yīng)用,通信是最基本的功能需求,Android提供了與通信功能有關(guān)的的很多有用的API,使應(yīng)用程序能夠與其它設(shè)備通過移動(dòng)網(wǎng)、WiFi直連、藍(lán)牙、NFC、USB和SIP等來實(shí)現(xiàn)連接和互動(dòng)。包括:3.2
Android平臺(tái)通信資源第三章手機(jī)APP開發(fā)3.2.1互聯(lián)網(wǎng)連接對(duì)手機(jī)終端來說,要上互聯(lián)網(wǎng)有兩種方式,一是通過移動(dòng)通信網(wǎng),二是通過WiFi方式。為了連上網(wǎng)絡(luò),必須在manifest文件中加入以下權(quán)限:<uses-permissionandroid:name="android.permission.INTERNET"/><uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>Android有兩個(gè)HTTP客戶端,分別是HttpURLConnection和ApacheHttpClient,都支持HTTPS、流文件的上傳和下載,可配置timeouts、IPv6和連接池。在應(yīng)用程序聯(lián)網(wǎng)前,需要用getActiveNetworkInfo()和isConnected()檢查網(wǎng)絡(luò)連接是否存在,因?yàn)槭謾C(jī)位置可能會(huì)超出網(wǎng)絡(luò)覆蓋范圍,或者用戶可能手動(dòng)斷掉移動(dòng)網(wǎng)絡(luò)或WiFi網(wǎng)絡(luò)連接。如下面代碼所示:publicvoidmyClickHandler(Viewview){...ConnectivityManagerconnMgr=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfonetworkInfo=connMgr.getActiveNetworkInfo();if(networkInfo!=null&&networkInfo.isConnected()){//提取數(shù)據(jù)
}else{//顯示錯(cuò)誤
}...}1、連接網(wǎng)絡(luò)第三章手機(jī)APP開發(fā)2、HTTP連接和數(shù)據(jù)下載在執(zhí)行網(wǎng)絡(luò)傳輸任務(wù)的線程中,使用HttpURLConnection來執(zhí)行GET操作并下載數(shù)據(jù)。調(diào)用connect()后,再調(diào)用getInputStream()來獲得InputStream。在下面的代碼中,doInBackground()方法調(diào)用downloadUrl()方法來獲得指定的URL并通過HttpURLConnection來連接網(wǎng)絡(luò)。一旦連接建立,應(yīng)用程序就用getInputStream()方法從InputStream中提取數(shù)據(jù)。privateStringdownloadUrl(Stringmyurl)throwsIOException{InputStreamis=null;//指定URL,建立一個(gè)HttpUrlConnection,以InputStream方式從網(wǎng)頁中提取
//數(shù)據(jù)并以字符串方式返回。
intlen=500;//只顯示提取出網(wǎng)頁最前面的500個(gè)單詞。
try{URLurl=newURL(myurl);HttpURLConnectionconn=(HttpURLConnection)url.openConnection();conn.setReadTimeout(10000/*milliseconds*/);conn.setConnectTimeout(15000/*milliseconds*/);conn.setRequestMethod("GET");conn.setDoInput(true);
conn.connect();//開始詢問
intresponse=conn.getResponseCode();Log.d(DEBUG_TAG,"Theresponseis:"+response);is=conn.getInputStream();//把InputStream轉(zhuǎn)換為字符串
StringcontentAsString=readIt(is,len);returncontentAsString;//確認(rèn)應(yīng)用程序完成使用后關(guān)閉InputStream。}finally{if(is!=null){is.close(); } } }getResponseCode()方法返回連接的狀態(tài)碼,這對(duì)于得到關(guān)于連接的更多的信息非常有用。狀態(tài)碼200表示成功。第三章手機(jī)APP開發(fā)InputStreamis=null;...Bitmapbitmap=BitmapFactory.decodeStream(is);ImageViewimageView=(ImageView)findViewById(R.id.image_view);imageView.setImageBitmap(bitmap);一個(gè)InputStream是一個(gè)可讀的字節(jié)源,一旦得到一個(gè)InputStream,一般解碼或轉(zhuǎn)換為目標(biāo)數(shù)據(jù)類型,比如,正在下載的一個(gè)圖像數(shù)據(jù),應(yīng)該以如下方式解碼和顯示:3、把InputStream轉(zhuǎn)換為字符串上面代碼中,InputStream代表網(wǎng)頁的源代碼文本,這是一個(gè)如何把InputStream轉(zhuǎn)換為可以在用戶界面顯示的string的例子。//讀一個(gè)InputStream并轉(zhuǎn)換為字符串.publicStringreadIt(InputStreamstream,intlen)throwsIOException,UnsupportedEncodingException{Readerreader=null;reader=newInputStreamReader(stream,"UTF-8");char[]buffer=newchar[len];reader.read(buffer);returnnewString(buffer);}第三章手機(jī)APP開發(fā)
檢查設(shè)備的網(wǎng)絡(luò)連接管理網(wǎng)絡(luò)的使用實(shí)現(xiàn)一個(gè)PreferencesActivity
響應(yīng)參數(shù)變化檢測(cè)連接的變化3.2.2管理網(wǎng)絡(luò)
第三章手機(jī)APP開發(fā)
設(shè)置應(yīng)用授權(quán)設(shè)置BroadcastReceiver和P2PManager
初始化Peer發(fā)現(xiàn)提取Peer列表連接Peer3.2.3
WiFi直連第四章微信公眾號(hào)開發(fā)第四章微信公眾號(hào)開發(fā)主動(dòng)提供信息群發(fā)功能自動(dòng)回復(fù)功能4.1.2
微信公眾號(hào)商業(yè)模式病毒式傳播有獎(jiǎng)關(guān)注媒體廣告宣傳第三方工具推廣4.1.3
微信公眾號(hào)推廣宣傳入口電商入口服務(wù)入口4.1微信公眾號(hào)功能4.1.1微信公眾號(hào)基本功能
第四章微信公眾號(hào)開發(fā)1、微信公眾號(hào)通信機(jī)制終端(手機(jī)、Pad等)發(fā)起請(qǐng)求至微信服務(wù)器,這個(gè)請(qǐng)求中包含了源微信號(hào)和目的公眾號(hào)。微信服務(wù)器根據(jù)目的公眾號(hào),在后臺(tái)數(shù)據(jù)庫中檢索到對(duì)應(yīng)的公眾號(hào)服務(wù)器的IP地址,再把請(qǐng)求轉(zhuǎn)發(fā)給這個(gè)公眾號(hào)服務(wù)器。公眾號(hào)服務(wù)器是開發(fā)者自己部署的,用于承擔(dān)公眾號(hào)業(yè)務(wù)邏輯,開發(fā)者開發(fā)的代碼就部署在該服務(wù)器上。公眾號(hào)根據(jù)請(qǐng)求內(nèi)容進(jìn)行處理。處理完畢后,把結(jié)果發(fā)給微信服務(wù)器,微信服務(wù)器再轉(zhuǎn)發(fā)到終端。整個(gè)過程所采用的通信協(xié)議為HTTP,數(shù)據(jù)格式為XML,4.2微信公眾號(hào)開發(fā)環(huán)境搭建4.2.1基本原理第四章微信公眾號(hào)開發(fā)2、公眾號(hào)開發(fā)流程首先是注冊(cè)公眾號(hào),注冊(cè)完成后,微信公眾平臺(tái)會(huì)在后臺(tái)為每個(gè)公眾號(hào)建立一臺(tái)信息記錄,支持公眾會(huì)號(hào)所有人認(rèn)證、登錄以及進(jìn)行一些列開發(fā)。接下來是判斷是否需要搭建公眾號(hào)服務(wù)器。一般說來,如果要提供的僅僅是簡(jiǎn)單的多媒體頁面,就不需要搭建公眾號(hào)服務(wù)器,直接使用微信公眾平臺(tái)自己提供的服務(wù)就可以了,開發(fā)者只需要登陸微信公眾平臺(tái),進(jìn)行內(nèi)容制作和發(fā)布就可以了。如還需要實(shí)現(xiàn)一些業(yè)務(wù)邏輯功能,就需要搭建自己公眾號(hào)服務(wù)器,以便承載自己的業(yè)務(wù)程序。然后登陸微信公眾平臺(tái),同時(shí)在公眾號(hào)服務(wù)器進(jìn)行業(yè)務(wù)程序開發(fā)、內(nèi)容制作,結(jié)合微信公眾平臺(tái)上的內(nèi)容制作。開發(fā)和調(diào)測(cè)完成后,就可以進(jìn)行發(fā)布。第四章微信公眾號(hào)開發(fā)登錄/cgi-bin/loginpage?t=wxm2-login&lang=zh_CN,點(diǎn)擊“立即注冊(cè)”,進(jìn)入公眾號(hào)網(wǎng)頁:訂閱號(hào):具有信息發(fā)布與傳播的能力,適合個(gè)人及媒體注冊(cè)服務(wù)號(hào):具有用戶管理與提供業(yè)務(wù)服務(wù)的能力,適合企業(yè)及組織注冊(cè)小程序:具有出色的體驗(yàn),可以被便捷地獲取與傳播,適合有服務(wù)內(nèi)容的企業(yè)和組織注冊(cè)企業(yè)號(hào):具有實(shí)現(xiàn)企業(yè)內(nèi)部溝通與內(nèi)部協(xié)同管理的能力,適合企業(yè)客戶注冊(cè)填寫基本信息→2.郵箱激活→3.選擇類型→4.信息登記4.2.2公眾號(hào)注冊(cè)第四章微信公眾號(hào)開發(fā)部署服務(wù)器硬件要么自己購買服務(wù)器,申請(qǐng)接入互聯(lián)網(wǎng)的寬帶線路,申請(qǐng)IP地址,進(jìn)行域名備案和開通;要么租用云主機(jī),申請(qǐng)IP地址,進(jìn)行域名備案和開通。服務(wù)器軟件安裝Web.py:一個(gè)非常強(qiáng)大、輕量的、靈活且開源的Web框架,其安裝和掌握起來非常簡(jiǎn)單,幾乎不需要什么配置,目前已被很多家大型網(wǎng)站所使用。Web.py內(nèi)置了Web服務(wù)器,但也可以使用Apache服務(wù)器。相比于Web.py內(nèi)置Web服務(wù)器,Apache服務(wù)器更為常用。Python:一種面向?qū)ο蟮慕忉屝陀?jì)算機(jī)程序設(shè)計(jì)語言,是一款純粹的自由軟件,源代碼和解釋器CPython遵循GPL(GNUGeneralPublicLicense)協(xié)議。Python語法簡(jiǎn)潔清晰,特色之一是強(qiáng)制用空白符作為語句縮進(jìn)。Python具有豐富和強(qiáng)大的庫,它常被昵稱為膠水語言,能夠把用其他語言制作的各種模塊(尤其是C/C++)很輕松地聯(lián)結(jié)在一起。操作系統(tǒng)選用CentOS(CommunityEnterpriseOperatingSystem,即社區(qū)企業(yè)操作系統(tǒng))。CentOS是Linux發(fā)行版之一,它由來自于RedHatEnterpriseLinux依照開放源代碼規(guī)定釋出的源代碼所編譯而成。4.2.3公眾號(hào)服務(wù)器搭建第四章微信公眾號(hào)開發(fā)(1)首先安裝Python,用如下命令:yum
install
python(2)從官網(wǎng)下載Web.py的壓縮包:shell#
wget
/static/web.py-0.37.tar.gz(3)解壓后直接執(zhí)行:shell#
tar
xzvf
web.py-0.37.tar.gzshell#
cd
web.py-0.37shell#
python
setup.py
install安裝環(huán)境:Centos6.3、Apache、Python2.7接下來,再按以下步驟操作:(1)安裝/更新需要用到的軟件:
安裝python2.7版本以上
安裝web.py
安裝libxml2,libxslt,lxmlpython第四章微信公眾號(hào)開發(fā)(2)編輯代碼,如果不懂Python語法,請(qǐng)到Python官方文檔查詢說明。vimmain.py#
-*-
coding:
utf-8
-*-#
filename:
main.pyimport
weburls
=
(
'/wx',
'Handle',)class
Handle(object):
def
GET(self):
return
"hello,
this
is
a
test"if
__name__
==
'__main__':
app
=
web.application(urls,
globals())
app.run()(3)如果出現(xiàn)“socket.error:Nosocketcouldbecreated“錯(cuò)誤信息,可能為80端口號(hào)被占用,也可能是沒有權(quán)限,請(qǐng)自行查詢解決辦法。如果遇見其他錯(cuò)誤信息,請(qǐng)到
web.py官方文檔
學(xué)習(xí)webpy框架。(4)執(zhí)行命令:sudopythonmain.py80(5)瀏覽器輸入http://外網(wǎng)IP:80/wx,頁面返回“hello,thisishandleview”,這樣一個(gè)簡(jiǎn)單的Web應(yīng)用環(huán)境便搭建完成。其中,外網(wǎng)IP指給本服務(wù)器所申請(qǐng)的IP地址。第四章微信公眾號(hào)開發(fā)開發(fā)者參數(shù)配置(1)功能群發(fā)功能自動(dòng)回復(fù)自定義菜單投票管理+添加功能插件小程序管理消息管理用戶管理素材管理推廣廣告主流量主統(tǒng)計(jì)用戶分析圖文分析菜單分析消息分析接口分析網(wǎng)頁分析設(shè)置公眾號(hào)設(shè)置微信認(rèn)證安全中心違規(guī)記錄開發(fā)基本配置開發(fā)者工具運(yùn)維中心接口權(quán)限登錄公眾號(hào)后看到的主菜單第四章微信公眾號(hào)開發(fā)(1)找到“開發(fā)”-》“基本配置”菜單欄(2)填寫配置
URL填寫:http://外網(wǎng)IP:80/wx,http的端口號(hào)固定使用80,不可填寫其他。
Token:自主設(shè)置,這個(gè)Token與公眾平臺(tái)wiki中常提的access_token不是一回事。這 個(gè)Token用于驗(yàn)證開發(fā)者服務(wù)器。(3)這時(shí)還不能選擇提交,選擇提交肯定是驗(yàn)證token失敗,因?yàn)檫€需要完成代碼邏輯。改動(dòng)原先main.py文件,新增handle.py開發(fā)者參數(shù)配置(2)a)vimmain.py#
-*-
coding:
utf-8
-*-#
filename:
main.pyimport
webfrom
handle
import
Handleurls
=
(
'/wx',
'Handle',)if
__name__
==
'__main__':
app
=
web.application(urls,
globals())
app.run()第四章微信公眾號(hào)開發(fā)handle.py的邏輯流程圖第四章微信公眾號(hào)開發(fā)#-*-coding:utf-8-*-#filename:handle.pyimporthashlibimportwebclassHandle(object):defGET(self):try:data=web.input()iflen(data)==0:return"hello,thisishandleview"signature=data.signaturetimestamp=data.timestampnonce=data.nonceechostr=data.echostrtoken="xxxx"#請(qǐng)按照公眾平臺(tái)官網(wǎng)\基本配置中信息填寫
list=[token,timestamp,nonce]list.sort()
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 家庭物聯(lián)網(wǎng)信息系統(tǒng)安全運(yùn)維記錄表、設(shè)備安全基線檢查清單示例
- 2025至2030年中國紡織服裝電子商務(wù)行業(yè)發(fā)展監(jiān)測(cè)及投資戰(zhàn)略研究報(bào)告
- 2025至2030年中國婚姻服務(wù)行業(yè)市場(chǎng)調(diào)查研究及投資戰(zhàn)略研究報(bào)告
- 對(duì)我國會(huì)計(jì)電算化與傳統(tǒng)會(huì)計(jì)比較的淺析分析研究 電子商務(wù)管理專業(yè)
- 在校生因公出國(境)研習(xí)申請(qǐng)表
- 2025至2030年中國快遞市場(chǎng)深度調(diào)研分析及投資前景研究預(yù)測(cè)報(bào)告
- MySQL數(shù)據(jù)庫應(yīng)用實(shí)戰(zhàn)教程(慕課版)(第2版)實(shí)訓(xùn)指導(dǎo)-3-2 數(shù)據(jù)庫操作
- 農(nóng)村會(huì)計(jì)委托協(xié)議書范本
- 光伏轉(zhuǎn)讓合同協(xié)議書模板模板
- 自建房打樁合同協(xié)議書模板
- 62個(gè)重大事故隱患判定標(biāo)準(zhǔn)匯編(公開版)
- 江蘇安全員c證考試題庫及答案
- 2025年物流與供應(yīng)鏈行業(yè)物流行業(yè)法律法規(guī)解讀報(bào)告
- 2025年康樂縣人力資源和社會(huì)保障局招聘第三批城鎮(zhèn)公益性崗位人員筆試備考試題含答案詳解(奪分金卷)
- 2025年歷史文化街區(qū)保護(hù)與城市更新文化遺產(chǎn)保護(hù)現(xiàn)狀分析報(bào)告
- 胸膜間皮瘤的護(hù)理查房
- 涼山州越西縣衛(wèi)生健康局聘用村衛(wèi)生室村醫(yī)考試真題2024
- 高管薪資管理辦法
- DZ∕T 0206-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 高嶺土、葉蠟石、耐火粘土(正式版)
- T-NAHIEM 101-2023 急診科建設(shè)與設(shè)備配置標(biāo)準(zhǔn)
- GB/Z 43281-2023即時(shí)檢驗(yàn)(POCT)設(shè)備監(jiān)督員和操作員指南
評(píng)論
0/150
提交評(píng)論