程序開(kāi)發(fā)范文

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

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

篇1

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

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

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

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

篇2

乙方:

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

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

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

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

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

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

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

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

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

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

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

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

2.按第一條規(guī)定的期限內(nèi),完成crm程序的開(kāi)發(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)的特殊性,包括但不僅限于黑客、病毒、電信部門(mén)技術(shù)或政策調(diào)整等引起的事件,或由于internet上通路的阻塞造成服務(wù)延遲或中斷,不屬于乙方違約,乙方對(duì)此產(chǎn)生的一切后果,不承擔(dān)責(zé)任;

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

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

5.甲乙雙方應(yīng)嚴(yán)格保守在合作過(guò)程中涉及到的對(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)三次以?xún)?nèi)(含三次)的上門(mén)服務(wù)并承諾×××個(gè)工作日內(nèi)受理,在非工作日內(nèi)依乙方工作安排的具體情況而定。

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

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

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

6.如若乙方通過(guò)甲方的介紹與第三方達(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程序開(kāi)發(fā)競(jìng)賽以手機(jī)計(jì)算個(gè)人日常行動(dòng)所產(chǎn)生的碳使用量,以期能夠達(dá)到在不影響正常的生活下,盡可能以大眾運(yùn)輸工具取代自行開(kāi)車(chē)。 這個(gè)應(yīng)用也可以記錄你旅游后的碳使用總量。 它盡可能的提供用戶(hù)參與Eco2go的社群, 該社群活動(dòng)的重點(diǎn)在于交換節(jié)能減碳的故事與想法,并鼓勵(lì)社群成員承諾節(jié)能減碳的目標(biāo)。

2 作品: CallACab

作者: Konrad Huebner and Henning Boeger

入選分析:

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

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

3 作品: PocketJourney

作者: Anthony Stevens and Rosie Pongracz

入選分析:

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

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

4 作品: ANDROID SCAN

作者: Jeffrey Sharkey

入選分析:

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

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

掃描BAR Code 之后, Android Scan 會(huì)尋找標(biāo)的物的介紹以及賣(mài)方的信息,價(jià)格等,必列出附近的可以買(mǎi)到的地點(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ī)播放之后透過(guò)USB 或藍(lán)芽接口將歌由以及旋律送到各種樂(lè)器的光板,光板會(huì)產(chǎn)生對(duì)應(yīng)的亮點(diǎn),想學(xué)歌或樂(lè)器的人可以用這種方式學(xué)習(xí)音樂(lè)。 由于這種方式很有機(jī)動(dòng)性,車(chē)上,在帳蓬中都可以利用。只需包括一個(gè)吉他調(diào)音器,吉他節(jié)拍器和免持聽(tīng)筒,藍(lán)牙足踏板。該產(chǎn)品將提供一種簡(jiǎn)單,便利和有趣的方法學(xué)習(xí)音樂(lè)。

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

6 作品: COMMANDRO

作者: Alex Pisarev, Andrey Tapekha

入選分析:

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

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

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

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

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

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

Commandro 允許你建立多維的活動(dòng)計(jì)劃并可以互相重復(fù),根據(jù)它的算法,基于GPS的位置信息和用戶(hù)配置的活動(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 的用戶(hù)估計(jì)所經(jīng)過(guò)的路徑的時(shí)間。 它也提供 Instant Message 交換信息,并可以上傳個(gè)人相片生日等信息到服務(wù)器供其他Commandro 用戶(hù)瀏覽。既使不使用它的人機(jī)界面,依然能夠在背景執(zhí)行搜尋等工作。

7 作品: GolfPlay

作者: Inizziativa Networks

篇4

[關(guān)鍵詞] Frameworkbin

[中圖分類(lèi)號(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è)頁(yè),每一個(gè)對(duì)象和HTML元素都是運(yùn)行的組件對(duì)象。在開(kāi)發(fā)語(yǔ)言上,ASP.省略 Framework所支持的,C#.NET等語(yǔ)言作為其開(kāi)發(fā)語(yǔ)言,這些語(yǔ)言生成的網(wǎng)頁(yè)在后臺(tái)被轉(zhuǎn)換成了類(lèi),并編譯成了一個(gè)DLL。由于是編譯執(zhí)行的,所以它比ASP擁有了更高的效率。

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

有許多ASP愛(ài)好者想轉(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)出“開(kāi)始”菜單,單擊“管理您的服務(wù)器”。

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

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

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

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

⑥單擊“完成”。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2.2 安裝MDAC組件

我們?cè)谏弦徊糠纸榻B了安裝IIS的方法,下面我們將介紹在操作系統(tǒng)中安裝數(shù)據(jù)庫(kù)驅(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ǔ)言包。因?yàn)轫?yè)面的調(diào)試報(bào)錯(cuò)信息比較詳細(xì),安裝中文語(yǔ)言包便于查找錯(cuò)誤代碼。

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

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

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

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

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

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

篇5

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

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

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

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

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

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

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

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

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

3 事件處理編碼的兩種常見(jiàn)方式

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

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

3.1 界面類(lèi)同時(shí)作為監(jiān)聽(tīng)器類(lèi)方式

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

public class LoginFrame extends JFrame implements ActionListener{

……

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

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)部類(lèi)方式

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

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

b_login.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {

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

……

}

});

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

b_reset.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {

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

……

}

});

4 小結(jié)

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

參考文獻(xiàn)

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

篇6

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

中圖分類(lèi)號(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è)處理繁瑣等。后來(lái)隨著科技的發(fā)展,出現(xiàn)PC-1500、PC-E500和帶編程和存儲(chǔ)功能的計(jì)算器,這給測(cè)繪工作帶來(lái)了很大的便利。這些袖珍型計(jì)算機(jī)的出現(xiàn)確實(shí)方便了測(cè)繪人員但是這些設(shè)備也有一些無(wú)法回避的問(wèn)題,這些計(jì)算機(jī)的程序雖然都基于BASIC語(yǔ)言,方便了測(cè)繪人員的二次開(kāi)發(fā)但是它們的調(diào)試和代碼的輸入十分的繁瑣,并且交換界面也不太友好,顯示屏幕為單行或者幾行。這些袖珍計(jì)算機(jī)多依賴(lài)進(jìn)口,國(guó)內(nèi)無(wú)法仿制,隨著國(guó)外生產(chǎn)線(xiàn)的停產(chǎn),以及國(guó)內(nèi)可更換零件的減少,這些計(jì)算機(jī)在國(guó)內(nèi)已接近絕跡。后來(lá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è)繪工作者帶來(lái)了福音。

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

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

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

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

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

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

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

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

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

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

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

Basic4ppc的開(kāi)發(fā)界面

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

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

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

控件繪制界面

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

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語(yǔ)言但是和VB的語(yǔ)法還是略有差別值得大家注意

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

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

最終應(yīng)用效果

篇7

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

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

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

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

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

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

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

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

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

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

J2ME是Java語(yǔ)言專(zhuān)門(mén)針對(duì)嵌入式電子產(chǎn)品開(kāi)發(fā)的版本,應(yīng)用在移動(dòng)電話(huà)、PDA、電視機(jī)機(jī)頂盒以及其它資源受限的設(shè)備上,J2ME是目前移動(dòng)設(shè)備上使用最廣泛的開(kāi)發(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)一的開(kāi)發(fā)平臺(tái),但是JVM的安全機(jī)制讓J2ME的應(yīng)用程序不能調(diào)用本地系統(tǒng)資源.而Android向下既包括操作系統(tǒng)內(nèi)核心,向上又擁有通現(xiàn)成的應(yīng)用軟件,加之開(kāi)源、免費(fèi)、可以直接使用Java語(yǔ)言為開(kāi)發(fā)人員提供了極大的便利。

另外需要強(qiáng)調(diào)的是雖然同樣是使用Java語(yǔ)言進(jìn)行開(kāi)發(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ì)類(lèi)似于移動(dòng)電話(huà)這樣的受限環(huán)境是頗有裨益的.針對(duì)基于寄存器虛擬機(jī)和基于堆棧的虛擬機(jī)更深入的比較分析指出,基于寄存器的虛擬機(jī)對(duì)于更大的程序來(lái)說(shuō),在它們編譯時(shí)花費(fèi)的時(shí)間更短.

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

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

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

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

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

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

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

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

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

3.2Google Map中的API

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

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

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

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

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

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

紐約帝國(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)于定位功能的包中比較重要的類(lèi):

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

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

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

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

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

3.3.1 用戶(hù)界面的布局

Android是通過(guò)布局(Layout)來(lái)定義UI(用戶(hù)界面)的。一般視圖(View)可以直接在布局的xml里聲明。但是MapView只能通過(guò)自定義類(lèi)來(lái)聲明來(lái)實(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ù)的話(huà),我們需要一個(gè)APIkey。我們可以通過(guò)如下方式獲取APIkey:

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

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

Keytool Clist Calias androiddebugkey Ckeystore keystore Cstorepass android Ckeypass android

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

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

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

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

3.3.4 程序中的核心代碼

3.3.4.1 創(chuàng)建主程序

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

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 使用定位管理器

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

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

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

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;

}}

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

@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ì)在用戶(hù)的位置發(fā)生500米距離的改變之

進(jìn)行調(diào)用。這里默認(rèn)使用的LocationProvider是“gps” (GSP_PROVIDER) ,不過(guò)你可以根據(jù)你的需要,使用特定的Criteria對(duì)象調(diào)用LocationManger類(lèi)的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)緯度來(lái)進(jìn)行定位。實(shí)際效果圖如圖2。

4 結(jié)論

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

參考文獻(xiàn):

[1] 高博.基于J2ME的移動(dòng)通信技術(shù)的研究與應(yīng)用[D].沈陽(yáng)工業(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開(kāi)發(fā)大全[M].潘穎,王磊譯.北京:清華大學(xué)出版社,2004.

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

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

篇8

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

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

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

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

篇9

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

前言

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

1 背景介紹

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

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

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

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

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

2.2 網(wǎng)頁(yè)框架

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

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

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

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

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

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

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

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

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

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

3 結(jié)束語(yǔ)

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

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

參考文獻(xiàn)

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

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

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

篇10

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

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

在傳統(tǒng)的web應(yīng)用程序中,用戶(hù)和服務(wù)器之間是一個(gè)同步交互的過(guò)程,用戶(hù)在客戶(hù)端向服務(wù)器提出請(qǐng)求,服務(wù)器端收到請(qǐng)求后進(jìn)行處理,然后再將處理結(jié)果以全新的頁(yè)面發(fā)送回客戶(hù)端。用戶(hù)提交請(qǐng)求后,不能進(jìn)行其它操作,服務(wù)器需要一定時(shí)間對(duì)請(qǐng)求進(jìn)行處理,使得用戶(hù)得不到立即反饋。ajax引入了異步請(qǐng)求的技術(shù),在用戶(hù)和服務(wù)器之間增加了一個(gè)中間層,使得用戶(hù)在提交請(qǐng)求后不用等待服務(wù)器的響應(yīng),可以繼續(xù)操作使用應(yīng)用程序,web站點(diǎn)看起來(lái)是即時(shí)響應(yīng)的?,F(xiàn)在ajax技術(shù)已經(jīng)在面向消費(fèi)者的web應(yīng)用開(kāi)發(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)與用戶(hù)之間同步交互。用戶(hù)對(duì)瀏覽器操作向服務(wù)器端發(fā)送一個(gè)http窗體請(qǐng)求,服務(wù)器端接收到請(qǐng)求后,判斷用戶(hù)的請(qǐng)求行為,處理來(lái)自各種數(shù)據(jù)源的數(shù)據(jù)信息,設(shè)置相關(guān)屬性值后加入到服務(wù)器返回給用戶(hù)的信息內(nèi)容中,即一個(gè)html頁(yè)面。這個(gè)過(guò)程不是連貫的用戶(hù)體驗(yàn),用戶(hù)提交請(qǐng)求后,不能進(jìn)行其它操作,服務(wù)器需要一定時(shí)間對(duì)請(qǐng)求進(jìn)行處理,用戶(hù)處于等待狀態(tài),瀏覽器上大部分顯示空白。在服務(wù)器負(fù)載比較小時(shí),這種同步交互方式工作沒(méi)有任何問(wèn)題。但是當(dāng)服務(wù)器負(fù)載較大時(shí),服務(wù)器需要更多的時(shí)間進(jìn)行處理運(yùn)算來(lái)響應(yīng)用戶(hù)的請(qǐng)求,過(guò)長(zhǎng)的等待服務(wù)器響應(yīng)時(shí)間對(duì)于用戶(hù)來(lái)講是不能接受的,有時(shí)用戶(hù)經(jīng)過(guò)長(zhǎng)時(shí)間等待收到的可能是服務(wù)超時(shí)的錯(cuò)誤消息。還有一種情況,當(dāng)用戶(hù)只是想對(duì)頁(yè)面中一小部分的內(nèi)容進(jìn)行修改時(shí),瀏覽器卻仍然需要對(duì)整個(gè)頁(yè)面的數(shù)據(jù)進(jìn)行加載刷新,這樣即浪費(fèi)上網(wǎng)流量,又占用大量時(shí)間,工作方式缺乏人性化。傳統(tǒng)web應(yīng)用請(qǐng)求響應(yīng)過(guò)程如圖1所示。

1.3 ajax的概念

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

1.3 ajax的工作原理

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

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

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

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

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

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

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

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

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

2.1 xmlhttprequest

xmlhttprequest對(duì)象是ajax技術(shù)中最核心的部分。利用這個(gè)對(duì)象,ajax不用刷新頁(yè)面即可與服務(wù)服進(jìn)行數(shù)據(jù)的傳輸和讀寫(xiě)。它只與服務(wù)器進(jìn)行數(shù)據(jù)交換,減輕了服務(wù)器的負(fù)擔(dān),減少了等待響應(yīng)時(shí)間,用戶(hù)與服務(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)訪問(wèn)和更新文檔的內(nèi)容和結(jié)構(gòu)。腳本或程序語(yǔ)言通過(guò)dom與網(wǎng)頁(yè)進(jìn)行交互溝通。

2.3 xml

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

2.4 javascript

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

3 結(jié)束語(yǔ)

ajax技術(shù)實(shí)現(xiàn)用戶(hù)和服務(wù)器的異步交互模式,在兩者之間加了一個(gè)中間層ajax引擎,動(dòng)態(tài)、靈活的對(duì)web頁(yè)面進(jìn)行刷新,最大限度的增加客戶(hù)端的數(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)感覺(jué)像桌面應(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.