鈦極OS應用管理中心
TiJOS通過應用管理中心爲用戶提供了應用管理功能,包括應用安裝,刪除,運行等等,用戶可根據實際應用的需要通過不同方式,進行應用的OTA升級,TiJOS提供的應用管理功能具有安裝升級失敗自動回滾特性,保證用戶應用不會被損壞。
TiJOS自帶的終端可以滿足大部分應用管理需求,應用管理中心一般用於用戶實現自定義的OTA功能, 如通過無線WIFI、NB-IoT、藍牙、GPRS等等方式進行遠程應用安裝升級,也可以通過UART、USB等等方式進行有線應用安裝升級。
鈦極OS(TiJOS)系統的強大之處是支持多應用,應用程序之間可以相互調用,同時支持帶參數啓動;用戶可以將具備不同功能的應用都下載到設備中,根據需要啓動不同應用程序。
應用管理的Java包
tijos.framework.appcenter
包含類如下:
類名 | 說明 |
TiAPP | TiJOS 應用類 |
TiAPPManager | 應用管理類 |
TiAPP
應用,主要方法如下:
方法 | 說明 |
int getId( ) | 獲取應用ID |
String getName( ) | 獲取應用名稱 |
void execute(boolean immediate, String args) | 執行應用 immediate : true立即執行 false 退出當前應用後執行 args: 應用參數 |
void delete( ) | 刪除自身,在程序退出時會實際刪除應用 |
void enableAutorun( ) | 將應用設置爲上電自動運行 |
TiAPPManager
應用管理器,主要方法如下:
方法 | 說明 |
TiAPPManager getInstance( ) | 獲取TiAppManager實例 |
OutputStream create(int size) | 創建新的APP並獲取輸出流操作實例 |
TiAPP activate(int type) | 激活當前應用 type: TiAPP.APP_GENERIC TiAPP.APP_SHELL |
void format( ) | 格式化應用存儲區,除Shell外所有的應用都將被刪除 |
TiAPP getRunningAPP( ) | 獲取當前正在運行的應用對象,也就是調用此API的應用 |
int getTotalSize( ) | 獲取應用存儲區總空間 |
int getFreeSize( ) | 獲取應用存儲區剩餘空間 |
應用類型
鈦極OS(TiJOS)系統支持兩種類型的應用程序,分別爲:普通程序(generic)和殼程序(shell),兩種類型應用程序的區別爲操作權限的不同,分別如下:
- generic類型應用程序無權限調用格式化應用存儲區方法,也無權限刪除其他的應用程序,只能刪除自身。
- shell類型應用程序可刪除所有類型應用程序。
- generic類型應用程序只能創建安裝類型爲generic的應用程序,shell應用程序則能創建安裝所有類型應用程序。
- shell類型應用程序可設置某應用程序爲自動運行屬性,generic類型應用程序無權限操作。
上電自動運行
具有自動運行屬性的應用程序在系統啓動時自動啓動,任何類型的應用程序都可以設置爲自動運行屬性,系統默認的自動運行程序爲ID=0的應用程序(shell),該應用程序爲鈦極OS(TiJOS)系統預裝的終端程序,用戶無權刪除,用戶可通過終端程序(連接PC端設備管理器)下載應用程序、更改系統配置等。
當用戶應用開發測試完成後,可以設置爲上電自動運行作爲正式產品
應用安裝
應用一般通過TiDevManager來進行安裝、刪除和運行,當用戶需要開發OTA功能時,即需要通過TiAPPManager來實現相應的應用安裝功能。
調用過程如下所示:
- ...
- ...
- int appFileId = 0; //tapk文件ID自動分配
- int appFileSize = ...; //tapk文件大小
- TiAPPManager appManager = TiAPPManager.getInstance(); //獲取TiAppManager實例
- OutputStream stream = appManager.create(appFileId, appFileSize); //創建文件並獲取流操作實例
- ...
- stream.write(transBuffer, 0, transLength); //流寫入文件
- ...
- stream.close();
- TiAPP app =appManager.activate(TiAPP.APP_GENERIC); //應用激活,generic類型
- app.enableAutorun(); //使能自動運行
- //如果需要可刪除當前的舊應用
- TiAPP oldApp = appManager.getRunningAPP(); //獲取當前運行的應用
- oldApp.delete(); //刪除自身以釋放空間
- System.exit(0); //此處可調用系統退出,新應用在啓動時自動運行,從而完成OTA的過程
- ...
- ...
複製代碼
應用刪除
用戶應用只能刪除自己,通過 TiAPPManager中的getRunningAPP 可獲得當前應用實例, 通過TiApp.delete即可刪除自身, 執行刪除操作時請謹慎。
- TiAPP oldApp = appManager.getRunningAPP(); //獲取當前運行的應用
- oldApp.delete(); //刪除自身以釋放空間
複製代碼
應用運行
TiAPP對象中execute用於執行指定應用,一般用於OTA過程中應用更新過程。 需要上電運行指定應用時, 通過設備管理器安裝設置即可,無需在應用中處理。
更多詳細介紹請見鈦雲物聯官網:www.tijos.net