www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀] 隨著Internet技術(shù)的興起,在嵌入式設(shè)備的管理與交互中,基于Web方式的應(yīng)用成為目前的主流。本文主要論述了基于Android系統(tǒng)環(huán)境,在家庭網(wǎng)關(guān)中實(shí)現(xiàn)嵌入式Web服務(wù)器的設(shè)計(jì)方法,介紹了i-jetty嵌入式Web

隨著Internet技術(shù)的興起,在嵌入式設(shè)備的管理與交互中,基于Web方式的應(yīng)用成為目前的主流。本文主要論述了基于Android系統(tǒng)環(huán)境,在家庭網(wǎng)關(guān)中實(shí)現(xiàn)嵌入式Web服務(wù)器的設(shè)計(jì)方法,介紹了i-jetty嵌入式Web服務(wù)器,及其Web應(yīng)用功能的實(shí)現(xiàn)。

只要在嵌入式設(shè)備中集成了Web服務(wù)器,就能實(shí)現(xiàn)用戶與嵌入式設(shè)備低成本、高通用性的信息交流,即客戶端利用HTTP瀏覽器,在任何時(shí)間、任何地點(diǎn)都能實(shí)現(xiàn)與嵌入式設(shè)備的信息交互??梢哉f(shuō),嵌入式Web的應(yīng)用極大地促進(jìn)嵌入式設(shè)備,特別是家電設(shè)備、通信終端、儀器儀表的信息交互和遠(yuǎn)程控制功能。
在三網(wǎng)融合的大背景下,通過(guò)家庭網(wǎng)關(guān)實(shí)現(xiàn)外部網(wǎng)絡(luò)即電視網(wǎng)、電信網(wǎng)、因特網(wǎng)與家庭內(nèi)部電話、電視、電腦以及家庭電器設(shè)備的通訊,是當(dāng)前家居智能化、現(xiàn)代化的重要發(fā)展趨勢(shì)。本文的主要內(nèi)容是研究基于家庭網(wǎng)關(guān)的嵌入式系統(tǒng),實(shí)現(xiàn)簡(jiǎn)單實(shí)用的Web服務(wù)器功能,為外部網(wǎng)絡(luò)提供一個(gè)方便快捷地訪問(wèn)和控制家庭內(nèi)部資源的平臺(tái)。由于Android操作系統(tǒng)能方便地將各種應(yīng)用程序嵌入網(wǎng)絡(luò),以及開(kāi)放性好、支持硬件豐富的特點(diǎn),本文選擇Android操作系統(tǒng)作為家庭網(wǎng)關(guān)設(shè)計(jì)的軟件平臺(tái)來(lái)建立Web服務(wù)器。

1 Android系統(tǒng)介紹
Android移動(dòng)設(shè)備平臺(tái)是基于Linux內(nèi)核再度開(kāi)發(fā)的一個(gè)開(kāi)源的操作系統(tǒng)和軟件平臺(tái),最早期由Google公司進(jìn)行研究和開(kāi)發(fā)的。后來(lái)Goog le為了推廣此技術(shù),它和中國(guó)移動(dòng)、HTC、三星、摩托羅拉等幾十家手機(jī)通信運(yùn)營(yíng)商和制造商,建立了開(kāi)放手機(jī)聯(lián)盟,共同開(kāi)發(fā)Android移動(dòng)設(shè)備平臺(tái)。
Android采用了軟件堆層的架構(gòu),主要分為三部分:其最底層是基于Linux內(nèi)核進(jìn)行再度開(kāi)發(fā)的,Linux內(nèi)核只提供最為基礎(chǔ)的功能;中間層包括由C++開(kāi)發(fā)的虛擬機(jī)Virtual Machine(VM)和函數(shù)庫(kù)Library;最上層是各種應(yīng)用軟件,包括通話程序、短信程序等。應(yīng)用軟件則由各公司自行開(kāi)發(fā),以Java編寫(xiě)。每個(gè)Android應(yīng)用程序都在VM的一個(gè)實(shí)例中運(yùn)行,這個(gè)實(shí)例駐留在一個(gè)由Linux內(nèi)核管理的進(jìn)程中。
本文實(shí)現(xiàn)的Web應(yīng)用雖然基于Android操作系統(tǒng),但并不像通常的Android APP那樣,需要一個(gè)AndroiDMAnifest.xml文件包含必要的配置信息,且需要一個(gè)Activity類來(lái)提供UI。因?yàn)槭荳eb服務(wù)不需要用戶圖形界面,只要用到Android提供的接口而已,即android.jar,這是一個(gè)Java歸檔文件,其中包含構(gòu)建應(yīng)用程序所需的所有的Android SDK類。而且,由于Android VM的原因,不能直接使用.class文件,需要轉(zhuǎn)換為.dex文件,這些內(nèi)容將在下文詳細(xì)介紹。

2 系統(tǒng)設(shè)計(jì)
在嵌入式系統(tǒng)中,主控制芯片的選擇對(duì)于整個(gè)系統(tǒng)性能和良好運(yùn)行有著至關(guān)重要的影響,在選擇主控芯片的過(guò)程中,需綜合考慮芯片自身的性能、兼容性、價(jià)格以及后續(xù)的升級(jí)等因素。綜合考慮以上因素,本文設(shè)計(jì)的家庭網(wǎng)關(guān)采用了Cortex—A8處理器作為硬件平臺(tái)。因?yàn)镃or tex—A8支持大型的操作系統(tǒng),高頻率、高級(jí)存儲(chǔ)管理及豐富的外設(shè)接口,為Android系統(tǒng)的運(yùn)行提供了良好的硬件基礎(chǔ)。
一個(gè)Web服務(wù)器也被稱為HTTP服務(wù)器,它通過(guò)HTTP協(xié)議與客戶端通信。這個(gè)客戶端通常指的是Web瀏覽器。Web服務(wù)器監(jiān)聽(tīng)瀏覽器的服務(wù)請(qǐng)求,根據(jù)用戶請(qǐng)求的類型提供相應(yīng)的服務(wù);Web服務(wù)器在接收到用戶端的請(qǐng)求后,處理用戶請(qǐng)求并返回需要的數(shù)據(jù)。這些數(shù)據(jù)通常以格式固定、含有文本和圖片的頁(yè)面出現(xiàn)在用戶端瀏覽器。本文Web服務(wù)器系統(tǒng)的設(shè)計(jì)架構(gòu)如圖1所示。


目前常用的嵌入式Web服務(wù)器主要有boa、thttpd、mini_httpd、shttpd和lighttpd等,但它們都不能直接應(yīng)用于Android系統(tǒng)上。本文選用代碼精煉、擴(kuò)展性強(qiáng)的開(kāi)源i-jettyWeb服務(wù)器,它可直接運(yùn)行在Android系統(tǒng)上,為Servlet提供運(yùn)行環(huán)境鈍能。
Servlet是一種獨(dú)立于平臺(tái)和協(xié)議的Web服務(wù)器端的Java應(yīng)用程序,可以生成動(dòng)態(tài)的Web頁(yè)面。與傳統(tǒng)的從命令行啟動(dòng)的Java應(yīng)用程序不同,Servlet由Web服務(wù)器進(jìn)行加載。
一個(gè)Web服務(wù)器系統(tǒng)是離不開(kāi)數(shù)據(jù)庫(kù)的支持。SQLite是一款輕型的數(shù)據(jù)庫(kù),是遵守ACID的關(guān)聯(lián)式數(shù)據(jù)庫(kù)管理系統(tǒng),它是針對(duì)嵌入式產(chǎn)品而設(shè)計(jì)的,它占用資源非常的低,在嵌入式設(shè)備中,可能只需要幾百K的內(nèi)存就夠了。Android平臺(tái)集成了SQLite數(shù)據(jù)庫(kù),并提供了操作的API。所以,只要在Servlet中引入開(kāi)發(fā)Android程序提供的API,就能實(shí)現(xiàn)用Servlet操作SQLite。
本文下面主要介紹i—ierry web嵌入式服務(wù)器的搭建,以及如何實(shí)現(xiàn)Servlet對(duì)SQIrite數(shù)據(jù)庫(kù)的操作。
2.1 i-jetty Web服務(wù)器及其安裝
i—jetty是一個(gè)將開(kāi)源Web容器Jetty移植到GoogleAndroid手機(jī)平臺(tái)的開(kāi)源項(xiàng)目,可以使嵌入式設(shè)備上運(yùn)行Web應(yīng)用。Jetty是一個(gè)100%由Java實(shí)現(xiàn)的、開(kāi)源的HTYP服務(wù)器和javax.servlet容器,它不僅僅作為一個(gè)獨(dú)立服務(wù)軟件(如Tomcat)被使用,而且其優(yōu)良的組件(Compone t)設(shè)計(jì)、高內(nèi)聚低耦合、高擴(kuò)展性等特性使得Jetty非常易于作為嵌入式工具使用??傊琂etty具有的優(yōu)點(diǎn)包括:
1)配置使用簡(jiǎn)單;
2)設(shè)計(jì)模塊化,代碼簡(jiǎn)練易懂;
3)Tomcat的應(yīng)用移植到Jetty基本不用修改;
4)非常適合嵌入式產(chǎn)品,可擴(kuò)展性好;
i—jetty是使用Java語(yǔ)言編寫(xiě)的,它的API以一組JAR包的形式發(fā)布。開(kāi)發(fā)人員可以j將Jetty容器實(shí)例化成一個(gè)對(duì)象,可以迅速為一些獨(dú)立運(yùn)行(stand—alone)的Java應(yīng)用提供網(wǎng)絡(luò)和web連接。使用簡(jiǎn)單、配置簡(jiǎn)單,體積很小,但它的功能齊全,并且還是一個(gè)Servlet容器,這就讓動(dòng)態(tài)網(wǎng)頁(yè)實(shí)現(xiàn)和后臺(tái)操作(例如數(shù)據(jù)庫(kù)操作)成為可能。同時(shí),i—jetty可以使用Android的接口,這就降低了開(kāi)發(fā)的難度和復(fù)雜度。i—jetty與其他主流的服務(wù)器一樣,只要將已經(jīng)做好的Web項(xiàng)目發(fā)布到服務(wù)器的Webapps目錄下,就能實(shí)現(xiàn)網(wǎng)站的正常運(yùn)行,十分的方便。
下面介紹i—jetty服務(wù)器的安裝:
首先,在eclipse里創(chuàng)建i—jetty的android項(xiàng)目,將下載的i—jetty源碼覆蓋進(jìn)去。然后,將下面目錄下的jar引入到i—jetty項(xiàng)目中:C:\Documents and Settings\org\eclipse\jetty,還需要servlet-api-2.5.jar。最后,編譯i-jetty,并將其安裝到設(shè)備中。此后,即可對(duì)服務(wù)器進(jìn)行各種配置。若想要使用自己的Web應(yīng)用,則可以將自己的Web工程打包成war包,并將war包直接放到/sdeard/jetty /webapps/目錄下。

2.2 Servlet和SQLite的設(shè)計(jì)與使用
Servlet是位于服務(wù)器端的Java應(yīng)用程序,它由Web服務(wù)器進(jìn)行加載。Servlet的主要功能在于交互式地瀏覽和修改數(shù)據(jù),生成動(dòng)態(tài)Web內(nèi)容。Servlet可以用來(lái)擴(kuò)充Java—enabLEDServer的基本功能,目前最常使用的是增加Web服務(wù)器的互動(dòng)性。但它可以被用來(lái)擴(kuò)充任何種類的服務(wù)器,如FTP服務(wù)器。
最早用來(lái)產(chǎn)生動(dòng)態(tài)網(wǎng)頁(yè)服務(wù)的方法是CGI(Common Gateway Interface)。它的做法是透過(guò)Web服務(wù)器將客戶端的請(qǐng)求送給一個(gè)進(jìn)程,這個(gè)進(jìn)程再將請(qǐng)求的執(zhí)行結(jié)果傳回客戶端,只要是一個(gè)新的請(qǐng)求,不管它是否和先前的請(qǐng)求相同,CGI都產(chǎn)生一個(gè)新的進(jìn)程來(lái)處理,這樣非常耗費(fèi)系統(tǒng)資源。在Servlet中每一個(gè)請(qǐng)求都是由同一個(gè)進(jìn)程下的線程所服務(wù),而且相同的請(qǐng)求會(huì)由同一個(gè)線程所執(zhí)行。同時(shí)Servlet使用Java語(yǔ)言來(lái)開(kāi)發(fā)的,具有跨平臺(tái)特性,而這個(gè)優(yōu)點(diǎn)更是CGI所沒(méi)有的。因此,Servlet提供了強(qiáng)有力且具有效率的技術(shù)來(lái)取代CGI。
要在一個(gè)i—jetty的web工程中支持servlet,大致的步驟如下:
1)在ecplise中新建Android項(xiàng)目,并添加servlet的支持文件;
2)在項(xiàng)目中新建servlet并配置web.xml,編寫(xiě)servlet;
3)編譯完成后會(huì)自動(dòng)生成.class文件,需要將.class文件轉(zhuǎn)換成Android能執(zhí)行的.dex文件;
4)將.dex文件和web.xml等文件按一定順序保存在一個(gè)web工程目錄下,然后打包成一個(gè)war包。
SQLite是一款輕型的數(shù)據(jù)庫(kù),能夠跟很多程序語(yǔ)言相結(jié)合,比如Tcl、C#、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開(kāi)源世界著名的數(shù)據(jù)庫(kù)管理系統(tǒng)來(lái)講,它的處理速度比它們都快。不像常見(jiàn)的客戶端/服務(wù)器結(jié)構(gòu)范例,SQLite引擎不是個(gè)程序與之通信的獨(dú)立進(jìn)程,而是連接到程序中成為它的一個(gè)主要部分。所以主要的通信協(xié)議是在編程語(yǔ)言內(nèi)的直接API調(diào)用。這在消耗總量、延遲時(shí)間和整體簡(jiǎn)單性上有積極的作用。整個(gè)數(shù)據(jù)庫(kù)(定義、表、索引和數(shù)據(jù)本身)都在宿主主機(jī)上存儲(chǔ)在一個(gè)單一的文件中。Android操作系統(tǒng)采用標(biāo)準(zhǔn)SQLite數(shù)據(jù)庫(kù),提供管理數(shù)據(jù)庫(kù)相關(guān)的API。所以,只要在Servlet中引入開(kāi)發(fā)Android程序提供的API,就能實(shí)現(xiàn)用Servlet操作SQLite。Setv let調(diào)用SQLite數(shù)據(jù)庫(kù)的方法如下:
首先是數(shù)據(jù)庫(kù)的建立,在Android中使用SQLitEDAtabase的靜態(tài)方法openOrCreateDatabase(String path,SQLiteDatabae.Cursor Fact ory factory)打開(kāi)或者創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)。然后創(chuàng)建表,為數(shù)據(jù)庫(kù)添加插入數(shù)據(jù),刪除數(shù)據(jù),修改數(shù)據(jù),查詢數(shù)據(jù)等功能。最后是Servlet的設(shè)計(jì),在eclipse中建立Androidproiect,在Web工程中導(dǎo)入android.jar,再引入需要的操作數(shù)據(jù)庫(kù)的類:

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

Sept. 8, 2025 ---- 根據(jù)TrendForce集邦咨詢最新調(diào)查,2025年第二季NVIDIA(英偉達(dá)) Blackwell平臺(tái)規(guī)?;鲐?,以及北美CSP業(yè)者持續(xù)擴(kuò)大布局General Server(通用型...

關(guān)鍵字: SSD DDR4 服務(wù)器

本屆年會(huì)將在上海(11月13-14日)、北京(11月19-20日)和深圳(11月27-28日)舉行,面向嵌入式設(shè)計(jì)工程師推出25門(mén)技術(shù)課程

關(guān)鍵字: 嵌入式 MCU 模擬

上海2025年9月5日 /美通社/ -- 由紐倫堡會(huì)展(上海)有限公司舉辦的上海國(guó)際嵌入式會(huì)議將于 2025 年 10 月 16-17 日在上海世博展覽館舉辦。 此次會(huì)議將由三個(gè)版塊組成:嵌入式技術(shù)會(huì)議、汽...

關(guān)鍵字: 嵌入式 CE CHINA EMBEDDED

9 月 5 日,一則關(guān)于英偉達(dá)的商業(yè)動(dòng)態(tài)引發(fā)行業(yè)關(guān)注。這家 AI 芯片巨頭斥資 15 億美元,從人工智能小型云服務(wù)提供商 Lambda 手中,租用了搭載自家 GPU 芯片的服務(wù)器。

關(guān)鍵字: 英偉達(dá) GPU 服務(wù)器 AI芯片

從外部看,電子系統(tǒng)仿佛一個(gè)統(tǒng)一的學(xué)科或設(shè)備,各組成部分協(xié)同工作,渾然一體。然而揭開(kāi)表象,其內(nèi)在卻是另一番景象:一個(gè)碎片化、多層次的世界——其中每一層都獨(dú)立且復(fù)雜,衍生出各自特有的工具、專家、工作流程,甚至哲學(xué)體系。

關(guān)鍵字: 嵌入式 電子系統(tǒng) 半導(dǎo)體

8位單片機(jī)在嵌入式設(shè)計(jì)領(lǐng)域已經(jīng)成為半個(gè)多世紀(jì)以來(lái)的主流選擇。盡管嵌入式系統(tǒng)市場(chǎng)日益復(fù)雜,8位單片機(jī)依然不斷發(fā)展,積極應(yīng)對(duì)新的挑戰(zhàn)和系統(tǒng)需求。如今,Microchip推出的8位PIC?和AVR?單片機(jī)系列,配備了先進(jìn)的獨(dú)立...

關(guān)鍵字: 單片機(jī) 嵌入式 CPU

往期發(fā)布了基于小華HC32F334數(shù)字電源控制器的兩路交錯(cuò)無(wú)橋圖騰柱TCM PFC參考設(shè)計(jì),TCM PFC以其全輸入范圍下軟開(kāi)關(guān)的優(yōu)勢(shì)越來(lái)越受到服務(wù)器電源以及通信電源的青睞。同時(shí),兩路交錯(cuò)無(wú)橋圖騰柱CCM PFC因其EM...

關(guān)鍵字: 數(shù)字電源控制器 服務(wù)器 濾波器

深圳2025年8月28日 /美通社/ -- 8月26日,2025 ELEXCON深圳國(guó)際電子展盛大啟幕。本屆大會(huì)以"All for AI"為主題,深圳市德...

關(guān)鍵字: AI 工業(yè)級(jí) SSD 嵌入式

深圳2025年8月26日 /美通社/ -- 8月26日,由博聞創(chuàng)意會(huì)展主辦的 第22屆深圳國(guó)際電子展暨嵌入式展(elexcon2025)在深圳(福田)會(huì)展中心隆重開(kāi)幕。 作為中國(guó)電子與嵌入式技術(shù)領(lǐng)域的專業(yè)大展,本屆展會(huì)...

關(guān)鍵字: 嵌入式 電子 高通 AI

Aug. 21, 2025 ---- 根據(jù)TrendForce集邦咨詢最新液冷產(chǎn)業(yè)研究,隨著NVIDIA GB200 NVL72機(jī)柜式服務(wù)器于2025年放量出貨,云端業(yè)者加速升級(jí)AI數(shù)據(jù)中心架構(gòu),促使液冷技術(shù)從早期試點(diǎn)邁...

關(guān)鍵字: AI 數(shù)據(jù)中心 服務(wù)器
關(guān)閉