CN108733467A - 电子设备运行应用的方法及装置、电子设备 - Google Patents
电子设备运行应用的方法及装置、电子设备 Download PDFInfo
- Publication number
- CN108733467A CN108733467A CN201710259749.1A CN201710259749A CN108733467A CN 108733467 A CN108733467 A CN 108733467A CN 201710259749 A CN201710259749 A CN 201710259749A CN 108733467 A CN108733467 A CN 108733467A
- Authority
- CN
- China
- Prior art keywords
- file
- electronic equipment
- executable file
- operating system
- application
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
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
本发明提供的电子设备运行应用的方法及装置、电子设备,修改操作系统的第一应用程序编程接口,使可执行文件按照预定路径向操作系统请求调用资源文件时,操作系统向可执行文件返回指定目录的文件。只要电子设备上存储了可执行文件和少量可执行文件启动时必须的资源文件,可执行文件对应的应用就可以先行启动,有效节约了安装大量资源文件消耗的时间,提高了用户体验。同时,登录信息等涉及用户隐私的信息存储在指定目录中,删除指定目录即清除了电子设备上的用户隐私信息,充分保障了用户隐私信息的安全。
Description
技术领域
本发明涉及电子设备运行应用的方法及装置、电子设备。
背景技术
具有操作系统的电子设备,例如个人计算机、移动终端等,在日常生活中发挥着越来越重要的作用。电子设备的重要功能是运行各种应用,应用指能够在某种操作系统中运行的软件或程序。目前电子设备的用户需要的应用越来越多,而电子设备的存储空间是有限的,导致很多用户需要的应用没有足够的存储空间安装。
目前的主流操作系统,例如Windows、Mac、IOS、Linux以及在Linux基础上衍生的操作系统如Android等,应用都是通过安装包进行安装的。安装包运行后会产生大量的文件,这些文件位于一个或多个顶层父目录下,形成一定的目录层次关系,顶层父目录的位置及顶层父目录下的子目录结构由操作系统和安装包共同决定。安装包运行后产生的文件,一类是可执行文件(有时也称可执行程序),可执行文件可以在操作系统中运行,运行时在操作系统中生成与可执行文件对应的进程;另一类文件自身无法在操作系统中运行,其作用是供可执行文件在运行过程中调用,这一类文件统称为资源文件。安装包运行后形成的目录层次关系,能够确定任何一个资源文件的具体路径,为可执行文件调用资源文件提供了方便。应用正常运行,可执行文件和资源文件都是不可或缺的。
分析可执行文件和资源文件的大小会发现,目前的主流操作系统中应用的可执行文件都较小,一般最大几十MB;而应用的资源文件可能很大,一些应用的资源文件累计达到数百GB。一个自然的想法,应用先安装可执行文件和少量可执行文件启动时必须的资源文件,后续在可执行文件运行过程中逐步下载资源文件。然而,目前的主流操作系统并不直接支持上述想法,如何实现上述想法尚未见报道。
在说明书“背景技术”部分公开的内容,有助于本领域技术人员理解本发明的技术方案,但不应据此认为这些内容一定属于现有技术或公知常识。
发明内容
为了克服“背景技术”部分反映的缺陷,本发明提供电子设备运行应用的方法及装置、电子设备。
电子设备运行应用的方法,包括:
修改操作系统的第一应用程序编程接口,使可执行文件按照预定路径向操作系统请求调用资源文件时,操作系统向可执行文件返回指定目录的文件。
进一步的,所述的方法还包括:在操作系统中启动进程,所述进程使用第二应用程序编程接口加载可执行文件。
进一步的,所述的方法还包括:修改可执行文件使第一应用程序编程接口成为可执行文件的内部函数。
进一步的,所述的电子设备的操作系统为安卓系统,所述的第一应用程序编程接口,包括安卓系统的Context.getFilesDir()或Context.getCacheDir()或Context.getExternalFilesDir()或Context.getExternalCacheDir()或SQLiteDatabase.openOrCreateDatabase()或Context.getSharedPreferences()或Environment.getExternalStorageDirectory()或AssetManager中获取资源文件的接口。
进一步的,所述的指定目录为挂载的非本地目录。
进一步的,所述的指定目录存储可执行文件对操作系统返回的文件进行写操作形成的文件或者可执行文件创建的新文件。
电子设备运行应用的装置,包括挂钩模块,所述的挂钩模块用于修改操作系统的第一应用程序编程接口,使可执行文件按照预定路径向操作系统请求调用资源文件时,操作系统向可执行文件返回指定目录的文件。
进一步的,所述的装置还包括平台应用,所述的平台应用用于在操作系统中启动进程,所述进程使用第二应用程序编程接口加载可执行文件。
更进一步的,所述的平台应用还用于下载可执行文件或者资源文件。
电子设备,包括所述的电子设备运行应用的装置。
由于电子设备运行应用的装置可以用于实施电子设备运行应用的方法,电子设备运行应用的装置的一些描述进行了省略。本领域技术人员通过对照,能够对电子设备运行应用的装置有清晰、完整的认识。
本发明技术方案中,“包括”、“用于”等词语应按照开放式表达方式理解。本领域技术人员通过阅读本说明书并结合现有技术或公知常识能够获知的内容,本说明书中不再赘述。
本发明提供的电子设备运行应用的方法及装置、电子设备,只要电子设备上存储了可执行文件和少量可执行文件启动时必须的资源文件,可执行文件对应的应用就可以先行启动,有效节约了安装大量资源文件消耗的时间,提高了用户体验。同时,登录信息等涉及用户隐私的信息存储在指定目录中,删除指定目录即清除了电子设备上的用户隐私信息,充分保障了用户隐私信息的安全。
附图说明
图1为具体实施方式中比较完整的电子设备运行应用的方法的流程图。
具体实施方式
下面对本发明的实施方式进行进一步的具体说明。但应注意,本发明的范围并不局限于所描述的具体技术方案。任何对所描述的具体技术方案中的技术要素进行相同或等同替换获得的技术方案或本领域技术人员在所描述的具体技术方案的基础上不经过创造性劳动就可以获得的技术方案,都应当视为落入本发明的保护范围。
应用程序编程接口(Application Programming Interface,简称API)是操作系统中预先定义的函数,应用的开发人员可以直接利用API实现操作系统的某些功能而不必关心操作系统的具体代码。目前的主流操作系统都提供了丰富的API供应用的开发人员选择,但操作系统提供的标准API仍然不能满足一些应用开发中的特殊需求,于是又发展出了挂钩(HOOK)技术,HOOK技术可以修改标准API的功能。目前已经有相当多的开源HOOK工具能够实现HOOK技术。
在HOOK技术的基础上,可以实现电子设备运行应用的方法。一个比较完整的电子设备运行应用的方法的流程如图1所示。电子设备运行应用的方法的核心步骤为:
S102:修改操作系统的第一应用程序编程接口,使可执行文件按照预定路径向操作系统请求调用资源文件时,操作系统向可执行文件返回指定目录的文件。
可执行文件调用资源文件时,会向操作系统发出请求,请求中包括可执行文件需要调用的资源文件的路径。可执行文件需要调用的资源文件的路径是预先设定好的,如“背景技术”中所述由安装包运行后形成的目录层次关系决定。通常情况下操作系统也按照可执行文件提供的预定路径向可执行文件返回资源文件。但利用HOOK技术可以修改操作系统的API,修改后操作系统不再按照可执行文件提供的预定路径向可执行文件返回资源文件,而是将HOOK工具使用者指定的目录(简称指定目录)作为资源文件存储目录向可执行文件返回资源文件。
所述的指定目录可以是本地目录,也可以是挂载的非本地目录。本地目录,指目录及目录下的文件实际存储在电子设备的存储器上;非本地目录,指目录及目录下的文件并没有实际存储在电子设备的存储器上。所述的挂载,指在操作系统中通过相应的命令,将非本地文件虚拟化为本地文件,从可执行文件(或进程)的角度看挂载后的非本地文件被视为本地文件。目前的主流操作系统都支持挂载功能。利用挂载功能,存储在非本地目录的资源文件也可以被电子设备上的可执行文件调用。如果挂载功能不方便实现,可以直接将资源文件下载到指定目录中。
如果操作系统向可执行文件返回指定目录的文件后可执行文件对操作系统返回的文件进行了写操作或者可执行文件在运行过程中创建了新的文件,则写操作形成的文件或者创建的新文件也会存储在指定目录。这意味着登录信息等涉及用户隐私的信息被存储在指定目录中,删除指定目录即清除了电子设备上的用户隐私信息,充分保障了用户隐私信息的安全
为了实现步骤S102,需要相应的前置步骤,前置步骤包括:
S101:在操作系统中启动进程,所述进程使用第二应用程序编程接口加载可执行文件。
本步骤中使用的第二应用程序编程接口与步骤S102中修改的第一应用程序编程接口往往不是相同的应用程序编程接口,故通过第一、第二进行区别。
S101’:修改可执行文件使第一应用程序编程接口成为可执行文件的内部函数。
本步骤中,修改可执行文件的源代码或者对可执行文件进行反汇编、反编译等反向操作,修改反向操作获得的代码,使第一应用程序编程接口成为可执行文件的内部函数。
步骤S101和S101’是平行步骤,效果是相同的,在执行步骤S102之前任选其一执行即可,不需要两者都执行。
下面通过一个具体的操作系统进一步说明电子设备运行应用的方法。电子设备的操作系统是开源的安卓(Android)系统。在安卓系统中开发一个平台应用,平台应用的功能是提供一个供用户选择应用的平台,用户可以在平台应用上选择启动哪一款应用。平台应用在自身的AndroidManifest.xml文件中设置android:process属性,使得平台应用能够以StartActivity的方式在安卓系统启动一个新的进程,该进程运行平台应用APK文件(安卓系统应用的安装包)中的代码。
步骤S101:用户在平台应用上选择一款具体的应用后,平台应用启动一个新的进程,执行平台应用APK文件中的相关代码。该进程首先检查电子设备上是否存储了用户选择的应用的DEX或ODEX文件(安卓系统中的可执行文件)以及相关的so库(安卓系统中后缀为.so的文件,是可以被调用的C++函数库)。如果DEX或ODEX文件以及相关的so库没有存储在电子设备自身的存储器上,则从其他设备例如专用的存储服务器下载。接着,使用DexClassLoader等安卓系统的API加载DEX或ODEX文件。
步骤S101’:平台应用的开发者事先修改DEX或ODEX文件的源代码或者反编译DEX或ODEX文件修改反编译得到的代码,使得需要修改的API成为DEX或ODEX文件的内部函数,这样DEX或ODEX文件启动后可以直接使用相关API。
步骤S102:使用Dexposed等开源Hook工具修改安卓系统的相关API,相关API包括安卓系统的Context.getFilesDir()或Context.getCacheDir()或Context.getExternalFilesDir()或Context.getExternalCacheDir()或SQLiteDatabase.openOrCreateDatabase()或Context.getSharedPreferences()或Environment.getExternalStorageDirectory()或AssetManager中获取资源文件的接口,修改可能涉及上述API中的一个或多个。安卓系统应用预定的资源文件路径为/sdcard或者/data/data相关路径,而上述API被修改后,DEX或ODEX文件请求资源文件时安卓系统向应用返回Hook工具使用者(一般也是平台应用的开发者)指定目录中的文件。修改API完成后,调用DEX或ODEX文件的启动接口启动DEX或ODEX文件。在DEX或ODEX文件运行的同时,平台应用同步下载DEX或ODEX文件运行过程中需要调用的资源文件到指定目录,不必等待所有的资源文件下载完毕再启动DEX或ODEX文件。
安卓系统中由于HOOK工具获取了sdcard根目录的返回值getExternalStorageDirectory,应用向sdcard目录下的非规范目录(即非“/sdcard/Android/data/应用包名”目录)写入的用户信息实际上被写入了指定目录,删除指定目录自然也清除了用户信息。
在电子设备的操作系统中编写相应的程序,可以实施以上所述的电子设备运行应用的方法,包括上述程序的软件可以视为电子设备运行应用的装置。电子设备运行应用的装置的实质为计算机软件,其实现方式是按照电子设备运行应用的方法各个步骤的描述建立与各个步骤相对应的程序模块,形成基于计算机程序的程序模块构架。电子设备运行应用的装置不是主要通过硬件方式实现的实体装置。电子设备运行应用的装置包括挂钩模块,所述的挂钩模块用于修改操作系统的第一应用程序编程接口,使可执行文件按照预定路径向操作系统请求调用资源文件时,操作系统向可执行文件返回指定目录的文件。电子设备运行应用的装置还包括平台应用,所述的平台应用用于在操作系统中启动进程,所述进程使用第二应用程序编程接口加载可执行文件。所述的平台应用还用于从其他设备,例如专用的存储服务器,下载可执行文件或者资源文件。
电子设备,包括以上所述的电子设备运行应用的装置。
利用本发明技术方案,只要电子设备上存储了可执行文件和少量可执行文件启动时必须的资源文件,可执行文件对应的应用就可以先行启动,有效节约了安装大量资源文件消耗的时间,提高了用户体验。同时,登录信息等涉及用户隐私的信息存储在指定目录中,删除指定目录即清除了电子设备上的用户隐私信息,充分保障了用户隐私信息的安全。
本领域技术人员在以上所描述的具体技术方案的基础上,完全可以构造出其他方案。在此不一一列举。
Claims (10)
1.电子设备运行应用的方法,其特征在于,所述的方法包括:
修改操作系统的第一应用程序编程接口,使可执行文件按照预定路径向操作系统请求调用资源文件时,操作系统向可执行文件返回指定目录的文件。
2.根据权利要求1所述的方法,其特征在于,所述的方法还包括:
在操作系统中启动进程,所述进程使用第二应用程序编程接口加载可执行文件。
3.根据权利要求1所述的方法,其特征在于,所述的方法还包括:
修改可执行文件使第一应用程序编程接口成为可执行文件的内部函数。
4.根据权利要求1所述的方法,其特征在于,
所述的电子设备的操作系统为安卓系统,所述的第一应用程序编程接口,包括安卓系统的Context.getFilesDir()或Context.getCacheDir()或Context.getExternalFilesDir()或Context.getExternalCacheDir()或SQLiteDatabase.openOrCreateDatabase()或Context.getSharedPreferences()或Environment.getExternalStorageDirectory()或AssetManager中获取资源文件的接口。
5.根据权利要求1所述的方法,其特征在于,所述的指定目录为挂载的非本地目录。
6.根据权利要求1所述的方法,其特征在于,所述的指定目录存储可执行文件对操作系统返回的文件进行写操作形成的文件或者可执行文件创建的新文件。
7.电子设备运行应用的装置,其特征在于,所述的装置包括挂钩模块,所述的挂钩模块用于修改操作系统的第一应用程序编程接口,使可执行文件按照预定路径向操作系统请求调用资源文件时,操作系统向可执行文件返回指定目录的文件。
8.根据权利要求7所述的装置,其特征在于,所述的装置还包括平台应用,所述的平台应用用于在操作系统中启动进程,所述进程使用第二应用程序编程接口加载可执行文件。
9.根据权利要求8所述的装置,其特征在于,所述的平台应用还用于下载可执行文件或者资源文件。
10.电子设备,其特征在于,所述的电子设备包括权利要求7-9任一项所述的电子设备运行应用的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710259749.1A CN108733467A (zh) | 2017-04-20 | 2017-04-20 | 电子设备运行应用的方法及装置、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710259749.1A CN108733467A (zh) | 2017-04-20 | 2017-04-20 | 电子设备运行应用的方法及装置、电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108733467A true CN108733467A (zh) | 2018-11-02 |
Family
ID=63925316
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710259749.1A Pending CN108733467A (zh) | 2017-04-20 | 2017-04-20 | 电子设备运行应用的方法及装置、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108733467A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109828826A (zh) * | 2019-01-10 | 2019-05-31 | 新华三云计算技术有限公司 | 一种任务进度的轮询方法、装置及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120064875A1 (en) * | 2010-09-09 | 2012-03-15 | Miller Allan A | Method and apparatus of providing messaging service and callback feature to mobile stations |
US20120233612A1 (en) * | 2011-02-08 | 2012-09-13 | Beckett Stephen M | Code injection and code interception in an operating system with multiple subsystem environments |
CN102682057A (zh) * | 2012-01-11 | 2012-09-19 | 广东欧珀移动通信有限公司 | Android应用程序数据文件的生成路径管理方法 |
CN104252374A (zh) * | 2014-10-17 | 2014-12-31 | 北京奇虎科技有限公司 | 基于架构改变的程序管控方法及装置 |
CN105373595A (zh) * | 2015-10-22 | 2016-03-02 | 广东欧珀移动通信有限公司 | 一种数据自分类存储方法及终端 |
CN105574425A (zh) * | 2015-04-30 | 2016-05-11 | 宇龙计算机通信科技(深圳)有限公司 | 访问存储数据的方法及装置 |
-
2017
- 2017-04-20 CN CN201710259749.1A patent/CN108733467A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120064875A1 (en) * | 2010-09-09 | 2012-03-15 | Miller Allan A | Method and apparatus of providing messaging service and callback feature to mobile stations |
US20120233612A1 (en) * | 2011-02-08 | 2012-09-13 | Beckett Stephen M | Code injection and code interception in an operating system with multiple subsystem environments |
CN102682057A (zh) * | 2012-01-11 | 2012-09-19 | 广东欧珀移动通信有限公司 | Android应用程序数据文件的生成路径管理方法 |
CN104252374A (zh) * | 2014-10-17 | 2014-12-31 | 北京奇虎科技有限公司 | 基于架构改变的程序管控方法及装置 |
CN105574425A (zh) * | 2015-04-30 | 2016-05-11 | 宇龙计算机通信科技(深圳)有限公司 | 访问存储数据的方法及装置 |
CN105373595A (zh) * | 2015-10-22 | 2016-03-02 | 广东欧珀移动通信有限公司 | 一种数据自分类存储方法及终端 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109828826A (zh) * | 2019-01-10 | 2019-05-31 | 新华三云计算技术有限公司 | 一种任务进度的轮询方法、装置及系统 |
CN109828826B (zh) * | 2019-01-10 | 2021-11-09 | 新华三云计算技术有限公司 | 一种任务进度的轮询方法、装置及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105867947B (zh) | 预置应用程序升级后的数据处理方法及装置 | |
CN104915268A (zh) | 桌面布局的存储、恢复方法及其装置、终端设备、系统 | |
CN104182255A (zh) | 一种系统应用的库文件升级方法及终端 | |
US20100115254A1 (en) | Synchronization in Multiple Environments | |
WO2007070295A1 (en) | Metadata driven deployment of applications | |
CN104536744A (zh) | 一种自动化构建与部署代码的方法及服务器 | |
CN104317623B (zh) | 移动终端预置应用程序的管理方法和移动终端 | |
CN103123605B (zh) | 一种Android平台自动化集成测试方法和装置 | |
CN110399159A (zh) | 操作系统的部署方法、装置、计算机设备和存储介质 | |
CN104731602A (zh) | 一种分离安卓镜像烧录流程的方法 | |
CN109863474A (zh) | 更新迁移系统和方法 | |
US20160357545A1 (en) | System and method for downgrading applications | |
CN108563440A (zh) | 列表控制器代码自动添加方法、装置及可读存储介质 | |
CN105765533A (zh) | 用于固件虚拟化的方法和装置 | |
CN103995696A (zh) | 移动终端的程序包定制系统及定制方法 | |
US20100017863A1 (en) | Portable storage apparatus for providing working environment migration service and method thereof | |
US9513928B2 (en) | Method of operating multiple operating systems and the electronic device thereof | |
CN106293790B (zh) | 基于Firefox操作系统的应用程序升级方法和装置 | |
CN101986662B (zh) | 一种widget实例运行方法及系统 | |
CN107145390B (zh) | 安卓服务生命周期管理方法、服务管理对象设备及安卓系统 | |
CN104461612B (zh) | 一种数据处理方法及装置 | |
CN108733467A (zh) | 电子设备运行应用的方法及装置、电子设备 | |
JP6317058B2 (ja) | 情報処理装置、情報処理システム、情報処理プログラム、および情報処理方法 | |
CN109634690A (zh) | 一种基于WinPE系统的数据清除方法、装置、终端及存储介质 | |
CN110888649B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181102 |
|
RJ01 | Rejection of invention patent application after publication |