CN114143394B - 一种可卸载并且可恢复安装的应用预装与卸载方法 - Google Patents
一种可卸载并且可恢复安装的应用预装与卸载方法 Download PDFInfo
- Publication number
- CN114143394B CN114143394B CN202110932089.5A CN202110932089A CN114143394B CN 114143394 B CN114143394 B CN 114143394B CN 202110932089 A CN202110932089 A CN 202110932089A CN 114143394 B CN114143394 B CN 114143394B
- Authority
- CN
- China
- Prior art keywords
- application
- package
- installation
- unloading
- xml file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72403—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
- H04M1/72406—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by software upgrading or downloading
Abstract
本发明揭示了一种可卸载并且可恢复安装的应用预装与卸载方法,新建makefile文件,将应用预置到系统级应用安装目录下;新建资源标识符以及与其对应的字符串资源组记录可卸载应用包名;在包管理服务中新建方法与全局变量提取可卸载应用包名;安装过程删除可卸载应用的系统应用安装标志;新建工具类用xml文件记录卸载应用;卸载时对比被卸载的应用包名是否为要求可卸载的预装应用;机器重启安装应用时取消xml文件记录的应用安装,恢复出厂设置时清空xml。本发明可将应用预装在system或者vendor等系统目录下且保证应用能够被正常安装且可卸载,恢复出厂设置后可以重新安装,并且不会额外占用系统的存储空间,在应用较多时也不会长时间延缓终端设备的开机时间。
Description
技术领域
本发明涉及手机系统领域,特别是涉及一种可卸载并且可恢复安装的应用预装与卸载方法。
背景技术
手机预装软件一般指手机出厂自带、或第三方刷机渠道预装到消费者手机当中应用或软件。目前,根据工信部文件要求,移动智能终端除保证基础功能应用之外,其他预装应用必须可以卸载,因此需要一种新的应用预装方式,保证应用可以被卸载,也可以在恢复出厂设置后重新安装预装应用。
发明内容
本发明的目的在于,提供一种可卸载并且可恢复安装的应用预装与卸载方法,以实现移动智能终端预装应用的卸载,同时还能够在预装应用卸载后进行恢复。
为解决上述技术问题,本发明提供一种可卸载并且可恢复安装的应用预装与卸载方法,包括如下步骤:
S100、新建makefile文件,将可卸载并且可恢复安装的应用预置到系统级应用安装目录下;
S200、新建资源标识符以及与资源标识符对应的字符串资源组,字符串资源组用于存储要求可卸载的应用的包名;
S300、在包管理服务中新建方法与全局变量,提取和存储要求可卸载的应用的包名后进行对应用进行安装处理;
S400、新建工具类,负责将要求可卸载的应用包名记录到xml文件中,同时从xml文件读取要求可卸载的应用包名;
S500、在应用卸载过程中,比较被卸载的应用包名是否为要求可卸载的预装应用,若为要求可卸载的预装应用则调用新建工具类中方法将应用包名记录到xml文件中;
S600、机器重启扫描指定目录下的应用安装文件时,读取xml文件中记录的包名,若xml文件中记录的包名数量不为0时,则与当前解析的应用包名进行比对,当前解析的应用包名已记录到xml文件时,取消接下来的应用解析与安装;
S700、恢复出厂设置时,清空记录被卸载预装应用包名的xml文件。
进一步的,在步骤S200中,字符串资源组采用静态数组,获取要求可卸载应用包名后对静态数组进行初始化。
进一步的,在步骤S300中,包管理服务中新建方法,用于确定正在解析安装的应用是否为预装且要求可卸载的应用。
进一步的,在步骤S300中,应用安装的具体步骤包括:
S301、对系统目录进行扫描并寻找存放的预装应用目录;
S302、对预装应用进行进一步扫描、信息提取,并对安装包进行分析得到应用包名并准备安装;
S303、将应用包名与要求可卸载的应用包名进行对比,若准备安装应用为可卸载应用则删除该应用的系统级应用安装标志。
相对于现有技术,本发明至少具有以下有益效果:
本发明设计合理,可以将应用预装在system或者vendor等系统目录下且保证应用能够被正常安装且可以卸载,恢复出厂设置后可以重新安装,并且不会额外占用系统的存储空间,在应用较多时相比较现有技术也不会长时间延缓终端设备的开机时间。
附图说明
图1为本发明一种可卸载并且可恢复安装的应用预装与卸载方法的流程结构示意图;
图2为本发明一种可卸载并且可恢复安装的应用预装与卸载方法的应用安装流程图;
图3为本发明一种可卸载并且可恢复安装的应用预装与卸载方法的应用卸载流程图。
具体实施方式
下面将结合示意图对本发明的可卸载并且可恢复安装的应用预装与卸载方法进行更详细的描述,其中表示了本发明的优选实施例,应该理解本领域技术人员可以修改在此描述的本发明,而仍然实现本发明的有利效果。因此,下列描述应当被理解为对于本领域技术人员的广泛知道,而并不作为对本发明的限制。
在下列段落中参照附图以举例方式更具体地描述本发明。根据下面说明和权利要求书,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
如图1所示,本发明实施例提出了一种可卸载并且可恢复安装的应用预装与卸载方法,包括如下步骤:
S100、新建makefile文件,将可卸载并且可恢复安装的应用预置到系统级应用安装目录下;
S200、新建资源标识符以及与资源标识符对应的字符串资源组,字符串资源组用于存储要求可卸载的应用的包名;
S300、在包管理服务中新建方法与全局变量,提取和存储要求可卸载的应用的包名后进行对应用进行安装处理;
S400、新建工具类,负责将要求可卸载的应用包名记录到xml文件中,同时从xml文件读取要求可卸载的应用包名;
S500、在应用卸载过程中,比较被卸载的应用包名是否为要求可卸载的预装应用,若为要求可卸载的预装应用则调用新建工具类中方法将应用包名记录到xml文件中;
S600、机器重启扫描指定目录下的应用安装文件时,读取xml文件中记录的包名,若xml文件中记录的包名数量不为0时,则与当前解析的应用包名进行比对,当前解析的应用包名已记录到xml文件时,取消接下来的应用解析与安装;
S700、恢复出厂设置时,清空记录被卸载预装应用包名的xml文件。
在步骤S200中,字符串资源组采用静态数组,获取要求可卸载应用包名后对静态数组进行初始化。其中静态数组用于将从配置文件中提取出的要求可卸载应用的包名,赋值给静态字符串数组。
在步骤S300中,包管理服务中新建方法,用于确定正在解析安装的应用是否为预装且要求可卸载的应用。
在步骤S300中,应用安装的具体步骤包括:
S301、对系统目录进行扫描并寻找存放的预装应用目录;
S302、对预装应用进行进一步扫描、信息提取,并对安装包进行分析得到应用包名并准备安装;
S303、将应用包名与要求可卸载的应用包名进行对比,若准备安装应用为可卸载应用则删除该应用的系统级应用安装标志。
以下列举所述可卸载并且可恢复安装的应用预装与卸载方法的较优实施例,以清楚的说明本发明的内容,应当明确的是,本发明的内容并不限制于以下实施例,其他通过本领域普通技术人员的常规技术手段的改进亦在本发明的思想范围之内。
如图2和图3所示,本发明实施例提出了一种可卸载并且可恢复安装的应用预装与卸载方法的实施例,具体如下:
S100、新建makefile文件,将可卸载并且可恢复安装的应用预置到系统级应用安装目录下。
具体的,makefile定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,也可以执行操作系统的命令。通过makefile文件,将可卸载且可恢复安装的应用预置到系统级应用安装目录下。例如,Android.mk文件将应用预置到系统级应用安装目录system/app或者vendor/app下。
S200、新建资源标识符以及与资源标识符对应的字符串资源组,字符串资源组用于存储要求可卸载的应用的包名。
具体的,在frameworks/base/core/res/res/value目录下symbols.xml中新建资源标识符,同时,在frameworks/base/core/res/res/value目录下config.xml中新建资源标识符对应的字符串资源组,用于存储要求可卸载的应用的包名。
具体的,在全系统标识符文件symbol.xml文件中新建资源标识符,在系统配置文件config.xml中配置标识符对应的资源内容,即要求可卸载应用的包名。而S300中是将在S200中存放的包名通过新建方法提取出来并由包管理服务中的新建变量暂时保存,供包管理服务随时调取使用。
S300、在包管理服务中新建方法与全局变量,提取和存储要求可卸载的应用的包名后进行应用安装。
具体的,预装应用安装主要由系统级服务PackageManagerService.java处理,即包管理服务,因此在PackageManagerService中新建方法与全局变量用于提取和存储要求可卸载的应用的包名。
在包管理服务的构造方法中会调用scanDirTracedLI对系统目录进行扫描,找到我们存放需要预装应用的目录,删除使用scanDirTracedLI方法对该目录进行扫描时scanFlags参数中添加的SCAN_AS_SYSTEM,以将应用预置到system/app目录下为例,scanDirTracedLI会调用scanDirLI对应用进行进一步的扫描,信息提取,并调用其他方法对软件安装包进行下一步的分析,最后进行安装在scanDirLI中鉴别是否为需要支持可卸载的应用,若不是则在scanPackageChildLI重新添加SCAN_AS_SYSTEM将不需要支持卸载的应用安装为系统应用。
具体的,新建方法为在包管理服务中声明并创建一个新的函数方法,这个函数方法用来从系统配置文件中根据资源标识符提取在xml文件存放的对应包名。
S400、新建工具类,将要求可卸载的应用包名记录到xml文件中,同时从xml文件读取要求可卸载的应用包名。
具体的,在frameworks/base/services/core/java/com/android/server/pm/目录下新建工具类,例如PreinstallApp.java,该工具类提供以下功能:在system目录下新建xml文件,例如Pre-install-apk.xml,提供将应用包名记录到xml文件中的方法,提供从xml文件中读取包名的方法。
S500、在应用卸载过程中,比较被卸载的应用包名是否为要求可卸载的预装应用,若为要求可卸载的预装应用则调用新建工具类中方法将应用包名记录到xml文件中。
具体的,在frameworks/base/services/core/java/com/android/server/pm/目录下新建工具类,例如PreinstallApp.java,该工具类提供以下功能:在system目录下新建xml文件,例如Pre-install-apk.xml,提供将应用包名记录到xml文件中的方法,提供从xml文件中读取包名的方法。
S600、扫描指定目录下的应用安装文件时,读取xml文件中记录的包名,若xml文件中记录的包名数量不为0时,则与当前解析的应用包名进行比对,当前解析的应用包名已记录到xml文件时,取消接下来的应用解析与安装。
具体的,在scanDirLI中读取Pre-install-apk.xml中记录的包名,若xml中记录的包名数量不为0,则与当前解析的应用包名进行比对,当前解析的应用包名已经被记录到xml文件中时则取消接下来的解析与安装,防止应用被卸载后重启导致应用重新被安装。当需要恢复预装应用安装时,可对手机当前存储内容进行备份后恢复出厂设置,实现预装应用的恢复。
综上所述,本发明设计合理,可以将应用预装在system或者vendor等系统目录下且保证应用能够被正常安装且可以卸载,恢复出厂设置后可以重新安装,并且不会额外占用系统的存储空间,在应用较多时相比较现有技术也不会长时间延缓终端设备的开机时间。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (3)
1.一种可卸载并且可恢复安装的应用预装与卸载方法,其特征在于,包括如下步骤:
S100、新建makefile文件,将可卸载并且可恢复安装的应用预置到系统级应用安装目录下;
S200、新建资源标识符以及与资源标识符对应的字符串资源组,字符串资源组用于存储要求可卸载的应用的包名;
S300、在包管理服务中新建方法与全局变量,提取要求可卸载应用的包名后对应用进行安装处理;
S400、新建工具类,负责将要求可卸载的应用包名记录到xml文件中,同时从xml文件读取要求可卸载的应用包名;
S500、在应用卸载过程中,比较被卸载的应用包名是否为要求可卸载的预装应用,若为要求可卸载的预装应用则调用新建工具类中方法将应用包名记录到xml文件中;
S600、机器重启扫描指定目录下的应用安装文件时,读取xml文件中记录的包名,若xml文件中记录的包名数量不为0时,则与当前解析的应用包名进行比对,当前解析的应用包名已记录到xml文件时,取消接下来的应用解析与安装;
S700、恢复出厂设置时,清空记录被卸载预装应用包名的xml文件;
在步骤S300中,应用安装的具体步骤包括:
S301、调用scanDirTracedLI对系统目录进行扫描并寻找存放的预装应用目录;
S302、scanDirTracedLI调用scanDirLI对预装应用进行进一步扫描、信息提取,并对安装包进行分析,得到应用包名并准备安装;
S303、将应用包名与要求可卸载的应用包名进行对比,若准备安装应用为可卸载应用则删除该应用的系统级应用安装标志;若准备安装应用为不可卸载应用,则在scanPackageChildLI重新添加该应用的系统级应用安装标志。
2.如权利要求1所述的可卸载并且可恢复安装的应用预装与卸载方法,其特征在于,在步骤S200中,字符串资源组采用静态数组,获取要求可卸载应用包名后对静态数组进行初始化。
3.如权利要求1所述的可卸载并且可恢复安装的应用预装与卸载方法,其特征在于,在步骤S300中,包管理服务中新建方法,用于确定正在解析安装的应用是否为预装且要求可卸载的应用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110932089.5A CN114143394B (zh) | 2021-08-13 | 2021-08-13 | 一种可卸载并且可恢复安装的应用预装与卸载方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110932089.5A CN114143394B (zh) | 2021-08-13 | 2021-08-13 | 一种可卸载并且可恢复安装的应用预装与卸载方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114143394A CN114143394A (zh) | 2022-03-04 |
CN114143394B true CN114143394B (zh) | 2023-07-21 |
Family
ID=80393735
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110932089.5A Active CN114143394B (zh) | 2021-08-13 | 2021-08-13 | 一种可卸载并且可恢复安装的应用预装与卸载方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114143394B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102609304A (zh) * | 2012-02-08 | 2012-07-25 | 广东欧珀移动通信有限公司 | 一种Android手机内置第三方应用的管理方法 |
CN106406919A (zh) * | 2015-07-27 | 2017-02-15 | 青岛海信移动通信技术股份有限公司 | 一种终端设备预装应用的管理方法和终端设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521031B (zh) * | 2011-12-13 | 2014-11-05 | 华为终端有限公司 | 移动终端预置应用程序的管理方法和移动终端 |
CN103309699B (zh) * | 2012-03-16 | 2017-05-17 | 宇龙计算机通信科技(深圳)有限公司 | 移动终端和应用程序安装方法 |
CN104035842A (zh) * | 2014-06-30 | 2014-09-10 | 上海斐讯数据通信技术有限公司 | 一种删除和恢复内置应用程序的方法 |
-
2021
- 2021-08-13 CN CN202110932089.5A patent/CN114143394B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102609304A (zh) * | 2012-02-08 | 2012-07-25 | 广东欧珀移动通信有限公司 | 一种Android手机内置第三方应用的管理方法 |
CN106406919A (zh) * | 2015-07-27 | 2017-02-15 | 青岛海信移动通信技术股份有限公司 | 一种终端设备预装应用的管理方法和终端设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114143394A (zh) | 2022-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11106446B2 (en) | Preinstalled application management method for mobile terminal and mobile terminal | |
US7242929B2 (en) | Method and apparatus for dynamic extension of device management tree data model on a mobile | |
US6996818B2 (en) | Update system for facilitating software update and data conversion in an electronic device | |
CN100399267C (zh) | 一种管理软件安装/卸载的方法 | |
US20050227683A1 (en) | Apparatus and method for over the air software repair | |
CN101697133A (zh) | 软件升级方法、软件升级系统以及客户端 | |
CN105389186A (zh) | 一种Java应用的热部署方法及系统 | |
JP2011516987A (ja) | モバイル・デバイス・ソフトウェアの管理方法及び装置 | |
CN110308999B (zh) | 一种应用间动态共享依赖包的方法、存储介质及移动终端 | |
CN114860327B (zh) | 一种安卓兼容环境中安卓应用的快速启动方法 | |
CN105468422A (zh) | 操作系统优化的方法及系统 | |
CN110888652A (zh) | 基于jenkins插件的多版本构建方法及终端 | |
CN110413292B (zh) | 应用程序的轻应用安装方法、移动终端及存储介质 | |
CN114143394B (zh) | 一种可卸载并且可恢复安装的应用预装与卸载方法 | |
CN102768628A (zh) | 一种预安装第三方应用的方法及装置 | |
CN117056115B (zh) | 应用程序的修复方法和装置、存储介质及电子设备 | |
CN114417322A (zh) | 应用的隔离实现方法、移动终端、计算机设备和存储介质 | |
CN112099817B (zh) | 一种app自动更新方法及系统 | |
CN115129740A (zh) | 一种云原生环境下的分布式微服务数据库更新方法及系统 | |
CN111240589A (zh) | 基于分区隔离的系统管理方法、装置、设备及存储介质 | |
CN116541104B (zh) | 程序管理方法、控制装置、平台、设备以及存储介质 | |
CN108153556B (zh) | 信息自动修正方法、装置、用户设备、系统及存储介质 | |
CN117742739A (zh) | 一种基于安卓系统高效挂载外部存储空间的方法 | |
CN115167894A (zh) | 车载应用升级方法、装置、设备及存储介质 | |
CN117687640A (zh) | 一种软件包快速部署管理容器化应用方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |