CN108427678B - 安卓系统查找应用资源文件的方法 - Google Patents

安卓系统查找应用资源文件的方法 Download PDF

Info

Publication number
CN108427678B
CN108427678B CN201710076677.7A CN201710076677A CN108427678B CN 108427678 B CN108427678 B CN 108427678B CN 201710076677 A CN201710076677 A CN 201710076677A CN 108427678 B CN108427678 B CN 108427678B
Authority
CN
China
Prior art keywords
application
directory
android system
file
uid
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
Application number
CN201710076677.7A
Other languages
English (en)
Other versions
CN108427678A (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
Haima Cloud 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 Haima Cloud Tianjin Information Technology Co Ltd filed Critical Haima Cloud Tianjin Information Technology Co Ltd
Priority to CN201710076677.7A priority Critical patent/CN108427678B/zh
Publication of CN108427678A publication Critical patent/CN108427678A/zh
Application granted granted Critical
Publication of CN108427678B publication Critical patent/CN108427678B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/144Query formulation

Abstract

本发明提供的安卓系统查找应用资源文件的方法,获取安卓系统分配给应用的UID,遍历安卓系统应用目录的所有文件,找出文件的Owner ID与所述UID一致的全部文件。无论应用的资源文件位于安卓系统的任何位置,该方法都能够快速、准确的查找出来。

Description

安卓系统查找应用资源文件的方法
技术领域
本发明涉及安卓系统查找应用资源文件的方法。
背景技术
安卓(Android)系统是目前智能移动终端等电子设备上广泛使用的操作系统,安卓系统中可以运行各种应用(应用指能够在安卓系统中运行的软件或程序)。安卓系统的应用在启动时经常会出现加载进度条(实际上是把应用运行时需要加载的本地文件从应用的安装包中提取出来存储到指定目录),加载完成后有时又会弹出对话框强制要求下载补丁。应用运行时需要加载的本地文件和从远程下载的补丁文件,可以统称为资源文件。如果缺少资源文件,应用不能正常运行。因此在安卓系统快速启动应用、免安装运行应用等技术方案中资源文件具有重要作用。
安卓系统提供了访问本地存储的API(应用程序编程接口),如果应用调用安卓系统提供的API,则资源文件的存储目录是确定的。例如,调用Context.getFilesDir(),可以获得“/data/data/应用包名/files”目录;调用Context.getCacheDir(),可以获得“/data/data/应用包名/cache”目录;调用Context.getExternalFilesDir(),可以获得“/sdcard/Android/data/应用包名/files”目录;调用Context.getExternalCacheDir(),可以获得“/sdcard/Android/data/应用包名/cache”目录。上述目录由安卓系统代为管理,应用卸载时安卓系统会自动清空这些目录,不遗留垃圾文件。进一步的,“/sdcard/Android/data/应用包名/files”和“/sdcard/Android/data/应用包名/cache”这两个目录分别对应安卓系统“设置->应用->应用详情”里的“清除数据”与“清除缓存”选项,非常便于用户管理。
然而,标准的安卓系统并没有强制性规定应用的资源文件必须存储在上述目录。一些应用的开发者出于各种考虑,将应用的资源文件存储在其他目录下,对此安卓系统也提供支持。例如,调用Environment.getDataDirectory(),可以获得/data目录;调用Environment.getExternalStorageDirectory(),可以获得/sdcard目录。应用的开发者可以在/data目录或/sdcard目录下任意创建子目录存储资源文件。对于此类资源文件,如何在安卓系统中快速、准确的进行查找,尚未见报道。
在说明书“背景技术”部分公开的内容,有助于本领域技术人员理解本发明的技术方案,但不应据此认为这些内容一定属于现有技术或公知常识。
发明内容
为了克服“背景技术”部分所反映的缺陷,本发明提供安卓系统查找应用资源文件的方法。安卓系统查找应用资源文件的方法,包括:
1)获取安卓系统分配给应用的UID;
2)遍历安卓系统应用目录的所有文件,找出文件的Owner ID与1)中所述UID一致的全部文件。
进一步的,所述的安卓系统应用目录包括安卓系统的/data目录和/sdcard目录。
进一步的,所述的方法还包括:
0)将安卓系统不支持UID的应用目录更改为支持UID。
更进一步的,所述安卓系统不支持UID的应用目录为安卓系统的/sdcard目录,所述的更改包括:
利用安卓系统内核的fuse模块将应用对/sdcard目录的文件操作转发到sdcarddeamon;
强制应用对/sdcard目录进行文件操作时目标文件的Owner ID为应用的UID。
进一步的,所述的方法还包括:
3)根据2)中文件的Owner ID与1)中所述UID一致的文件的路径合并出文件的顶层父目录。
更进一步的,所述的方法还包括:
4)舍弃3)中顶层父目录中大小小于设定阈值的顶层父目录。
本发明技术方案中,“包括”、“用于”等词语应按照开放式表达方式理解。本领域技术人员通过阅读本说明书并结合现有技术或公知常识能够获知的内容,本说明书中不再赘述。
本发明提供的安卓系统查找应用资源文件的方法,无论应用的资源文件位于安卓系统的任何位置,都能够快速、准确的查找出来。
附图说明
图1为具体实施方式中完整的安卓系统查找应用资源文件的方法流程图。
具体实施方式
下面对本发明的实施方式进行进一步的具体说明。但应注意,本发明的范围并不局限于所描述的具体技术方案。任何对所描述的具体技术方案中的技术要素进行相同或等同替换获得的技术方案或本领域技术人员在所描述的具体技术方案的基础上不经过创造性劳动就可以获得的技术方案,都应当视为落入本发明的保护范围。
安卓(Android)系统是目前智能移动终端等电子设备上广泛使用的操作系统,安卓系统中可以运行各种应用(应用指能够在安卓系统中运行的软件或程序)。应用运行时需要资源文件,应用会将从本地或远程获取的资源文件存储在安卓系统应用目录的某些位置,至于具体存储在什么位置,安卓系统并没有强制性的规定。所述的应用目录,指应用有权使用、能够进行文件操作的目录。安卓系统的绝大多数应用都没有安卓系统的根(root)权限,标准安卓系统中无根权限的应用有权使用的目录为/data目录和/sdcard目录。
应用的资源文件的具体存储位置,可以通过本发明提供的安卓系统查找应用资源文件的方法进行查找。完整的安卓系统查找应用资源文件的方法,其流程如如图1所示,包括:
S100:将安卓系统不支持UID的应用目录更改为支持UID。
UID通常指用户标识(User Identification),但由于安卓系统是单用户操作系统,安卓系统的UID变为与应用相对应的标识。安卓系统的文件系统比较复杂,以继承自Linux的EXT文件系统为主,但也兼容FAT文件系统。FAT文件系统不支持UID,如果存储资源文件的应用目录为FAT文件系统,会导致本发明技术方案无法实现。因此,本步骤可以视为一个准备步骤,如果实际的安卓系统中不存在FAT文件系统的目录,则无需执行本步骤。
安卓系统中FAT文件系统的目录往往是/sdcard目录(即对应SD存储卡的目录)。将/sdcard目录更改为支持UID,可以利用安卓系统内核提供的fuse模块。fuse模块能够让/data目录和/sdcard目录共享同一个分区,即/sdcard目录挂载了/dev/fuse设备,应用对/sdcard目录的文件操作被fuse模块转发到用户态的sdcard deamon中(源代码位于/system/core/sdcard/sdcard.c)。这样可以使/sdcard目录的文件系统也变为EXT,支持UID。
安卓系统的文件有其Owner ID(所有者标识)。应用创建文件时,应当使用安卓系统分配给自己的UID作为文件的Owner ID,但在标准安卓系统的sdcard deamon中上述机制并没有严格执行。因此需要修改标准安卓系统的代码,强制应用对/sdcard目录进行文件操作(本发明技术方案中主要涉及文件的读写操作)时目标文件的Owner ID为应用的UID。涉及需要修改的代码,包括/system/core/sdcard/sdcard.c,也包括fuse模块中(位于内核的fs/fuse目录下)的相关代码。
S101:获取安卓系统分配给应用的UID。
在应用安装时,安卓系统会分配给应用一个唯一的UID,记录在/data/system/packages.xml文件中。读取/data/system/packages.xml文件中的信息,即可获得分配给某个应用的UID。在安卓系统中,UID有固定的格式。
S102:遍历安卓系统应用目录的所有文件,找出文件的Owner ID与S101中所述UID一致的全部文件。
遍历安卓系统应用目录的所有文件,找出这些文件中文件的Owner ID与步骤S101中获取的UID一致的全部文件。如果应用没有安卓系统的根权限,在标准安卓系统中遍历/data目录和/sdcard目录两个目录中的所有文件即可。本步骤和步骤S101是安卓系统查找应用资源文件的方法的最核心步骤。
S103:根据S102中文件的Owner ID与S101中所述UID一致的文件的路径合并出文件的顶层父目录。
步骤S102完成后,应用的全部资源文件都已经找到了。但实际中进行文件复制等操作时,对文件目录进行操作要比对单个文件进行操作方便很多,因此要根据资源文件(即步骤S102中找到的文件的Owner ID与S101中所述UID一致的所有文件)的路径合并出资源文件的顶层父目录。顶层父目录指包括尽可能多的资源文件但不包括非资源文件的父目录。一个应用对应的资源文件有可能形成多个顶层父目录,这些顶层父目录彼此独立、互不包含。顶层父目录一般是应用运行过程中创建的。
S104:舍弃S103中顶层父目录中大小小于设定阈值的顶层父目录。
通常,步骤S103中得到的顶层父目录是应用运行时需要的,但也存在特殊情况。如果顶层父目录过小(即顶层父目录中包含的文件的总大小过小),则顶层父目录中包含的可能是日志文件(log文件)等对应用运行确实没有影响的文件,可以舍弃。可以设定一个阈值,例如1M,如果顶层父目录的大小小于设定的阈值,则舍弃该顶层父目录,上述舍弃行为不会影响应用的正常运行。
步骤S100中涉及的修改代码可以手工完成。代码修改完毕后,在安卓系统中编写专用的程序,可以自动实现安卓系统查找应用资源文件的方法。无论应用的开发者将应用的资源文件存储在什么位置,通过安卓系统查找应用资源文件的方法都可以将资源文件快速、准确的查找出来,包含资源文件的顶层父目录可以在实施安卓系统快速启动应用、免安装运行应用等技术方案时直接使用。
本领域技术人员在以上所描述的具体技术方案的基础上,完全可以构造出其他方案。在此不一一列举。

Claims (3)

1.一种安卓系统查找应用资源文件的方法,其特征在于,所述的方法包括:
0)将安卓系统不支持UID的应用目录更改为支持UID;
所述安卓系统不支持UID的应用目录为安卓系统的/sdcard目录,所述的更改包括:
利用安卓系统内核的fuse模块将应用对/sdcard目录的文件操作转发到sdcarddaemon;
强制应用对/sdcard目录进行文件操作时,目标文件的Owner ID改为应用的UID;
1)获取安卓系统分配给应用的UID;
2)遍历安卓系统应用目录的所有文件,找出文件的Owner ID与1)中所述UID一致的全部文件;
3)根据2)中文件的Owner ID与1)中所述UID一致的文件的路径合并出文件的顶层父目录。
2.根据权利要求1所述的方法,其特征在于,所述的安卓系统应用目录包括安卓系统的/data目录和/sdcard目录。
3.根据权利要求1所述的方法,其特征在于,所述的方法还包括:
4)舍弃3)中所述顶层父目录中大小小于设定阈值的顶层父目录。
CN201710076677.7A 2017-02-13 2017-02-13 安卓系统查找应用资源文件的方法 Active CN108427678B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710076677.7A CN108427678B (zh) 2017-02-13 2017-02-13 安卓系统查找应用资源文件的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710076677.7A CN108427678B (zh) 2017-02-13 2017-02-13 安卓系统查找应用资源文件的方法

Publications (2)

Publication Number Publication Date
CN108427678A CN108427678A (zh) 2018-08-21
CN108427678B true CN108427678B (zh) 2021-04-20

Family

ID=63155086

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710076677.7A Active CN108427678B (zh) 2017-02-13 2017-02-13 安卓系统查找应用资源文件的方法

Country Status (1)

Country Link
CN (1) CN108427678B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114185851B (zh) * 2022-02-14 2022-07-05 麒麟软件有限公司 安卓访问Linux本地目录和文件的方法与系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101609425A (zh) * 2008-06-19 2009-12-23 中兴通讯股份有限公司 一种脚本及关联数据移植系统及移植方法
CN103092664A (zh) * 2013-02-07 2013-05-08 珠海市君天电子科技有限公司 一种安卓系统的数据文件的处理方法和装置
CN103324551A (zh) * 2013-05-23 2013-09-25 广东欧珀移动通信有限公司 应用程序数据移植的方法和系统
CN103577567A (zh) * 2013-10-29 2014-02-12 广东欧珀移动通信有限公司 一种Android系统卸载应用删除垃圾文件的方法
CN105786805A (zh) * 2014-12-15 2016-07-20 乐视移动智能信息技术(北京)有限公司 智能移动终端、文件管理器及其文件夹显示方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101609425A (zh) * 2008-06-19 2009-12-23 中兴通讯股份有限公司 一种脚本及关联数据移植系统及移植方法
CN103092664A (zh) * 2013-02-07 2013-05-08 珠海市君天电子科技有限公司 一种安卓系统的数据文件的处理方法和装置
CN103324551A (zh) * 2013-05-23 2013-09-25 广东欧珀移动通信有限公司 应用程序数据移植的方法和系统
CN103577567A (zh) * 2013-10-29 2014-02-12 广东欧珀移动通信有限公司 一种Android系统卸载应用删除垃圾文件的方法
CN105786805A (zh) * 2014-12-15 2016-07-20 乐视移动智能信息技术(北京)有限公司 智能移动终端、文件管理器及其文件夹显示方法

Also Published As

Publication number Publication date
CN108427678A (zh) 2018-08-21

Similar Documents

Publication Publication Date Title
CN107870769B (zh) 操作系统的安装方法及装置
US8745601B1 (en) Methods and systems for using data structures for operating systems
US20070226400A1 (en) Information processing apparatus and method of using otp memory
CN105739961B (zh) 一种嵌入式系统的启动方法和装置
US20170109372A1 (en) File access system, method, and program
WO2016183951A1 (zh) 一种系统升级方法及终端
CN107220074B (zh) 对支撑层软件功能的访问、升级方法及装置
CN109710286B (zh) 系统升级方法、装置、设备和存储介质
JP2008502968A (ja) 中間オブジェクト指向言語を備えるソフトウェアをポータブル・デバイスにロードするための方法
CN108228077B (zh) 存储区的管理方法、运行方法、装置、设备、可读介质
JP6134390B2 (ja) 動的ファームウェア更新
CN104317623A (zh) 移动终端预置应用程序的管理方法和移动终端
CN108920691B (zh) 前端静态资源的管理方法、装置、计算机设备及存储介质
US20190303172A1 (en) Information processing apparatus, device assignment method, and computer readable medium
CN112579202A (zh) Windows系统的服务性程序编辑方法、装置、设备及存储介质
CN104461621A (zh) 一种更新属性信息的方法及装置
CN105045642A (zh) 一种自定义类的加载方法及装置
CN108427678B (zh) 安卓系统查找应用资源文件的方法
US9189351B2 (en) Method of obtaining instruction for triggering function
CN110750280A (zh) 一种基于Android平台的应用升级方法及系统、存储介质
CN111338650B (zh) 一种便携式的Livecd中web应用部署方法
CN116880877A (zh) 虚拟机增强工具升级方法、装置、计算机设备和存储介质
CN110968333B (zh) 配置信息替换方法和装置、机器可读存储介质及处理器
CN111694580B (zh) 存储设备升级及初始化的方法、装置、电子设备
CN103677933A (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: 20240227

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.

Country or region after: China

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.

Country or region before: China

TR01 Transfer of patent right