10. 钛极OS应用管理中心

钛极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来实现相应的应用安装功能。

  调用过程如下所示:

  1. ...
  2. ...
  3. int appFileId = 0; //tapk文件ID自动分配
  4. int appFileSize = ...; //tapk文件大小
  5. TiAPPManager appManager = TiAPPManager.getInstance(); //获取TiAppManager实例
  6. OutputStream stream = appManager.create(appFileId, appFileSize);    //创建文件并获取流操作实例
  7. ...
  8. stream.write(transBuffer, 0, transLength);      //流写入文件
  9. ...
  10. stream.close();
  11. TiAPP app =appManager.activate(TiAPP.APP_GENERIC); //应用激活,generic类型
  12. app.enableAutorun(); //使能自动运行
  13.  
  14. //如果需要可删除当前的旧应用
  15. TiAPP oldApp = appManager.getRunningAPP(); //获取当前运行的应用
  16. oldApp.delete(); //删除自身以释放空间
  17.  
  18. System.exit(0); //此处可调用系统退出,新应用在启动时自动运行,从而完成OTA的过程
  19. ...
  20. ...

复制代码


应用删除

用户应用只能删除自己,通过 TiAPPManager中的getRunningAPP 可获得当前应用实例, 通过TiApp.delete即可删除自身, 执行删除操作时请谨慎。

 

  1. TiAPP oldApp = appManager.getRunningAPP(); //获取当前运行的应用
  2. oldApp.delete(); //删除自身以释放空间

复制代码


应用运行

TiAPP对象中execute用于执行指定应用,一般用于OTA过程中应用更新过程。 需要上电运行指定应用时, 通过设备管理器安装设置即可,无需在应用中处理。

 

更多详细介绍请见钛云物联官网:www.tijos.net

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章