android固件与应用分离

        最近在项目中需要对现有的升级方式进行整改,将原有的固件升级包分离为固件升级包与应用升级包,同时如果需要,可以添加一个资源升级包,如此设计的好处是可以在后期版本升级的时候,仅需要升级对应的资源即可,减少下载时间,减少流量的使用。

        由于固件与应用的分离,分离前作为系统应用的apk,在分离后将作为第三方应用安装,因此需要注意以下几点:

    1、作为第三方应用的apk,是没有系统权限,是否需要给与系统签名(尽量减少拥有系统权限签名的apk数量,越少越安全)

    2、作为第三方应用的apk,一般来说是无法发送系统广播,对于一些开机广播等,若固件中有做限制,也是无法收到的。

        具体设计方案如下:

    1、首先拥有一个launcher应用,这个应用在我的项目中是打到固件包里,这个应用主要负责升级功能与启动主应用。同时,该应用拥有系统权限,软关机,拷贝底层日志等任何需要系统权限的操作,都可以通过发送广播让该应用进行操作。

    2、拥有一个主应用,该应用就是被launcher应用唤醒的,在原先的方案中,该应用是接收开机广播后启动,但是在现有的模式下,主应用是在launcher应用收到开机广播后,由launcher应用发送自定义广播去startactivity主应用。

    以上分离是基于固件不需要经常更新,每次仅需更新应用即可的前提下设计的。

发布了11 篇原创文章 · 获赞 7 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/LQ753799168/article/details/79316453