admin管理员组文章数量:1532362
2023年12月13日发(作者:)
android文件系统(Linux操作系统的文件系统)
android文件系统(Linux操作系统的文件系统)
1、文件目录分析
system---系统目录
1.1 systemapp---这个里面主要存放的是常规下载的应用程序,可以看到都是以APK格式结尾的文件。在这个文件夹下的程序为系统默认
的组件,自己安装的软件将不会出现在这里,而是data文件夹中
闹钟
浏览器
Bug报告
计算器
日历
日历提供
照相机
下载提供
电子邮件客户端
启动加载器
电子地图
…….
1.2 systembin---这个目录下的文件都是系统的本地程序,从bin文件夹名称可以看出是binary二进制的程序,里面主要是Linux系统自带
的组件
systembinapp_process 系统进程
systembindalvikvm Dalvik虚拟机宿主
systembindbus-daemon 系统BUS总线监控
systembindebuggerd 调试器
systembinmountd 存储挂载器
systembinnetcfg 网络设置
systembinplaymp3 MP3播放器
systembinpm 包管理器
systembinservicemanager 服务管理器
…….
1.3 systemetc---从文件夹名称来看保存的都是系统的配置文件,比如APN接入点设置等核心配置
APN接入点配置文件
音频过滤器配置文件
书签数据库
总线监视配置文件
systemetcdhcpcd
systemetcevent-log-tags
收藏夹
systemetcfirmware 固件信息
GPS设置文件
内核HCID配置文件
systemetchosts 网络DNS缓存
systemetclocation 定位相关
存储挂载配置文件
提示网页
权限许可
…….
1.4 systemfonts ---字体文件夹,除了标准字体和粗体、斜体外可以看到文件体积最大的可能是中文字库,或一些unicode字库
文件大小
…….
1.5 systemframework---framework主要是一些核心的文件,从后缀名为jar可以看出是是系统平台框架。
1.6 systemlib---存放的主要是系统底层库,如平台运行时库
systemliblibandroid_ Android运行时库
systemliblibandroid_ 系统服务组件
音频处理
EQ均衡器
音频过滤器
蓝牙组件
……
1.7 systemmedia---铃声音乐文件夹,除了常规的铃声外还有一些系统提示事件音
systemmediaaudioalarms 闹铃音
systemmediaaudionotifications 提示音
systemmediaaudioringtones 铃声
systemmediaaudioui 界面操作事件音
1.8 systemsounds---默认的音乐测试文件,仅有一个文件,用于播放测试的文件
1.9 systemusr---用户文件夹,包含共享、键盘布局、时间区域文件等
1.10 system bin---常用开发工具,比如 tcpdump/sqlite3 等
data---应用及其数据(/data/data/应用的包名 下面存储的是该应用的所有数据)该目录是属于内部存储!(买手机几个重要参数:屏幕、
cup、ram、ROM(16g/))
1.1 /data/app 存放用户安装的软件
1.2 /data/data 存放所有软件(包括/system/app 和 /data/app 和 /mnt/asec中装的软件)的一些lib和xml文件等数据信息
1.3 /data/dalvik-cache 存放程序的缓存文件,这里的文件都是可以删除的
…….
mnt---外部存储(SD卡/有的手机将SD卡已经绑定内置了)
shell adb shell 命令,可以操作模拟器,操作手机系统目录。
exit 退出adb shell
2、如果要缓存数据或者保存文件等应该如何选择?
如果是缓存很小的数据可以缓存在内部存储也可以缓存到外部存储,尽量所有的缓存都缓存到外部存储里面。
data目录下面什么时候以及存的什么数据?应用配置数据(一般使用sharedPreference)(用户习惯—字体、是否自动登录、夜间模式等等)
3、传统的java文件IO访问
4、Android自带的API访问
5、三层架构(MVC)
6、单元测试
7、文件权限(android mode理解)
linux/unix 的档案调用权限分为三级: 档案拥有者、群组、其他
"-"代表文件;"d"代表文件夹(directory)
r--read读权限;
w--write写权限;
x--execute可执行权限。
d rwx rwx --x
111 111 001
7 7 1
四个部分:
d
-wx 创建该文件的所有者的权限(应用自身)
不可读;可写;可执行
rwx 所有者所在的同组所拥有的权限
--x 除了所有者和同组的其他进程的权限(其他的应用)
如何修改文件的权限呢?(需要root)
Linux命令修改:chmod 777
1)adb shell进入手机命令操作
2)找到要修改的目录
3)chmod 777 xxxfile
用程序来执行Linux命令;
看下代码
``
package _11_2_;
import rayOutputStream;
import ;
import putStream;
import tputStream;
import t;
import ;
public class FileUtils {
/**
* 1、通过java api实现文件的写 2、通过java api实现文件的读 3、通过android api实现文件的写 4、通过android
* api实现文件的读
*
* @throws Exception
*/
/**
* 1、通过java api实现文件的写
*
* @param str
* @throws Exception
*/
public static void javaAPISaveContent(String str) throws Exception {
File file = new File("/data/data/_11_2_file/");
if (!()) {
NewFile();
}
FileOutputStream outputStream = new FileOutputStream(file);
(es());
();
}
/**
* 1、通过java api实现文件的读
*
* @param str
* @throws Exception
*/
public static String javaApiReadContent() throws Exception {
File file = new File("/data/data/_11_2_file/");
if (!()) {
return null;
}
FileInputStream inputStream = new FileInputStream(file);
int len = 0;
byte[] buffer = new byte[1024];
// StringBuffer
ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();
while ((len = (buffer)) != -1) {
(buffer, 0, len);
}
();
return ng();
}
/**
* 1、通过android api实现文件的写
*
* _PRIVATE -rw-rw---- _WORLD_READABLE -rw-rw--r-
* _WORLD_WRITEABLE -rw-rw--w- _APPEND -rw-rw----
*
*
*
* 思考:MODE_WORLD_READABLE,MODE_WORLD_WRITEABLE保存文件是怎么保存的?
* MODE_WORLD_READABLE
* 、MODE_WORLD_WRITEABLE、_PRIVATE(当保存的时候如果存在,那么久替换内容,如果不存在那么久创建)
*
*
* -rw-rw----分为四个部分
*
* 第一个部分: - 第二个部分: rw- 第三个部分: rw- 第四个部分: --- 提供给外部的app访问
*
* "-"代表文件;"d"代表文件夹(directory) "r"代表读的权限(read) "w"代表写的权限(write) "x"代表可执行
*
* "-"代表二进制数字0 "d"代表二进制数字1
*
* - r w - r w - --- 0 1 1 0 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 chmod 777
*
*
*
*
* @param str
* @throws Exception
*/
@SuppressWarnings("deprecation")
public static void androidAPISaveContent(Context context, String str)
throws Exception {
FileOutputStream openFileOutput = leOutput("",
_PRIVATE);
(es());
();
}
/**
* 修改文件权限
*
* @param str
* @throws Exception
*/
public static void chmod(Context context) throws Exception {
File file = new File("/data/data/" + kageName()
+ "/");
if (!()) {
return;
}
Process process = time().exec("chmod 777 " + file);
int waitFor = r();
if (waitFor == 0) {
Log.i("main", "修改权限成功!");
} else {
Log.i("main", "修改权限失败!");
}
}
/**
* 1、通过java api实现文件的读
*
* @param str
* @throws Exception
*/
public static String androidApiReadContent() throws Exception {
return null;
}
}
``
版权声明:本文标题:android文件系统(Linux操作系统的文件系统) 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1702458420a7973.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论