一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种可卸载并且可恢复安装的应用预装与卸载方法与流程

2022-03-05 00:16:18 来源:中国专利 TAG:


1.本发明涉及手机系统领域,特别是涉及一种可卸载并且可恢复安装的应用 预装与卸载方法。


背景技术:

2.手机预装软件一般指手机出厂自带、或第三方刷机渠道预装到消费者手机 当中应用或软件。目前,根据工信部文件要求,移动智能终端除保证基础功能 应用之外,其他预装应用必须可以卸载,因此需要一种新的应用预装方式,保 证应用可以被卸载,也可以在恢复出厂设置后重新安装预装应用。
3.目前,根据工信部文件要求,移动智能终端除保证基础功能应用之外,其 他预装应用必须可以卸载,因此需要一种新的应用预装方式,保证应用可以被 卸载,也可以在恢复出厂设置后重新安装预装应用。


技术实现要素:

4.本发明的目的在于,提供一种可卸载并且可恢复安装的应用预装与卸载方 法,以实现移动智能终端预装应用的卸载,同时还能够在预装应用卸载后进行 恢复。
5.为解决上述技术问题,本发明提供一种可卸载并且可恢复安装的应用预装 与卸载方法,包括如下步骤:
6.s100、新建makefile文件,将可卸载并且可恢复安装的应用预置到系统级 应用安装目录下;
7.s200、新建资源标识符以及与资源标识符对应的字符串资源组,字符串资 源组用于存储要求可卸载的应用的包名;
8.s300、在包管理服务中新建方法与全局变量,提取和存储要求可卸载的应 用的包名后进行对应用进行安装处理;
9.s400、新建工具类,负责将要求可卸载的应用包名记录到xml文件中,同 时从xml文件读取要求可卸载的应用包名;
10.s500、在应用卸载过程中,比较被卸载的应用包名是否为要求可卸载的预 装应用,若为要求可卸载的预装应用则调用新建工具类中方法将应用包名记录 到xml文件中;
11.s600、机器重启扫描指定目录下的应用安装文件时,读取xml文件中记录 的包名,若xml文件中记录的包名数量不为0时,则与当前解析的应用包名进 行比对,当前解析的应用包名已记录到xml文件时,取消接下来的应用解析与 安装;
12.s700、恢复出厂设置时,清空记录被卸载预装应用包名的xml文件。
13.进一步的,在步骤s200中,字符串资源组采用静态数组,获取要求可卸载 应用包名后对静态数组进行初始化。
14.进一步的,在步骤s300中,包管理服务中新建方法,用于确定正在解析安 装的应用是否为预装且要求可卸载的应用。
15.进一步的,在步骤s300中,应用安装的具体步骤包括:
16.s301、对系统目录进行扫描并寻找存放的预装应用目录;
17.s302、对预装应用进行进一步扫描、信息提取,并对安装包进行分析得到 应用包名并准备安装;
18.s303、将应用包名与要求可卸载的应用包名进行对比,若准备安装应用为 可卸载应用则删除该应用的系统级应用安装标志。
19.相对于现有技术,本发明至少具有以下有益效果:
20.本发明设计合理,可以将应用预装在system或者vendor等系统目录下且保 证应用能够被正常安装且可以卸载,恢复出厂设置后可以重新安装,并且不会 额外占用系统的存储空间,在应用较多时相比较现有技术也不会长时间延缓终 端设备的开机时间。
附图说明
21.图1为本发明一种可卸载并且可恢复安装的应用预装与卸载方法的流程结 构示意图;
22.图2为本发明一种可卸载并且可恢复安装的应用预装与卸载方法的应用安 装流程图;
23.图3为本发明一种可卸载并且可恢复安装的应用预装与卸载方法的应用卸 载流程图。
具体实施方式
24.下面将结合示意图对本发明的可卸载并且可恢复安装的应用预装与卸载方 法进行更详细的描述,其中表示了本发明的优选实施例,应该理解本领域技术 人员可以修改在此描述的本发明,而仍然实现本发明的有利效果。因此,下列 描述应当被理解为对于本领域技术人员的广泛知道,而并不作为对本发明的限 制。
25.在下列段落中参照附图以举例方式更具体地描述本发明。根据下面说明和 权利要求书,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简 化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例 的目的。
26.如图1所示,本发明实施例提出了一种可卸载并且可恢复安装的应用预装 与卸载方法,包括如下步骤:
27.s100、新建makefile文件,将可卸载并且可恢复安装的应用预置到系统级 应用安装目录下;
28.s200、新建资源标识符以及与资源标识符对应的字符串资源组,字符串资 源组用于存储要求可卸载的应用的包名;
29.s300、在包管理服务中新建方法与全局变量,提取和存储要求可卸载的应 用的包名后进行对应用进行安装处理;
30.s400、新建工具类,负责将要求可卸载的应用包名记录到xml文件中,同 时从xml文件读取要求可卸载的应用包名;
31.s500、在应用卸载过程中,比较被卸载的应用包名是否为要求可卸载的预 装应用,若为要求可卸载的预装应用则调用新建工具类中方法将应用包名记录 到xml文件中;
32.s600、机器重启扫描指定目录下的应用安装文件时,读取xml文件中记录 的包名,若xml文件中记录的包名数量不为0时,则与当前解析的应用包名进 行比对,当前解析的应用包名已记录到xml文件时,取消接下来的应用解析与 安装;
33.s700、恢复出厂设置时,清空记录被卸载预装应用包名的xml文件。
34.在步骤s200中,字符串资源组采用静态数组,获取要求可卸载应用包名后 对静态数组进行初始化。其中静态数组用于将从配置文件中提取出的要求可卸 载应用的包名,赋值给静态字符串数组。
35.在步骤s300中,包管理服务中新建方法,用于确定正在解析安装的应用是 否为预装且要求可卸载的应用。
36.在步骤s300中,应用安装的具体步骤包括:
37.s301、对系统目录进行扫描并寻找存放的预装应用目录;
38.s302、对预装应用进行进一步扫描、信息提取,并对安装包进行分析得到 应用包名并准备安装;
39.s303、将应用包名与要求可卸载的应用包名进行对比,若准备安装应用为 可卸载应用则删除该应用的系统级应用安装标志。
40.以下列举所述可卸载并且可恢复安装的应用预装与卸载方法的较优实施 例,以清楚的说明本发明的内容,应当明确的是,本发明的内容并不限制于以 下实施例,其他通过本领域普通技术人员的常规技术手段的改进亦在本发明的 思想范围之内。
41.如图2和图3所示,本发明实施例提出了一种可卸载并且可恢复安装的应 用预装与卸载方法的实施例,具体如下:
42.s100、新建makefile文件,将可卸载并且可恢复安装的应用预置到系统级 应用安装目录下。
43.具体的,makefile定义了一系列的规则来指定哪些文件需要先编译,哪些文 件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个shell脚本一样,也可以执行操作系统的命令。通过makefile 文件,将可卸载且可恢复安装的应用预置到系统级应用安装目录下。例如, android.mk文件将应用预置到系统级应用安装目录system/app或者vendor/app 下。
44.s200、新建资源标识符以及与资源标识符对应的字符串资源组,字符串资 源组用于存储要求可卸载的应用的包名。
45.具体的,在frameworks/base/core/res/res/value目录下symbols.xml中新建资 源标识符,同时,在frameworks/base/core/res/res/value目录下config.xml中新建 资源标识符对应的字符串资源组,用于存储要求可卸载的应用的包名。
46.具体的,在全系统标识符文件symbol.xml文件中新建资源标识符,在系统 配置文件config.xml中配置标识符对应的资源内容,即要求可卸载应用的包名。 而s300中是将在s200中存放的包名通过新建方法提取出来并由包管理服务中 的新建变量暂时保存,供包管理服务随时调取使用。
47.s300、在包管理服务中新建方法与全局变量,提取和存储要求可卸载的应 用的包名后进行应用安装。
48.具体的,预装应用安装主要由系统级服务packagemanagerservice.java处理, 即
包管理服务,因此在packagemanagerservice中新建方法与全局变量用于提取 和存储要求可卸载的应用的包名。
49.在包管理服务的构造方法中会调用scandirtracedli对系统目录进行扫描, 找到我们存放需要预装应用的目录,删除使用scandirtracedli方法对该目录进 行扫描时scanflags参数中添加的scan_as_system,以将应用预置到 system/app目录下为例,scandirtracedli会调用scandirli对应用进行进一步的 扫描,信息提取,并调用其他方法对软件安装包进行下一步的分析,最后进行 安装在scandirli中鉴别是否为需要支持可卸载的应用,若不是则在 scanpackagechildli重新添加scan_as_system将不需要支持卸载的应用安 装为系统应用。
50.具体的,新建方法为在包管理服务中声明并创建一个新的函数方法,这个函 数方法用来从系统配置文件中根据资源标识符提取在xml文件存放的对应包名。
51.s400、新建工具类,将要求可卸载的应用包名记录到xml文件中,同时从 xml文件读取要求可卸载的应用包名。
52.具体的,在frameworks/base/services/core/java/com/android/server/pm/目录下 新建工具类,例如preinstallapp.java,该工具类提供以下功能:在system目录 下新建xml文件,例如pre-install-apk.xml,提供将应用包名记录到xml文件中 的方法,提供从xml文件中读取包名的方法。
53.s500、在应用卸载过程中,比较被卸载的应用包名是否为要求可卸载的预 装应用,若为要求可卸载的预装应用则调用新建工具类中方法将应用包名记录 到xml文件中。
54.具体的,在frameworks/base/services/core/java/com/android/server/pm/目录下 新建工具类,例如preinstallapp.java,该工具类提供以下功能:在system目录 下新建xml文件,例如pre-install-apk.xml,提供将应用包名记录到xml文件中 的方法,提供从xml文件中读取包名的方法。
55.s600、扫描指定目录下的应用安装文件时,读取xml文件中记录的包名, 若xml文件中记录的包名数量不为0时,则与当前解析的应用包名进行比对, 当前解析的应用包名已记录到xml文件时,取消接下来的应用解析与安装。
56.具体的,在scandirli中读取pre-install-apk.xml中记录的包名,若xml中记 录的包名数量不为0,则与当前解析的应用包名进行比对,当前解析的应用包名 已经被记录到xml文件中时则取消接下来的解析与安装,防止应用被卸载后重 启导致应用重新被安装。当需要恢复预装应用安装时,可对手机当前存储内容 进行备份后恢复出厂设置,实现预装应用的恢复。
57.综上所述,本发明设计合理,可以将应用预装在system或者vendor等系统 目录下且保证应用能够被正常安装且可以卸载,恢复出厂设置后可以重新安装, 并且不会额外占用系统的存储空间,在应用较多时相比较现有技术也不会长时 间延缓终端设备的开机时间。
58.显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发 明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及 其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献