程序開發(fā)范文

時(shí)間:2023-04-07 00:29:00

導(dǎo)語:如何才能寫好一篇程序開發(fā),這就需要搜集整理更多的資料和文獻(xiàn),歡迎閱讀由公務(wù)員之家整理的十篇范文,供你借鑒。

篇1

2、微信小程序開發(fā)工具的下載

3、微信小程序開發(fā)工具的打開

4、選擇本地小程序項(xiàng)目

5、創(chuàng)建一個(gè)新的小程序項(xiàng)目,選擇無appid即可快速創(chuàng)建本地小程序項(xiàng)目

篇2

乙方:

甲方據(jù)本合同相關(guān)條款的約定委托乙方進(jìn)行客戶管理軟件(crm)程序(以下簡(jiǎn)稱crm程序)的開發(fā)及維護(hù)。為明確雙方責(zé)任,維護(hù)雙方利益,雙方達(dá)成以下協(xié)議:

第一條crm程序的開發(fā)周期及相關(guān)事宜

甲方在年月日之前,將crm程序開發(fā)的相關(guān)資料交予乙方。

乙方在年月日之前,完成對(duì)crm程序的開發(fā)及維護(hù)。

甲方在年月日之前,完成對(duì)crm程序進(jìn)行驗(yàn)收。

第二條:甲方的權(quán)利和義務(wù)

1.提供專人與乙方聯(lián)絡(luò)。

2.提供所有需要寫進(jìn)crm程序上的資料給乙方,并保證資料的合法性。

3.甲方將在著作權(quán)法的范圍內(nèi)使用本合同標(biāo)的及相關(guān)作品、程序、文件源碼,不得將其復(fù)制、傳播、出售或許可給第三方。

4.甲方如要向第三方出售該程序、文件源碼,必須向乙方告知并征求乙方的同意。

第三條:乙方的權(quán)力和義務(wù)

1.按第一條的規(guī)定,使用甲方所提供的資料,進(jìn)行crm程序的開發(fā)。

2.按第一條規(guī)定的期限內(nèi),完成crm程序的開發(fā),并通知甲方進(jìn)行驗(yàn)收。

3.在驗(yàn)收期內(nèi)按照甲方的要求對(duì)crm程不合格的地方進(jìn)行修改。

4.本合同標(biāo)的及相關(guān)作品、程序、文件源碼的版權(quán)屬乙方所有。

第五條:違約責(zé)任

1.任何一方有證據(jù)表明對(duì)方已經(jīng)、正在或者將要違約,可以終止履行本合同,但應(yīng)及時(shí)通知對(duì)方。若對(duì)方繼續(xù)不履行、履行不當(dāng)或者違反本合同,該方可以解除本合同并要求對(duì)方按本合同簽約金額的十倍賠償對(duì)方損失。

2.鑒于計(jì)算機(jī)能互聯(lián)網(wǎng)的特殊性,包括但不僅限于黑客、病毒、電信部門技術(shù)或政策調(diào)整等引起的事件,或由于internet上通路的阻塞造成服務(wù)延遲或中斷,不屬于乙方違約,乙方對(duì)此產(chǎn)生的一切后果,不承擔(dān)責(zé)任;

3.如果本合同某一條款根據(jù)現(xiàn)行法律被確定為無效或無法實(shí)施時(shí),本合同的其他所有條款將繼續(xù)有效。此種情況下,雙方將以有效的約定替換該約定,且該有效約定盡可能接近原約定和本合同相應(yīng)的精神和宗旨。

4.因不可抗力而無法承當(dāng)責(zé)任一方,應(yīng)在不可抗力發(fā)生的三天內(nèi),及時(shí)通知另一方。且因此造成的損失,不付賠償責(zé)任。(本合同所稱不可抗力是指不能預(yù)見、不可克服并無法避免且對(duì)一方當(dāng)事人造成重大影響的客觀事件,包括但不僅限于自然災(zāi)害如洪水、地震、火災(zāi)和風(fēng)暴等以及社會(huì)事件如戰(zhàn)爭(zhēng)、動(dòng)亂、政府行為等。)

5.甲乙雙方應(yīng)嚴(yán)格保守在合作過程中涉及到的對(duì)方的商業(yè)和技術(shù)機(jī)密,否則因此造成的損失須承擔(dān)本合同簽約金額的十倍賠償金。

第六條:甲乙雙方的其他權(quán)力和義務(wù)

1.crm程序免費(fèi)服務(wù)時(shí)間以乙方為甲方安裝調(diào)試成功之日算起15天之內(nèi),在此期間甲方有權(quán)要求乙方對(duì)crm程序細(xì)部功能進(jìn)行調(diào)試。若需更新crm程序的參數(shù)及功能,甲方應(yīng)按雙方協(xié)商約定的費(fèi)用支付給乙方作為軟件升級(jí)費(fèi)用。

2.乙方承諾為甲方提供在莆田市區(qū)內(nèi)三次以內(nèi)(含三次)的上門服務(wù)并承諾×××個(gè)工作日內(nèi)受理,在非工作日內(nèi)依乙方工作安排的具體情況而定。

3.超過約定服務(wù)次數(shù)的上門服務(wù),甲方應(yīng)按雙方協(xié)商約定的確良費(fèi)用向乙方支付服務(wù)費(fèi)用,乙方不得擅自提高服務(wù)價(jià)格。

4.乙方在法定工作時(shí)間內(nèi),以電話、電子郵件、在線洽談等方式免費(fèi)提供技術(shù)支持服務(wù)。

5.自簽約之日起,甲方應(yīng)向乙方一次性支付人民幣貳仟伍佰圓(×××元)作為乙方開發(fā)crm程序的報(bào)酬。

6.如若乙方通過甲方的介紹與第三方達(dá)成合作并收取全部費(fèi)用時(shí),乙方須向甲方支付成交額的×××作為甲方的報(bào)酬,但簽約金額不得低于叁仟圓人民幣(300×××元)。

7.本合同一式兩份,雙方當(dāng)事人各執(zhí)一份,具有同等法律效力。

8.本合同未盡事宜,依照中華人民共和國(guó)相關(guān)法律規(guī)定,自簽訂日起生效。

9.因本協(xié)會(huì)產(chǎn)生的任何爭(zhēng)議,雙方應(yīng)協(xié)商解決,若雙方協(xié)商十五天后仍未解決,雙方同意將糾紛提交乙方所屬管轄區(qū)的人民法院訴訟。

第七條:以上條款如有未盡事宜,經(jīng)甲、乙雙方協(xié)商后加以補(bǔ)充(具有同等法律效力):

補(bǔ)充內(nèi)容:

甲方:(蓋章)乙方:(蓋章)

篇3

1 作品: Eco2Go

作者: Taneem Talukdar,Gary Pong, Jeff Kao和Robert Lam

入選分析:

有鑒于全球暖化日益嚴(yán)重,因此解決全球暖化最直接的做法就是“節(jié)能減碳”。5名加拿大的學(xué)生參加Android程序開發(fā)競(jìng)賽以手機(jī)計(jì)算個(gè)人日常行動(dòng)所產(chǎn)生的碳使用量,以期能夠達(dá)到在不影響正常的生活下,盡可能以大眾運(yùn)輸工具取代自行開車。 這個(gè)應(yīng)用也可以記錄你旅游后的碳使用總量。 它盡可能的提供用戶參與Eco2go的社群, 該社群活動(dòng)的重點(diǎn)在于交換節(jié)能減碳的故事與想法,并鼓勵(lì)社群成員承諾節(jié)能減碳的目標(biāo)。

2 作品: CallACab

作者: Konrad Huebner and Henning Boeger

入選分析:

只要按手機(jī)一個(gè)鍵就可以叫出租車,無論你身在何處,甚至于不知道車行的名稱,只要按鍵出租車就自動(dòng)上路。 還可以透過地圖的數(shù)據(jù)顯示最近的出租車的位置。

這個(gè)應(yīng)用對(duì)于不熟悉科技的使用者來說的確符合他們的需求,只要按個(gè)鍵就可以知道出租車的位置,并且立u叫車而沒有繁瑣無用的人機(jī)接口,對(duì)于幅員廣大的國(guó)家相當(dāng)實(shí)用。

3 作品: PocketJourney

作者: Anthony Stevens and Rosie Pongracz

入選分析:

用戶每到一個(gè)新的地點(diǎn),都會(huì)想對(duì)當(dāng)?shù)刈饕粋€(gè)認(rèn)識(shí),諸如建筑、藝術(shù)、運(yùn)動(dòng)、歷史、地理環(huán)境、音樂、科學(xué)等的信息均有助于幫助人們?nèi)チ私?,熟悉新地方的風(fēng)土人情。 不僅如此,這個(gè)程序還可以幫助人們以語音或影像將這些信息呈現(xiàn)出來。 當(dāng)手持Android 手機(jī)到一個(gè)陌生的地點(diǎn),它不僅會(huì)提供當(dāng)?shù)氐闹匾男畔?,如果用戶要順道觀光,它還會(huì)推薦附近著名景點(diǎn)。并用語音介紹其特色。

關(guān)于這個(gè)應(yīng)用其實(shí)未必有用,試想我們到一個(gè)陌生的地點(diǎn)例如美國(guó)的舊金山或大英博物館,可以用購買的方式向當(dāng)?shù)芈糜螁挝毁徺I這類中文旅游電子書下載到手機(jī),一樣的效果,而且實(shí)現(xiàn)的機(jī)率更高。因?yàn)椴灰姷盟械牡胤綗o線的覆蓋率都是100%。

4 作品: ANDROID SCAN

作者: Jeffrey Sharkey

入選分析:

Android Scan 可以用手機(jī)的照相機(jī)去掃描CD 或 書本的bar code,而且能實(shí)時(shí)到因特網(wǎng)尋找相同的CD產(chǎn)品的價(jià)格,并依找到的賣方的名稱、位置、價(jià)格排列、用戶可依最近的位置找到最便宜的價(jià)格。

這是相當(dāng)有創(chuàng)意而且擴(kuò)展性極高的應(yīng)用,一旦GooGle 愿意將所有物品條形碼數(shù)據(jù)價(jià)格、地點(diǎn)等全部上網(wǎng),對(duì)我們的生活購物行為將產(chǎn)生更重大的影響。

掃描BAR Code 之后, Android Scan 會(huì)尋找標(biāo)的物的介紹以及賣方的信息,價(jià)格等,必列出附近的可以買到的地點(diǎn)。

Android SCAN 找到CD 之后可以進(jìn)行比價(jià),如果在當(dāng)?shù)馗浇袃r(jià)格合理的商店,點(diǎn)選后它會(huì)顯示距離以及位置。

這個(gè)應(yīng)用相當(dāng)有趣而且具有更大的發(fā)展性,試想如果Google 將所有的東西的條形碼都提供上網(wǎng),利用Android 手機(jī)作為掃描儀并以此應(yīng)用做為比價(jià)搜尋系統(tǒng)。對(duì)多數(shù)人的生活將起很大的改變。

5 作品: SPLASHPLAY

作者:

入選分析:

歌曲在Android 手機(jī)播放之后透過USB 或藍(lán)芽接口將歌由以及旋律送到各種樂器的光板,光板會(huì)產(chǎn)生對(duì)應(yīng)的亮點(diǎn),想學(xué)歌或樂器的人可以用這種方式學(xué)習(xí)音樂。 由于這種方式很有機(jī)動(dòng)性,車上,在帳蓬中都可以利用。只需包括一個(gè)吉他調(diào)音器,吉他節(jié)拍器和免持聽筒,藍(lán)牙足踏板。該產(chǎn)品將提供一種簡(jiǎn)單,便利和有趣的方法學(xué)習(xí)音樂。

關(guān)于這個(gè)應(yīng)用實(shí)在看不出有何特點(diǎn),直接在Android 手機(jī)播放音樂和仿真光板不就好了,況且學(xué)音樂和唱歌真的只用這種方式學(xué)習(xí),那就沒什么樂趣了。

6 作品: COMMANDRO

作者: Alex Pisarev, Andrey Tapekha

入選分析:

提供多重的方法達(dá)到人和人溝通的目的

以地理位置為中心的社群網(wǎng)絡(luò)和人際互動(dòng)的通訊應(yīng)用軟件將Android 平臺(tái)的功能發(fā)揮漓漓盡致。

實(shí)際人際互動(dòng)通信的革新。

多維的工具可用在娛樂以及通信實(shí)務(wù)。

提供多重的方法達(dá)到人和人溝通的目的。

Commandro 顯示出你的朋友目前在那里正在做什么,它利用GPS定位系統(tǒng)確認(rèn)你和你的朋友已經(jīng)抵達(dá)事先約好的地點(diǎn)。

Commandro 允許你建立多維的活動(dòng)計(jì)劃并可以互相重復(fù),根據(jù)它的算法,基于GPS的位置信息和用戶配置的活動(dòng)半徑。以決定那些活動(dòng)是最相關(guān)的。它也提供設(shè)定特定活動(dòng)和特定個(gè)人的警示(例如個(gè)人進(jìn)入了預(yù)先約定地點(diǎn)的半徑就發(fā)出警示,你可以知道你的朋友已經(jīng)快到了)。

Commandro 讓你邀請(qǐng)你的朋友加入你的活動(dòng),當(dāng)你的朋友確認(rèn)之后,相關(guān)的活動(dòng)就產(chǎn)生并加入計(jì)劃中。并使用Notification 告知你的朋友是否按照你的計(jì)劃。

Commandro 也可以幫助別的Commandro 的用戶估計(jì)所經(jīng)過的路徑的時(shí)間。 它也提供 Instant Message 交換信息,并可以上傳個(gè)人相片生日等信息到服務(wù)器供其他Commandro 用戶瀏覽。既使不使用它的人機(jī)界面,依然能夠在背景執(zhí)行搜尋等工作。

7 作品: GolfPlay

作者: Inizziativa Networks

篇4

[關(guān)鍵詞] Frameworkbin

[中圖分類號(hào)]TN79[文獻(xiàn)標(biāo)識(shí)碼]A[文章編號(hào)]1007-9416(2010)03-0104-01

1 引言

不僅僅只是ASP的一個(gè)簡(jiǎn)單升級(jí),它更為我們提供了一個(gè)全新而強(qiáng)大的服務(wù)器控件結(jié)構(gòu)。從外觀上看,和ASP是相近的,但是本質(zhì)上完全不同。幾乎全是基于組件和模塊化,每一個(gè)頁,每一個(gè)對(duì)象和HTML元素都是運(yùn)行的組件對(duì)象。在開發(fā)語言上,ASP.省略 Framework所支持的,C#.NET等語言作為其開發(fā)語言,這些語言生成的網(wǎng)頁在后臺(tái)被轉(zhuǎn)換成了類,并編譯成了一個(gè)DLL。由于是編譯執(zhí)行的,所以它比ASP擁有了更高的效率。

2 安裝的執(zhí)行環(huán)境

有許多ASP愛好者想轉(zhuǎn)學(xué),要學(xué)習(xí) 即ASP+,就必須先配置的調(diào)試環(huán)境。

2.1 安裝Internet Information Service

操作系統(tǒng)可以是:Windows 2000 Professional,Windows 2000 Server ,Windows 2000 Advanced Server ,Window XP,Windows 2003。

瀏覽器要是5.5以上,最好是IE6.0版本,建議使用IE6SP1。

IE6SP1的下載地址是:

download.省略/download/ie6sp1/finrel/6_sp1/W98NT42 KMeXP/CN/ie6setup.exe

以上我們提出了三種操作系統(tǒng)都可以安裝IIS,下面我們選擇一種進(jìn)行介紹,以Windows 2003中IIS的安裝為例進(jìn)行介紹。

在Windows 2003 Server安裝IIS 6.0服務(wù)器的步驟如下:

(1)方法一:使用“配置您的服務(wù)器向?qū)А卑惭b IIS6.0

①調(diào)出“開始”菜單,單擊“管理您的服務(wù)器”。

②在“管理您的服務(wù)器角色”下,單擊“添加或刪除角色”。

③閱讀“配置您的服務(wù)器向?qū)А敝械念A(yù)備步驟,然后單擊“下一步”。

④在“服務(wù)器角色”下,單擊“應(yīng)用程序服務(wù)器 (IIS,)”,然后單擊“下一步”。

⑤閱讀概要信息,然后單擊“下一步”。

⑥單擊“完成”。

(2)方法二:使用控制面板安裝 IIS、添加組件或刪除組件來安裝。

①調(diào)出“開始”菜單,單擊“控制面板”。

②雙擊“添加或刪除程序”。

③單擊“添加/刪除 Windows 組件”。

④在“組件”列表框中,單擊“應(yīng)用程序服務(wù)器”。

⑤單擊“詳細(xì)信息”,勾選“”和“Internet 信息服務(wù)(IIS)”。

⑥單擊“Internet 信息服務(wù)(IIS)”。

⑦單擊“詳細(xì)信息”以查看IIS可選組件的列表。

⑧選擇要安裝的所有可選組件。

⑨單擊“確定”,直到返回到“Windows組件向?qū)А薄?/p>

⑩單擊“下一步”,然后完成“Windows 組件向?qū)А薄?/p>

啟動(dòng)“Internet 信息服務(wù)(IIS)”,展開“Internet 信息服務(wù)”控制樹,在“默認(rèn)網(wǎng)站”上用鼠標(biāo)右鍵單擊“屬性”。

在“默認(rèn)網(wǎng)站”屬性窗口中切換到“主目錄”選項(xiàng)卡,在“本地路徑”欄瀏覽選擇主目錄的路徑。

單擊“文檔”選項(xiàng)卡,在出現(xiàn)的對(duì)話框中單擊“添加”按鈕,會(huì)出現(xiàn)“添加默認(rèn)文檔”對(duì)話框,在該對(duì)話框輸入index.aspx。

單擊“確定”按鈕,回到“文檔”選項(xiàng)卡,已經(jīng)多了一項(xiàng)index.aspx默認(rèn)文檔,通過單擊向上的箭頭將index.aspx移動(dòng)到第一項(xiàng)。

單擊“確定”按鈕,回到“Internet信息服務(wù)”管理器窗口。

單擊“Web服務(wù)擴(kuò)展”,在右邊顯示的窗口中各擴(kuò)展項(xiàng)選擇允許。

2.2 安裝MDAC組件

我們?cè)谏弦徊糠纸榻B了安裝IIS的方法,下面我們將介紹在操作系統(tǒng)中安裝數(shù)據(jù)庫驅(qū)動(dòng)程序,即安裝MDAC組件,要求至少是Microsoft Data Access Components 2.7。安裝Microsoft Data Access Components2.7的步驟如下所述:

①找到Microsoft Data Access Components2.7的安裝文件夾。

②雙擊Microsoft Data Access Components 2.7的安裝程序,即可啟動(dòng)該安裝程序。

③選擇“是,我接受上面許可協(xié)議中的所有條款”,然后單擊“下一步”即可完成安裝。

2.3 安裝.NET Framework

的運(yùn)行環(huán)境還需要安裝.NET Framework如果操作系統(tǒng)是Windows 2003 則可以不需要安裝.NET Framework,因?yàn)橄到y(tǒng)已經(jīng)集成。以下的安裝方法針對(duì)Windows 2000和Windows XP操作系統(tǒng)。

①下載.NET Framework1.1.exe安裝文件。

從微軟中國(guó)網(wǎng)站可以下載NET Framework1.1.exe安裝文件。

②下載.NET Framework1.1簡(jiǎn)體中文版語言包。因?yàn)轫撁娴恼{(diào)試報(bào)錯(cuò)信息比較詳細(xì),安裝中文語言包便于查找錯(cuò)誤代碼。

③安裝.NET框架。首先確保IIS服務(wù)器能正常運(yùn)行,接著安裝.NET Framework1.1。雙擊NET Framework1.1.exe啟動(dòng)安裝程序,彈出詢問是否安裝的對(duì)話框。

④單擊“是”,進(jìn)入下一步就進(jìn)入安裝狀態(tài),碰到對(duì)話框按“回車”就行了。安裝程序自動(dòng)完成所有的工作。安裝完畢后,IIS不用作任何設(shè)置。然后再安裝簡(jiǎn)體中文語言包。直到完成安裝為止。

3 環(huán)境搭建后的測(cè)試

打開瀏覽器,輸入以下地址:localhost/2.aspx,這個(gè)地址中,2.aspx這個(gè)文件是不存在的,可以是任意名稱。如果.NET Framework1.1和語言包安裝正確,服務(wù)器將報(bào)錯(cuò),提示找不到資源。因?yàn)?.aspx這個(gè)文件是不存在的。

要引起重視的是:必須是后綴名為.aspx才能出現(xiàn)上述信息,對(duì)于ASP頁面,仍然由ASP引擎處理,不會(huì)出現(xiàn)上圖這么詳細(xì)的提示。

4 開發(fā)環(huán)境的補(bǔ)充說明

篇5

關(guān)鍵詞 Java;桌面程序;事件處理

中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1671—7597(2013)041-068-02

使用Java語言進(jìn)行桌面程序開發(fā)包含兩個(gè)關(guān)鍵步驟:一是實(shí)現(xiàn)圖形用戶界面;二是實(shí)現(xiàn)界面與用戶的交互功能。桌面程序如果空有界面,但用戶做什么都沒有反應(yīng),程序不能與用戶互動(dòng),那這個(gè)程序就沒有實(shí)際意義了。為了讓圖形用戶界面能“動(dòng)”起來,能對(duì)用戶的操作比如點(diǎn)擊按鈕、選擇菜單命令等做出響應(yīng),就需要為圖形用戶界面添加事件處理編碼。

2 Java的授權(quán)事件處理模型

Java采用授權(quán)事件模型(Delegation Event Model,也稱為委托事件模型)的事件處理機(jī)制來實(shí)現(xiàn)圖形用戶界面與用戶交互的功能。授權(quán)事件處理模型是指當(dāng)用戶與界面上的組件發(fā)生交互操作觸發(fā)事件時(shí),組件本身并不直接處理事件,而是將事件的處理工作委托給事件監(jiān)聽器對(duì)象,由監(jiān)聽器對(duì)象實(shí)現(xiàn)具體的功能。授權(quán)事件處理模型的示意圖如圖1所示。

采用授權(quán)事件模型進(jìn)行事件處理編碼,實(shí)現(xiàn)界面與用戶的交互功能主要包含三個(gè)要點(diǎn):

1)確定事件源和事件,即確定界面上的什么組件是有必要監(jiān)聽它與用戶的交互動(dòng)作的,該組件與用戶交互產(chǎn)生的哪種事件是需要程序作出響應(yīng)的。

2)根據(jù)事件源和事件編寫事件處理代碼。在授權(quán)事件模型中,事件監(jiān)聽器負(fù)責(zé)監(jiān)聽事件源上的事件,并能在事件產(chǎn)生后調(diào)用特定方法、執(zhí)行功能代碼。Java提供了一些事件監(jiān)聽器接口,能監(jiān)聽不同類型的事件,程序員需要實(shí)現(xiàn)監(jiān)聽器接口來創(chuàng)建用于自己程序的監(jiān)聽器類,重寫接口中的方法,這些方法在事件發(fā)生時(shí)將自動(dòng)被調(diào)用。

3)為事件源注冊(cè)監(jiān)聽器對(duì)象。只有將事件源與監(jiān)聽器對(duì)象這樣綁定之后,事件源上發(fā)生與用戶的交互事件時(shí),才會(huì)觸發(fā)監(jiān)聽器對(duì)象中相應(yīng)方法的執(zhí)行,即調(diào)用具體的功能代碼,亦即程序?qū)τ脩舻慕换?dòng)作作出了響應(yīng)。

3 事件處理編碼的兩種常見方式

由授權(quán)事件處理模型可知,事件處理編碼的主要工作包含兩個(gè):1)創(chuàng)建監(jiān)聽事件的監(jiān)聽器類,重寫其中的功能方法。2)給需要監(jiān)聽的組件(事件源)注冊(cè)監(jiān)聽器類的對(duì)象。接下來,以一個(gè)典型的桌面程序模塊——登錄驗(yàn)證為例,介紹兩種常見的事件處理編碼方式。登錄驗(yàn)證模塊功能如圖2、圖3所示。用戶點(diǎn)擊“登陸”按鈕即進(jìn)行賬號(hào)、密碼驗(yàn)證并反饋驗(yàn)證結(jié)果,用戶點(diǎn)擊“重置”按鈕則清空賬號(hào)和密碼框。

為方便演示,此示例中假定合法賬號(hào)、密碼為admin和1234,實(shí)際應(yīng)用中賬號(hào)、密碼應(yīng)存于數(shù)據(jù)庫。賬號(hào)文本框名為t_name,密碼框名為p_pwd,登陸按鈕名為b_login,重置按鈕名為b_reset,均使用javax.swing包中的組件類型創(chuàng)建。

3.1 界面類同時(shí)作為監(jiān)聽器類方式

實(shí)現(xiàn)界面的類同時(shí)實(shí)現(xiàn)監(jiān)聽器接口成為監(jiān)聽器類,因此,事件源注冊(cè)的監(jiān)聽器對(duì)象即為本類對(duì)象。兩個(gè)按鈕可以注冊(cè)同一個(gè)監(jiān)聽器對(duì)象,在實(shí)現(xiàn)具體功能之前應(yīng)先區(qū)分事件源是“登陸”還是“重置”按鈕,然后再實(shí)現(xiàn)各自對(duì)應(yīng)的功能。核心代碼如下:

public class LoginFrame extends JFrame implements ActionListener{

……

// 兩按鈕注冊(cè)監(jiān)聽器

b_login.addActionListener(this);

b_reset.addActionListener(this);

……

//ActionListner接口必須實(shí)現(xiàn)的方法,此方法在ActionEvent事件發(fā)生時(shí)自動(dòng)被調(diào)用

public void actionPerformed(ActionEvent e) {

// 事件源是“登陸”按鈕

if (e.getSource() == b_login) {

//驗(yàn)證賬號(hào)、密碼合法性并反饋結(jié)果

String pwd = new String(p_pwd.getPassword());

if ("admin".equals(t_name.getText())&&"1234".equals(pwd)) { JOptionPane.showMessageDialog(this, "登陸成功!");

} else {

JOptionPane.

showMessageDialog(this, "賬號(hào)或密碼錯(cuò)誤,登陸失??!");

}

}

// 事件源是“重置”按鈕

if (e.getSource() == b_reset) {

//清空賬號(hào)、密碼框

t_name.setText("");

p_pwd.setText("");

}

}

3.2 匿名內(nèi)部類方式

以匿名內(nèi)部類的方式實(shí)現(xiàn)監(jiān)聽器類,并實(shí)例化一個(gè)匿名對(duì)象直接注冊(cè)給事件源。這種方式是所見即所得的圖形用戶界面開發(fā)工具中較常使用的方式?!暗顷憽卑粹o和“重置”按鈕各自注冊(cè)自己的監(jiān)聽器對(duì)象實(shí)現(xiàn)對(duì)應(yīng)的功能,核心代碼如下:

// "登陸"按鈕注冊(cè)監(jiān)聽器

b_login.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {

//驗(yàn)證賬號(hào)、密碼合法性并反饋結(jié)果

……

}

});

// "重置"按鈕注冊(cè)監(jiān)聽器

b_reset.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {

//清空賬號(hào)、密碼框

……

}

});

4 小結(jié)

事件處理編碼的方式雖然是多樣的,但中心思想是一致的,那就是:創(chuàng)建監(jiān)聽某種類型事件的監(jiān)聽器類,將監(jiān)聽器對(duì)象注冊(cè)給事件源。理解了這個(gè)中心思想,那不同的編碼方式就都容易理解和掌握了。

參考文獻(xiàn)

[1]曹靜,Java桌面程序開發(fā)[M].大連理工大學(xué)出版社,2011.

篇6

關(guān)鍵詞:windows CEbasic4ppc程序開發(fā)

中圖分類號(hào):P2文獻(xiàn)標(biāo)識(shí)碼: A

測(cè)繪工作的性質(zhì)決定了在測(cè)繪工作中需要實(shí)時(shí)記錄和現(xiàn)場(chǎng)計(jì)算,起初這些記錄和計(jì)算的工作都由手工完成。手工記錄和計(jì)算有不少缺點(diǎn),例如工作效率差,數(shù)據(jù)錯(cuò)誤率高,內(nèi)業(yè)處理繁瑣等。后來隨著科技的發(fā)展,出現(xiàn)PC-1500、PC-E500和帶編程和存儲(chǔ)功能的計(jì)算器,這給測(cè)繪工作帶來了很大的便利。這些袖珍型計(jì)算機(jī)的出現(xiàn)確實(shí)方便了測(cè)繪人員但是這些設(shè)備也有一些無法回避的問題,這些計(jì)算機(jī)的程序雖然都基于BASIC語言,方便了測(cè)繪人員的二次開發(fā)但是它們的調(diào)試和代碼的輸入十分的繁瑣,并且交換界面也不太友好,顯示屏幕為單行或者幾行。這些袖珍計(jì)算機(jī)多依賴進(jìn)口,國(guó)內(nèi)無法仿制,隨著國(guó)外生產(chǎn)線的停產(chǎn),以及國(guó)內(nèi)可更換零件的減少,這些計(jì)算機(jī)在國(guó)內(nèi)已接近絕跡。后來出現(xiàn)了casio系列計(jì)算器,它們也可以編程和少量記錄數(shù)據(jù),這一系列計(jì)算器的出現(xiàn)在一定程度上替代了上述的那些袖珍計(jì)算機(jī),在工程測(cè)量中仍發(fā)揮不小作用。但是那些袖珍計(jì)算機(jī)的缺點(diǎn),在它們身上依然可以找到。隨著時(shí)代的發(fā)展測(cè)繪人員迫切需要一種編程更為簡(jiǎn)便,調(diào)試方便,存儲(chǔ)量大,并且交互界面友好的輔助工具的出現(xiàn)。WindowsCE這種嵌入式系統(tǒng)的出現(xiàn)給廣大測(cè)繪工作者帶來了福音。

一、Windows CE的發(fā)展和應(yīng)用

WindowsCE是微軟公司開發(fā)的一種基于移動(dòng)計(jì)算平臺(tái)的開放式可升級(jí)的嵌入式操作平臺(tái)。它具有良好的圖形用戶界面和良好的可擴(kuò)展性。且編程語言和windows桌面平臺(tái)的開放語言(visual Basic、visual C++)十分類似,為程序的移植提供了便利。

WindowsCE系統(tǒng)相當(dāng)于最基礎(chǔ)的框架系統(tǒng),WindowsCE的版本也經(jīng)過了不斷的更新和完善。WindowsCE系統(tǒng)經(jīng)過7個(gè)階段的發(fā)展已經(jīng)日臻完善。從WindowsCE 3.0開始微軟開始把它改成為windows for Pocket PC簡(jiǎn)稱PPC,從此world和excel被裝進(jìn)了口袋,windowsce 5.0以后微軟開放了該系統(tǒng)的源代碼,使得基于WindowsCE開放的系統(tǒng)越來越多。

WindowsCE也滲透到了測(cè)繪領(lǐng)域,很多工具的系統(tǒng)基于WindowsCE開發(fā)或者本身就是windowsCE系統(tǒng)。攜帶windowsCE系統(tǒng)的GPS手?。ㄈA測(cè)、中海達(dá)、南方等)已經(jīng)成為主流配置。另外不少全站儀也舍棄了老、舊、復(fù)雜的黑白顯示換成了基于WindowsCE內(nèi)核的圖形交互界面。這些經(jīng)過移植的系統(tǒng)使得測(cè)繪儀器的操作更加簡(jiǎn)便,使得這些工具和PC處理系統(tǒng)實(shí)現(xiàn)了無縫連接,數(shù)據(jù)傳輸更加順暢。很大程度的提高了測(cè)繪工作的效率。即使一些儀器沒有搭載該系統(tǒng),也可以通過一些搭載了該系統(tǒng)的輔助工具完成計(jì)算和存儲(chǔ)數(shù)據(jù)的工作例如PDA或者智能手機(jī)。這些工具只要加載為WindowsCE系統(tǒng)開發(fā)的測(cè)繪軟件就可以。

二、WindowsCE軟件的開發(fā)

WindowsCE繼承了windows平臺(tái)的易用性和良好的擴(kuò)展性,其開發(fā)工具也很多

微軟提供的開發(fā)工具有Embedded Visual Tools 3.0,其中包括Embedded Visual C++ 3.0和Embedded Visual Basic 3.0;Embedded Visual C++ 4.0和Visual 開發(fā)工具的版本號(hào)是與Windows CE的版本號(hào)對(duì)應(yīng)的。EVC3.0和EVB3.0是用來開發(fā)基于Windows CE 3.0平臺(tái)的應(yīng)用程序的。而EVC4.0是用來開發(fā)Windows 平臺(tái)的程序。Visual 則支持目前主流的windowsCE平臺(tái)(windows CE 6.0、windows mobile6.0、windows6.5等等)。除了官方給的開發(fā)工具外也出現(xiàn)了一些第三方的開發(fā)工具例如basic4ppc等等

在開發(fā)工具選擇方面,由于之前在測(cè)繪行業(yè)中廣泛應(yīng)用的PC-1500、PC-E500和有編程功能的計(jì)算器大多都基于BASIC語言開發(fā),前輩們基于這些設(shè)備開發(fā)的程序經(jīng)過簡(jiǎn)單的移植之后就可以應(yīng)用到新的平臺(tái)例如PDA或者其他搭載windowCE系統(tǒng)的平臺(tái)。所以BASIC語言系列更具優(yōu)勢(shì)。

三、開發(fā)實(shí)例

本文以開發(fā)中小程序見長(zhǎng)的Basic4ppc舉例說明。Basic4ppc具有安裝簡(jiǎn)便,代碼編寫環(huán)境多樣,代碼調(diào)試方便不需虛擬機(jī)支持以及提供更加簡(jiǎn)便快捷的程序封裝等特點(diǎn)。另外

系統(tǒng)本身提供了大量的可視化控件,可以很方便的使用可視化方式直接繪制用戶的圖形界面,直觀動(dòng)態(tài)的調(diào)整位置,直到用戶滿意為止,不必用大量的代碼來描述界面控件的外觀和位置。

Basic4ppc的開發(fā)界面

在工程測(cè)量中很多時(shí)候會(huì)出現(xiàn)臨時(shí)增加放樣點(diǎn)的情況,例如在建筑方格網(wǎng)的放樣中,如果放樣坐標(biāo)系為獨(dú)立施工坐標(biāo)系,建筑物的軸線平行于坐標(biāo)軸方向,那么坐標(biāo)非常容易計(jì)算。但是也會(huì)有例外,出現(xiàn)軸線與坐標(biāo)軸方向不平行的情況,這就給坐標(biāo)計(jì)算帶了困難。本文以解決此問題的程序開發(fā)為實(shí)例來講解一下具體的開發(fā)過程

首先大概的編程思路:是利用坐標(biāo)正反算原理通過輸入方格網(wǎng)中兩個(gè)相鄰已知點(diǎn)坐標(biāo)、待定點(diǎn)到已知坐標(biāo)點(diǎn)軸線的垂直距離、垂足到任意一個(gè)已知點(diǎn)的距離等參數(shù)即可求出待定點(diǎn)坐標(biāo)。

其次根據(jù)自己的個(gè)人習(xí)慣繪制圖形控件包括TextBox、Button以及Label控件

控件繪制界面

再次根據(jù)這些控件的觸發(fā)機(jī)制編寫代碼

Sub App_Start

Form1.Show

TextBox5.Text = ""

TextBox6.Text = ""

TextBox7.Text = ""

TextBox8.Text = ""

End Sub

Sub Button2_Click

AppClose

End Sub

Sub Button1_Click

x1 = TextBox1.Text

x2 = TextBox3.Text

y1 = TextBox2.Text

y2 = TextBox4.Text

F =方位角.FWJ(x1, y1, x2, y2)

TextBox5.Text = F

TextBox6.Text =距離.JL(x1, y1, x2, y2)

If TextBox7.Text = 0 Then

s1 = 0.00000000001

Else: s1 = TextBox7.Text

End If

s2 = TextBox8.Text

a1 = ATan(s2 / s1)

a = F-a1

S = Sqrt(TextBox7.Text * TextBox7.Text + TextBox8.Text * TextBox8.Text)

TextBox10.Text = x1 + S * Cos(a)

TextBox11.Text = y1 + S * Sin(a)

TextBox9.Text = F

End Sub

為了是代碼盡量簡(jiǎn)潔可以向VB一樣創(chuàng)建模塊加以引用

雖然basic4ppc也是基于BASIC語言但是和VB的語法還是略有差別值得大家注意

控件名稱由text.Text變?yōu)門extBox.text,還有該軟件不識(shí)別iif函數(shù)只能通過其他判斷語句來實(shí)現(xiàn)。在模塊編寫時(shí)需要用return來返回過程名的值 ,在調(diào)用時(shí)需要采用模塊名.過程名(參數(shù))的模式。

編寫完成后只要通便生成終端版的可執(zhí)行文件即可完成封裝,再通過windowsce的同步軟件傳輸?shù)浇K端中即可在終端中使用。

最終應(yīng)用效果

篇7

摘要:由Google倡導(dǎo)發(fā)起的開放手機(jī)聯(lián)盟及其推出的Android平臺(tái),一經(jīng)便在業(yè)內(nèi)引起軒然大波。首先介紹了android平臺(tái)中的內(nèi)部結(jié)構(gòu),并通過和現(xiàn)有的智能手機(jī)開發(fā)平臺(tái)進(jìn)行比較研究分析了該平臺(tái)的結(jié)構(gòu)特點(diǎn),以此來說明android平臺(tái)具有強(qiáng)大的開放性和兼容性。然后重點(diǎn)介紹了該平臺(tái)強(qiáng)大的功能之一――Google Map,通過開發(fā)一個(gè)利用地理定位服務(wù)來獲取當(dāng)前設(shè)備地理位置的應(yīng)用實(shí)例,并詳細(xì)地介紹了Google Map中豐富的API功能以及應(yīng)用程序的基本開發(fā)流程,來驗(yàn)證Android SDK提供的強(qiáng)大的技術(shù)支持。

關(guān)鍵詞:Android;智能手機(jī)平臺(tái);應(yīng)用程序;Google Map;Geocode

中圖分類號(hào):TP18文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2009)28-7959-04

Development and Research of Application Based on Google Android

ZHANG Shi-Cheng

(Software College, Tongji University, Shanghai 201804, China)

Abstract: The establishment of OHA(Open Handset Alliance) and the publication of Android platform by Google have caused uproar in communication industry.This paper firstly introduced and analysed characteristics of this platform by compared with others,to explain that this platform has the formidable openness and the compatibility.Then it introduced the applicationinterfaces of Google Map,and the basic development procedure of a application,which used a location service to gain the geographical position of the current equipment,to verify the formidable technical support which the android sdk provides.

Key words: Android; smart phone platform; application; Google Map; Geocode

2007年11月由Google牽頭有30多家移動(dòng)技術(shù)和無線應(yīng)用領(lǐng)域領(lǐng)先企業(yè)組成的開放手機(jī)聯(lián)盟(Open Handset Alliance)了其智能手機(jī)平臺(tái)--Android。Android是一個(gè)開放、自由的移動(dòng)終端平臺(tái),它是由操作系統(tǒng)、中間件、用戶界面、應(yīng)用軟件組成,同時(shí)其開放性保證該平臺(tái)不存在任何阻礙移動(dòng)產(chǎn)業(yè)創(chuàng)新的專有權(quán)障礙。開發(fā)人員在該平臺(tái)開發(fā)的應(yīng)用程序,是使用Java語言編寫的、在Dalvik虛擬機(jī)上運(yùn)行的。Android的底層是以開放性的Linux kernel為其架構(gòu),也可以理解為Google推出的手機(jī)操作系統(tǒng)和相關(guān)軟件的總稱。

1 Android平臺(tái)的架構(gòu)

Android平臺(tái)整體自底向上由以下四個(gè)層次組成:Linux內(nèi)核層、Android運(yùn)行時(shí)庫和其他庫層、應(yīng)用框架層、應(yīng)用程序?qū)印?/p>

1) Linux內(nèi)核層:Android基于Linux version2.6.23內(nèi)核開發(fā)的,主要是添加了一個(gè)名為Goldfish的虛擬CPU以及Android運(yùn)行所需的特定驅(qū)動(dòng)代碼。該層用來提供系統(tǒng)的底層服務(wù),包括安全機(jī)制、內(nèi)存管理、進(jìn)程管理、網(wǎng)絡(luò)堆棧及一系列的驅(qū)動(dòng)模塊。作為一虛擬的中間層,該層位于硬件與其它的軟件層之間。需要注意的是,這個(gè)內(nèi)核操作系統(tǒng)并非類GNU/Linux的,所以其系統(tǒng)庫、系統(tǒng)初始化和編程接口都和標(biāo)準(zhǔn)Linux系統(tǒng)有所不同的。它沒有采用虛擬內(nèi)存文件系統(tǒng)。而是采用YAFFS2文件系統(tǒng)。YAFFS(Yet Another Flash File System)文件系統(tǒng)是一個(gè)開源的,專門為NAND Flash設(shè)計(jì)的文件系統(tǒng),具有很好的可移植性,也是一種日志型文件系統(tǒng),能夠在Linux,uCLinux.和Windows CE上運(yùn)行。YAFFS目前有YAFFS和YAFFS2兩個(gè)版本,一般來說,YAFFS對(duì)小頁面(528字節(jié)/頁)有很好的支持,而更大的頁面(2K+64字節(jié)/頁)就需要支持超大容量的NAND Flash。所以采用支持大頁面的YAFFS2文件系統(tǒng)。

2) Android運(yùn)行時(shí)庫和其他庫層:Android 運(yùn)行時(shí)庫包含一組核心庫(提供了Java語言核心庫內(nèi)的大部分功能)和Dalvik虛擬機(jī)。同時(shí)Android提供了豐富的庫類支持且大部分為開源代碼,如采用的數(shù)據(jù)庫為SQLite。Android選擇它作為移動(dòng)終端的嵌入式數(shù)據(jù)庫有以下優(yōu)點(diǎn),它無需安裝和管理配置,它是一個(gè)存儲(chǔ)在單一磁盤文件中的完整的數(shù)據(jù)庫,體積小只有250KB但支持?jǐn)?shù)據(jù)庫大小至2TB,提供了對(duì)事務(wù)功能和并發(fā)處理的支持,而且比目前流行的大多數(shù)數(shù)據(jù)庫運(yùn)行速度快。

3) 應(yīng)用框架層:在應(yīng)用框架Android開發(fā)人員可以跟那些核心應(yīng)用一樣擁有訪問框架APIs的全部權(quán)限。應(yīng)用的系結(jié)構(gòu)化設(shè)計(jì)簡(jiǎn)化了各組件之間的重用,任何應(yīng)用都可以分發(fā)自己的足見,任何應(yīng)用也可以使用這些分發(fā)的組件(應(yīng)用的使用方法需遵循框架的安全性約束)。

4) 應(yīng)用程序?qū)?Android本身會(huì)附帶一些核心的應(yīng)用程序,包括e-mail客戶端、短信程序、日歷、地圖、瀏覽器、通訊錄等等,目前所有的應(yīng)用程序都是由Java語言開發(fā)的。

2 Android平臺(tái)與J2ME的區(qū)別

J2ME是Java語言專門針對(duì)嵌入式電子產(chǎn)品開發(fā)的版本,應(yīng)用在移動(dòng)電話、PDA、電視機(jī)機(jī)頂盒以及其它資源受限的設(shè)備上,J2ME是目前移動(dòng)設(shè)備上使用最廣泛的開發(fā)平臺(tái).J2ME平臺(tái)由多種配置、簡(jiǎn)表和可選包組成.

可以發(fā)現(xiàn)J2ME的應(yīng)用是建立在JVM(或KVM)之上,而主機(jī)操作系統(tǒng)是位于J2ME平臺(tái)之外.這樣的設(shè)計(jì)一方面提供了跨操作系統(tǒng)的特性,主機(jī)操作系統(tǒng)可以是Symbian、Windows Mobile和Linux,另一方面J2ME雖然提供了統(tǒng)一的開發(fā)平臺(tái),但是JVM的安全機(jī)制讓J2ME的應(yīng)用程序不能調(diào)用本地系統(tǒng)資源.而Android向下既包括操作系統(tǒng)內(nèi)核心,向上又擁有通現(xiàn)成的應(yīng)用軟件,加之開源、免費(fèi)、可以直接使用Java語言為開發(fā)人員提供了極大的便利。

另外需要強(qiáng)調(diào)的是雖然同樣是使用Java語言進(jìn)行開發(fā),但是Android使用的Dalvik虛擬機(jī)和J2ME使用的標(biāo)準(zhǔn)的Java虛擬機(jī)(JVM)存在以下區(qū)別:

1) Dalvik是基于寄存器,而JVM是基于堆棧的.Android選擇采用寄存器的方式是因?yàn)樗鼘?duì)提前優(yōu)化(ahead-of-time optimization)提供了更好的支持,而這對(duì)類似于移動(dòng)電話這樣的受限環(huán)境是頗有裨益的.針對(duì)基于寄存器虛擬機(jī)和基于堆棧的虛擬機(jī)更深入的比較分析指出,基于寄存器的虛擬機(jī)對(duì)于更大的程序來說,在它們編譯時(shí)花費(fèi)的時(shí)間更短.

2) 運(yùn)行環(huán)境的區(qū)別.Dalvik經(jīng)過優(yōu)化,允許在有限的內(nèi)存中同時(shí)運(yùn)行多個(gè)虛擬機(jī)的實(shí)例.

3 Android平臺(tái)應(yīng)用程序開發(fā)例程

開發(fā)實(shí)例是一個(gè)Android平臺(tái)上地理定位應(yīng)用程序,該應(yīng)用是利用Android平臺(tái)上的Google Map中的API來獲取當(dāng)前設(shè)備的地理位置,可以定時(shí)地請(qǐng)求更新設(shè)備當(dāng)前的地理位置信息。

Android提供的地圖(Map)功能可能是廣大開發(fā)者非常關(guān)心的一部分。到目前為止,開發(fā)內(nèi)嵌式地圖應(yīng)用的軟件相當(dāng)?shù)睦щy,而且往往還需要支付很高的地圖廠商的版權(quán)費(fèi)用,加之手機(jī)上GPS功能還不完善,導(dǎo)致很多可以基于當(dāng)前位置來開發(fā)功能的軟件少之又少,就算是幾個(gè)比較著名的LBS(Location-Based Service)軟件,使用者也是寥寥無幾。Android的出現(xiàn)打破這一格局,提供給普通開發(fā)者非常靈活的地圖展示與控制功能。

3.1 相關(guān)地理知識(shí)的簡(jiǎn)介

在詳細(xì)進(jìn)入coding之前,我們先介紹下經(jīng)緯度知識(shí)。

經(jīng)度是地球上一個(gè)地點(diǎn)離一根被稱為本初子午線的南北方向走線以東或者以西的度數(shù),本初子午線的經(jīng)度是0度,地球上其它地點(diǎn)的經(jīng)度是向東到180度或者向西到180度。

緯度是指某點(diǎn)與地球球心的連線赤道面所成的線面角,其數(shù)值在0至90度之間,位于遲到以北的點(diǎn)的緯度叫北緯,記為N,位于赤道以南的點(diǎn)的緯度稱南緯,記為S。

所謂地圖投影,就是在平面上建立與地球曲面上相對(duì)應(yīng)的經(jīng)緯網(wǎng)的方法。地圖投影的擬定和計(jì)算,一般均假定地球表面為旋轉(zhuǎn)橢球面或參考橢球面。

3.2Google Map中的API

使用geocode,地球上任何一個(gè)地點(diǎn)都可以用精度+緯度來代表。在Android中,com.google.android.maps.GeoPoint這個(gè)類代表了一個(gè)地點(diǎn)的經(jīng)緯度;GeoPoint(int latitudeE6,int longitudeE6),E6是緯度(microdegrees).就是度數(shù)再乘以1000000。目前如果要指定地圖地點(diǎn),一定要傳遞一個(gè)Point的類到地圖中。

Android中定義了一個(gè)名為com.google.android.maps的包,其中包含了一系列用語Google Map上顯示,控制和層疊信息的功能類,以下是該包中最重要的幾個(gè)類:

MapActivity:這個(gè)類是用語顯示Google Map的Activity類,它需要連接底層網(wǎng)絡(luò)。

MapView: MapView是用于顯示地圖的View組件。它可以獲取鍵盤事件(onKeyDown和onKeyUp)來支持地圖移動(dòng)和縮放功能。它還支持多層Overlay,可以在地圖上面畫坐標(biāo),寫地名,畫圖片等等,MapView 必須和MapActivity配合使用。另外,MapView還提供了衛(wèi)星圖、交通圖和路況圖3種模式功能。

MapCotroller:它是用語控制地圖的移動(dòng)。Overlay:這是一個(gè)可顯示于地圖之上的可繪制的對(duì)象。

GeoPoint:這是一個(gè)包含經(jīng)緯度位置的對(duì)象。使用GeoPoint對(duì)象,地球上的任何一點(diǎn)都可以用精度+維度來代表。這個(gè)類對(duì)象代表了一個(gè)地點(diǎn)的經(jīng)緯度:GeoPoint(int latitudeE6, int longtitudeE6),E6是微度(microdegrees),就是度數(shù)再乘以1000000,目前如果要指定地圖地點(diǎn),一定要傳遞一個(gè)GeoPoint的類到地圖中,例如:

紐約帝國(guó)大廈的經(jīng)度和緯度

GeoPointp=new GeoPoint(40.74836*1000000,-73.984621*1000000);

//獲取當(dāng)前地圖的控制器

MapController mc=mapview.getController();

//地圖中心移動(dòng)到指定的點(diǎn)上

mc.animateTo(p);

//放大到21級(jí)(level),level的范圍1-21

mc.zoomTo(21);

以下是幾個(gè)Android關(guān)于定位功能的包中比較重要的類:

LocationManager:本類提供訪問定位服務(wù)的功能,也提供獲取最佳定位提供者的功能。

LocationProvider:該類是定位提供者的抽象類。定位提供者具備周期性報(bào)告設(shè)備地理位置的功能。

LocationListener:提供定位信息發(fā)生改變時(shí)的回調(diào)功能。必須實(shí)現(xiàn)在定位管理器中注冊(cè)監(jiān)聽器對(duì)象。

Criteria:該類使得應(yīng)用能夠通過在LocationProvider中設(shè)置的屬性來選擇合適的定位提供者。

3.3 項(xiàng)目源程序開發(fā)

3.3.1 用戶界面的布局

Android是通過布局(Layout)來定義UI(用戶界面)的。一般視圖(View)可以直接在布局的xml里聲明。但是MapView只能通過自定義類來聲明來實(shí)現(xiàn):

Android:id=”@+id/myGMap”

Android:layout_width=”fill_parent”

Android:layout_height=”fill_parent”

Android:enabled=”true”

Android:clickable=”true”

Android:apiKey=”API_Key_String” />

3.3.2 申請(qǐng)APIkey

要使用Google Map服務(wù)的話,我們需要一個(gè)APIkey。我們可以通過如下方式獲取APIkey:

1) 找到USER_HOME\Local Settings\Application Data\Android目錄下的debug.keystore文件。

2) 使用keytool工具來生成認(rèn)證信息(MD5),使用如下命令行:

Keytool Clist Calias androiddebugkey Ckeystore keystore Cstorepass android Ckeypass android

3) 打開‘sign up for the android maps API’頁面,輸入之前生成的認(rèn)證信息(MD5)后將獲取到你的APIkey。

4) 替換上面AndroidManifest.xml配置文件中“API?_Key_String”為你剛才獲取的APIkey。

3.3.3 權(quán)限設(shè)置

另外,要使用定位信息的話,必須設(shè)置一些權(quán)限,AndroidManifest.xml中的配置如下:

3.3.4 程序中的核心代碼

3.3.4.1 創(chuàng)建主程序

接著創(chuàng)建一個(gè)MyGPSActivity,并繼承MapActivity的activity類:

class MyGPSActivity extends MapActivity

{ @Override

public void onCreate(Bundle savedInstanceState)

{ //創(chuàng)建并初始化地圖

gMapView = (MapView) findViewById(R.id.myGMap);

GeoPoint p = new GeoPoint((int) (lat * 1000000), (int) (long * 1000000));

gMapView.setSatellite(true);

mc = gMapView.getController();

mc.setCenter(p);

mc.setZoom(14);

}…}

3.3.4.2 使用定位管理器

我們可以通過Context.getSystemService方法并傳入Context.LOCATION_SERVICE參數(shù)獲取定位管理器的實(shí)例:

LocationManager lm=(LocationManager)getSystemService(Context.LOCATION_SERVICE);

之后,我們需要將我們?cè)鹊腗yGPSActivity作一些修改,讓它實(shí)現(xiàn)一個(gè)LocationListener接口,使其能夠監(jiān)聽定位信息的改變:

class MyGPSActivity extends MapActivity implements LocationListener

{…

public void onLocationChanged(Location location) {}

public void onProviderDisabled(String provider) {}

public void onProviderEnabled(String provider) {}

public void onStatusChanged(String provider, int status, Bundle extras) {}

protected boolean isRouteDisplayed()

{return false;

}}

讓我們來添加一些代碼,對(duì)LocationManager進(jìn)行一些初始化工作,并在它的onCreate()方法中注冊(cè)定位監(jiān)聽器。

@Override

public void onCreate(Bundle savedInstanceState)

{…

LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);

lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000L, 500.0f, this);

}

現(xiàn)在的代碼中的onLocationChanged方法就會(huì)在用戶的位置發(fā)生500米距離的改變之

進(jìn)行調(diào)用。這里默認(rèn)使用的LocationProvider是“gps” (GSP_PROVIDER) ,不過你可以根據(jù)你的需要,使用特定的Criteria對(duì)象調(diào)用LocationManger類的getBestProvider方法獲取其他的LocationProvider。以下代碼是onLocationChanged方法的參考實(shí)現(xiàn):

public void onLocationChanged(Location location)

{if (location != null)

{double lat = location.getLatitude();

double lng = location.getLongitude();

p = new GeoPoint((int) lat * 1000000, (int) lng * 1000000);

mc.animateTo(p);

} }

上面的代碼用于獲取當(dāng)前的新位置并更新地圖上的位置顯示。

3.3.4.3 添加縮放控件

我們還可以為應(yīng)用程序添加一些諸如縮放效果,地圖標(biāo)注,文本等功能。

// 將縮放控件添加到地圖上

ZoomControls zoomControls =(ZoomControls) gMapView.getZoomControls();

zoomControls.setLayoutParams(new ViewGroup.LayoutParams(LayoutParams.WRAP_CONTENT,

LayoutParams.WRAP_CONTENT));

gMapView.addView(zoomControls);

gMapView.displayZoomControls(true);

3.3.4.4 添加Map Overlay

下面的代碼是定義一個(gè)overlay:

class MyLocationOverlay extends com.google.android.maps.Overlay

{ @Override

public boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when)

{

super.draw(canvas, mapView, shadow);

Paint paint = new Paint();

// 將經(jīng)緯度轉(zhuǎn)換成實(shí)際屏幕坐標(biāo)

Point myScreenCoords = new Point();

mapView.getProjection().toPixels(p, myScreenCoords);

paint.setStrokeWidth(1);

paint.setARGB(255, 255, 255, 255);

paint.setStyle(Paint.Style.STROKE);

Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.marker);

canvas.drawBitmap(bmp, myScreenCoords.x, myScreenCoords.y, paint);

canvas.drawText(”Here I am…”, myScreenCoords.x, myScreenCoords.y, paint);

return true;

}}

上面的這個(gè)overlay會(huì)在地圖上顯示一個(gè)“I am here”的文本。

讓我們把這個(gè)overlay添加到地圖上去:

MyLocationOverlay myLocationOverlay = new MyLocationOverlay();

List list = gMapView.getOverlays();

list.add(myLocationOverlay);

3.4 代碼的運(yùn)行

運(yùn)行模擬器,在Eclipse的DMMS視圖的“Emulator Control”窗口中我們可以輸入經(jīng)度和緯度值發(fā)送到模擬器上,之后模擬器的屏幕上就會(huì)根據(jù)這個(gè)經(jīng)緯度來進(jìn)行定位。實(shí)際效果圖如圖2。

4 結(jié)論

Android手機(jī)應(yīng)用程序開發(fā)著眼于它的整個(gè)體系構(gòu)架,是一項(xiàng)復(fù)雜的工程。本文分析了Android體系的層次架構(gòu),并通過一個(gè)應(yīng)用實(shí)例開發(fā)驗(yàn)證了其平臺(tái)的可用性。Android平臺(tái)本身大量使用開源庫類,并且為開發(fā)人員提供了一個(gè)非常便捷的開發(fā)環(huán)境。相信廣大開發(fā)者可以借助Android 提供的強(qiáng)大的源碼開放軟件開發(fā)包(SDK),開發(fā)出豐富多彩、極具個(gè)性的移動(dòng)應(yīng)用。

參考文獻(xiàn):

[1] 高博.基于J2ME的移動(dòng)通信技術(shù)的研究與應(yīng)用[D].沈陽工業(yè)大學(xué)碩士學(xué)位論文,2006.

[2] 李觀華,范輝.J2ME在移動(dòng)通信程序中的應(yīng)用[J].計(jì)算機(jī)應(yīng)用,2003,23(3):124-126.

[3] 廖永剛,余冬梅,張秋余.J2ME架構(gòu)與安全機(jī)制的研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2006,27(4):575-577.

[4] 張超,王阿川,王智.基于J2ME和J2EE的手機(jī)軟件的研究[J].黑龍江科技信息,2007(3):21,201.

[5] Keogh J.J2ME開發(fā)大全[M].潘穎,王磊譯.北京:清華大學(xué)出版社,2004.

[6] 劉向輝.基于Java的移動(dòng)終端中間件的研究與設(shè)計(jì)[D].華東師范大學(xué)碩士學(xué)位論文,2005.

[7] 葉達(dá)峰.Eclipse編程技術(shù)與實(shí)例[M].北京:人民郵電出版社,2006

篇8

1、首先要確定好是做什么類型的小程序商城。比如單商城、多商城

2、其次找一個(gè)可靠的軟件公司開發(fā)

3、最后,小程序系統(tǒng)需要有小程序的功能程序+服務(wù)器組成。就好比電腦的組成是有主機(jī)+顯示屏以及網(wǎng)絡(luò)組成一樣的原理

(來源:文章屋網(wǎng) )

篇9

關(guān)鍵詞:二手車;價(jià)格評(píng)估;網(wǎng)頁程序;開發(fā)

前言

現(xiàn)階段,我國(guó)二手車市場(chǎng)正處于發(fā)展階段,隨著汽車市場(chǎng)發(fā)展,新車保有量增加消費(fèi)者換車需求愈發(fā)明顯,未來二手車交易量與新車銷量之間的距離將會(huì)越來越小,二手車交易市場(chǎng)前景廣闊。二手車價(jià)格評(píng)估作為中間環(huán)節(jié),連接著交易雙方,評(píng)估是否準(zhǔn)確,不僅影成交率、且對(duì)未來二手車市場(chǎng)發(fā)展影響深遠(yuǎn)。基于當(dāng)前很多網(wǎng)頁中二手車價(jià)格評(píng)估不準(zhǔn)確,本文加強(qiáng)對(duì)二手車價(jià)格評(píng)估網(wǎng)頁程序開發(fā)的研究具有非常重要的現(xiàn)實(shí)意義。

1 背景介紹

二手車交易能夠?yàn)樾萝囦N售注入更多活力,在拓展業(yè)務(wù)范圍等方面發(fā)揮著積極作用。目前,我國(guó)二手車交易量較少,尚未形成規(guī)模化,有待進(jìn)一步挖掘。二手車市場(chǎng)發(fā)展表明我國(guó)汽車市場(chǎng)趨于成熟,其中政策帶動(dòng)效果突出,如車輛購置稅過戶、轉(zhuǎn)籍等業(yè)務(wù)的取消等,為二手車市場(chǎng)發(fā)展提供了極大的支持。據(jù)相關(guān)數(shù)據(jù)顯示,國(guó)內(nèi)汽車保有量高達(dá)1億輛,其中很多私人車輛進(jìn)入換購期,二手車資源豐富[1]。但當(dāng)前,現(xiàn)行法律制度對(duì)于二手車市場(chǎng)的規(guī)范力度不夠,導(dǎo)致二手車估價(jià)存在主觀因素,缺乏統(tǒng)一的標(biāo)準(zhǔn),量化難度較大,不利于二手車市場(chǎng)健康發(fā)展。

國(guó)內(nèi)外專家和學(xué)者對(duì)二手車估價(jià)算法達(dá)成一致,基本形成較為完善的理論體系,雖然一些網(wǎng)站設(shè)計(jì)了估價(jià)計(jì)算器,但功能不夠完善,主要集中在品牌、使用時(shí)間等標(biāo)準(zhǔn)上,使得估價(jià)存在片面性。因此本文將以不同的視角對(duì)二手車價(jià)格評(píng)估進(jìn)行網(wǎng)頁設(shè)計(jì)。

2 二手車價(jià)格評(píng)估網(wǎng)頁程序設(shè)計(jì)

2.1 設(shè)計(jì)需求

根據(jù)當(dāng)前二手車市場(chǎng)發(fā)展現(xiàn)狀及現(xiàn)有價(jià)格評(píng)估來看,本文設(shè)計(jì)的評(píng)估網(wǎng)頁應(yīng)滿足多功能、全面性需求。本文將以JavaScript為基礎(chǔ),提出一種建立在此基礎(chǔ)上的二手車估價(jià)網(wǎng)頁,用戶可以通過此,及時(shí)了解和計(jì)算出二手車在當(dāng)前市場(chǎng)上的情況。

2.2 網(wǎng)頁框架

為了實(shí)現(xiàn)二手車準(zhǔn)確估價(jià)目標(biāo),本文設(shè)計(jì)的程序主要有八個(gè)選項(xiàng),同時(shí)為便于使用,還應(yīng)有相關(guān)說明文字。對(duì)于網(wǎng)頁程序的編寫,主要采用JavaScript進(jìn)行編寫。JavaScript是一種程序語言,具有生動(dòng)、活潑特點(diǎn),是網(wǎng)頁設(shè)計(jì)常用方式之一,對(duì)于網(wǎng)頁設(shè)計(jì)人員專業(yè)要求并不高。因此在設(shè)計(jì)中,主要利用該項(xiàng)技術(shù),對(duì)網(wǎng)頁進(jìn)行設(shè)計(jì),增強(qiáng)人機(jī)交互效果。

2.3 網(wǎng)頁設(shè)計(jì)

除網(wǎng)站logo以外,將評(píng)估程序分為左右兩塊,左邊一塊供使用者輸入選項(xiàng)并進(jìn)行計(jì)算,右側(cè)一塊則顯示相應(yīng)文字說明,如剛打開頁面時(shí)顯示歡迎文字、點(diǎn)擊左側(cè)選項(xiàng)時(shí)會(huì)在右側(cè)顯示該選項(xiàng)的說明、以及提交選項(xiàng)時(shí)會(huì)在右側(cè)顯示評(píng)估價(jià)格等。

八個(gè)選項(xiàng)的設(shè)計(jì)思路如下:第一,新車現(xiàn)價(jià),是該款車的價(jià)格,需要手動(dòng)輸入,如果此車已經(jīng)停產(chǎn)則可以根據(jù)相似的車型確定一個(gè)價(jià)格,價(jià)格單位設(shè)置為“萬元”,如果忘記輸入,網(wǎng)頁會(huì)自動(dòng)提醒。第二,使用年限,不同的車輛使用年限有所差別,出租車的使用年限為8年,9座以上非營(yíng)運(yùn)車及營(yíng)運(yùn)客車的使用年限為10年,9座以下非營(yíng)運(yùn)車的使用年限無上限,按15年計(jì)算。第三,已用年限,即車輛當(dāng)前使用時(shí)間,按整年進(jìn)行計(jì)算。第四,技術(shù)狀況,分為四個(gè)等級(jí),其中一級(jí)車技術(shù)狀況最佳,車輛各項(xiàng)技術(shù)指標(biāo)滿足要求,且在大修里程范圍以內(nèi)[2]。二級(jí)車、三級(jí)車次之,四級(jí)車不參與評(píng)估,整體性能基本不符合使用要求。第五,重大事故,是否發(fā)生過重大事故,設(shè)置選項(xiàng)為是和否。第六,維修費(fèi)用,根據(jù)所需維修費(fèi)用占重置成本的比例進(jìn)行劃分。第七,品牌類型,現(xiàn)階段車輛品牌類型呈現(xiàn)多元化特點(diǎn),如合資品牌、國(guó)產(chǎn)品牌及走私罰沒等,每個(gè)品牌在市場(chǎng)的價(jià)格有所不同。第八,使用強(qiáng)度,車輛平均年行駛里程,主要設(shè)置區(qū)間范圍,如4萬公里以內(nèi)、4~8萬公里之間及8萬公里以上。

2.4 軟件設(shè)計(jì)

針對(duì)本文設(shè)計(jì)的價(jià)格評(píng)估網(wǎng)頁程序,核心方法為綜合分析法,根據(jù)提交的選項(xiàng)計(jì)算得出汽車的出售價(jià)格[3]。具體計(jì)算公式如下:

其中R、N、A分別代表的是重置成本、成新率、調(diào)整系數(shù)。調(diào)整系數(shù)根據(jù)程序的各選項(xiàng)計(jì)算而來,成新率則采用加速折舊法中的雙倍余額法進(jìn)行計(jì)算,因?yàn)榈人僬叟f法會(huì)使新車估價(jià)過高,舊車估價(jià)過低。

整個(gè)評(píng)估程序的算法寫在一個(gè)js文件中,而不采用數(shù)據(jù)庫,使得此網(wǎng)頁可以脫離后臺(tái),隨時(shí)隨地使用。

2.5 網(wǎng)站形象設(shè)計(jì)

網(wǎng)站采用汽車金屬冷色為主基調(diào),顏色層次清晰,界面美觀、簡(jiǎn)潔。金屬質(zhì)感與車輛表面相似,能夠給人們一種視覺上的沖擊,同時(shí)汽車的悅動(dòng)之感,使得汽車圖片樣式較為豐富,能夠給使用者良好的視覺體驗(yàn)和感受[4]。而對(duì)于網(wǎng)站中的字體設(shè)計(jì),可以設(shè)置為宋體16號(hào)字,大標(biāo)題設(shè)計(jì)成黑體。汽車二手車網(wǎng)頁以汽車為主題,因此對(duì)于logo的設(shè)計(jì),應(yīng)選擇特殊字體,能夠凸顯出汽車的時(shí)代感。

3 結(jié)束語

網(wǎng)站完成后,開始對(duì)網(wǎng)站進(jìn)行測(cè)試,如每個(gè)選項(xiàng)的下拉菜單是否正常使用,價(jià)格輸入框能否輸入,右側(cè)提示文字能否顯示等,及時(shí)發(fā)現(xiàn)錯(cuò)誤,并采取相應(yīng)措施加以處理。還應(yīng)檢查頁面代碼,刪除繁瑣代碼,給各個(gè)圖片增加具體屬性,便于圖片搜索[5]。完成全部檢查工作后,對(duì)文件夾進(jìn)行簡(jiǎn)化處理,刪除其中不必要的內(nèi)容,提高網(wǎng)頁運(yùn)行效率。完成網(wǎng)頁程序設(shè)計(jì)后,筆者對(duì)其進(jìn)行了測(cè)試,進(jìn)入首頁,一目了然,看到各個(gè)選項(xiàng)的具體設(shè)置,排版自然,且非常便利。進(jìn)行價(jià)格評(píng)估時(shí),按照各個(gè)選項(xiàng)輸入車輛具體情況,如圖1。提交數(shù)據(jù)后,系統(tǒng)內(nèi)部會(huì)對(duì)數(shù)據(jù)進(jìn)行計(jì)算,最后得出相應(yīng)的估價(jià)。

結(jié)論:根據(jù)上文所述,隨著我國(guó)二手車市場(chǎng)快速發(fā)展,二手車價(jià)格評(píng)估重要性愈發(fā)突出,現(xiàn)行網(wǎng)頁程序?qū)τ诙周噧r(jià)格的評(píng)估過于片面,選項(xiàng)較少。本文根據(jù)網(wǎng)頁現(xiàn)狀,堅(jiān)持科學(xué)、合理性原則,采用JavaScript技術(shù)進(jìn)行二手車價(jià)格評(píng)估網(wǎng)頁程序開發(fā),程序共對(duì)八個(gè)選項(xiàng)進(jìn)行計(jì)算,豐富評(píng)估標(biāo)準(zhǔn),使得對(duì)二手車價(jià)格的評(píng)估更加全面、系統(tǒng)。筆者對(duì)于二手車及網(wǎng)頁設(shè)計(jì)知識(shí)的學(xué)習(xí)尚淺,其中存在很多不合理之處,希望能夠在日后學(xué)習(xí)中進(jìn)一步深入學(xué)習(xí),完善二手車價(jià)格評(píng)估網(wǎng)頁程序開發(fā),從而促進(jìn)二手車市場(chǎng)全面發(fā)展。

參考文獻(xiàn)

[1]馬曉春.二手車評(píng)估實(shí)踐教學(xué)網(wǎng)站的制作[J].黑龍江教育(理論與實(shí)踐),2015(05):30-32.

[2]高偉,鄧召文,余洋.二手車重置成本法改進(jìn)及評(píng)估系統(tǒng)設(shè)計(jì)[J].拖拉機(jī)與農(nóng)用運(yùn)輸車,2015(03):32-35+38.

[3]馮波.基于PDA的二手車鑒定評(píng)估系統(tǒng)可行性研究[J].汽車實(shí)用技術(shù),2015(09):154-155+160.

篇10

關(guān)鍵詞 ajax;web應(yīng)用;異步交互

中圖分類號(hào):tp3 文獻(xiàn)標(biāo)識(shí)碼:a 文章編號(hào):1671—7597(2013)051-077-02

在傳統(tǒng)的web應(yīng)用程序中,用戶和服務(wù)器之間是一個(gè)同步交互的過程,用戶在客戶端向服務(wù)器提出請(qǐng)求,服務(wù)器端收到請(qǐng)求后進(jìn)行處理,然后再將處理結(jié)果以全新的頁面發(fā)送回客戶端。用戶提交請(qǐng)求后,不能進(jìn)行其它操作,服務(wù)器需要一定時(shí)間對(duì)請(qǐng)求進(jìn)行處理,使得用戶得不到立即反饋。ajax引入了異步請(qǐng)求的技術(shù),在用戶和服務(wù)器之間增加了一個(gè)中間層,使得用戶在提交請(qǐng)求后不用等待服務(wù)器的響應(yīng),可以繼續(xù)操作使用應(yīng)用程序,web站點(diǎn)看起來是即時(shí)響應(yīng)的?,F(xiàn)在ajax技術(shù)已經(jīng)在面向消費(fèi)者的web應(yīng)用開發(fā)中得到廣泛的應(yīng)用,如amazon的a9搜索引擎、google的gmail和googlemaps。

1 ajax與傳統(tǒng)web應(yīng)用

1.1 傳統(tǒng)的web應(yīng)用

傳統(tǒng)的web應(yīng)用程序大多采用b/s結(jié)構(gòu),系統(tǒng)與用戶之間同步交互。用戶對(duì)瀏覽器操作向服務(wù)器端發(fā)送一個(gè)http窗體請(qǐng)求,服務(wù)器端接收到請(qǐng)求后,判斷用戶的請(qǐng)求行為,處理來自各種數(shù)據(jù)源的數(shù)據(jù)信息,設(shè)置相關(guān)屬性值后加入到服務(wù)器返回給用戶的信息內(nèi)容中,即一個(gè)html頁面。這個(gè)過程不是連貫的用戶體驗(yàn),用戶提交請(qǐng)求后,不能進(jìn)行其它操作,服務(wù)器需要一定時(shí)間對(duì)請(qǐng)求進(jìn)行處理,用戶處于等待狀態(tài),瀏覽器上大部分顯示空白。在服務(wù)器負(fù)載比較小時(shí),這種同步交互方式工作沒有任何問題。但是當(dāng)服務(wù)器負(fù)載較大時(shí),服務(wù)器需要更多的時(shí)間進(jìn)行處理運(yùn)算來響應(yīng)用戶的請(qǐng)求,過長(zhǎng)的等待服務(wù)器響應(yīng)時(shí)間對(duì)于用戶來講是不能接受的,有時(shí)用戶經(jīng)過長(zhǎng)時(shí)間等待收到的可能是服務(wù)超時(shí)的錯(cuò)誤消息。還有一種情況,當(dāng)用戶只是想對(duì)頁面中一小部分的內(nèi)容進(jìn)行修改時(shí),瀏覽器卻仍然需要對(duì)整個(gè)頁面的數(shù)據(jù)進(jìn)行加載刷新,這樣即浪費(fèi)上網(wǎng)流量,又占用大量時(shí)間,工作方式缺乏人性化。傳統(tǒng)web應(yīng)用請(qǐng)求響應(yīng)過程如圖1所示。

1.3 ajax的概念

ajax全稱為“asynchronous javascript and xml”,是一種創(chuàng)建交互式web應(yīng)用的手段,它采用客戶端腳本來實(shí)現(xiàn)與服務(wù)器端進(jìn)行交換數(shù)據(jù)??梢詣?dòng)態(tài)、靈活的更新web頁面。ajax技術(shù)是將java技術(shù)、xml、dom以及javascript等編程技術(shù),按一定的協(xié)作方式合理組合在一起,來充分發(fā)揮各自的作用。這些技術(shù)有javascript、xstl、xhtml、dom、xml、css及xmlhttprequest。ajax技術(shù)的出現(xiàn)和使用使得web應(yīng)用的交互性得到了很大提高。

1.3 ajax的工作原理

ajax的工作原理是在用戶和服務(wù)器兩者之間加了一個(gè)中間層ajax引擎(ajax engine),實(shí)現(xiàn)用戶操作與服務(wù)器響應(yīng)間異步交互模式。在這種模式下,一部分用戶請(qǐng)求如數(shù)據(jù)驗(yàn)證和簡(jiǎn)單的數(shù)據(jù)處理請(qǐng)求去交給ajax引擎完成,確實(shí)需要服務(wù)器端完成的請(qǐng)求,才由ajax引擎向服務(wù)器提交,減少了頁面重載次數(shù),使用戶感覺所有的操作很快得到了響應(yīng),交互性大大增強(qiáng)。ajax應(yīng)用模型如圖2。

ajax引擎接收處理請(qǐng)求的流程為:

1)捕獲web瀏覽器事件,對(duì)應(yīng)不同事件注冊(cè)一個(gè)處理函數(shù)。

2)在客戶端瀏覽器初始化xmlhttprequest請(qǐng)求對(duì)象。

3)與服務(wù)器建立連接,向服務(wù)器發(fā)送請(qǐng)求。

4)接收服務(wù)器響應(yīng)對(duì)處理結(jié)果進(jìn)行分析。

5)使用dom api更新客戶端頁面內(nèi)容。

2 ajax的關(guān)鍵技術(shù)

鑒于ajax涉及到的技術(shù)較多,本文著重對(duì)xmlhttprequest、dom、xml、javascript幾種技術(shù)的使用進(jìn)行說明。

2.1 xmlhttprequest

xmlhttprequest對(duì)象是ajax技術(shù)中最核心的部分。利用這個(gè)對(duì)象,ajax不用刷新頁面即可與服務(wù)服進(jìn)行數(shù)據(jù)的傳輸和讀寫。它只與服務(wù)器進(jìn)行數(shù)據(jù)交換,減輕了服務(wù)器的負(fù)擔(dān),減少了等待響應(yīng)時(shí)間,用戶與服務(wù)器交互更為流暢。

2.2 dom

dom全名為“document object model”,是w3c組織的推薦標(biāo)準(zhǔn)。該模型是java api for xml processing的組件api。該document object m

odel level 2 core api允許程序動(dòng)態(tài)訪問和更新文檔的內(nèi)容和結(jié)構(gòu)。腳本或程序語言通過dom與網(wǎng)頁進(jìn)行交互溝通。

2.3 xml

xml全名為“extensible markup language”,是一種開放的,允許用戶對(duì)自己的標(biāo)記語言進(jìn)行定義的源語言。標(biāo)記是一種信息符號(hào),它能被計(jì)算機(jī)理解,計(jì)算機(jī)相互之間通過這種信息符號(hào)來處理包含各種信息的文章等。xml語言是由相關(guān)人士自由決定的標(biāo)記語言,具有開放性、可擴(kuò)展性、可自描述性的特點(diǎn)。它作為數(shù)據(jù)交換與數(shù)據(jù)傳輸?shù)臉?biāo)準(zhǔn)在web應(yīng)用中被廣泛使用。

2.4 javascript

javascript,是一種廣泛用于客戶端web開發(fā)的腳本語言。它雖然是一種簡(jiǎn)單的腳本語言,但功能卻十分強(qiáng)大,不同于其它服務(wù)器端腳本語言,javascript主要被作為客戶端腳本語言在用戶的瀏覽器上運(yùn)行,不需要將數(shù)據(jù)交付到服務(wù)器上進(jìn)行處理,減少了服務(wù)器的負(fù)擔(dān),大大提高了系統(tǒng)的效率。在web開發(fā)中通過用到j(luò)avascript以下幾種功能:在html頁面中嵌入動(dòng)態(tài)文本,接收客戶端請(qǐng)求并作出響應(yīng),讀寫html元素,實(shí)現(xiàn)表單數(shù)據(jù)前端校驗(yàn)等。

3 結(jié)束語

ajax技術(shù)實(shí)現(xiàn)用戶和服務(wù)器的異步交互模式,在兩者之間加了一個(gè)中間層ajax引擎,動(dòng)態(tài)、靈活的對(duì)web頁面進(jìn)行刷新,最大限度的增加客戶端的數(shù)據(jù)處理能力,減輕了服務(wù)器的負(fù)擔(dān)又加快了響應(yīng)速度,從而減少網(wǎng)絡(luò)流量縮短響應(yīng)時(shí)間。ajax技術(shù)使web應(yīng)用系統(tǒng)具有更高的實(shí)效性、更便捷的交互性和更好的人性化服務(wù),使web應(yīng)用系統(tǒng)感覺像桌面應(yīng)用程序一樣使用,從而提升web應(yīng)用系統(tǒng)的運(yùn)行效率。

參考文獻(xiàn)

[1]蔣維.ajax技術(shù)在網(wǎng)絡(luò)b/s架構(gòu)中的應(yīng)用研究[j].微計(jì)算機(jī)應(yīng)用,2008,29(7):29-33.

[2]scott raymond.ajax on rails(影印版)初版[m].東南大學(xué),2007:81-130.