CN109144948B - 应用文件定位的方法、装置、电子设备和存储器 - Google Patents
应用文件定位的方法、装置、电子设备和存储器 Download PDFInfo
- Publication number
- CN109144948B CN109144948B CN201710453462.2A CN201710453462A CN109144948B CN 109144948 B CN109144948 B CN 109144948B CN 201710453462 A CN201710453462 A CN 201710453462A CN 109144948 B CN109144948 B CN 109144948B
- Authority
- CN
- China
- Prior art keywords
- application
- sdcard
- file
- directory
- daemon
- 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
- 238000000034 method Methods 0.000 title claims abstract description 47
- 230000004048 modification Effects 0.000 claims description 8
- 238000012986 modification Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 abstract description 16
- 238000012217 deletion Methods 0.000 abstract description 3
- 230000037430 deletion Effects 0.000 abstract description 3
- 238000009434 installation Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 3
- 101100287622 Haloarcula marismortui (strain ATCC 43049 / DSM 3752 / JCM 8966 / VKM B-1809) katG2 gene Proteins 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供的应用文件定位的方法、装置、电子设备和存储器,将sdcard daemon管理的根索引节点中的路径修改为应用对应的标准存储路径。对于开启fuse功能的安卓系统,无论应用自身如何设置,应用对/sdcard目录进行文件操作所涉及的文件都会被存储到指定目录,后续可以非常快速、准确的进行文件删除等操作,在一些场景下具有重要价值。
Description
技术领域
本发明涉及应用文件定位的方法、装置、电子设备和存储器。
背景技术
具有操作系统的电子设备,例如个人计算机、移动终端等,在日常生活中发挥着越来越重要的作用。电子设备的重要功能是运行各种应用,应用指能够在某种操作系统中运行的软件或程序。目前的主流操作系统,例如Windows、Mac、IOS、Linux以及在Linux基础上衍生的操作系统如Android等,应用都是通过安装包进行安装的。安装包运行后会产生大量的文件,这些文件位于一个或多个顶层父目录下,形成一定的目录层次关系,顶层父目录的位置及顶层父目录下的子目录结构由操作系统和安装包共同决定。安装包运行后产生的文件,一类是可执行文件(有时也称可执行程序),可执行文件能够在操作系统中运行,运行时在操作系统中生成与可执行文件对应的进程;另一类文件自身无法在操作系统中运行,其作用是供可执行文件在运行过程中调用,这一类文件统称为资源文件。安装包运行后形成的目录层次关系,能够确定任何一个资源文件的具体路径,为可执行文件调用资源文件提供了方便。
开源的安卓(Android)系统具有很多优点,常被选取为电子设备的操作系统。安卓系统的内核提供了fuse模块,fuse模块的功能是使安卓系统的/data目录和/sdcard目录共享userdata分区。由于标准安卓系统(即原生安卓系统,指Google公司发布、没有经过第三方修改的安卓系统)中没有根(root)权限的应用有权使用的目录为/data目录和/sdcard目录,开启fuse功能能够有效避免应用占用目录不合理导致/data目录和/sdcard目录一个有空间而另一个被占满影响安卓系统运行的问题,因此安卓系统为了流畅运行往往会开启fuse功能。
目前的主流操作系统,对于安装包运行后产生的文件的顶层父目录的位置一般没有非常严格的限定,允许用户或应用自身在一定范围内自行选择。在一些场景下,希望应用的可执行文件运行结束后快速删除可执行文件对应的资源文件,资源文件顶层父目录的位置不确定就会带来问题。很多时候需要针对每个应用在操作系统中查找其对应文件的位置再删除文件,这会浪费较多的人力或时间。不同的操作系统,可能有不同的技术方案解决上述问题。对于开启fuse功能的安卓系统如何解决上述问题,尚未见报道。
在说明书“背景技术”部分公开的内容,有助于本领域技术人员理解本发明的技术方案,但不应据此认为这些内容一定属于现有技术或公知常识。
发明内容
为了克服“背景技术”部分所反映的缺陷,本发明提供应用文件定位的方法、装置、电子设备和存储器。
应用文件定位的方法,包括:
将sdcard daemon管理的根索引节点中的路径修改为应用对应的标准存储路径。
进一步的,所述的应用对应的标准存储路径包括sdcard daemon启动命令中指定的路径和应用的包名。
进一步的,所述的方法还包括:
应用启动前根据应用对应的标准存储路径创建目录;
应用关闭后重置sdcard daemon管理的根索引节点中的路径。
更进一步的,所述的根据应用对应的标准存储路径创建目录,包括创建两个子目录,所述两个子目录的名称分别为0和legacy。
更进一步的,所述的应用的包名由sdcard daemon根据应用标识查找获得。
更进一步的,所述的应用标识为安卓系统应用的UID。
更进一步的,所述的应用标识传送到fuse模块,再由fuse模块传送到sdcarddaemon;所述的应用标识传送到fuse模块,实现方式包括在安卓系统的/sys/fs/fuse目录下创建目录并在所述的创建目录下创建文件,通过安卓系统的echo命令将应用标识写入所述的创建文件。
应用文件定位的装置,包括修改模块,所述的修改模块用于将sdcard daemon管理的根索引节点中的路径修改为应用对应的标准存储路径。
电子设备,包括处理器、存储器以及存储在所述的存储器中并能够被所述的处理器执行的指令,所述的处理器执行所述的指令能够实现所述的应用文件定位的方法。
存储器,所述的存储器存储有指令,所述的指令被处理器执行能够实现所述的应用文件定位的方法。
由于应用文件定位的装置和应用文件定位的方法具有明确的关联性,应用文件定位的装置的一些描述进行了省略。本领域技术人员通过对照,能够对应用文件定位的装置有清晰、完整的认识。
本发明技术方案中,“包括”、“用于”等词语应按照开放式表达方式理解。本领域技术人员通过阅读本说明书并结合现有技术或公知常识能够获知的内容,本说明书中不再赘述。
本发明提供的应用文件定位的方法、装置、电子设备和存储器,对于开启fuse功能的安卓系统,无论应用自身如何设置,应用对/sdcard目录进行文件操作所涉及的文件都会被存储到指定目录,后续可以非常快速、准确的进行文件删除等操作,在一些场景下具有重要价值。
附图说明
图1为具体实施方式中比较完整的应用文件定位的方法的流程图。
具体实施方式
下面对本发明的实施方式进行进一步的具体说明。但应注意,本发明的范围并不局限于所描述的具体技术方案。任何对所描述的具体技术方案中的技术要素进行相同或等同替换获得的技术方案或本领域技术人员在所描述的具体技术方案的基础上不经过创造性劳动就可以获得的技术方案,都应当视为落入本发明的保护范围。
开源的安卓(Android)系统具有很多优点,常被选取为电子设备的操作系统。安卓系统的内核提供了fuse模块,fuse模块的功能是使/data目录和/sdcard目录共享userdata分区,应用对/sdcard目录的文件操作(包括读写文件、创建或删除文件等)被fuse模块转发到用户态的sdcard daemon(源代码位于/system/core/sdcard/sdcard.c)中。sdcarddaemon的启动命令位于安卓系统的init.rc文件中。
一个比较完整的应用文件定位的方法的流程图如图1所示。应用文件定位的方法的核心步骤为:
S101:将sdcard daemon管理的根索引节点中的路径修改为应用对应的标准存储路径。
安卓系统的应用都有对应的包名,包名可以从该应用的安装包中解析出来。所述的标准存储路径,包括一个目录名称以及该目录的路径(即该目录在安卓系统中的具体存储位置)。下面举例说明应用对应的标准存储路径的格式。一款名为《犬夜叉》的安卓系统游戏,其标准存储路径为/data/media/0/Android/data/com.heitao.qyckp.hm,其中com.heitao.qyckp.hm是《犬夜叉》的包名,/data/media是sdcard daemon的启动命令中指定的文件操作路径(在sdcard daemon的源代码中定义为sourcepath),0是sdcard daemon采用的主用户ID,应用的UID小于100000时对应的sdcard daemon主用户ID都是0。可以看出,应用对应的标准存储路径包括sdcard daemon启动命令中指定的路径和应用的包名。
对于某个应用的包名,可以由sdcard daemon根据应用标识查找获得。安卓系统中常用的应用标识为应用的UID。UID通常指用户标识(User Identification),但由于安卓系统是单用户操作系统,安卓系统的UID变为与应用对应的标识。sdcard daemon,将其管理的根索引节点(根索引节点的英文名称为root inode)中的路径修改为应用对应的标准存储路径。安卓系统继承了Linux系统的inode机制,但sdcard daemon管理的索引节点(inode)与安卓系统一般的索引节点是不同的。sdcard daemon管理的索引节点由sdcard daemon源代码中的结构体(即源代码中的struct node)创建,根索引节点中存储了一条路径,该路径代表了sdcard daemon进行文件操作(包括创建文件、删除文件、读写文件等操作)的根目录。其他索引节点则存储了路径的分量(可以视为完整路径的一部分),这样组合根索引节点和其他索引节点存储的信息可以拼接出某个文件的完整路径。sdcard daemon管理的索引节点存储相对路径而不是绝对路径,这确保了应用文件定位的方法不会受到Linux内核中一些机制的干扰,能够正常施行。
对于sdcard daemon如何获得应用标识,在安卓系统中一个比较可靠的方法是先将应用标识传送到fuse模块,再由fuse模块传送到sdcard daemon。应用标识传送到fuse模块,可以有多种不同的实现方法。一种比较简单的实现方法,在安卓系统的/sys/fs/fuse目录下创建目录并在所述的创建目录下创建文件,通过安卓系统的echo命令将应用标识写入所述的创建文件。具体的,在fuse模块加载时通过sysfs的内核源代码接口在/sys/fs/fuse目录下创建一个名称为hmcp_controls的目录,该目录下创建一个名称为process_uid的文件。使用命令“echo应用UID>/sys/fs/fuse/hmcp_controls/process_uid”,这样可以在用户态下将应用的UID传送到fuse模块。至于fuse模块传送应用的UID到sdcard daemon,安卓系统的现有机制可以实现。
将sdcard daemon管理的根索引节点中的路径修改为应用对应的标准存储路径后,只要安卓系统开启了fuse功能,不管应用自身如何设置,应用对/sdcard目录进行文件操作,无论应用的安装包安装文件还是应用的可执行文件修改、增删资源文件,所涉及的文件都会按照应用对应的标准存储路径存储,文件的位置是确定的。
为了保证应用文件定位的方法准确实施,避免实施应用文件定位的方法导致其他问题,应用文件定位的方法还需要一些后续步骤。
S102:应用启动前根据应用对应的标准存储路径创建目录。
步骤S101可以保证应用对/sdcard目录进行文件操作时涉及的文件存储到指定目录,上述指定目录由应用对应的标准存储路径确定。但如果上述指定目录在安卓系统中尚不存在,则需要在应用启动前创建。例如,《犬夜叉》的标准存储路径为/data/media/0/Android/data/com.heitao.qyckp.hm,如果安卓系统中不存在符合上述路径的com.heitao.qyckp.hm目录,则应当在《犬夜叉》启动前创建。com.heitao.qyckp.hm目录中应当再创建两个子目录,两个子目录的名称分别为0和legacy。《犬夜叉》的资源文件存储在名称为0的子目录中。如果名称为legacy的子目录不存在,基于安卓系统的设置《犬夜叉》的可执行文件不能正常运行。名称为legacy的子目录实际上起到了标识作用,该子目录下可以不存储任何文件。
S103:应用关闭后重置sdcard daemon管理的根索引节点中的路径。
应用关闭后,sdcard daemon管理的根索引节点中的路径重置为安卓系统默认的路径/data/media,这样可以避免sdcard daemon后续运行产生问题。
在安卓系统中编写相应的程序,可以实施以上所述的应用文件定位的方法,包括这些程序的软件可以视为应用文件定位的装置。应用文件定位的装置的实质为计算机软件,其实现方式是按照应用文件定位的方法的描述编写与该方法对应的程序,形成基于程序的程序模块构架。应用文件定位的装置不是主要通过硬件方式实现的实体装置。应用文件定位的装置的核心模块是修改模块,所述的修改模块用于将sdcard daemon管理的根索引节点中的路径修改为应用对应的标准存储路径。修改模块的实现方式,可以在标准安卓系统的sdcard daemon的源代码中嵌入实现相应功能的程序模块。修改模块的示意性代码段如下:
电子设备,包括处理器、存储器以及存储在所述的存储器中并能够被所述的处理器执行的指令,所述的处理器执行所述的指令能够实现所述的应用文件定位的方法。处理器是电子设备中执行运算功能的部件,处理器往往还具有控制功能。通俗的讲,指令可以视为对处理器发出的命令。处理器能够执行输入的指令,输出指令的执行结果。程序可以视为按照一定顺序排列的指令的集合。存储器是电子设备中执行数据存储功能的部件。按照应用文件定位的方法的描述编写与该方法对应的程序,上述程序存储在存储器中,处理器执行程序中包含的指令即可实现应用文件定位的方法。
存储器,所述的存储器存储有指令,所述的指令被处理器执行能够实现所述的应用文件定位的方法。存储器是电子设备中执行数据存储功能的部件,例如计算机或其他电子设备的可读存储介质。
本发明提供的应用文件定位的方法、装置、电子设备和存储器,对于开启fuse功能的安卓系统,无论应用自身如何设置,应用对/sdcard目录进行文件操作所涉及的文件都会被存储到指定目录,后续可以非常快速、准确的进行文件删除等操作,在一些场景下具有重要价值。
本领域技术人员在以上所描述的具体技术方案的基础上,完全可以构造出其他方案。在此不一一列举。
Claims (7)
1.应用文件定位的方法,其特征在于,所述的方法包括:将sdcard daemon管理的根索引节点中的路径修改为应用对应的标准存储路径;
所述的方法还包括:
应用启动前根据应用对应的标准存储路径创建目录;
应用关闭后重置sdcard daemon管理的根索引节点中的路径;
所述的应用对应的标准存储路径包括sdcard daemon启动命令中指定的路径和应用的包名;
所述的方法还包括:
所述应用的应用标识传送到fuse模块,再由fuse模块传送到sdcard daemon;所述的应用标识传送到fuse模块,实现方式包括在安卓系统的/sys/fs/fuse目录下创建目录并在所述的创建目录下创建文件,通过安卓系统的echo命令将应用标识写入所述的创建文件。
2.根据权利要求1所述的方法,其特征在于,所述的根据应用对应的标准存储路径创建目录,包括创建两个子目录,所述两个子目录的名称分别为0和legacy。
3.根据权利要求1所述的方法,其特征在于,所述的应用的包名由sdcard daemon根据应用标识查找获得。
4.根据权利要求3所述的方法,其特征在于,所述的应用标识为安卓系统应用的UID。
5.应用文件定位的装置,其特征在于,所述的装置包括修改模块,所述的修改模块用于将sdcard daemon管理的根索引节点中的路径修改为应用对应的标准存储路径;
所述装置,还用于:
应用启动前根据应用对应的标准存储路径创建目录;
应用关闭后重置sdcard daemon管理的根索引节点中的路径;
所述的应用对应的标准存储路径包括sdcard daemon启动命令中指定的路径和应用的包名;
所述装置,还用于:
所述应用的应用标识传送到fuse模块,再由fuse模块传送到sdcard daemon;所述的应用标识传送到fuse模块,实现方式包括在安卓系统的/sys/fs/fuse目录下创建目录并在所述的创建目录下创建文件,通过安卓系统的echo命令将应用标识写入所述的创建文件。
6.电子设备,包括处理器、存储器以及存储在所述的存储器中并能够被所述的处理器执行的指令,其特征在于,所述的处理器执行所述的指令能够实现权利要求1-4任一项所述的应用文件定位的方法。
7.存储器,所述的存储器存储有指令,其特征在于,所述的指令被处理器执行能够实现权利要求1-4任一项所述的应用文件定位的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710453462.2A CN109144948B (zh) | 2017-06-15 | 2017-06-15 | 应用文件定位的方法、装置、电子设备和存储器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710453462.2A CN109144948B (zh) | 2017-06-15 | 2017-06-15 | 应用文件定位的方法、装置、电子设备和存储器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109144948A CN109144948A (zh) | 2019-01-04 |
CN109144948B true CN109144948B (zh) | 2021-10-08 |
Family
ID=64830157
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710453462.2A Active CN109144948B (zh) | 2017-06-15 | 2017-06-15 | 应用文件定位的方法、装置、电子设备和存储器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109144948B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109977075A (zh) * | 2019-03-19 | 2019-07-05 | 北京椒图科技有限公司 | 一种文件存储路径获取方法及装置 |
CN111143789B (zh) * | 2019-12-05 | 2023-07-25 | 深圳市任子行科技开发有限公司 | 一种apk资源文件的混淆方法和装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020315A (zh) * | 2013-01-10 | 2013-04-03 | 中国人民解放军国防科学技术大学 | 一种基于主从分布式文件系统的海量小文件存储方法 |
CN103826159A (zh) * | 2013-12-04 | 2014-05-28 | Tcl集团股份有限公司 | 一种m3u8格式视频的本地离线播放方法和终端 |
CN105204959A (zh) * | 2015-08-28 | 2015-12-30 | 小米科技有限责任公司 | 恢复ext文件系统中已删除文件的方法及装置 |
CN105786498A (zh) * | 2016-02-25 | 2016-07-20 | 广州阿里巴巴文学信息技术有限公司 | 用于修改应用程序的方法、设备和电子设备 |
CN105808589A (zh) * | 2014-12-31 | 2016-07-27 | 中国电信股份有限公司 | 文件处理的方法和装置 |
CN106066803A (zh) * | 2016-05-25 | 2016-11-02 | 北京奇虎科技有限公司 | 应用程序运行控制的方法及装置 |
CN106484501A (zh) * | 2015-08-26 | 2017-03-08 | 北京奇虎科技有限公司 | 一种应用运行方法和装置 |
CN106682003A (zh) * | 2015-11-06 | 2017-05-17 | 中国电信股份有限公司 | 分布式存储命名空间的路径分割映射方法和装置 |
CN106775876A (zh) * | 2016-12-21 | 2017-05-31 | 海马云(天津)信息技术有限公司 | 安卓系统快速启动应用的方法 |
-
2017
- 2017-06-15 CN CN201710453462.2A patent/CN109144948B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020315A (zh) * | 2013-01-10 | 2013-04-03 | 中国人民解放军国防科学技术大学 | 一种基于主从分布式文件系统的海量小文件存储方法 |
CN103826159A (zh) * | 2013-12-04 | 2014-05-28 | Tcl集团股份有限公司 | 一种m3u8格式视频的本地离线播放方法和终端 |
CN105808589A (zh) * | 2014-12-31 | 2016-07-27 | 中国电信股份有限公司 | 文件处理的方法和装置 |
CN106484501A (zh) * | 2015-08-26 | 2017-03-08 | 北京奇虎科技有限公司 | 一种应用运行方法和装置 |
CN105204959A (zh) * | 2015-08-28 | 2015-12-30 | 小米科技有限责任公司 | 恢复ext文件系统中已删除文件的方法及装置 |
CN106682003A (zh) * | 2015-11-06 | 2017-05-17 | 中国电信股份有限公司 | 分布式存储命名空间的路径分割映射方法和装置 |
CN105786498A (zh) * | 2016-02-25 | 2016-07-20 | 广州阿里巴巴文学信息技术有限公司 | 用于修改应用程序的方法、设备和电子设备 |
CN106066803A (zh) * | 2016-05-25 | 2016-11-02 | 北京奇虎科技有限公司 | 应用程序运行控制的方法及装置 |
CN106775876A (zh) * | 2016-12-21 | 2017-05-31 | 海马云(天津)信息技术有限公司 | 安卓系统快速启动应用的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109144948A (zh) | 2019-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110088733B (zh) | 虚拟机迁移的基于存储层的编排 | |
CN109906433B (zh) | 针对容器的存储隔离 | |
US11741046B2 (en) | Method and apparatus for creating system disk snapshot of virtual machine | |
US8924954B2 (en) | Application software installation method and application software installation apparatus | |
EP3504638B1 (en) | Storage virtualization for files | |
CN107391101B (zh) | 一种信息处理方法及装置 | |
US10228993B2 (en) | Data dump for a memory in a data processing system | |
CN108268609B (zh) | 一种文件路径的建立、访问方法和装置 | |
JP2010205267A (ja) | 仮想化サブレイヤを統合する方法およびシステム | |
US11150981B2 (en) | Fast recovery from failures in a chronologically ordered log-structured key-value storage system | |
JP2017076264A (ja) | ファイルアクセスシステム、方法及びプログラム | |
CN108415736A (zh) | 利用进程文件系统标记程序进程的方法、装置和设备 | |
CN109144948B (zh) | 应用文件定位的方法、装置、电子设备和存储器 | |
WO2017020460A1 (zh) | 一种集成插件的方法和装置 | |
US9053108B2 (en) | File system extended attribute support in an operating system with restricted extended attributes | |
CN117270873A (zh) | 一种基于Android应用的实时编译方法、装置、设备及介质 | |
EP3785136A1 (en) | Hydration of a hierarchy of dehydrated files | |
CN115586872A (zh) | 一种容器镜像管理方法、装置、设备及存储介质 | |
CN111045859B (zh) | 用于备份虚拟机的方法、设备和计算机程序产品 | |
US20200073551A1 (en) | Moving outdated data from a multi-volume virtual disk to a backup storage device | |
US9087064B2 (en) | User-defined hierarchies in file system data sets | |
US11593230B2 (en) | Efficient mechanism for data protection against cloud region failure or site disasters and recovery time objective (RTO) improvement for backup applications | |
US12093217B2 (en) | File transfer prioritization during replication | |
US11675735B1 (en) | File transfer prioritization during replication | |
US20200379662A1 (en) | Systems and methods for implementing improved links between paths of one or more file systems |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231213 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. |