你可以去你手機卡上看到這個PlugCardDB文件,親自對比一下。不過如果你還是新手還不會telnet的話,那樣也沒關系。大容量模式連接電腦,可以在卡那個盤符,路徑為.system/java/下找到PlugCardDB文件。
下面我們列表詳細說明下這個配置文件的主要內容。
AppLinkCount = 100000001 安裝的程序最大序號 AppLinkRecord100000001,uid = 100000001 應用程序的安裝序號,不重復即可。
Directory 應用程序所在路徑。
BigIcon = loader.gif,Icon = loader_sm.gif
應用程序顯示在菜單上的大圖標和小圖標。
Exec 所執行的應用程序或腳本
JavaId 如果是Java程序 則為正值,否則為-1
Group =5 前4個是手機系統的Group,5,6是自定一,自定二
Position,AllPosition 顯示在菜單上的順序
Name 應用程序名稱
Type 內容很重要,下面詳細說明。
系統指定Java程序Type=5,其他應用程序Type=2。(你也可以設為0,3,4,6至于效果可以自行嘗試。)這里需要著重說明的是,Type=2時Directory的路徑需要回退到頂級目錄,前面須要加../../../../,因為兩個DB文件都是在四級目錄以下,否則系統不能識別。這里還有個著名的問題,就是當Type=2時,系統不管配置信息如何,菜單全部顯示“應用名稱”!讓人比較郁悶。這問題雖然可以通過刷機解決,然而卻是沒有太大意義,因為就裝MPKG的本身而言,其實也沒什么必要。(后面會詳細說明)
C.Loader小結
讀到這里,我們可以得出清晰的結論:所謂Loader的安裝過程,只是把loader這個文件夾復制到手機的某個目錄,同時覆蓋掉InstallDB(手機版)或者PlugCardDB(卡版)文件,即把這個目錄程序的配置信息加到DB文件中。
所以在安裝后,自己安裝的JAVA軟件肯定不在了,在InstallDB或者PlugCardDB已經有了那些軟件的配置信息了。
Loader根本沒有必要裝在手機上!可以完全拋棄mtf安裝的方法,直接復制Loader文件夾至卡的任一路徑。(記住要是標準路徑,不是你大容量的路徑。配好telnet,或者裝個Qonsole一下就清楚了。)在PlugCardDB文件中手工加入配置信息即可。
D.Loader是什么
那么我們為什么要裝Loader,他有什么用。UltraEdit打開loader.lin文件看下。
熟悉Linux的一看就知道,太簡單了!只是普通的一個Shell腳本,而起作用的就是exec這句話。比如用test.sh用Loader關聯打開,系統Shell啟動Loader,執行到exec時,就相當于exec test.sh。(如果不明白可以查看下Linux下相關Shell的腳本介紹。)
按理來說,在Linux在執行這種腳本是天經地義的事,只不過在E680g圖形化界面下是不能直接運行的。
那怎么辦?下面通過自定義Loader例子說明。
你隨便寫個腳本test.sh如下:
#!/bin/bash
cd /usr/SYSqtapp/mystuff
./mystuff
這個是啟動系統收藏夾的命令。再寫個test.load腳本:
#!/bin/bash
exec "$2" &
在卡上建個文件夾如/mmc/mcal1/test,把test.sh,test.load兩個腳本復制過去,先在手機上點擊test.sh,肯定會顯示找不到可執行的程序,這時在PlugCardDB配置信息加上如下內容:
[AppLinkRecord100000001]
AllPosition =
BigIcon =
Directory = ../../../../mmc/mmca1/test
Exec = test.load
Group =
Icon =
InstalledDate =
JavaId = -1
Mime =
MpkgFile =
Name =
OsVersion =
Position =
Rotation =
Shared = 0
Size =
Type = 2
uid = 100000001
(注:依情況更改AppLinkCount和AppLinkRecord,上面配置略去了很多次要內容,只保留必要的。)
保存后,更改下菜單的順序,會發現有個感嘆號的應用程序,不用管他,那是因為我們沒有指定菜單的圖標!這時選擇test.sh,然后用那個感嘆號的應用程序打開,就會發現成功打開了收藏夾!我們自已的Loader也成功了!
看到這里,Loader的本質想必應該十分清楚了吧。
五、結束
理解的本文的Loader,再講MPKG,就簡單多了。下一篇主要分析MPKG的相關軟件。