【精选】Android APK安装后资源文件(res/assets)位置 | 您所在的位置:网站首页 › ai的安装包在哪个文件夹里面找出来 › 【精选】Android APK安装后资源文件(res/assets)位置 |
Android APK安装后资源文件(res/assets)位置
问题背景问题分析Android APK安装后资源文件(res/assets)位置应用安装涉及到的文件夹实际操作
目前在做机顶盒、IPTV相关的开发,入职没多久,说实话,深刻感受到了来自顶级程序员大佬的压迫感呀(瑟瑟发抖ing),也体会到自己需要学习的部分非常多,学无止境,温故知新吧,希望在1年之内能够入大佬的眼,为了这个阶段目标还是需要时常记录问题,积累知识,向着大佬和星辰大海,出发!
问题背景
这并不是一篇记录 APK 安装流程的文章,而是一个实际应用时遇到的问题而学习到的知识。 这个问题是做一个调用公司 framework 中的接口完成动态更新logo的APK。下面是公司文档中暴露出来的接口。 我们可以看到,接口需要的参数为String格式的图片路径,当时想法就像将图片放到APK的drawable文件夹内,成为APK的resource,path路径就写成package/res/drawable/XX.jpg,以此来调用该图片,结果在调用时报错no such file or directory 由此报错,引发了我对标题的疑问。 Android APK安装后资源文件(res/assets)位置 应用安装涉及到的文件夹 /system/app :系统自带的应用程序,获得adb root权限才能删除/data/app :用户程序安装的文件夹。安装时把apk文件复制到此文件夹/data/data :存放应用程序的数据/data/dalvik-cache:将apk中的dex文件安装到dalvik-cache文件夹下(dex文件是dalvik虚拟机的可运行文件,当然,ART–Android Runtime的可运行文件格式为oat。启用ART时,系统会运行dex文件转换至oat文件)/data/system :该文件夹下的packages.xml文件。相似于Windows的注冊表,这个文件是在解析apk时由writeLP()创建的。里面记录了系统的permissions,以及每一个apk的name,codePath,flags,ts,version,uesrid等信息。这些信息主要通apk的AndroidManifest.xml解析获取,解析完apk后将更新信息写入这个文件并保存到flash,下次开机直接从里面读取相关信息加入到内存相关列表中。当有apk升级,安装或删除时会更新这个文件。 实际操作我们可以看到应用安装的程序应该在/data/app文件夹下,那我们进入看一下: 这个时候想到,会不会在/data/data目录下呢?进去看一下: 当然不会! 还记得/data/app目录下的那个图中的 apk 文件吗: 至此,我们的想法破灭了,但是就没有办法了吗? 并不是,我们可以将图片资源在程序中输出到我们想要的目录内,在写绝对路径即可。 |
CopyRight 2018-2019 实验室设备网 版权所有 |