一種啟動組件的界面的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機(jī)通信技術(shù),尤其涉及一種啟動組件的界面(Activity)的方法及裝置。
【背景技術(shù)】
[0002]目前,安卓(Android)操作系統(tǒng)以其操作簡單且方便快捷的特性,越來越為用戶所接受,已普遍應(yīng)用于用戶的工作以及生活中。
[0003]組件是用于構(gòu)造操作應(yīng)用系統(tǒng)的可復(fù)用的實現(xiàn)某一特定功能的模塊,具有特定的功能和自主能力,按一定的接口規(guī)范實現(xiàn)互操作。其中,一 Android應(yīng)用程序由多個組件組成,每一組件實現(xiàn)特定的功能,例如,有的組件可以作為Android操作系統(tǒng)進(jìn)入應(yīng)用程序的入口點,各組件協(xié)同合作,共同組成一個完整的應(yīng)用程序。實際應(yīng)用中,組件可以單獨地開發(fā)和測試,各組件之間通過接口進(jìn)行交互,實現(xiàn)信息的傳遞和互操作。組件化技術(shù)是為了將應(yīng)用程序模塊化,使得每一組件可作為分離的編譯單元建立并得到再利用,可以簡化應(yīng)用程序的開發(fā)。當(dāng)Android操作系統(tǒng)啟動一組件,會啟動該組件所屬的應(yīng)用程序的進(jìn)程,并實例化組件所需要的類。舉例來說,當(dāng)啟動拍照(組件)的Activity時,會啟動拍照應(yīng)用程序(拍照組件所屬的應(yīng)用程序為拍照應(yīng)用程序)的進(jìn)程。每一應(yīng)用程序(applicat1n)都會擁有一 applicat1n類,當(dāng)應(yīng)用程序啟動(實際為組件啟動)時,Android操作系統(tǒng)就會觸發(fā)該應(yīng)用程序中的applicat1n類的方法。實際開發(fā)中,程序員可以在該applicat1n類中加入需要的邏輯,例如,加入一些服務(wù)的初始化邏輯,以對該applicat1n類實例進(jìn)行初始化。
[0004]由上述可見,通過觸發(fā)該組件對應(yīng)的應(yīng)用程序中的applicat1n類的方法,只能在該applicat1n類的方法中加入應(yīng)用程序需要的邏輯,使得組件中需要加入的邏輯需與應(yīng)用程序的applicat1n類的方法中加入的邏輯相同,導(dǎo)致使用和維護(hù)組件的代價較大,組件開發(fā)效率較低。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本發(fā)明實施例提供一種啟動組件的界面的方法及裝置,解決使用和維護(hù)組件代價較高以及組件開發(fā)效率較低的技術(shù)問題。
[0006]為達(dá)到上述目的,本發(fā)明的實施例采用如下技術(shù)方案:
[0007]—方面,本發(fā)明實施例提供一種啟動組件的界面的方法,包括:
[0008]在應(yīng)用程序的界面被創(chuàng)建之前,獲取所述界面的實例調(diào)用的所述應(yīng)用程序的應(yīng)用程序類的邏輯;
[0009]將所述應(yīng)用程序的應(yīng)用程序類中的第一變量替換為第二變量,所述第一變量包括所述應(yīng)用程序的應(yīng)用程序類的系統(tǒng)調(diào)用方法,所述第二變量包括所述組件的應(yīng)用程序類的啟動方法;
[0010]使用所述組件的應(yīng)用程序類的啟動方法啟動所述組件的應(yīng)用程序類。
[0011]本發(fā)明實施例提供的啟動組件的界面的方法,在應(yīng)用程序的界面被創(chuàng)建之前,獲取所述界面的實例調(diào)用的所述應(yīng)用程序的應(yīng)用程序類的邏輯,將所述應(yīng)用程序的應(yīng)用程序類中的第一變量替換為第二變量,所述第一變量包括所述應(yīng)用程序的應(yīng)用程序類的系統(tǒng)調(diào)用方法,所述第二變量包括所述組件的應(yīng)用程序類的啟動方法,從而實現(xiàn)在組件中加入applicat1n類,并實現(xiàn)在組件的啟動階段中加入需要的邏輯代碼,減少程序員使用和維護(hù)組件的代價,有效提升組件開發(fā)效率。
[0012]另一方面,本發(fā)明實施例提供一種啟動組件的界面的裝置,包括:監(jiān)測處理模塊、變量替換模塊以及實例調(diào)用模塊,其中,
[0013]監(jiān)測處理模塊,用于在應(yīng)用程序的界面被創(chuàng)建之前,獲取所述界面的實例調(diào)用的所述應(yīng)用程序的應(yīng)用程序類的邏輯;
[0014]變量替換模塊,將所述應(yīng)用程序的應(yīng)用程序類中的第一變量替換為第二變量,所述第一變量包括所述應(yīng)用程序的應(yīng)用程序類的系統(tǒng)調(diào)用方法,所述第二變量包括所述組件的應(yīng)用程序類的啟動方法;
[0015]實例調(diào)用模塊,使用所述組件的應(yīng)用程序類的啟動方法啟動所述組件的應(yīng)用程序類。
[0016]本發(fā)明實施例提供的啟動組件的界面的裝置,監(jiān)測處理模塊在應(yīng)用程序的界面被創(chuàng)建之前,獲取所述界面的實例調(diào)用的所述應(yīng)用程序的應(yīng)用程序類的邏輯,變量替換模塊將所述應(yīng)用程序的應(yīng)用程序類中的第一變量替換為第二變量,所述第一變量包括所述應(yīng)用程序的應(yīng)用程序類的系統(tǒng)調(diào)用方法,所述第二變量包括所述組件的應(yīng)用程序類的啟動方法,實例調(diào)用模塊使用所述組件的應(yīng)用程序類的啟動方法啟動所述組件的應(yīng)用程序類。從而實現(xiàn)在組件中加入applicat1n類,并實現(xiàn)在組件的啟動階段中加入需要的邏輯代碼,減少程序員使用和維護(hù)組件的代價,有效提升組件開發(fā)效率。
【附圖說明】
[0017]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
[0018]圖1為本發(fā)明實施例啟動組件的界面的方法總體流程示意圖;
[0019]圖2為本發(fā)明實施例啟動組件的界面的方法具體流程示意圖;
[0020]圖3為本發(fā)明實施例啟動組件的界面的裝置結(jié)構(gòu)示意圖;
[0021]圖4為本發(fā)明實施例啟動組件的界面的裝置另一結(jié)構(gòu)示意圖。
【具體實施方式】
[0022]下面結(jié)合附圖對本發(fā)明實施例進(jìn)行詳細(xì)描述。
[0023]應(yīng)當(dāng)明確,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護(hù)的范圍。
[0024]圖1為本發(fā)明實施例啟動組件的界面的方法總體流程示意圖。參見圖1,該流程包括:
[0025]步驟01,在應(yīng)用程序的界面被創(chuàng)建之前,獲取所述界面的實例調(diào)用的所述應(yīng)用程序的應(yīng)用程序類的邏輯;
[0026]步驟02,將所述應(yīng)用程序的應(yīng)用程序類中的第一變量替換為第二變量,所述第一變量包括所述應(yīng)用程序的應(yīng)用程序類的系統(tǒng)調(diào)用方法,所述第二變量包括所述組件的應(yīng)用程序類的啟動方法;
[0027]步驟03,使用所述組件的應(yīng)用程序類的啟動方法啟動所述組件的應(yīng)用程序類。
[0028]其中,所述將所述應(yīng)用程序的應(yīng)用類中的第一變量替換為第二變量包括:
[0029]確定當(dāng)前啟動的界面為第一次啟動的組件的界面,利用反射機(jī)制,將程序類中的第一變量替換為所述組件的界面的類名表示的第二變量,并設(shè)置所述組件的界面的類名表示的第二變量的父類與所述第一變量相同。
[0030]較佳地,所述第一變量位于第一主線程(mMainThread)變量中,所述第一主線程變量位于第一包信息(mPackagelnfo)變量中,所述第一包信息變量位于第一基礎(chǔ)變量(mBase)中,所述第一基礎(chǔ)變量位于所述應(yīng)用程序類中。
[0031]作為一可選實施例,所述使用所述組件的應(yīng)用程序類的啟動方法啟動所述組件的應(yīng)用程序類包括:
[0032]調(diào)用所述應(yīng)用程序的界面線程(ActivityThread)實例,并使所述界面線程實例通過所述組件的界面的類名表示的第二變量中的方法調(diào)用所述組件的界面的方法,啟動所述組件的應(yīng)用程序類。
[0033]在組件的界面切換至應(yīng)用程序的界面時,調(diào)用所述組件的界面的類名表示的第二變量的方法,利用JAVA反射機(jī)制,將置空的應(yīng)用程序的第三變量(mApplicat1n)替換為保存的所述應(yīng)用程序類中的第一變量(mlnstrumentat1n),所述第三變量為一空的所述應(yīng)用程序的應(yīng)用程序類的系統(tǒng)調(diào)用方法。
[0034]本發(fā)明實施例中,所述利用反射機(jī)制,將程序類中的第一變量替換為所述組件的界面的類名表示的第二變量包括:
[0035]利用JAVA反射機(jī)制,將應(yīng)用程序的應(yīng)用程序類中的第三變量置空;
[0036]當(dāng)前啟動的界面檢查所述第三變量是否置空,如果置空,創(chuàng)建一新應(yīng)用程序類;
[0037]將新應(yīng)用程序類中的第一變量替換為所述組件的界面的類名表示的變量;
[0038]關(guān)聯(lián)當(dāng)前的組件的界面與新應(yīng)用程序類。
[0039]實際應(yīng)用中,所述方法進(jìn)一步包括:
[0040]在所述新應(yīng)用程序類中,重寫所述應(yīng)用程序的界面線程實例的方法,并在重寫的方法中加入預(yù)先設(shè)置的組件邏輯。
[0041]圖2為本發(fā)明實施例啟動組件的界面的方法具體流程示意圖。參見圖2,該方法包括:
[0042]步驟101,在監(jiān)測到 ActivityThread 實例調(diào)用 performLaunchActivity 方法創(chuàng)建applicat1n類的邏輯后,判斷當(dāng)前待啟動的Activity是否為第一次啟動的組件的Activity,所述ActivityThread實例為應(yīng)用程序接收到Android操作系統(tǒng)的通知后生成的;
[0043]本步驟中,應(yīng)用程序在啟動Activity時,不管是應(yīng)用程序的Activity還是組件的Activity,Andr