CN106775876A - 安卓系统快速启动应用的方法 - Google Patents

安卓系统快速启动应用的方法 Download PDF

Info

Publication number
CN106775876A
CN106775876A CN201611190681.8A CN201611190681A CN106775876A CN 106775876 A CN106775876 A CN 106775876A CN 201611190681 A CN201611190681 A CN 201611190681A CN 106775876 A CN106775876 A CN 106775876A
Authority
CN
China
Prior art keywords
application
android system
uid
manager service
installation kit
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.)
Granted
Application number
CN201611190681.8A
Other languages
English (en)
Other versions
CN106775876B (zh
Inventor
王小品
田乐
赵幸
王方驰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Anhui Haima Cloud Technology Co ltd
Original Assignee
Hai Ma (tianjin) Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hai Ma (tianjin) Information Technology Co Ltd filed Critical Hai Ma (tianjin) Information Technology Co Ltd
Priority to CN201611190681.8A priority Critical patent/CN106775876B/zh
Publication of CN106775876A publication Critical patent/CN106775876A/zh
Application granted granted Critical
Publication of CN106775876B publication Critical patent/CN106775876B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供的安卓系统快速启动应用的方法,定制扫描使安卓系统的Package Manager Service扫描应用的安装包,获得Package Manager Service分配的UID,将应用运行时需要加载的所有文件中所有符合UID格式的Owner ID和Group ID替换为获得的UID。该方法只要将应用运行时需要加载的所有文件存储到应用的指定目录下,应用就可以直接启动,不会执行加载文件、下载补丁等操作。应用的快速启动避免了用户的长时间等待,极大提高了安卓系统用户的体验。

Description

安卓系统快速启动应用的方法
技术领域
本发明涉及安卓系统快速启动应用的方法。
背景技术
安卓(Android)系统是目前智能移动终端等电子设备上广泛使用的操作系统,安卓系统中可以运行各种应用(应用指能够在安卓系统中运行的软件或程序)。安卓系统的应用在启动时经常会出现加载进度条(实际上是把应用运行时需要加载的本地文件从应用的安装包中提取出来存储到指定目录),加载完成后有时又会弹出对话框强制要求下载补丁。如果应用较大,加载文件和下载补丁可能会消耗数分钟时间,此期间用户只能等待,严重影响安卓系统的用户体验。
由于安卓系统的应用需要加载的本地文件可以事先从安装包中提取出来,补丁文件也可以事先下载或者直接向应用的开发厂家索要,而存储这些文件的指定目录完全可以根据安卓系统和应用自身的设置获知。一个很自然的想法,可以在应用启动前将应用运行时需要加载的所有文件都存储到指定目录下,应用启动时就不再执行加载文件或下载补丁的操作了。然而,标准安卓系统并不支持上述功能,即使将所有相关文件都存储到指定目录,安卓系统的很多应用在启动时仍然会执行加载文件、下载补丁等操作。如何解决这一问题,尚未见报道。
在说明书“背景技术”部分公开的内容,有助于本领域技术人员理解本发明的技术方案,但不应据此认为这些内容一定属于现有技术或公知常识。
发明内容
为了克服“背景技术”部分所反映的缺陷,本发明提供安卓系统快速启动应用的方法。
安卓系统快速启动应用的方法,包括:
1)定制扫描使安卓系统的Package Manager Service扫描应用的安装包,获得Package Manager Service分配的UID;
2)将应用运行时需要加载的所有文件中所有符合UID格式的Owner ID和Group ID替换为1)中获得的UID。
进一步的,1)中还包括:提取所述安装包的证书和摘要,Package ManagerService扫描时将安装包的证书和摘要作为参数发送给Package Manager Service。
进一步的,1)中还包括:Package Manager Service扫描前提取所述安装包对应的odex文件存储到对应目录。
进一步的,2)中所述的应用运行时需要加载的所有文件存储在应用的指定目录下,应用通过所述的指定目录加载文件。
本发明技术方案中,“包括”、“用于”等词语应按照开放式表达方式理解。本领域技术人员通过阅读本说明书并结合现有技术或公知常识能够获知的内容,本说明书中不再赘述。
本发明提供的安卓系统快速启动应用的方法,只要将应用运行时需要加载的所有文件存储到应用的指定目录下,应用就可以直接启动,不会执行加载文件、下载补丁等操作。应用的快速启动避免了用户的长时间等待,极大提高了安卓系统用户的体验。
附图说明
图1为具体实施方式中安卓系统快速启动应用的方法的流程图。
具体实施方式
下面对本发明的实施方式进行进一步的具体说明。但应注意,本发明的范围并不局限于所描述的具体技术方案。任何对所描述的具体技术方案中的技术要素进行相同或等同替换获得的技术方案或本领域技术人员在所描述的具体技术方案的基础上不经过创造性劳动就可以获得的技术方案,都应当视为落入本发明的保护范围。
安卓(Android)系统是目前智能移动终端等电子设备上广泛使用的操作系统,安卓系统中可以运行各种应用(应用指能够在安卓系统中运行的软件或程序)。安卓系统的应用一般都有安装包(即安卓系统中的apk文件,根据安卓系统应用的开发习惯,该文件的名称往往是base.apk),安装包存储在指定目录下,例如“/data/app/应用包名”目录。安卓系统的应用都有对应的包名,包名可以从该应用的apk文件中解析出来。应用在运行过程中需要加载很多文件,这些文件也存储在指定目录下,例如“/sdcard/Android/data/应用包名”或者“/data/data/应用包名”目录。应用在运行过程中通过指定目录加载需要的文件。
本发明提供的安卓系统快速启动应用的方法,其流程如图1所示,包括:
S101:定制扫描使安卓系统的Package Manager Service扫描应用的安装包,获得Package Manager Service分配的UID。
在某一应用启动之前进行定制扫描,使安卓系统的Package Manager Service(安卓系统中最常用的服务之一,负责应用的安装、卸载、信息查询等)扫描上述应用的安装包,Package Manager Service完成扫描后会分配一个UID存储在相应的文件中,查看该文件即可获得该UID。UID通常指用户标识(User Identification),但由于安卓系统是单用户操作系统,安卓系统的UID变为与应用对应的标识。
所述的定制扫描,指通过对安卓系统进行设置使安卓系统的Package ManagerService扫描指定的文件或文件目录。如何实现定制扫描,以5.1版本的安卓系统为例进行说明。
1)在frameworks/base/core/java/android/content/pm/IPackageManager.aidl文件中增加一个扫描应用的安装包所在目录的接口。
2)在frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java中增加一个扫描(scan)的命令。
3)在frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java中增加处理函数,上述处理函数以应用的包名为参数。
完成以上设置后,Package Manager Service可以对指定的应用安装包进行扫描。
如果应用的安装包较大,Package Manager Service对安装包的扫描时间仍然较长,达不到快速启动应用的效果,需要对Package Manager Service的扫描过程进一步优化。Package Manager Service对安装包(base.apk文件)的扫描有两个操作耗时较多,一是扫描base.apk文件时搜集该文件的证书和摘要,二是生成odex文件(odex文件是apk文件中的classes.dex文件通过odex优化生成的)并存储到对应的目录,例如“/data/dalvik-cache/arm”目录。对于这两个耗时较多的操作,可以进行相应的优化。
首先,可以在应用启动前提取安装包的证书和摘要,将证书和摘要存储到某一文件中,Package Manager Service扫描时将安装包的证书和摘要作为参数发送给PackageManager Service。同时,关闭Package Manager Service扫描安装包时对安装包内诸多文件的校验,这样可以大大缩短Package Manager Service的扫描时间。
其次,可以利用安卓系统源代码中的SCAN_NO_DEX参数设置Package ManagerService扫描时不进行odex优化;或者在应用启动前提取安装包对应的odex文件,将odex文件存储到对应目录。Package Manager Service扫描前odex文件已经存在,则PackageManager Service扫描时不再进行odex优化,也能大大缩短扫描时间。
S102:将应用运行时需要加载的所有文件中所有符合UID格式的Owner ID和GroupID替换为S101中获得的UID。
安卓系统的文件中可能包括Owner ID(所有者标识)和Group ID(组标识)。一些Owner ID和Group ID的格式和UID完全相同(UID在安卓系统中有固定的格式),实际上就是借用UID,而另外一些Owner ID和Group ID的格式和UID不同。
事先将某一应用运行时需要加载的所有文件都存储到应用的指定目录下。所述指定目录符合安卓系统和应用自身的设置,应用通过指定目录加载需要的文件。步骤S101中获得Package Manager Service分配的UID后,检查应用运行时需要加载的所有文件中的所有Owner ID和Group ID,如果有Owner ID或Group ID符合UID的格式,则将这些Owner ID和Group ID替换为步骤S101中获得的UID,否则不进行替换。替换后,应用启动时可以直接加载存储在指定目录下的文件,不再执行加载进度条、下载补丁等操作。
在安卓系统中编写专用的程序,可以实现安卓系统快速启动应用的方法。安卓系统应用的生产厂商或者安卓系统设备的运营商,可以按照安卓系统快速启动应用的方法制作应用的特殊安装包,特殊安装包中包括应用运行时需要加载的所有文件、应用的安装包、实现安卓系统快速启动应用的方法的专用程序、存储安装包的证书和摘要的文件、安装包对应的odex文件等。安卓系统的用户使用特殊安装包安装应用,特殊安装包中的文件都解压到其对应的目录,这样应用安装好后可以直接启动。
安卓系统快速启动应用的方法有效克服了标准安卓系统的局限,应用在启动时可以直接加载事先存储在指定目录下的文件,避免了加载文件、下载补丁等操作。安卓系统的应用可以在人感官忽略不计的时间内启动,用户不需要等待,极大提高了安卓系统的用户体验。
本领域技术人员在以上所描述的具体技术方案的基础上,完全可以构造出其他方案。在此不一一列举。

Claims (4)

1.安卓系统快速启动应用的方法,其特征在于,所述的方法包括:
1)定制扫描使安卓系统的Package Manager Service扫描应用的安装包,获得PackageManager Service分配的UID;
2)将应用运行时需要加载的所有文件中所有符合UID格式的Owner ID和Group ID替换为1)中获得的UID。
2.根据权利要求1所述的方法,其特征在于,1)中还包括:提取所述安装包的证书和摘要,Package Manager Service扫描时将安装包的证书和摘要作为参数发送给PackageManager Service。
3.根据权利要求1所述的方法,其特征在于,1)中还包括:Package Manager Service扫描前提取所述安装包对应的odex文件存储到对应目录。
4.根据权利要求1所述的方法,其特征在于,2)中所述的应用运行时需要加载的所有文件存储在应用的指定目录下,应用通过所述的指定目录加载文件。
CN201611190681.8A 2016-12-21 2016-12-21 安卓系统快速启动应用的方法 Active CN106775876B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611190681.8A CN106775876B (zh) 2016-12-21 2016-12-21 安卓系统快速启动应用的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611190681.8A CN106775876B (zh) 2016-12-21 2016-12-21 安卓系统快速启动应用的方法

Publications (2)

Publication Number Publication Date
CN106775876A true CN106775876A (zh) 2017-05-31
CN106775876B CN106775876B (zh) 2020-05-26

Family

ID=58897087

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611190681.8A Active CN106775876B (zh) 2016-12-21 2016-12-21 安卓系统快速启动应用的方法

Country Status (1)

Country Link
CN (1) CN106775876B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108595292A (zh) * 2018-04-26 2018-09-28 Oppo广东移动通信有限公司 一种系统的优化方法、移动终端及计算机存储介质
CN109144948A (zh) * 2017-06-15 2019-01-04 海马云(天津)信息技术有限公司 应用文件定位的方法、装置、电子设备和存储器
WO2019237822A1 (zh) * 2018-06-15 2019-12-19 深圳Tcl新技术有限公司 一种安卓系统开机速度控制方法、智能设备及存储介质
CN111782226A (zh) * 2020-06-24 2020-10-16 长沙摩智云计算机科技有限公司 一种直捷安装安卓应用的方法、系统、设备及介质
CN114860327A (zh) * 2022-07-07 2022-08-05 北京麟卓信息科技有限公司 一种安卓兼容环境中安卓应用的快速启动方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050114871A1 (en) * 2003-11-24 2005-05-26 Wolff Adam G. System for optimizing application start-up
CN105786551A (zh) * 2014-12-26 2016-07-20 北京元心科技有限公司 一种应用程序运行访问控制方法和系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050114871A1 (en) * 2003-11-24 2005-05-26 Wolff Adam G. System for optimizing application start-up
CN105786551A (zh) * 2014-12-26 2016-07-20 北京元心科技有限公司 一种应用程序运行访问控制方法和系统

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109144948A (zh) * 2017-06-15 2019-01-04 海马云(天津)信息技术有限公司 应用文件定位的方法、装置、电子设备和存储器
CN109144948B (zh) * 2017-06-15 2021-10-08 海马云(天津)信息技术有限公司 应用文件定位的方法、装置、电子设备和存储器
CN108595292A (zh) * 2018-04-26 2018-09-28 Oppo广东移动通信有限公司 一种系统的优化方法、移动终端及计算机存储介质
CN108595292B (zh) * 2018-04-26 2021-03-26 Oppo广东移动通信有限公司 一种系统的优化方法、移动终端及计算机存储介质
WO2019237822A1 (zh) * 2018-06-15 2019-12-19 深圳Tcl新技术有限公司 一种安卓系统开机速度控制方法、智能设备及存储介质
CN110609710A (zh) * 2018-06-15 2019-12-24 深圳Tcl新技术有限公司 一种安卓系统开机速度控制方法、智能设备及存储介质
CN110609710B (zh) * 2018-06-15 2021-11-09 深圳Tcl新技术有限公司 一种安卓系统开机速度控制方法、智能设备及存储介质
CN111782226A (zh) * 2020-06-24 2020-10-16 长沙摩智云计算机科技有限公司 一种直捷安装安卓应用的方法、系统、设备及介质
CN114860327A (zh) * 2022-07-07 2022-08-05 北京麟卓信息科技有限公司 一种安卓兼容环境中安卓应用的快速启动方法
CN114860327B (zh) * 2022-07-07 2022-09-23 北京麟卓信息科技有限公司 一种安卓兼容环境中安卓应用的快速启动方法

Also Published As

Publication number Publication date
CN106775876B (zh) 2020-05-26

Similar Documents

Publication Publication Date Title
CN102622241B (zh) 一种软件升级方法及装置
CN106775876A (zh) 安卓系统快速启动应用的方法
CN109117169B (zh) 用于修复内核漏洞的方法和装置
CN105657191B (zh) 一种基于Android系统的应用增量升级方法及系统
CN101924798B (zh) 一种基于文件类型的Android构件透明加载方法及系统
KR101619557B1 (ko) 커스터마이즈된 컴퓨터 응용 프로그램 패키지
EP2786279B1 (en) Deployment of a driver or an application on a client device having a write-filter
US9733919B2 (en) Updating web resources
JP2011516987A (ja) モバイル・デバイス・ソフトウェアの管理方法及び装置
CN102571860A (zh) 一种管理插件的方法、装置及系统
CN102662884B (zh) 一种基于网络的设备驱动程序配置方法
CN106559484A (zh) 实例系统免安装运行应用的方法
CN112882729A (zh) 应用镜像升级方法、装置、计算机设备和存储介质
CN104216719A (zh) 一种android系统的升级方法和装置
CN105302711A (zh) 一种应用修复方法、装置及终端
CN110098952A (zh) 一种服务器的管理方法和装置
CN107220074A (zh) 对支撑层软件功能的访问、升级方法及装置
US8856740B2 (en) Implementing multiple versions of a plug-in concurrently
CN106569863B (zh) 基于资源和代码模块化的安卓app资源更新和修复的方法
US20170262263A1 (en) Process and system for the generation of an operating program in the form of a mobile application that is capable of operating on a mobile device
CN101980503B (zh) 一种widget应用管理方法、装置和系统
CN104699503A (zh) 一种替换安卓系统中函数的执行逻辑的方法及装置
CN110162318A (zh) 一种终端批量单组件更新的实现方法
CN115658085A (zh) 一种云原生应用的部署方法
CN105592091A (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
TR01 Transfer of patent right

Effective date of registration: 20240108

Address after: 230031 Room 672, 6/F, Building A3A4, Zhong'an Chuanggu Science Park, No. 900, Wangjiang West Road, High-tech Zone, Hefei, Anhui

Patentee after: Anhui Haima Cloud Technology Co.,Ltd.

Address before: 301700 room 2d25, Building 29, No.89 Heyuan Road, Jingjin science and Technology Valley Industrial Park, Wuqing District, Tianjin

Patentee before: HAIMAYUN (TIANJIN) INFORMATION TECHNOLOGY CO.,LTD.

TR01 Transfer of patent right