android目录结构(android app文件目录结构)

本文目录
android app文件目录结构
原来,只要把文件写在这里的话,可以不用动态申请权限,只要在manifest里面声明权限就ok了;
应用程序在运行的过程中如果需要向手机上保存数据,一般是把数据保存在SDcard中的。
大部分应用是直接在SDCard的根目录下创建一个文件夹,然后把数据保存在该文件夹中。
这样当该应用被卸载后,这些数据还保留在SDCard中,留下了垃圾数据。
并且在API
6.0之后,根目录文件存储是需要用户授权的,就算你在AndroidManifest.xml中配置了存储权限,用户不授权也是写不进去了。
SD卡读写权限:
如果你想让你的应用被卸载后,与该应用相关的数据也清除掉,该怎么办呢?
通过
可以得到
这个目录里面,一般放一些长时间保存的数据
方法可以获取到 SDCard/ Android /data/你的应用的包名/files/ 目录,一般放一些长时间保存的数据
通过
方法可以获取到
如果使用上面的方法,当你的应用在被用户卸载后,SDCard/Android/data/你的应用的包名/ 这个目录下的所有文件都会被删除,不会留下垃圾信息。并且
这个方法获得的文件存储路径适用于6.0以后系统,只要AndroidManifest.xml配置读写权限了,就不需要用户再授权了。
正常开发中获取存储路径的方法是:
可以看到,当SD卡存在或者SD卡不可被移除的时候,就调用getExternalCacheDir()方法来获取缓存路径,否则就调用getCacheDir()方法来获取缓存路径。前者获取到的就是 /sdcard/Android/data/《application package》/cache 这个路径,而后者获取到的是 /data/data/《application package》/cache 这个路径。
设置-》应用-》应用详情里面的”清除数据“与”清除缓存“选项分别对应的是data/data/《application package》/和data/data/《application package》/cache
external storage (外部存储):
Environment.getExternalStorageDirectory()SD根目录:/mnt/sdcard/ (6.0后写入需要用户授权)
context.getExternalFilesDir(dir)路径为:/mnt/sdcard/Android/data/《 package name 》/files/…
context.getExternalCacheDir()路径为:/mnt/sdcard//Android/data/《 package name 》/cache/…
internal storage(内部存储):
context.getFilesDir()路径是:/data/data/《 package name 》/files/…
context.getCacheDir()路径是:/data/data/《 package name 》/cach/…
如何研究frameworks层目录
2.2 Android源代码结构
在进一步阅读和理解Android源代码之前,你还需要先停下来,从整体上了解Android源代码的目录结构。正所谓“磨刀不误砍柴工”,否则一旦一头扎进纷繁的细节中,就成了盲人摸象,只见树木不见森林了。
整个Android项目的目录结构,自然地依照各个层次和功能分割开了。如图2-1所示,在Android的根目录下,有frameworks、 packages、system等一级子目录。依次了解这些目录中的内容和特征,便可以把握整个Android源代码的结构特点。
2.2.1 框架层源代码目录frameworks
在frameworks目录下,集中放置了Android框架层的代码。其中大部分功能模块是通过Java语言进行编写的,而对执行效率有很高要求 的模块则是通过C/C++来实现的。对于Android应用开发者而言,这可能是你最需要阅读和学习的部分。它包含了SDK中的各个功能模块以及 Android中各部分核心机理的实现,也是本书主要介绍的内容。
frameworks有三个重要的子目录,分别是base、opt、polices。
在base目录中,放置了框架层的基本内容,包含用到的Java文件、相关资源文件和jni类库的实现。 其中最为核心的是base中的core目录,在其中放置了大部分的框架层实现。
(点击查看大图)图2-1 Android源代码目录结构图
opt目录为option(可选)的意思,放置了框架层一些附加功能的模块。从概念上来看,Google为Android提供的一些功能模块,比如Google地图模块、Google定位服务模块,都位于该目录下。只不过,其中大部分模块的实现,都没有开源。
在polices目录中放置的是和具体设备类别相关的实现。Android希望能够在不同的设备上运行,由于设备使用特征的差异(并不是硬件特 征),会需要一些不同的实现。比如在手机上,Android呈现出来的窗口结构,是最顶上的状态栏和紧接它的标题栏,以及主要视图区域和弹出菜单项部分。 但如果在移动互联网设备(Mobile Internet Device,MID)上运行Android,由于可视区域更大,如果再采取和手机上一致的窗口策略,就类似于“大脚穿小鞋”了。因此,不同特征设备有着 不同的策略,这些实现会依照其设备名称,分子目录放在polices目录中。
本答案来自于互联网,仅供参考学习作用
如果您对我的回答有不满意的地方,还请您继续追问;
答题不易,互相理解,互相帮助!
Android项目在Eclipse中的目录结构不见了怎么弄出来
1.在空白处右击,选择new -》 Project...,选择Android下面的Android Project;
2.选择create Project from existing source;
3.下面有个选择路径的Location就变得可以使用了,你点那个Browse;
4.选择好你的Android项目放置的位置,就可以了。
你可以在菜单选择window -》 show view -》 package explorer,如果还是没有,你就先把你那上面有的界面都先最小化,目录结构就出来了。

更多文章:
easyui调用bartendee模板(EXCEL数据库调用BarTender10.1问题)
2026年7月18日 14:45
matlab sym(大家好!matlab中syms是什么意思)
2026年3月27日 04:15
technology各种词性(technique与technology的区别)
2026年3月28日 22:00
facilitate英语怎么读(促成的英语翻译 促成用英语怎么说)
2026年2月28日 23:30
vue2diff算法(简单几句话,知道什么是回流重绘、vue虚拟dom、diff算法和key)
2026年2月26日 10:15
column在sql是什么意思(sql语句中的information_schema.COLUMNS 是什么意思呢)
2026年8月17日 16:15
powerpoint模板(如何制作PowerPoint的模板)
2025年7月6日 00:15
optimistic怎么读英语(optimistic怎么读)
2026年3月8日 11:45
html中生成滚动条或文字(html如何实现滚动文字和音乐)
2026年2月25日 20:45
conventionally a phoneme(conventionally是什么意思)
2026年2月16日 02:45
css下拉菜单颜色(如何用CSS把下拉菜单背景色弄成透明而上面的文字不透明)
2025年6月3日 05:45
html5支持的标签(html5 新加的标签元素例如:<header><section><footer>解惑)
2025年11月17日 20:30
dom4j生成xml特殊字符不转义(JAVA dom4j怎样将双引号 写入XML时为“ 表示)
2025年12月14日 22:45
headerstyles设表头样式(word怎么绘制表头斜线并打字)
2026年8月7日 22:15












