一種實現(xiàn)應用程序靜默安裝的方法及手持設備的制造方法
【技術領域】
[0001]本發(fā)明涉及領域,尤其涉及一種實現(xiàn)應用程序靜默安裝的方法及手持設備。
【背景技術】
[0002]在手持設備(例如基于android系統(tǒng)的RFID手持設備)中,當文件系統(tǒng)被破壞時,系統(tǒng)便無法正常運行,此時通常需要讓系統(tǒng)恢復出廠設置,但是,恢復出廠設置之后手持設備上安裝的應用程序便會丟失,用戶若需要再使用這些應用程序,只能將其進行手動安裝,這樣給用戶帶來很大麻煩,體驗感極差。
【發(fā)明內(nèi)容】
[0003]本發(fā)明要解決的技術問題在于,針對現(xiàn)有技術的上述用戶體驗差的缺陷,提供一種用戶體驗好的實現(xiàn)應用程序靜默安裝的方法及手持設備。
[0004]本發(fā)明解決其技術問題所采用的技術方案是:構造一種實現(xiàn)應用程序靜默安裝的方法,包括:
[0005]S1.手持設備在判斷恢復出廠設備時,判斷是否連接有外部存儲設備;
[0006]S2.在連接有外部存儲設備時,判斷所述外部存儲設備中是否存儲有應用程序的安裝包及腳本文件,所述腳本文件用于實現(xiàn)所述應用程序的靜默安裝;
[0007]S3.在存儲有應用程序的安裝包及腳本文件時,執(zhí)行所述腳本文件,以對所述應用程序進行靜默安裝。
[0008]在本發(fā)明所述的實現(xiàn)應用程序靜默安裝的方法中,所述手持設備為基于安卓系統(tǒng)的手持設備,所述外部存儲設備為SD卡。
[0009]在本發(fā)明所述的實現(xiàn)應用程序靜默安裝的方法中,所述步驟S3包括:
[0010]S31.對所述應用程序的安裝包進行處理;
[0011]S32.對處理后的安裝包進行解析;
[0012]S33.對解析后的安裝包進行安裝。
[0013]在本發(fā)明所述的實現(xiàn)應用程序靜默安裝的方法中,在所述步驟SI中,判斷是否連接有外部存儲設備的步驟包括:
[0014]Sll.內(nèi)核底層自動檢測并加載驅(qū)動,并在判斷有外部存儲設備時給系統(tǒng)層發(fā)送相應的事件消息;
[0015]S12.系統(tǒng)層在偵測到內(nèi)核底層發(fā)送相應的事件消息時產(chǎn)生相應的/mnt/sdcard節(jié)點;
[0016]S13.判斷是否存在/mnt/sdcard節(jié)點。
[0017]在本發(fā)明所述的實現(xiàn)應用程序靜默安裝的方法中,在所述步驟S I中,通過標志位判斷是否恢復出廠設置。
[0018]本發(fā)明還構造一種實現(xiàn)應用程序靜默安裝的手持設備,包括:
[0019]第一判斷模塊,用于在判斷手持設備恢復出廠設備時,判斷是否連接有外部存儲設備;
[0020]第二判斷模塊,用于在連接有外部存儲設備時,判斷所述外部存儲設備中是否存儲有應用程序的安裝包及腳本文件,所述腳本文件用于實現(xiàn)所述應用程序的靜默安裝;
[0021]執(zhí)行模塊,用于在存儲有應用程序的安裝包及腳本文件時,執(zhí)行所述腳本文件,以對所述應用程序進行靜默安裝。
[0022]在本發(fā)明所述的實現(xiàn)應用程序靜默安裝的手持設備中,所述手持設備為基于安卓系統(tǒng)的手持設備,所述外部存儲設備為SD卡。
[0023]在本發(fā)明所述的實現(xiàn)應用程序靜默安裝的手持設備中,所述執(zhí)行模塊包括:
[0024]處理單元,對所述應用程序的安裝包進行處理;
[0025]解析單元,用于對處理后的安裝包進行解析;
[0026]安裝單元,用于對解析后的安裝包進行安裝。
[0027]在本發(fā)明所述的實現(xiàn)應用程序靜默安裝的手持設備中,所述第一判斷模塊包括:
[0028]內(nèi)核底層檢測單元,用于自動檢測并加載驅(qū)動,并在判斷有外部存儲設備時給系統(tǒng)層發(fā)送相應的事件消息;
[0029]系統(tǒng)層偵測單元,用于在偵測到內(nèi)核底層發(fā)送相應的事件消息時產(chǎn)生相應的/mnt/sdcard 節(jié)點;
[0030]節(jié)點判斷單元,用于判斷是否存在/mnt/sdcard節(jié)點。
[0031]在本發(fā)明所述的實現(xiàn)應用程序靜默安裝的手持設備中,所述第一判斷模塊,用于通過標志位判斷是否恢復出廠設置。
[0032]實施本發(fā)明的技術方案,預先將應用程序的安裝包和腳本文件存入外部存儲設備中。在手持設備因系統(tǒng)無法正常運行而需要恢復出廠設置時,可將外部存儲設備連接至該手持設備,手持設備的系統(tǒng)可從該外部存儲設備中安裝應用程序,而且,由于采用的是靜默安裝方式,所以安裝時不會提示讓用戶確認是否安裝。這樣,即使手持設備恢復出廠設置,也無需用戶手動安裝應用程序,因此提高了用戶體驗。
【附圖說明】
[0033]下面將結合附圖及實施例對本發(fā)明作進一步說明,附圖中:
[0034]圖1是本發(fā)明實現(xiàn)應用程序靜默安裝的方法實施例一的流程圖;
[0035]圖2是圖1中步驟SI優(yōu)選實施例的流程圖;
[0036]圖3是圖1中步驟S3優(yōu)選實施例的流程圖;
[0037]圖4是本發(fā)明實現(xiàn)應用程序靜默安裝的手持設備實施例一的邏輯圖。
【具體實施方式】
[0038]圖1是本發(fā)明實現(xiàn)應用程序靜默安裝的方法實施例一的流程圖,該實施例的應用程序靜默安裝的方法包括以下步驟:
[0039]S1.手持設備在判斷恢復出廠設備時,判斷是否連接有外部存儲設備,若是,則執(zhí)行步驟S2;若否,則執(zhí)行步驟S4。在該步驟中,外部存儲設備例如為SD卡或U盤。另外,可通過標志位判斷是否恢復出廠設置,例如,如果標志位為1,表示系統(tǒng)沒有恢復出廠設置,則正常進入系統(tǒng)的主界面。如果標志位為0,表示系統(tǒng)已經(jīng)恢復出廠設置了 ;
[0040]S2.判斷所述外部存儲設備中是否存儲有應用程序的安裝包及腳本文件,所述腳本文件用于實現(xiàn)所述應用程序的靜默安裝,若是,則執(zhí)行步驟S3 ;若否,則執(zhí)行步驟S4 ;
[0041]S3.執(zhí)行所述腳本文件,以對所述應用程序進行靜默安裝;
[0042]S4.回到主界面。
[0043]通過實施該實施例的技術方案,預先將應用程序的安裝包和腳本文件存入外部存儲設備中。當手持設備的系統(tǒng)無法正常運行需要恢復出廠設置時,手持設備的系統(tǒng)可從該外部存儲設備中安裝應用程序,外部存儲設備例如SD卡或U盤,而且,由于采用的是靜默安裝方式,所以安裝時不會提示讓用戶確認是否安裝。這樣,即使手持設備恢復出廠設置了,也無需用戶手動安裝應用程序,因此提高了用戶體驗。
[0044]在此說明的是,在以下的實施例中,手持設備為基于安卓(Android)系統(tǒng)的手持設備,而且,外部存儲設備為SD卡。當然,在其它實施例中,手持設備也可為基于其它系統(tǒng)的手持設備,外部存儲設備還可為U盤等。
[0045]而且,腳本文件是文本文件,用戶可使用任一文本編輯器來創(chuàng)建腳本文件。腳本是批處理文件的延伸,是一種純文本保存的程序,可以將不同的命令組合起來,并按確定的順序自動連續(xù)地執(zhí)行,實現(xiàn)一定的邏輯分支等。執(zhí)行腳本文件是依托Runtime類,它是一個與JVM運行時環(huán)境有關的類,Runtime.getRuntime O可以取得當前JVM的運行時環(huán)境,Runtime中的exit方法是退出當前JVM的方法。
[0046]在本發(fā)明的實施例中,所編寫的AutoRun.sh腳本文件的內(nèi)容為:pminstall-r/mnt/sdcard/*.apk,其中,/mnt/sdcard/是SD卡插入手持設備后,在系統(tǒng)上掛載(mount)起來的路徑;pminstall-r是靜默安裝應用程序。也就是說,在對應用程序進行靜默安裝前,需要先確定掛載SD卡的路徑,即確定/mnt/sdcard節(jié)點。
[0047]結合圖2,在圖1所示實施例的步驟SI中,判斷是否連接有外部存儲設備的步驟具體包括:
[0048]Sll.內(nèi)核底層自動檢測并加載驅(qū)動,并在判斷有外部存儲設備時給系統(tǒng)層發(fā)送相應的事件消息;
[0049]S12.系統(tǒng)層在偵測到內(nèi)核底層發(fā)送相應的事件消息時產(chǎn)生相應的/mnt/sdcard節(jié)點;
[0050]S13.判斷是否存在/mnt/sdcard節(jié)點,若是,則說明該手持設備插入有SD卡,執(zhí)行步驟S2 ;若否,則說明該手持設備并沒有插入SD卡,執(zhí)行步驟S4。
[0051]在該實施例的步驟Sll中,當有新的設備SD卡插入時,內(nèi)核底層(kernel)將自動檢測并加載對應的驅(qū)動,同時內(nèi)核底層中的sysfs機制會在有新的驅(qū)動加載時給系統(tǒng)層發(fā)送相應的事件(event)消息。
[0052]在該實施例的步驟S12中,系統(tǒng)層會經(jīng)歷以下幾個步驟:在NetlinkManager中,通過引用NetlinkHandler類中的onEvent O方法來接收來自內(nèi)核底層的事件消息,經(jīng)過NetlinkManager處理過后的事件消息會分為五種,分別是:block、switch、usb_composite N battery N power_supp Iy,其中,SD 卡掛載的事件是 block。在 VolumeManager 中,接收經(jīng)過NetlinkManager處理過后的事件消息。在DirectVolume中,主要負責對傳入的事件進行進一步的處