本發(fā)明涉及創(chuàng)設(shè)新行動應(yīng)用程序領(lǐng)域,特別是涉及一種結(jié)合程序包創(chuàng)設(shè)新行動應(yīng)用程序的方法、行動裝置及系統(tǒng)。
背景技術(shù):
一般來說,軟件工程師開發(fā)一套應(yīng)用程序,鮮少會從零開始?;谙惹邦愃频捻椖炕蚓W(wǎng)絡(luò)上、教科書里揭露的程序代碼及模塊,軟件工程師可以很快地利用現(xiàn)有資源拼湊,進行一定程度的修改,最終完成開發(fā)作業(yè)。類似地,如果編程作業(yè)中遇到需要使用接口的情況,配合的美編人員也會參考合適的前案,設(shè)計出符合應(yīng)用程序運作的接口。某些整合型開發(fā)環(huán)境(integrateddevelopmentenvironment,ide)還會為應(yīng)用程序開發(fā)者,針對不同的應(yīng)用面,提供不同的范本(template);模板中兼具實用的程序代碼及無版權(quán)的接口設(shè)計,這讓應(yīng)用程序開發(fā)作業(yè)更方便。
前述的整合型開發(fā)環(huán)境,除了適合有經(jīng)驗軟件工程師,同樣也適合對某一編程軟件有一定程度了解的學(xué)習(xí)者,兩者的差異只在處理項目的大小以及選定初始模板的差異。然而,在合法的情形下,基于保護著作權(quán)及商業(yè)利益,現(xiàn)有運作的應(yīng)用程序無法藉由整合型開發(fā)環(huán)境還原原始碼。對于某個應(yīng)用程序有改良需求的用戶,不是必須請求原作者協(xié)助,就是自己或另尋他人重新開發(fā)。無論是工程師或是學(xué)習(xí)者,因為前述的現(xiàn)實情況,要開發(fā)一定水平的應(yīng)用程序,必須下的苦功與時間是省不了的。由于編程的過程不算短又苦悶,很多踏入程序開發(fā)從業(yè)人員或?qū)W生,會漸漸地對這種作業(yè)環(huán)境感到厭倦,減少對程序開發(fā)的熱情。目前這種狀況無法得到緩解,反而隨著各種不同硬件的開發(fā)與商業(yè)模式的變化,讓程序開發(fā)流程更為復(fù)雜。
程序開發(fā)具有不小的挑戰(zhàn),然而面對物聯(lián)網(wǎng)的興盛與即將到來的機器人制造時代,世人不但積極面對,更將相關(guān)的編程教育向下延伸;期望小朋友能在小學(xué)階段就能培養(yǎng)對編程的興趣,甚至在學(xué)齡時期就能靈活應(yīng)用程序語言,創(chuàng)造出一些可取的應(yīng)用,以培養(yǎng)對未來挑戰(zhàn)的基本能力。然而,就前面陳述的程序開發(fā)現(xiàn)況,傳統(tǒng)的環(huán)境很快就會抹煞小朋友對編程的興趣。因此,目前坊間的編程教育課程,還是停留在使用圖形接口程序軟件,比如scratch(一款面向少年的簡易編程工具)??上У氖牵@種學(xué)習(xí)媒介是無法培養(yǎng)實用的編程能力,僅能找出有編程興趣與潛力的學(xué)生。對于作為普及教育來說還是不適用。
目前應(yīng)用程序的開發(fā)主要在于行動應(yīng)用程序。隨著智能型手機與平板計算機的普及,行動應(yīng)用程序在這些電子產(chǎn)品上能夠發(fā)揮的空間非常大。從簡單的數(shù)據(jù)傳輸與展現(xiàn),到有趣的游戲產(chǎn)品,進而到復(fù)雜萬端的行動支付系統(tǒng),行動應(yīng)用程序的優(yōu)點表露無遺。最特別的是,隨著物聯(lián)網(wǎng)設(shè)備的大量問世,使用行動裝置藉由行動應(yīng)用程控生活周遭的電子產(chǎn)品已經(jīng)成為了新的生活態(tài)樣。雖然行動應(yīng)用程序的開發(fā)也不容易,但在其產(chǎn)品未來有巨大潛力的條件下,人們還是會找尋各種方式,讓編程更簡化,讓學(xué)習(xí)者可以從更小的年齡開始。因此,一種新型態(tài)的創(chuàng)設(shè)行動應(yīng)用程序的方法、設(shè)備及系統(tǒng),亟待發(fā)明。
技術(shù)實現(xiàn)要素:
鑒于此,有必要針對傳統(tǒng)的編程環(huán)境容易抹煞小朋友對編程的興趣的問題,提供一種讓編程更簡化、學(xué)習(xí)者可以從更小的年齡開始的結(jié)合程序包創(chuàng)設(shè)新行動應(yīng)用程序的方法、行動裝置及系統(tǒng)。
為了解決上述的問題,本發(fā)明提供一種結(jié)合程序包創(chuàng)設(shè)新行動應(yīng)用程序的方法,包括步驟:
a、提供多個各具特定內(nèi)容的程序包;
b、將所述多個程序包還原為各自的程序代碼、對象及用戶接口,并處于可同時編輯狀態(tài);
c、選定至少一個還原的用戶接口為活躍狀態(tài);
d、編修鏈接該程序代碼、對象及用戶接口,以便原程序包在編譯后可執(zhí)行全部或部分功能,或新編修的功能,可通過活躍狀態(tài)的用戶接口而展現(xiàn);及
e、編譯編修鏈接后的程序代碼、對象及活躍狀態(tài)的用戶接口為行動應(yīng)用程序。
在其中一個實施例中,所述方法應(yīng)用于行動裝置上,且步驟b到步驟e通過可視化整合開發(fā)環(huán)境而執(zhí)行。
本發(fā)明還提供一個結(jié)合程序包創(chuàng)設(shè)新行動應(yīng)用程序的行動裝置,所述行動裝置至少包括記憶單元、觸控屏幕及無線訊號收發(fā)單元,并安裝有編修應(yīng)用程序,及儲存多個各具特定內(nèi)容的程序包于所述記憶單元中,其特征在于:在所述行動裝置上執(zhí)行所述編修應(yīng)用程序時,所述觸控屏幕上會呈現(xiàn)可視化整合開發(fā)環(huán)境,用以同時進行編修作業(yè)、將所述多個程序包還原為各自的程序代碼、對象及用戶接口、供用戶選定至少一個還原的用戶接口為活躍狀態(tài);編修鏈接所述程序代碼、對象及用戶接口,以便原程序包在編譯后可執(zhí)行全部或部分功能,或新編修的功能,可通過活躍狀態(tài)的用戶接口而展現(xiàn),及編譯編修鏈接后的程序代碼、對象及活躍狀態(tài)的用戶接口為行動應(yīng)用程序。
在其中一個實施例中,所述行動應(yīng)用程序用于控制所述行動裝置的運作、通過行動裝置來控制外部硬件運作,或與其它行動裝置中相同的行動應(yīng)用程序協(xié)同運作。
在其中一個實施例中,所述行動裝置為平板計算機或智能型手機。
在其中一個實施例中,所述無線訊號收發(fā)單元為wi-fi模塊、藍牙模塊或紅外線模塊。
在其中一個實施例中,所述程序包僅開放部分程序代碼、對象或用戶接口供編修作業(yè),其余部分無法進行編修。
本發(fā)明還提供一種結(jié)合程序包創(chuàng)設(shè)新行動應(yīng)用程序的系統(tǒng)。該系統(tǒng)包括:
多個如上所述的行動裝置;及
遠程服務(wù)器,所述遠程服務(wù)器與行動裝置通過網(wǎng)絡(luò)連接,用以儲存多個程序包、下載任一行動裝置中不具有的程序包至所述行動裝置的記憶單元中,及下載所述編修應(yīng)用程序到其它未安裝編修應(yīng)用程序的外部行動裝置上,以便所述外部行動裝置在安裝編修應(yīng)用程序后成為系統(tǒng)中新的行動裝置。
在其中一個實施例中,兩個行動裝置間可通過各自的無線訊號收發(fā)單元直接連接,或通過各自的無線訊號收發(fā)單元間接經(jīng)由網(wǎng)絡(luò)連接。
在其中一個實施例中,所述網(wǎng)絡(luò)為以太網(wǎng)絡(luò)或行動網(wǎng)絡(luò)。
在其中一個實施例中,所述遠程服務(wù)器可進一步將所述程序包編譯為不同操作系統(tǒng)與平臺的行動應(yīng)用程序,提供下載的服務(wù)。
在其中一個實施例中,所述連接的行動裝置形成叢集,其中至少一個行動裝置通過其編修應(yīng)用程序設(shè)定為服務(wù)器端運作模式,用以下載其它非服務(wù)器狀態(tài)行動裝置中不具有的特定行動應(yīng)用程序的程序包至所述非服務(wù)器狀態(tài)行動裝置的記憶單元中,或接受其它非服務(wù)器狀態(tài)行動裝置中已安裝的行動應(yīng)用程序操作部分硬件功能。
在其中一個實施例中,所述編修應(yīng)用程序可隨所處的行動裝置狀態(tài),切換為客戶端運作模式或服務(wù)器端運作模式。
本發(fā)明的有益效果至少包括:
上述結(jié)合程序包創(chuàng)設(shè)新行動應(yīng)用程序的方法、行動裝置及系統(tǒng),利用程序包還原的原始碼、對象與用戶接口,進行拖拉式編輯以及小幅度程序代碼修改,簡化創(chuàng)設(shè)新行動應(yīng)用程序的步驟。除了有利于編程學(xué)習(xí)者可以從更小的年齡開始學(xué)習(xí),更可形成在線商店,讓有創(chuàng)意的程序包進行分享或販賣營利。
附圖說明
圖1為一個實施例中的結(jié)合程序包創(chuàng)設(shè)新行動應(yīng)用程序的方法的流程示意圖;
圖2為一個實施例中的結(jié)合程序包創(chuàng)設(shè)新行動應(yīng)用程序的行動裝置的基本架構(gòu)示意圖;
圖3為一個實施例中的結(jié)合程序包創(chuàng)設(shè)新行動應(yīng)用程序的系統(tǒng)的結(jié)構(gòu)示意圖;
圖4為一個實施例中的觸控屏幕上的可視化整合型接口的顯示示意圖;
圖5為另一個實施例中的觸控屏幕上的可視化整合型接口的顯示示意圖;
圖6為又一個實施例中的觸控屏幕上的可視化整合型接口的顯示示意圖。
具體實施方式
本發(fā)明將參照下述的實施方式而更具體地描述。
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例對本發(fā)明結(jié)合程序包創(chuàng)設(shè)新行動應(yīng)用程序的方法、行動裝置及系統(tǒng)進行進一步詳細說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
請參閱圖1,圖1是一個實施例中的結(jié)合程序包創(chuàng)設(shè)新行動應(yīng)用程序的方法的流程圖。該方法在行動裝置上具體實施。適合于本方法的行動裝置的硬件架構(gòu)上必須至少具備以下的裝置(或均等的裝置):觸控屏幕110、中央處理單元120、記憶單元130、內(nèi)存140及無線訊號收發(fā)單元150(請參見圖2)。觸控屏幕110提供訊息給用戶,并允許用戶可以輸入必要指令或信息,以便與行動裝置互動。記憶單元130指的是傳統(tǒng)用于長時儲存數(shù)據(jù)的裝置,比如硬盤、固態(tài)硬盤、閃存等,所有程序包與之后提及的行動應(yīng)用程序,在發(fā)布到行動裝置時,都是先儲存于記憶單元130中。相對于記憶單元130,內(nèi)存140是一般所謂的隨機存取內(nèi)存。當(dāng)程序包要進行編修或鏈接,以及行動應(yīng)用程序執(zhí)行時,都會先暫存于內(nèi)存中,等待中央處理單元120進行進一步處理。無線訊號收發(fā)單元150是行動裝置用來與其它行動裝置互動、收發(fā)數(shù)據(jù)與檔案的硬件。通過不同的傳輸規(guī)范,無線訊號收發(fā)單元150可以是wi-fi模塊、藍牙模塊或紅外線模塊。中央處理單元120則與前述觸控屏幕110、記憶單元130、內(nèi)存140和無線訊號收發(fā)單元150連接,控制這些裝置正常運作。行動裝置可以是特定的硬件,用來滿足本發(fā)明所使用的相關(guān)軟件所需。實作上,行動裝置可以使用市售的平板計算機或智能型手機。
為了要達成本發(fā)明的目的,該行動裝置需安裝有一個編修應(yīng)用程序,并儲存多個各具特定內(nèi)容的程序包在記憶單元130中。在一個實施例中,第一個步驟是:s01,提供多個各具特定內(nèi)容的程序包。這里所說的程序包,指的是本身在經(jīng)過編譯后,可以成為獨立的執(zhí)行檔的檔案,在特定的操作系統(tǒng)與平臺上執(zhí)行。然而在未經(jīng)編譯前,本身包含了編譯后可執(zhí)行的邏輯(程序代碼)、對象與用戶接口。以面向?qū)ο蟪绦蛘Z言livecode為例,程序包就是堆棧文件(stack),可通過livecode的整合型開發(fā)環(huán)境做進一步的編修。程序包的提供方式,可以由行動裝置的用戶,透過編修應(yīng)用程序創(chuàng)設(shè)于該行動裝置,或者是由已具備該程序包的行動裝置,發(fā)布給未具有該程序包的行動裝置。更方便的方式是,程序包可以存在遠程服務(wù)器上,經(jīng)行動裝置提出需求后下載給行動裝置。編修應(yīng)用程序的角色不僅是提供編修與鏈接功能的整合型開發(fā)環(huán)境,它也具有當(dāng)行動應(yīng)用程序在其它兩個行動裝置間同時運作時,作為信息傳遞的作用。詳細的運作方式會在其它的實施例中說明。
依據(jù)本發(fā)明所提出的方法,下一個步驟是:s02,將多個程序包還原為各自的程序代碼、對象及用戶接口,并處于可同時編輯狀態(tài)。對每一個行動裝置來說,這個步驟就是執(zhí)行編修應(yīng)用程序,以呈現(xiàn)可視化整合開發(fā)環(huán)境而執(zhí)行(請注意,直到本發(fā)明的最后一個步驟為止,該可視化整合開發(fā)環(huán)境都是被用來控制步驟進行的接口)。在行動裝置的觸控屏幕110上,編修應(yīng)用程序以一個圖標(biāo)(icon)顯現(xiàn),點擊后即將程序代碼內(nèi)容、對象、接口圖形以及其它需要的資源(如文字、函式庫等)暫存至內(nèi)存140中,并操作中央處理單元120來控制行動裝置。編修應(yīng)用程序在執(zhí)行后會根據(jù)使用者的要求,選擇存放在記憶單元130中的程序包進行編修。接受編修的每一個程序包會在該整合型接口中,同時還原成各自的程序代碼、對象及用戶接口,并供用戶進行編修。
圖4至圖6示出了一個實施例中的編修程序代碼,編修應(yīng)用程序選擇了一個可以在編譯后執(zhí)行剪刀石頭布游戲的第一程序包,在觸控屏幕110上的整合型接口同時顯示第一程序包的第一用戶接口與對象(左方)與所有的程序代碼(右方)。其中第一程序代碼執(zhí)行背景與屏幕顯示(第一用戶接口),第二程序代碼控制剪刀、石頭與布的對象顯示方式,而第三程序代碼是用來判斷比賽兩方每一局誰贏或贏得的次數(shù)(分數(shù))。當(dāng)左方背景被點擊時,右方第一程序代碼便呈現(xiàn)可編輯狀態(tài);或當(dāng)?shù)谝怀绦虼a中的字母或數(shù)字被點擊時,背景也會以特殊顏色凸顯,方便用戶編修程序代碼。同樣的對應(yīng)關(guān)系也出現(xiàn)在第二程序代碼與三個對象上,但由于有三個對象,每一對象被點選時,僅突顯相關(guān)的程序代碼,以利于修改對象動作或更換對象。第三程序代碼因為沒有對應(yīng)的用戶接口或?qū)ο?,可以直接進行編輯。同時,用戶也可通過編修應(yīng)用程序選擇另外一個可以在編譯后執(zhí)行計分板游戲的第二程序包,進行編修。如圖5和圖6所示,第二程序包有兩個用戶接口。第四程序代碼控制第二用戶接口與其上對象(圖5左方)的操作,第五程序代碼控制第三用戶接口與其上對象(圖6左方)的操作,第六程序代碼處理比賽者數(shù)據(jù)以及各局得分。第二程序包編修時,當(dāng)點擊第二用戶接口時,第四程序代碼呈現(xiàn)可編輯狀態(tài);反之若第四程序代碼中的字母或數(shù)字被點擊時,第二用戶接口會以特殊顏色突顯。第五程序代碼與第三用戶接口的關(guān)系同第四程序代碼與第二用戶接口相似。第六程序代碼是運作邏輯,因此可以單獨編修。要注意的是,第二用戶接口與第三用戶接口可以在第二程序包編輯時切換。若要更換用戶接口,可對編修應(yīng)用程序下達切換指令,比如以手指由上到下在觸控屏幕110上滑動。
第二程序包與第一程序包同時在編修應(yīng)用程控下進行編修,只有進行編修的程序包的程序代碼、對象或用戶接口,才會出現(xiàn)在整合型接口上。若要更換編修的程序包,僅需對編修應(yīng)用程序下達切換指令,比如以手指由左向右橫過觸控屏幕110滑動。要注意的是,以上僅是本發(fā)明整合型接口的一種態(tài)樣。程序代碼與用戶接口間也可以分別在編輯時呈現(xiàn),而只在整合型接口上顯現(xiàn)其一。甚至只顯現(xiàn)用戶接口與其上的對象,當(dāng)該用戶接口或?qū)ο蟊稽c選時,才在用戶接口或?qū)ο笈猿尸F(xiàn)相關(guān)的程序代碼,進行編修。此外,關(guān)于用戶接口或?qū)ο蟮膶傩裕部梢栽谠撚脩艚涌诨驅(qū)ο蟊贿x取時進行進一步更改,比如圖形對象外部加框等。這些細部的更改是在本發(fā)明所揭露的編修應(yīng)用程序中進行編修,本發(fā)明并未限制其編修接口形式。
此時,很重要的步驟是:s03,選定至少一個還原的用戶接口為活躍狀態(tài)。以上面的例子繼續(xù)說明。本發(fā)明的基本作用就是將兩個以上的程序包,由編修應(yīng)用程序打開,還原成各自所包含的程序代碼、對象與用戶接口,并同時編修該些程序代碼、對象及用戶接口。本發(fā)明所設(shè)計的編修應(yīng)用程序和一般的整合型開發(fā)環(huán)境最大的不同點有以下幾個。第一、編修應(yīng)用程序是僅用在無實體鍵盤的行動裝置上,創(chuàng)設(shè)新的程序包、融合現(xiàn)有程序包成新的程序包,并編譯程序包成可執(zhí)行的行動應(yīng)用程序,而傳統(tǒng)的整合型開發(fā)環(huán)境適合用在有鍵盤鼠標(biāo)等輸入設(shè)備的個人計算機上。由于行動裝置的觸控屏幕110不方便針對大范圍的程序代碼進行編輯,該行動應(yīng)用程序編修程序包的方式主要以對象拖曳點擊方式,叫出相對應(yīng)的程序代碼進行小幅度修改。第二、傳統(tǒng)軟件工程師使用整合型開發(fā)環(huán)境的做法是開一個主要項目檔,將參考的程序代碼內(nèi)容由其它項目文件中拷貝至主要項目文件中進行修改。而編修應(yīng)用程序在執(zhí)行時,其運作邏輯在同時打開各程序包時,將各程序包的內(nèi)容通通放進一個新的程序包;編修應(yīng)用程序會記下所有用戶接口及其對象,與相對的程序代碼中的變量與邏輯關(guān)系。用戶要做的事情除了編修程序代碼,以增加或減少原程序包所定義的功能外,更重要的是要重新定義各程序包間運算邏輯、對象與接口的連動關(guān)系,也就是某一程序包中程序代碼運算的結(jié)果,可以由另一個程序包中的對象來表示或呈現(xiàn)在其用戶接口上。第三,用戶要在所有的用戶接口中,選定至少一個用戶接口為活躍狀態(tài),這點是傳統(tǒng)整合型開發(fā)環(huán)境沒有的做法。關(guān)于第二點與第三點,在此用前面提過的第一程序包與第二程序包來說明。
第一程序包中設(shè)計的剪刀石頭布游戲,在編譯后可安裝在兩臺行動裝置上。這兩臺行動裝置通過各自的無線訊號收發(fā)單元150連接后,兩套剪刀石頭布游戲行動應(yīng)用程序聯(lián)機;玩游戲的人可以甩動其手持的行動裝置,兩臺行動裝置上運作的剪刀石頭布游戲行動應(yīng)用程序便會隨機發(fā)出剪刀、石頭或布的訊息給對方,經(jīng)比較后看哪一游戲方獲勝,每一臺行動裝置的觸控屏幕110上都會出現(xiàn)自己與對方該局出的東西影像。第二程序包中設(shè)計的計分板游戲,是在單一行動裝置上分別輸入兩個比賽者(不論比賽項目)的各局比賽分數(shù)并儲存在連接的一個數(shù)據(jù)文件中?,F(xiàn)在要做的工作是設(shè)計一個新的行動應(yīng)用程序,可以進行聯(lián)機剪刀石頭布游戲,但不必顯示結(jié)果影像,而以計分板上每局的分數(shù)(1為獲勝,0為失敗,兩人同為0表示平手)來呈現(xiàn)在各自的觸控屏幕110上。編修應(yīng)用程序的運作方式是打開第一程序包與第二程序包,并分別還原該些程序包為各自的程序代碼、對象與用戶接口,而用戶可以通過觸控屏幕110、同時編修鏈接這些還原的程序代碼、修改程序代碼、對象與用戶接口,及╱或加入新的程序代碼。比如,第三程序代碼的輸出結(jié)果不再傳給第二程序代碼,而是傳給第六程序代碼當(dāng)作個局比賽結(jié)果的輸入;原先第六程序代碼的輸出可以選擇地給第四程序代碼或第五程序代碼,作為其對應(yīng)用戶接口的顯示,此時為求簡潔起便,只定義第五程序代碼作為接收第六程序代碼的輸出。也就是說,只有第三用戶接口會在兩個程序包融合編譯后的行動應(yīng)用程序中出現(xiàn)。而這個第三用戶接口便是處于所謂的活躍狀態(tài)。當(dāng)然,除了運算邏輯鏈接上間接定義,還是要告知編修應(yīng)用程序第三用戶接口被選定為活躍狀態(tài)。告知的方式有很多種,比如長按該用戶接口5秒;誤選的用戶接口也可以取消,方式也有很多種,比如再次長按該用戶接口5秒。以上編修應(yīng)用程序所作的動作,也就是圖1步驟s04:編修鏈接該程序代碼、對象及用戶接口,以便原程序包在編譯后可執(zhí)行全部或部分功能,或新編修的功能,可通過活躍狀態(tài)的用戶接口而展現(xiàn)。
本發(fā)明所提出創(chuàng)設(shè)新行動應(yīng)用程序的方法的最后一個步驟,即是:s05,編譯編修鏈接后的程序代碼、對象及活躍狀態(tài)的用戶接口為行動應(yīng)用程序。編修應(yīng)用程序執(zhí)行前述的步驟,即可產(chǎn)生符合修改后需求并用于行動裝置中的行動應(yīng)用程序(此處的行動應(yīng)用程序僅能用于控制行動裝置的運作,為了與后續(xù)其它功能或特色行動應(yīng)用程序區(qū)別,稱為第一行動應(yīng)用程序)。
要注意的是,實作上來說,編修應(yīng)用程序也可以將各程序包中未用到的程序代碼、用戶接口及對象,一起包入新融合的程序包里。這樣的作法是除了產(chǎn)生新的行動應(yīng)用程序外,編修應(yīng)用程序可以另外將新融合的程序包獨立儲存,讓后續(xù)擁有這個檔案的使用者,可以還原該檔案,參考前人編修的方式,另外修改它成為具有想要的新功能的更新的程序包。
本發(fā)明的另一個實施例是一種應(yīng)用前述行動裝置結(jié)合程序包創(chuàng)設(shè)新行動應(yīng)用程序的系統(tǒng)。該系統(tǒng)利用圖3來說明。在圖3的實施例中,一種結(jié)合程序包創(chuàng)設(shè)新行動應(yīng)用程序的系統(tǒng)包括遠程服務(wù)器200、第一行動裝置101、第二行動裝置102,及第三行動裝置103。要注意的是,在該系統(tǒng)中行動裝置的數(shù)量不限于3個,以圖3中的3個行動裝置來說明(第四行動裝置104目前尚未加入系統(tǒng)中),僅是作為示例之用。實際上,對該系統(tǒng)來說,行動裝置的數(shù)量至少需要有一個,且并無上限的限制。
前述的4個行動裝置,形式上可以不必一致,可以為智能型手機、平板計算機,或特制符合前述要求的硬件。第一行動裝置101、第二行動裝置102,及第三行動裝置103內(nèi)任意兩個行動裝置間通過各自的無線訊號收發(fā)單元150直接連接,或者通過各自的無線訊號收發(fā)單元150,間接經(jīng)由網(wǎng)絡(luò)連接。圖3所示的實施例即第一行動裝置101、第二行動裝置102,與第三行動裝置103間通過各自的無線訊號收發(fā)單元150直接連接,第一行動裝置101與第三行動裝置103間可間接經(jīng)由網(wǎng)絡(luò)連接。這里所說的網(wǎng)絡(luò),可以是以太網(wǎng)絡(luò)或行動網(wǎng)絡(luò)。對于以太網(wǎng)絡(luò)來說,行動裝置需要通過無線網(wǎng)絡(luò)基地臺橋接。
如前所述,編修應(yīng)用程序的另外一個特點是通過進行編修作業(yè)的行動裝置的無線訊號收發(fā)單元150,將產(chǎn)生的第一行動應(yīng)用程序發(fā)布到相連接的其它行動裝置上。舉例而言,如果第一行動應(yīng)用程序是在第二行動裝置102上產(chǎn)生的,那它可以在如圖3所示已聯(lián)機的情況下(虛線箭號表示),發(fā)布到第一行動裝置101與第三行動裝置103上,根據(jù)使用者的意愿決定要不要安裝。這種發(fā)布的編程技巧是很多軟件工程師都能應(yīng)用,本發(fā)明不限定研發(fā)編修應(yīng)用程序時是使用哪一種技術(shù)。
要注意的是,對于某些程序包的開發(fā)者來說,他們可能不希望某些特殊功能被修改,或者希望后續(xù)編修的用戶只要專注某些功能的調(diào)整與其程序代碼鏈接,程序包可以僅開放部分程序代碼、對象或用戶接口供編修作業(yè),其余部分無法進行編修。比較常用的作法是呼叫程序包中的函式庫,或者直接在程序代碼上注明不要修改以及可修改的部分。這樣的做法可以簡化編修過程。
遠程服務(wù)器200是一種輔助設(shè)備,該遠程服務(wù)器200與前述的那些行動裝置中的全部或部份透過網(wǎng)絡(luò)連接(在圖3中是與第一行動裝置101與第三行動裝置103連接),用以儲存多個程序包、下載任一行動裝置中不具有的程序包至該行動裝置的記憶單元130中,及下載編修應(yīng)用程序到其它未安裝編修應(yīng)用程序的系統(tǒng)外部行動裝置上,以便該外部行動裝置在安裝編修應(yīng)用程序后成為系統(tǒng)中新的行動裝置。在圖3中,第四行動裝置104原本不屬于整套系統(tǒng)中的單元,通過上網(wǎng)鏈接遠程服務(wù)器200并下載安裝編修應(yīng)用程序,第四行動裝置104也可以針對現(xiàn)有的程序包,進行編修、鏈接與發(fā)布的工作。此外,遠程服務(wù)器200還有一個特點:它可以將這些程序包編譯為不同操作系統(tǒng)與平臺的行動應(yīng)用程序,提供下載的服務(wù)。
由以上對遠程服務(wù)器200的說明可以看出,架設(shè)遠程服務(wù)器200可以形成一種在線商店。這種在線商店的型態(tài)跟一般用于下載行動應(yīng)用程序的在線商店不一樣,后者只販賣并下載可執(zhí)行的行動應(yīng)用程序。而對本發(fā)明所提供的遠程服務(wù)器200而言,它除了可以下載可執(zhí)行的行動應(yīng)用程序外,主要是用于下載程序包,供行動裝置用戶進行編修鏈接,以創(chuàng)造新的應(yīng)用,付費與否端視原程序包創(chuàng)作者的想法。由于有了遠程服務(wù)器200,整套系統(tǒng)很適合于編程教學(xué)用途,尤其是針對幼小的學(xué)童與新手。通過簡單的拖曳動作及邏輯鏈接,用戶可以很快對該種程序語言的用法上手,在實作中獲得樂趣,并利用其成果解決生活中的某些問題。
依照本發(fā)明的精神,在另一個實施例中,編譯后的行動應(yīng)用程序,除了可以改變本身的控制方式外,也可以通過行動裝置,操縱外部硬件運作。做法是程序包在設(shè)計時,就有能控制無線訊號收發(fā)單元150的程序代碼,并能通過操作該外部硬件所開放的控制應(yīng)用程序編程接口(applicationprograminterface,api),連接行動裝置與外部硬件,達成程序包經(jīng)編譯成第二行動應(yīng)用程序(有別于只能運作在行動裝置中的第一行動應(yīng)用程序)后,第二行動應(yīng)用程序可控制外部硬件的運作。舉例而言,外部硬件可以是一臺遙控飛機,現(xiàn)在有很多行動應(yīng)用軟件可以安裝在智能型手機上來操縱遙控飛機。設(shè)計使用的道理是一樣。所不同的是,通過本發(fā)明所提供的系統(tǒng)運作,用戶可以編修鏈接該用于遙控飛機的第二行動應(yīng)用程序以及專門用于輸出控制指令的第一行動應(yīng)用程序的程序包,以創(chuàng)作出不同的操作方式或修改操作接口,取代原先用于遙控飛機的第二行動應(yīng)用程序中的控制接口。此外,如同第一行動應(yīng)用程序可以彼此連線作業(yè),第二行動應(yīng)用程序也可與其它行動裝置中相同的第二行動應(yīng)用程序協(xié)同運作,操作外部硬件。比如一個家庭中的每個人的手機上的冷氣第二行動應(yīng)用程序都能控制家中的冷氣運作。由以上的例子可以看出,本發(fā)明所提供的系統(tǒng),可以讓不同領(lǐng)域的專業(yè)人員,各自開發(fā)其擅長領(lǐng)域的程序包,讓用戶下載編修。這對于很多硬件開發(fā)商來說,是很便利的:他們只要在遠程服務(wù)器200放入讓用戶可控制他們產(chǎn)品的第二行動應(yīng)用程序的程序包供下載,任何控制的方式或接口,都可以通過同時編修專業(yè)控制接口的程序包而產(chǎn)生。修改步驟也很簡單,只要限定部分程序代碼可供編修即可。
在另一個實施例中,連接的行動裝置可形成叢集(如圖3中的三個行動裝置),其中至少一個行動裝置通過其編修應(yīng)用程序設(shè)定為服務(wù)器端運作模式,用以下載其它非服務(wù)器狀態(tài)行動裝置中不具有的特定行動應(yīng)用程序的程序包至該非服務(wù)器狀態(tài)行動裝置的記憶單元中,或接受其它非服務(wù)器狀態(tài)行動裝置中已安裝的第三行動應(yīng)用程序(第三行動應(yīng)用程序代表可用于服務(wù)器狀態(tài)行動裝置的行動應(yīng)用程序)操作部分硬件功能。舉例來說,前面實施例所提到的剪刀石頭布游戲,如果兩個玩家中的一個遲遲沒做動作,對方的行動裝置沒收到相應(yīng)的訊息,久而久之可能會結(jié)束該次比賽。然而,如果通過第三行動裝置103當(dāng)作服務(wù)器狀態(tài)行動裝置,并把剪刀石頭布游戲由第一行動應(yīng)用程序轉(zhuǎn)而開發(fā)成第三行動應(yīng)用程序,那么第一行動裝置101與第二行動裝置102(非服務(wù)器狀態(tài))的比賽,可以通過第三行動裝置103當(dāng)橋接。如果一方遲遲沒作出反應(yīng),第三行動裝置103中的剪刀石頭布游戲第三行動應(yīng)用程序會持續(xù)等待,游戲也不會中斷。只是作為服務(wù)器狀態(tài)的第三行動裝置103必須保持開啟跟不斷線,部分硬件功能,如無線訊號收發(fā)單元150與中央處理單元120,也必須分享給非服務(wù)器狀態(tài)行動裝置使用。當(dāng)然,第三行動裝置103的角色,也可以設(shè)定讓遠程服務(wù)器200來執(zhí)行。服務(wù)器狀態(tài)行動裝置并非永遠不變,編修應(yīng)用程序可隨所處的行動裝置狀態(tài),切換為客戶端運作模式或服務(wù)器端運作模式。換句話說,只要行動裝置的擁有者愿意,系統(tǒng)內(nèi)可以有很多的行動裝置是在服務(wù)器狀態(tài)下。要注意的是,第三行動應(yīng)用程序、第二行動應(yīng)用程序與第一行動應(yīng)用程序僅在應(yīng)用層面上不同,其由程序包的生成方式并無不同。
由以上的說明可以看出本發(fā)明還有一個特例:就是當(dāng)行動裝置僅有一個的情況下,它也是可以通過編修應(yīng)用程序,將已編譯的行動應(yīng)用程序,”自己發(fā)布給自己”。這種情況可以發(fā)生在具多個不同操作系統(tǒng)或虛擬機的行動裝置上。一個行動應(yīng)用程序的創(chuàng)作人,可以將他的成果發(fā)布給該行動裝置上的另一個操作系統(tǒng)或虛擬機。這樣可以測試該行動應(yīng)用程序在不同平臺上的運作狀況,甚至聯(lián)機操作。
以上所述實施例的各技術(shù)特征可以進行任意的組合,為使描述簡潔,未對上述實施例中的各個技術(shù)特征所有可能的組合都進行描述,然而,只要這些技術(shù)特征的組合不存在矛盾,都應(yīng)當(dāng)認為是本說明書記載的范圍。
以上所述實施例僅表達了本發(fā)明的幾種實施方式,其描述較為具體和詳細,但并不能因此而理解為對發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進,這些都屬于本發(fā)明的保護范圍。因此,本發(fā)明專利的保護范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
【符號說明】
101第一行動裝置;102第二行動裝置;103第三行動裝置;104第四行動裝置;110觸控屏幕;120中央處理單元;130記憶單元;140內(nèi)存;150無線訊號收發(fā)單元;200遠程服務(wù)器。