一種Android應(yīng)用程序開(kāi)發(fā)方法
【專利摘要】本發(fā)明提供一種Android應(yīng)用程序開(kāi)發(fā)方法及系統(tǒng),針對(duì)需要調(diào)用隱藏接口的應(yīng)用程序的開(kāi)發(fā),所述Android應(yīng)用程序開(kāi)發(fā)方法包括:在Android應(yīng)用程序開(kāi)發(fā)環(huán)境中增加適配層模塊;并將所述適配層模塊編譯到所述應(yīng)用程序中;所述適配層模塊用于保證開(kāi)發(fā)所述應(yīng)用程序時(shí)能正常編譯,且開(kāi)發(fā)的所述應(yīng)用程序能正常運(yùn)行。本發(fā)明的技術(shù)方案可以使開(kāi)發(fā)人員在windows系統(tǒng)下使用軟件開(kāi)發(fā)系統(tǒng)對(duì)具有隱藏接口的系統(tǒng)平臺(tái)進(jìn)行應(yīng)用程序開(kāi)發(fā),不僅保證了在windows系統(tǒng)下使用Android開(kāi)發(fā)系統(tǒng)的正常編譯,而且能夠在windows系統(tǒng)下對(duì)所生成的應(yīng)用程序安裝包進(jìn)行調(diào)試驗(yàn)證,并且很好的保證了開(kāi)發(fā)的應(yīng)用程序的兼容性。
【專利說(shuō)明】—種Android應(yīng)用程序開(kāi)發(fā)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種軟件開(kāi)發(fā)方法及系統(tǒng),特別是涉及一種Android應(yīng)用程序開(kāi)發(fā)方法及系統(tǒng)。
【背景技術(shù)】
[0002]目前,很多手機(jī)廠商采用Android系統(tǒng)來(lái)作為手機(jī)的操作系統(tǒng)。對(duì)于采用Android作為操作系統(tǒng)的手機(jī)廠商通常會(huì)針對(duì)自己的手機(jī)產(chǎn)品對(duì)其操作系統(tǒng)進(jìn)行了一些定制,包括定制一些其手機(jī)系統(tǒng)平臺(tái)的隱藏接口,這些隱藏接口接口通常用于其開(kāi)發(fā)手機(jī)的系統(tǒng)功能或Π界面的實(shí)現(xiàn)。對(duì)于采用了隱藏接口的手機(jī)上的應(yīng)用程序的而開(kāi)發(fā)目前通常是采用Android的反射機(jī)制來(lái)進(jìn)行調(diào)用。但由于不同系統(tǒng)平臺(tái)上的隱藏接口也可能對(duì)應(yīng)不同的隱藏接口實(shí)現(xiàn)方式,這種采用反射機(jī)制的調(diào)用方式并不能保證開(kāi)發(fā)出來(lái)的應(yīng)用程序的兼容性。
[0003]對(duì)于采用了特定的系統(tǒng)接口的手機(jī)上的應(yīng)用程序的開(kāi)發(fā),通常需要在Linux系統(tǒng)下進(jìn)行開(kāi)發(fā),并需要將整個(gè)Android源代碼導(dǎo)入到Android開(kāi)發(fā)系統(tǒng)中。這樣對(duì)所開(kāi)發(fā)的應(yīng)用程序進(jìn)行編譯時(shí)也需要將整個(gè)Android源代碼編譯一遍,這個(gè)過(guò)程就非常的漫長(zhǎng),開(kāi)發(fā)的時(shí)間也大大的延長(zhǎng)了。而且,通常很多的應(yīng)用程序開(kāi)發(fā)者對(duì)Linux系統(tǒng)下的整體開(kāi)發(fā)環(huán)境也沒(méi)有在windows系統(tǒng)下的整體開(kāi)發(fā)環(huán)境那么熟悉,很容易因?yàn)槿鄙倌硞€(gè)Linux驅(qū)動(dòng)程序?qū)е抡{(diào)試設(shè)備無(wú)法連接到電腦,從而導(dǎo)致開(kāi)發(fā)人員在Linux系統(tǒng)下開(kāi)發(fā)時(shí),對(duì)應(yīng)用程序進(jìn)行驗(yàn)證也需要較長(zhǎng)的時(shí)間來(lái)處理解決和應(yīng)用程序開(kāi)發(fā)本身關(guān)系不大的問(wèn)題,大大降低了開(kāi)發(fā)效率。
【發(fā)明內(nèi)容】
[0004]鑒于以上所述現(xiàn)有技術(shù)的缺點(diǎn),本發(fā)明的目的在于提供一種Android應(yīng)用程序開(kāi)發(fā)方法及系統(tǒng),用于解決現(xiàn)有技術(shù)中在Android手機(jī)中需要調(diào)用隱藏接口的應(yīng)用程序無(wú)法在windows系統(tǒng)下進(jìn)行開(kāi)發(fā)的問(wèn)題。
[0005]為實(shí)現(xiàn)上述目的及其他相關(guān)目的,本發(fā)明提供一種Android應(yīng)用程序開(kāi)發(fā)方法,所述Android應(yīng)用程序開(kāi)發(fā)方法應(yīng)用于需要調(diào)用隱藏接口的應(yīng)用程序的開(kāi)發(fā),同一功能隱藏接口包括一種或多種實(shí)現(xiàn)方式,所述同一功能隱藏接口的多種實(shí)現(xiàn)方式分別對(duì)應(yīng)于不同的系統(tǒng)平臺(tái),所述Android應(yīng)用程序開(kāi)發(fā)方法包括:在Android應(yīng)用程序開(kāi)發(fā)環(huán)境中增加適配層模塊,所述適配層模塊用于為開(kāi)發(fā)的應(yīng)用程序提供所述同一功能隱藏接口的多種實(shí)現(xiàn)方式的統(tǒng)一適配接口,在所述應(yīng)用程序調(diào)用所述統(tǒng)一適配接口時(shí),所述適配層模塊根據(jù)所述應(yīng)用程序所運(yùn)行的系統(tǒng)平臺(tái)來(lái)調(diào)用對(duì)應(yīng)的隱藏接口 ;將所述適配層模塊編譯到所述應(yīng)用程序中。
[0006]優(yōu)選地,所述Android應(yīng)用程序開(kāi)發(fā)方法應(yīng)用于windows系統(tǒng)中。
[0007]優(yōu)選地,所述Android應(yīng)用程序開(kāi)發(fā)環(huán)境包括eclipse。
[0008]優(yōu)選地,所述Android應(yīng)用程序開(kāi)發(fā)方法包括將所述統(tǒng)一適配接口中的實(shí)現(xiàn)體修改為與Android標(biāo)準(zhǔn)接口的實(shí)現(xiàn)體一致。
[0009]優(yōu)選地,所述Android應(yīng)用程序開(kāi)發(fā)方法包括在Android操作系統(tǒng)源碼中建立一個(gè)與src文件夾同級(jí)的適配層文件夾,將適配層相關(guān)代碼添加到所述適配層文件夾中,并將所述適配層文件夾添加到所述Android開(kāi)發(fā)系統(tǒng)的編譯路徑中。
[0010]優(yōu)選地,所述Android應(yīng)用程序開(kāi)發(fā)方法中所述編譯路徑包括Android buildpath。
[0011 ] 優(yōu)選地,所述Android應(yīng)用程序開(kāi)發(fā)方法中,所述適配層相關(guān)代碼包括用于實(shí)現(xiàn)以下功能的代碼:根據(jù)所述應(yīng)用程序運(yùn)行的系統(tǒng)平臺(tái),調(diào)用對(duì)應(yīng)的隱藏接口實(shí)現(xiàn)。
[0012]優(yōu)選地,所述Android應(yīng)用程序開(kāi)發(fā)方法包括,將所述不同系統(tǒng)平臺(tái)的隱藏接口相關(guān)代碼復(fù)制到所述適配層文件夾。
[0013]優(yōu)選地,所述Android應(yīng)用程序開(kāi)發(fā)方法中的所述隱藏接口包括針對(duì)手機(jī)特有功能設(shè)計(jì)的接口。
[0014]優(yōu)選地,各種不同功能的所述隱藏接口分別對(duì)應(yīng)不同的統(tǒng)一匹配接口。
[0015]本發(fā)明還提供一種Android應(yīng)用程序開(kāi)發(fā)系統(tǒng),所述Android應(yīng)用程序開(kāi)發(fā)系統(tǒng),用于需要調(diào)用隱藏接口的應(yīng)用程序的開(kāi)發(fā),同一功能隱藏接口包括一種或多種實(shí)現(xiàn)方式,所述同一功能隱藏接口的多種實(shí)現(xiàn)方式分別對(duì)應(yīng)于不同的系統(tǒng)平臺(tái),所述Android應(yīng)用程序開(kāi)發(fā)系統(tǒng)包括:增加適配層模塊,配置于所述Android應(yīng)用程序的開(kāi)發(fā)環(huán)境中,用于為開(kāi)發(fā)的應(yīng)用程序提供所述同一功能隱藏接口的多種實(shí)現(xiàn)方式的統(tǒng)一適配接口,并在所述應(yīng)用程序調(diào)用所述統(tǒng)一適配接口時(shí)根據(jù)所述應(yīng)用程序所運(yùn)行的系統(tǒng)平臺(tái)來(lái)調(diào)用對(duì)應(yīng)的隱藏接□。
[0016]如上所述,本發(fā)明的一種Android應(yīng)用程序開(kāi)發(fā)方法及系統(tǒng),具有以下有益效果:采用本發(fā)明的開(kāi)發(fā)方法可以使開(kāi)發(fā)人員在windows系統(tǒng)下使用軟件開(kāi)發(fā)系統(tǒng)對(duì)具有隱藏接口的系統(tǒng)平臺(tái)進(jìn)行應(yīng)用程序開(kāi)發(fā),不僅保證了在windows系統(tǒng)下使用Android開(kāi)發(fā)系統(tǒng)的正常編譯,而且能夠在windows系統(tǒng)下對(duì)所生成的應(yīng)用程序安裝包進(jìn)行調(diào)試驗(yàn)證,并且很好的保證了開(kāi)發(fā)的應(yīng)用程序的兼容性。
【專利附圖】
【附圖說(shuō)明】
[0017]圖1顯示為本 發(fā)明的一種Android應(yīng)用程序開(kāi)發(fā)方法的流程示意圖。
[0018]圖2顯示為本發(fā)明的一種Android應(yīng)用程序開(kāi)發(fā)方法開(kāi)發(fā)的應(yīng)用程序接口調(diào)用關(guān)系不意圖。
[0019]元件標(biāo)號(hào)說(shuō)明
[0020]SI ~S2步驟
【具體實(shí)施方式】
[0021]以下通過(guò)特定的具體實(shí)例說(shuō)明本發(fā)明的實(shí)施方式,本領(lǐng)域技術(shù)人員可由本說(shuō)明書所揭露的內(nèi)容輕易地了解本發(fā)明的其他優(yōu)點(diǎn)與功效。本發(fā)明還可以通過(guò)另外不同的【具體實(shí)施方式】加以實(shí)施或應(yīng)用,本說(shuō)明書中的各項(xiàng)細(xì)節(jié)也可以基于不同觀點(diǎn)與應(yīng)用,在沒(méi)有背離本發(fā)明的精神下進(jìn)行各種修飾或改變。
[0022]需要說(shuō)明的是,本實(shí)施例中所提供的圖示僅以示意方式說(shuō)明本發(fā)明的基本構(gòu)想,遂圖式中僅顯示與本發(fā)明中有關(guān)的組件而非按照實(shí)際實(shí)施時(shí)的組件數(shù)目、形狀及尺寸繪制,其實(shí)際實(shí)施時(shí)各組件的型態(tài)、數(shù)量及比例可為一種隨意的改變,且其組件布局型態(tài)也可能更為復(fù)雜。
[0023]本發(fā)明提供一種Android應(yīng)用程序開(kāi)發(fā)方法,所述Android應(yīng)用程序開(kāi)發(fā)方法應(yīng)用于需要調(diào)用隱藏接口的應(yīng)用程序的開(kāi)發(fā)。Android應(yīng)用程序包括Java應(yīng)用程序,目前在Android上的應(yīng)用程序大多數(shù)為Java應(yīng)用程序。同一功能隱藏接口包括一種或多種實(shí)現(xiàn)方式,所述同一功能隱藏接口的多種實(shí)現(xiàn)方式分別對(duì)應(yīng)于不同的系統(tǒng)平臺(tái)。各種不同功能的所述隱藏接口分別對(duì)應(yīng)不同的統(tǒng)一匹配接口。如圖1所示,所述Android應(yīng)用程序開(kāi)發(fā)方法包括:步驟SI,在應(yīng)用程序開(kāi)發(fā)中增加適配層模塊;步驟S2,將所述適配層模塊編譯到所述應(yīng)用程序中。
[0024]在一個(gè)實(shí)施例中,所述手機(jī)操作系統(tǒng)為Android操作系統(tǒng),所述手機(jī)操作系統(tǒng)上的隱藏接口包括與手機(jī)具體硬件密切相關(guān)的功能性接口,包括系統(tǒng)功能和性能上的接口,特別包括Π界面相關(guān)的接口。這些隱藏接口相應(yīng)的實(shí)現(xiàn)代碼通常與手機(jī)的生產(chǎn)廠商對(duì)手機(jī)的定制密切相關(guān),由手機(jī)的生產(chǎn)廠商開(kāi)發(fā)并作為手機(jī)操作系統(tǒng)的隱藏接口提供。這些接口的功能涉及電話、短信、設(shè)置模塊等。由于這些隱藏接口或隱藏接口是由手機(jī)的生產(chǎn)廠家針對(duì)手機(jī)的系統(tǒng)應(yīng)用特有的功能而設(shè)計(jì)的并提供實(shí)現(xiàn)代碼的。所述隱藏接口雖然是公共接口,但并不是開(kāi)放的,它是手機(jī)廠商在Android操作系統(tǒng)的基礎(chǔ)上根據(jù)生產(chǎn)的手機(jī)設(shè)計(jì)的隱藏接口。所述平臺(tái)系統(tǒng)的不同可以包括軟件上的不同,即同一硬件平臺(tái)上的不同軟件版本。所述平臺(tái)系統(tǒng)的不同也可以包括硬件上不同。開(kāi)發(fā)人員在標(biāo)準(zhǔn)軟件開(kāi)發(fā)系統(tǒng)SDK上進(jìn)行開(kāi)發(fā)時(shí)是無(wú)法調(diào)用這些接口的。這些接口有些是針對(duì)系統(tǒng)應(yīng)用特有的功能而設(shè)計(jì),比如關(guān)機(jī)、重啟等功能。有些接口之所以隱藏是由于功能的不完善,不能保證系統(tǒng)升級(jí)后對(duì)該接口的變動(dòng)和兼容。為此采用的應(yīng)用程序開(kāi)發(fā)方法在調(diào)用隱藏接口的應(yīng)用代碼和隱藏接口之間,加入一適配層模塊。所述適配層模塊針對(duì)不同的解決方案,不同的Android版本,對(duì)應(yīng)用調(diào)用的隱藏接口進(jìn)行了適配。這樣應(yīng)用程序開(kāi)發(fā)系統(tǒng)在開(kāi)發(fā)應(yīng)用程序時(shí)既保證了應(yīng)用程序所特有的功能的完整,又保證了應(yīng)用程序的通用性。這樣在開(kāi)發(fā)的應(yīng)用程序APK裝入手機(jī)后,對(duì)于調(diào)用framework層和應(yīng)用代碼之間,就加入一層即適配層,以匹配調(diào)用應(yīng)用程序運(yùn)行的平臺(tái)的隱藏接口。針對(duì)不同的解決方案,不同的Android版本,對(duì)應(yīng)用調(diào)用的隱藏接口進(jìn)行了適配。這樣既保證了開(kāi)發(fā)的系統(tǒng)應(yīng)用所特有的功能的完整,又保證了應(yīng)用的通用性。
[0025]步驟SI,在應(yīng)用程序開(kāi)發(fā)中增加適配層模塊。所述適配層模塊用于為開(kāi)發(fā)的應(yīng)用程序提供所述同一功能隱藏接口的多種實(shí)現(xiàn)方式的統(tǒng)一適配接口,在所述應(yīng)用程序調(diào)用所述統(tǒng)一適配接口時(shí),所述適配層根據(jù)所述應(yīng)用程序所運(yùn)行的系統(tǒng)平臺(tái)調(diào)用對(duì)應(yīng)的隱藏接口實(shí)現(xiàn)方式。在Android開(kāi)發(fā)系統(tǒng)中增加適配層模塊的具體實(shí)現(xiàn)包括在Android操作系統(tǒng)源碼中建立一個(gè)與src文件夾同級(jí)的適配層文件夾,所述適配層相關(guān)代碼添加到所述適配層文件夾中,并將所述適配層文件夾添加到所述Android開(kāi)發(fā)系統(tǒng)的編譯路徑中。所述Android操作系統(tǒng)源碼包括手機(jī)操作系統(tǒng)源碼,即能夠編譯成在所述廠商手機(jī)上運(yùn)行的手機(jī)Android操作系統(tǒng)的源代碼。所述源代碼包括src,res等子目錄。具體地,在一個(gè)實(shí)施例中,所述Android應(yīng)用程序開(kāi)發(fā)方法包括在源代碼中建立一個(gè)和src文件夾同級(jí)的文件夾,該文件夾可以取名為PAL,并將與隱藏接口相關(guān)的代碼放入到所述適配層文件夾PAL中。所述與隱藏接口相關(guān)的代碼包括在不同系統(tǒng)平臺(tái)上的隱藏接口的實(shí)現(xiàn)代碼,以及實(shí)現(xiàn)同一功能隱藏代碼的各種實(shí)現(xiàn)方式的統(tǒng)一適配接口有關(guān)的適配代碼。所述統(tǒng)一適配接口有關(guān)的代碼能夠?qū)崿F(xiàn)根據(jù)開(kāi)發(fā)的系統(tǒng)平臺(tái)不同而調(diào)用相應(yīng)的隱藏接口實(shí)現(xiàn)。在不同的實(shí)施例中,所述隱藏接口在不同平臺(tái)上的實(shí)現(xiàn)不同,所述實(shí)現(xiàn)不同包括所述隱藏接口的實(shí)現(xiàn)在不同平臺(tái)上屬于不同的類,也可能隱藏接口有所不同,或者隱藏接口實(shí)現(xiàn)的具體代碼不同。對(duì)于在不同平臺(tái)上實(shí)現(xiàn)同一功能的隱藏接口對(duì)應(yīng)著同一個(gè)統(tǒng)一適配接口 ;對(duì)于在不同平臺(tái)上實(shí)現(xiàn)不同功能的隱藏接口對(duì)應(yīng)著不同的統(tǒng)一適配接口。通過(guò)適配層模塊,應(yīng)用程序不直接調(diào)用平臺(tái)的隱藏接口,而是調(diào)用統(tǒng)一適配接口,通過(guò)統(tǒng)一適配接口在調(diào)用運(yùn)行平臺(tái)上的隱藏接口。各種不同功能的所述隱藏接口分別對(duì)應(yīng)不同的統(tǒng)一匹配接口。通過(guò)對(duì)Android標(biāo)準(zhǔn)接口 Android, jar進(jìn)行分析,該包中的所有接口的具體實(shí)現(xiàn)體為:throw new RuntimeExcept1n( “Stub ! ”)。也就是說(shuō),在 Android 開(kāi)發(fā)系統(tǒng)eclipse中進(jìn)行開(kāi)發(fā)時(shí),只檢查該接口是否存在,而不關(guān)心該接口的具體實(shí)現(xiàn)。因此,用戶需要將所述適配模塊上的統(tǒng)一適配接口所屬的類接口中的方法體修改為與Android標(biāo)準(zhǔn)接口相同,即將所述適配模塊上的統(tǒng)一適配接口所屬的類接口中的方法體修改為throw newRuntimeExcept1n( “Stub ! ”)。
[0026]步驟S2,將所述適配層模塊編譯到所述應(yīng)用程序中的具體實(shí)現(xiàn)包括:在Android開(kāi)發(fā)系統(tǒng)中將所述適配層文件夾PAL添加到Android編譯路徑中。此時(shí)Android開(kāi)發(fā)系統(tǒng)開(kāi)發(fā)的調(diào)用了隱藏接口的應(yīng)用程序在編譯時(shí)就不會(huì)報(bào)錯(cuò)。這樣,相當(dāng)于在調(diào)用的framework層和應(yīng)用代碼之間加入了適配層,應(yīng)用程序通過(guò)調(diào)用適配層間接調(diào)用隱藏接口,即應(yīng)用程序調(diào)用適配層的統(tǒng)一適配接口,適配層的統(tǒng)一適配接口再調(diào)用隱藏接口。此時(shí),應(yīng)用程序的調(diào)用關(guān)系如圖2 所不。
[0027]在一個(gè)具體的實(shí)施例中,所述手機(jī)操作系統(tǒng)為高通的平臺(tái),所述手機(jī)具備雙SIM卡功能,所述手機(jī)操作系統(tǒng)的隱藏接口包括對(duì)是否雙SIM卡判斷的接口。所述雙SIM卡接口是高通平臺(tái)的隱藏接口,并不同Android操作系統(tǒng)的公共接口。所述雙SM卡判斷接口isMultiSimEnable O在高通的不同平臺(tái)上也有很大不同。例如,在高通的4.1平臺(tái)上,所述isMultiSimEnable O是放在TelephonyManager類中的。但在在高通的4.3平臺(tái)上,所述isMultiSimEnable O卻是放在MSimTelephonyManager類中的。這樣,開(kāi)發(fā)應(yīng)用在高通的
4.1平臺(tái)上的調(diào)用了隱藏接口 isMultiSimEnable O的應(yīng)用程序則不能在高通的4.3平臺(tái)上運(yùn)行。即出現(xiàn)平臺(tái)的兼容性問(wèn)題。為此,可以在手機(jī)平臺(tái)上增加一個(gè)適配層。具體的實(shí)現(xiàn)包括建立一個(gè)與src文件夾同級(jí)的適配層文件夾PAL,并增加一個(gè)統(tǒng)一的雙SM判斷接口,這個(gè)統(tǒng)一的雙SM判斷接口就屬于一個(gè)統(tǒng)一適配接口。所述統(tǒng)一的雙SM判斷接口可以判斷手機(jī)的平臺(tái),并根據(jù)不同的手機(jī)平臺(tái)確定調(diào)用的平臺(tái)對(duì)應(yīng)的隱藏接口。所述統(tǒng)一的雙SIM判斷接口可以放在FxTelephonemanager類中,并將該代碼放置到適配層PAL文件夾中。為此還需要將所述實(shí)現(xiàn)隱藏接口的相關(guān)代碼,包括在高通的4.1平臺(tái)上的TelephonyManager類以及在高通的4.3平臺(tái)上的MSimTelephonyManager類,復(fù)制到所述適配層PAL文件夾中。將 FxTelephonmanager 和 TelephonyManager 接口 中方法體修改為 throw newRuntimeExcept1n (" Stub !")。同時(shí)在高通的 4.I 平臺(tái)上的 TelephonyManager 類以及在高通的4.3平臺(tái)上的MSimTelephonyManager類編譯的包名路徑必須和源代碼中的包名路徑保持一致。最后,需要在Android開(kāi)發(fā)系統(tǒng)eclipse中將所述適配層文件夾PAL添加到Android編譯路徑j(luò)ava build path中,這樣,Android開(kāi)發(fā)系統(tǒng)eclipse在編譯時(shí)會(huì)將所述適配層文件夾PAL打包到apk中,即對(duì)應(yīng)用程序編譯包括了對(duì)適配層文件夾PAL中的代碼的編譯,并將對(duì)適配層文件夾PAL中的代碼的編譯打包到所述應(yīng)用程序中。
[0028]這時(shí),當(dāng)用戶將所編寫的應(yīng)用程序編譯成應(yīng)用程序安裝包,即apk安裝包,并將所述apk安裝包安裝到相應(yīng)的手機(jī)中后。安裝的應(yīng)用程序會(huì)從手機(jī)中的Android歸檔文件包framework, jar中讀取相關(guān)接口,而該包會(huì)包含Android操作系統(tǒng)源碼中的所有接口,包括隱藏接口。此時(shí),如圖2所示,應(yīng)用程序既可以調(diào)用系統(tǒng)平臺(tái)公共接口,也可以通過(guò)適配層來(lái)調(diào)用隱藏接口,即通過(guò)調(diào)用適配層,適配層再調(diào)用隱藏接口。這樣既保證了開(kāi)發(fā)的系統(tǒng)應(yīng)用所特有的功能的完整,又保證了應(yīng)用的通用性。
[0029]采用本發(fā)明的Android應(yīng)用程序開(kāi)發(fā)方法開(kāi)發(fā)不僅可以在Iinux系統(tǒng)的Android開(kāi)發(fā)系統(tǒng)上針對(duì)具有隱藏接口的手機(jī)系統(tǒng)平臺(tái)進(jìn)行在所述手機(jī)系統(tǒng)平臺(tái)上運(yùn)行的應(yīng)用程序的開(kāi)發(fā),而且可以在windows系統(tǒng)的Android開(kāi)發(fā)系統(tǒng)上開(kāi)發(fā)針對(duì)具有隱藏接口的手機(jī)系統(tǒng)平臺(tái)的應(yīng)用程序。所述Android開(kāi)發(fā)系統(tǒng)包括eclipse。
[0030]本發(fā)明還提供一種Android應(yīng)用程序開(kāi)發(fā)系統(tǒng),所述Android應(yīng)用程序開(kāi)發(fā)系統(tǒng)用于需要調(diào)用隱藏接口的應(yīng)用程序的開(kāi)發(fā),同一功能隱藏接口包括一種或多種實(shí)現(xiàn)方式,所述同一功能隱藏接口的多種實(shí)現(xiàn)方式分別對(duì)應(yīng)于不同的系統(tǒng)平臺(tái),所述Android應(yīng)用程序開(kāi)發(fā)系統(tǒng)包括:在Android應(yīng)用程序開(kāi)發(fā)環(huán)境中增加適配層模塊,配置于所述Android應(yīng)用程序的開(kāi)發(fā)環(huán)境中,所述適配層模塊用于為開(kāi)發(fā)的應(yīng)用程序提供所述同一功能隱藏接口的多種實(shí)現(xiàn)方式的統(tǒng)一適配接口,并在所述應(yīng)用程序調(diào)用所述統(tǒng)一適配接口時(shí),所述適配層模塊根據(jù)所述應(yīng)用程序所運(yùn)行的系統(tǒng)平臺(tái)來(lái)調(diào)用對(duì)應(yīng)的隱藏接口。
[0031]所述Android應(yīng)用程序開(kāi)發(fā)系統(tǒng)應(yīng)用于需要調(diào)用隱藏接口的應(yīng)用程序的開(kāi)發(fā)。同一功能隱藏接口包括一種或多種實(shí)現(xiàn)方式,所述同一功能隱藏接口的多種實(shí)現(xiàn)方式分別對(duì)應(yīng)于不同的系統(tǒng)平臺(tái)。各種不同功能的所述隱藏接口分別對(duì)應(yīng)不同的統(tǒng)一匹配接口。
[0032]在一個(gè)實(shí)施例中,所述手機(jī)操作系統(tǒng)為Android操作系統(tǒng),所述手機(jī)操作系統(tǒng)上的隱藏接口包括與手機(jī)具體硬件密切相關(guān)的功能性接口,包括系統(tǒng)功能和性能上的接口,特別包括Π界面相關(guān)的接口。這些隱藏接口相應(yīng)的實(shí)現(xiàn)代碼通常與手機(jī)的生產(chǎn)廠商對(duì)手機(jī)的定制密切相關(guān),由手機(jī)的生產(chǎn)廠商開(kāi)發(fā)并作為手機(jī)操作系統(tǒng)的隱藏接口提供。這些接口的功能涉及電話、短信、設(shè)置模塊等。由于這些隱藏接口或隱藏接口是由手機(jī)的生產(chǎn)廠家針對(duì)手機(jī)的系統(tǒng)應(yīng)用特有的功能而設(shè)計(jì)的并提供實(shí)現(xiàn)代碼的。所述隱藏接口雖然是公共接口,但并不是開(kāi)放的,它是手機(jī)廠商在Android操作系統(tǒng)的基礎(chǔ)上根據(jù)生產(chǎn)的手機(jī)設(shè)計(jì)的隱藏接口。所述平臺(tái)系統(tǒng)的不同可以包括軟件上的不同,即同一硬件平臺(tái)上的不同軟件版本。所述平臺(tái)系統(tǒng)的不同也可以包括硬件上不同。開(kāi)發(fā)人員在標(biāo)準(zhǔn)軟件開(kāi)發(fā)系統(tǒng)SDK上進(jìn)行開(kāi)發(fā)時(shí)是無(wú)法調(diào)用這些接口的。這些接口有些是針對(duì)系統(tǒng)應(yīng)用特有的功能而設(shè)計(jì),比如關(guān)機(jī)、重啟等功能。有些接口之所以隱藏是由于功能的不完善,不能保證系統(tǒng)升級(jí)后對(duì)該接口的變動(dòng)和兼容。為此Android應(yīng)用程序開(kāi)發(fā)系統(tǒng)在調(diào)用隱藏接口的應(yīng)用代碼和隱藏接口之間,加入一適配層模塊。所述適配層模塊針對(duì)不同的解決方案,不同的Android版本,對(duì)應(yīng)用調(diào)用的隱藏接口進(jìn)行了適配。這樣應(yīng)用程序開(kāi)發(fā)系統(tǒng)在開(kāi)發(fā)應(yīng)用程序時(shí)既保證了應(yīng)用程序所特有的功能的完整,又保證了應(yīng)用程序的通用性。
[0033]應(yīng)用程序開(kāi)發(fā)系統(tǒng)是在Android應(yīng)用程序開(kāi)發(fā)環(huán)境中增加適配層模塊。所述適配層模塊用于為在應(yīng)用程序開(kāi)發(fā)系統(tǒng)上開(kāi)發(fā)的應(yīng)用程序提供所述同一功能隱藏接口的多種實(shí)現(xiàn)方式的統(tǒng)一適配接口,在所述應(yīng)用程序調(diào)用所述統(tǒng)一適配接口時(shí),所述適配層根據(jù)所述應(yīng)用程序所運(yùn)行的系統(tǒng)平臺(tái)調(diào)用對(duì)應(yīng)的隱藏接口實(shí)現(xiàn)方式。具體地,在Android應(yīng)用程序開(kāi)發(fā)系統(tǒng)中增加適配層模塊的具體實(shí)現(xiàn)包括在Android操作系統(tǒng)源碼中建立一個(gè)與src文件夾同級(jí)的適配層文件夾,所述適配層相關(guān)代碼添加到所述適配層文件夾中,并將所述適配層文件夾添加到所述Android開(kāi)發(fā)系統(tǒng)的編譯路徑中。并且,在Android開(kāi)發(fā)系統(tǒng)中還需要將所述適配層文件夾PAL添加到Android編譯路徑中。所述Android操作系統(tǒng)源碼包括手機(jī)操作系統(tǒng)源碼,即能夠編譯成在所述廠商手機(jī)上運(yùn)行的手機(jī)Android操作系統(tǒng)的源代碼。所述源代碼包括src,res等子目錄。具體地,在一個(gè)實(shí)施例中,所述Android應(yīng)用程序開(kāi)發(fā)方法包括在源代碼中建立一個(gè)和src文件夾同級(jí)的文件夾,該文件夾可以取名為PAL,并將與隱藏接口相關(guān)的代碼放入到所述適配層文件夾PAL中。所述與隱藏接口相關(guān)的代碼包括在不同系統(tǒng)平臺(tái)上的隱藏接口的實(shí)現(xiàn)代碼,以及實(shí)現(xiàn)同一功能隱藏代碼的各種實(shí)現(xiàn)方式的統(tǒng)一適配接口有關(guān)的適配代碼。所述統(tǒng)一適配接口有關(guān)的代碼能夠?qū)崿F(xiàn)根據(jù)開(kāi)發(fā)的系統(tǒng)平臺(tái)不同而調(diào)用相應(yīng)的隱藏接口實(shí)現(xiàn)。在不同的實(shí)施例中,所述隱藏接口在不同平臺(tái)上的實(shí)現(xiàn)不同,所述實(shí)現(xiàn)不同包括所述隱藏接口的實(shí)現(xiàn)在不同平臺(tái)上屬于不同的類,也可能隱藏接口有所不同,或者隱藏接口實(shí)現(xiàn)的具體代碼不同。對(duì)于在不同平臺(tái)上實(shí)現(xiàn)同一功能的隱藏接口對(duì)應(yīng)著同一個(gè)統(tǒng)一適配接口 ;對(duì)于在不同平臺(tái)上實(shí)現(xiàn)不同功能的隱藏接口對(duì)應(yīng)著不同的統(tǒng)一適配接口。通過(guò)適配層模塊,應(yīng)用程序不直接調(diào)用平臺(tái)的隱藏接口,而是調(diào)用統(tǒng)一適配接口,通過(guò)統(tǒng)一適配接口在調(diào)用運(yùn)行平臺(tái)上的隱藏接口。各種不同功能的所述隱藏接口分別對(duì)應(yīng)不同的統(tǒng)一匹配接口。通過(guò)對(duì)Android標(biāo)準(zhǔn)接口 Android, jar進(jìn)行分析,該包中的所有接口的具體實(shí)現(xiàn)體為:throw new RuntimeExcept1n( “Stub ! ”)。也就是說(shuō),在Android開(kāi)發(fā)系統(tǒng)eclipse中進(jìn)行開(kāi)發(fā)時(shí),只檢查該接口是否存在,而不關(guān)心該接口的具體實(shí)現(xiàn)。因此,用戶需要將所述適配模塊上的統(tǒng)一適配接口所屬的類接口中的方法體修改為與Android標(biāo)準(zhǔn)接口相同,即將所述適配模塊上的統(tǒng)一適配接口所屬的類接口中的方法體修改為 throw new RuntimeExcept1n( “Stub ! ”)。
[0034]由于在Android應(yīng)用程序開(kāi)發(fā)系統(tǒng)中將所述適配層文件夾PAL添加到Android編譯路徑中。此時(shí)Android應(yīng)用程序開(kāi)發(fā)系統(tǒng)開(kāi)發(fā)的調(diào)用了隱藏接口的應(yīng)用程序在編譯時(shí)就不會(huì)報(bào)錯(cuò)。這樣Android應(yīng)用程序開(kāi)發(fā)系統(tǒng)提供的隱藏接口調(diào)用為:通過(guò)調(diào)用適配層模塊間接調(diào)用隱藏接口,即應(yīng)用程序代碼調(diào)用適配層模塊的統(tǒng)一適配接口,適配層模塊的統(tǒng)一適配接口再調(diào)用隱藏接口。此時(shí),Android應(yīng)用程序開(kāi)發(fā)系統(tǒng)提供的應(yīng)用程序接口調(diào)用關(guān)系如圖2所示。
[0035]綜上所述,本發(fā)明的一種Android應(yīng)用程序開(kāi)發(fā)方法及系統(tǒng)可以使開(kāi)發(fā)人員在windows系統(tǒng)下使用軟件開(kāi)發(fā)系統(tǒng)對(duì)具有隱藏接口的手機(jī)系統(tǒng)平臺(tái)進(jìn)行應(yīng)用程序開(kāi)發(fā),不僅保證了在windows系統(tǒng)下使用Android開(kāi)發(fā)系統(tǒng)的正常編譯,而且能夠在windows系統(tǒng)下對(duì)所生成的應(yīng)用程序安裝包進(jìn)行調(diào)試驗(yàn)證,并且很好的保證了開(kāi)發(fā)的應(yīng)用程序的兼容性。所以,本發(fā)明有效克服了現(xiàn)有技術(shù)中的種種缺點(diǎn)而具高度產(chǎn)業(yè)利用價(jià)值。
[0036]上述實(shí)施例僅例示性說(shuō)明本發(fā)明的原理及其功效,而非用于限制本發(fā)明。任何熟悉此技術(shù)的人士皆可在不違背本發(fā)明的精神及范疇下,對(duì)上述實(shí)施例進(jìn)行修飾或改變。因此,舉凡所屬【技術(shù)領(lǐng)域】中具有通常知識(shí)者在未脫離本發(fā)明所揭示的精神與技術(shù)思想下所完成的一切等效修飾或改變,仍應(yīng)由本發(fā)明的權(quán)利要求所涵蓋。
【權(quán)利要求】
1.一種Android應(yīng)用程序開(kāi)發(fā)方法,應(yīng)用于需要調(diào)用隱藏接口的應(yīng)用程序的開(kāi)發(fā),同一功能隱藏接口包括一種或多種實(shí)現(xiàn)方式,所述同一功能隱藏接口的多種實(shí)現(xiàn)方式分別對(duì)應(yīng)于不同的系統(tǒng)平臺(tái),其特征在于,所述Android應(yīng)用程序開(kāi)發(fā)方法包括: 在Android應(yīng)用程序開(kāi)發(fā)環(huán)境中增加適配層模塊,所述適配層模塊用于為所開(kāi)發(fā)的應(yīng)用程序提供所述同一功能隱藏接口的多種實(shí)現(xiàn)方式的統(tǒng)一適配接口,在所述應(yīng)用程序調(diào)用所述統(tǒng)一適配接口時(shí),所述適配層模塊根據(jù)所述應(yīng)用程序所運(yùn)行的系統(tǒng)平臺(tái)來(lái)調(diào)用對(duì)應(yīng)的隱藏接口 ; 將所述適配層模塊編譯到所述應(yīng)用程序中。
2.根據(jù)權(quán)利要求1所述的Android應(yīng)用程序開(kāi)發(fā)方法,其特征在于:所述Android應(yīng)用程序開(kāi)發(fā)方法應(yīng)用于windows系統(tǒng)中。
3.根據(jù)權(quán)利要求1所述的Android應(yīng)用程序開(kāi)發(fā)方法,其特征在于:所述Android應(yīng)用程序開(kāi)發(fā)環(huán)境包括eclipse。
4.根據(jù)權(quán)利要求1或3所述的Android應(yīng)用程序開(kāi)發(fā)方法,其特征在于:所述Android應(yīng)用程序開(kāi)發(fā)方法包括將所述統(tǒng)一適配接口中的實(shí)現(xiàn)體修改為與Android標(biāo)準(zhǔn)接口的實(shí)現(xiàn)體一致。
5.根據(jù)權(quán)利要求1所述的Android應(yīng)用程序開(kāi)發(fā)方法,其特征在于:所述Android應(yīng)用程序開(kāi)發(fā)方法包括在源碼中建立一個(gè)與src文件夾同級(jí)的適配層文件夾,將適配層相關(guān)代碼添加到所述適配層文件夾中,并將所述適配層文件夾添加到所述Android開(kāi)發(fā)系統(tǒng)的編譯路徑中。
6.根據(jù)權(quán)利要求5所述的Android應(yīng)用程序開(kāi)發(fā)方法,其特征在于:所述Android應(yīng)用程序開(kāi)發(fā)方法中所述編譯路徑包括Android build path。
7.根據(jù)權(quán)利要求5所述的Android應(yīng)用程序開(kāi)發(fā)方法,其特征在于:所述Android應(yīng)用程序開(kāi)發(fā)方法中,所述適配層相關(guān)代碼包括用于實(shí)現(xiàn)以下功能的代碼:根據(jù)所述應(yīng)用程序運(yùn)行的系統(tǒng)平臺(tái),調(diào)用對(duì)應(yīng)的隱藏接口實(shí)現(xiàn)。
8.根據(jù)權(quán)利要求5所述的Android應(yīng)用程序開(kāi)發(fā)方法,其特征在于:所述Android應(yīng)用程序開(kāi)發(fā)方法包括,將所述不同系統(tǒng)平臺(tái)的隱藏接口相關(guān)代碼復(fù)制到所述適配層文件夾。
9.根據(jù)權(quán)利要求1所述的Android應(yīng)用程序開(kāi)發(fā)方法,其特征在于:各種不同功能的所述隱藏接口分別對(duì)應(yīng)不同的統(tǒng)一匹配接口。
10.一種Android應(yīng)用程序開(kāi)發(fā)系統(tǒng),用于需要調(diào)用隱藏接口的應(yīng)用程序的開(kāi)發(fā),同一功能隱藏接口包括一種或多種實(shí)現(xiàn)方式,所述同一功能隱藏接口的多種實(shí)現(xiàn)方式分別對(duì)應(yīng)于不同的系統(tǒng)平臺(tái),其特征在于:所述Android應(yīng)用程序開(kāi)發(fā)系統(tǒng)包括: 增加適配層模塊,配置于所述Android應(yīng)用程序的開(kāi)發(fā)環(huán)境中,用于為開(kāi)發(fā)的應(yīng)用程序提供所述同一功能隱藏接口的多種實(shí)現(xiàn)方式的統(tǒng)一適配接口,并在所述應(yīng)用程序調(diào)用所述統(tǒng)一適配接口時(shí)根據(jù)所述應(yīng)用程序所運(yùn)行的系統(tǒng)平臺(tái)來(lái)調(diào)用對(duì)應(yīng)的隱藏接口。
【文檔編號(hào)】G06F9/44GK104035778SQ201410294221
【公開(kāi)日】2014年9月10日 申請(qǐng)日期:2014年6月26日 優(yōu)先權(quán)日:2014年6月26日
【發(fā)明者】王磊 申請(qǐng)人:上海斐訊數(shù)據(jù)通信技術(shù)有限公司