Android应用开发——文件目录

【DaVinci Developer专题】-8-创建一个枚举Enum ADT(Application Data Type) 目录 1 创建一个枚举Value ADT(Application Data Type) 1.1 命名application data type 1.2 创建一个computation method计算方法属性 1.3 创建一个Contraint约束条件属性 2 创建了一个新的Type Mapping Sets 3 创建了一个S/R Port Interface 4 SWC引用Type Mapping set 5 导入CFG生成代码的总结 6 结尾 <--返回「实战篇」博文-总目录- 阅读详情
Android 存储位置及 API
一、内部存储

应用安装后都会在Android 根目录生成 /data/data/packagename,当前应用读取不需要读写权限

注意: 有些开发者可能看到过应用的根目录为 /data/user/0/packagename 的情况,这里解释一下,Android 4.2 版本添加了同一设备可以登录不同用户的功能(由于专利原因仅限于平板电脑,手机不支持此功能),所以为了区分不同用户在同一应用中的设置和存储的数据,添加了该系列的路径,该路径指向 /data/data/packagename

getFileDir() 方法得到的是该目录下 files 文件夹的 File 对象
getChacheDir() 方法得到的是该目录下 cache 文件夹的 File 对象
直接调用ContextWrapper的 openFileOutput(String name,int mode) 也会在该目录下 files 文件夹下创建相应的文件,并且是私密的。可以修改为其他应用可访问的,通过 openFileOutput 方法的 mode 参数来完成
注意:

  • 该目录只有 root 权限下可以查看,会随着应用卸载删除
  • 应用程序详情中清除数据会将 packagename 下所有数据以及内置存储、外置 SD 卡存储空间中 /Android/data/packagename 的整个目录删除删除
  • 应用程序详情中清除缓存会将 packagename/cache 目录下所有数据以及内置存储、外置 SD 卡存储空间中 /Android/data/packagename/cache 的整个目录删除
二 内置存储
手机自带 ROM 的存储路径

getExternalCacheDir() 方法,获取内置存储卡中 /Android/data/packagename/cache 目录的路径,4.4及之后读写不需要权限,会随着应用卸载删除
getExternalFilesDir() 方法,获取内置存储卡中 /Android/data/packagename/files 目录的路径,4.4之后读写不需要权限,会随着应用卸载删除,该方法参数为 “null” 时不指定子文件夹,指定时创建子文件夹保存文件。创建的文件其他应用只要有读写权限也可以读取,如果要私密的就使用内部存储。
Environment.getExternalStorageDirectory() 方法得到的是内置存储目录的根路径目录,读写需要权限,不会随着应用卸载删除
Environment.getExternalStoragePublicDirectory() 方法得到的是内置存储目录根路径下的特定类型文件的公共目录,读写需要权限,不会随着应用卸载删除
注意,内置存储中 /Android/data/packagenaem/ 路径的读写 Android 版本不同,需要权限不同,所以开发时应始终声明读写权限

三、外置SD存储卡

支持外置SD存储卡的机器,可以由 ContextCompat 的 getExternalFilesDirs() 方法得到所有存储根目录下 /Android/data/packagename/files 路径的数组,如果该方法第二个参数不为 null 则会再创建相应子级文件夹。再根据数组遍历,即可操作相应的存储路径进行读写。4.4及之后该操作不需要声明读写权限。
File[] files = ContextCompat.getExternalFilesDirs(this, “”);

注意:

通过该方法得内置存储卡的路径,可以对根据 getParent 系列方法可以得到上一级的路径进行读写操作,但需要权限
通过该方法得外置SD存储卡的路径,但是不可以对根据 getpParent 系列方法得到的上级路径进行写,如果写会报没有权限异常,即使声明写权限也没用。声明读权限后可正常进行读操作。
内置和外置SD存储卡中 Android/data/packagename 目录,都会在应用程序详情中清除数据和应用卸载时被删除。

作者:renxuelong
链接:https://www.jianshu.com/p/d5945c726182
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

【APM】在Kubernetes中搭建OpenTelemetry+Loki+Tempo+Grafana链路追踪(实战一,Loki日志中查看链路追踪数据) 这对于那些不能直接控制 JVM 启动参数的应用特别有用,比如通过 JNI (Java Native Interface) 调用 JVM 的应用、脚本中嵌入的 JVM 应用,或者一些服务管理工具自动启动的服务。这为用户提供了一个灵活的架构,可以根据需要选择最适合自己的追踪解决方案,或者根据环境(如开发、测试、生产)的不同配置不同的后端。: OpenTelemetry SDK 提供了丰富的特性,如自动追踪上下文传播、手动追踪跨度的创建与关联、标签和事件的添加等,使得追踪数据更加丰富和有用。 阅读详情

相关推荐

保姆级教程:彻底清理Win11更新缓存并解除外设,一次搞定0xc1900101更新错误

本文提供了一套完整的Win11更新报错0xc1900101解决方案,涵盖软件环境净化和硬件设备隔离。通过终止干扰进程、重置更新组件、清理临时文件以及断开外设等步骤,有效提升更新成功率。特别强调外设驱动兼容性对解决0xc1900101错误的关键作用。

weixin_33483304的博客 417

Android 对data/data/(your packagename)目录下的数据读写、删除操作

Android 对data/data/(your packagename)目录下的数据读写、删除操作

T-bright的博客 2万+

大疆OcuSync系统背后的黑科技:跳频扩频技术如何让你的无人机飞得更稳

本文深入解析了大疆OcuSync系统如何运用跳频扩频技术等先进无线通信方案,显著提升无人机在复杂环境下的飞行稳定性。系统通过跳频扩频与直接序列扩频技术协同工作,结合双频智能切换与多天线MIMO,有效对抗信号干扰与多径效应,确保控制指令与高清图传的可靠、低延迟传输,为用户带来更安心、更流畅的飞行体验。

ol7890123的博客 628

【android路径写法以及存储】

—————路径的写法:————————— 一般都是绝对路径、相对路径、提供的API ———jsp各类路径的写法:———————— request.getRequestDispatcher("/index.jsp").forward(request, response);  请求转发中的/代表web应用 response.sendRedirect("/HelloJa

wanwan_android的专栏 1884

大语言模型(LLM)在组合优化中的新突破:LLM-LNS与FunSearch性能对比

本文深入探讨了大语言模型(LLM)在组合优化中的创新应用,重点对比了LLM-LNS与FunSearch两种方法的性能差异。研究表明,LLM-LNS在物流路径规划、资源调度等场景中展现出显著优势,其双层自演化架构能有效平衡探索与利用,相比传统方法提升效率约43%。文章还提供了实践选择指南,帮助开发者根据具体需求选用合适的技术方案。

weixin_42526415的博客 406

解锁Vscode:C/C++环境配置超详细指南

本文详细介绍如何在 VSCode 中配置 C/C++ 开发环境,帮助开发者快速搭建高效的编码调试环境。内容涵盖前期准备、软件下载安装、环境变量配置、工作区文件设置及测试运行全流程:首先需准备 VSCode 编辑器、MinGW-w64 编译器及 C/C++ 插件;接着完成工具下载与安装,配置系统环境变量以确保编译器可全局调用;然后通过创建.vscode工作区文件夹,配置核心文件,实现代码智能提示与调试功能;最后通过编写 Hello World 示例验证环境可用性,并附上常见问题排查方案。

邓邓子的博客 3047

安卓系统文件管理器返回选择路径

在Android12中调用文件管理器,尤其在下载内容中,无法对个别的文件路径进行解析,出现返回路径为空的情况,解决办法就是对不同文件的uri进行分析,分情况进行判断并返回路径

qq_64089863的博客 1683

Siemens SIMATIC软件二次开发:使用C#进行SIMATIC软件二次开发

通过使用OPC-UA通信协议和S7通信库,可以有效地在C#应用程序中与Siemens SIMATIC软件进行数据交换。OPC-UA提供了一个标准化的平台,而S7通信库则提供了直接访问PLC数据的能力。掌握这两种通信方式,将极大地增强在工业自动化领域的二次开发能力。在Siemens SIMATIC软件中,自定义功能块开发是实现二次开发的关键步骤之一。通过C#,可以创建高度定制化的功能块,以满足特定的控制需求。下面,我们将通过一个示例来展示如何使用C#开发一个自定义功能块。OPC-UA通信。

kkchenjj的博客 1415

Android Studio 项目文件夹结构详解

Android Studio 的项目结构遵循一定的规范和约定,了解这些结构对于高效开发至关重要。下面我将详细介绍标准的 Android 项目文件夹结构及其各部分功能。通过理解Android Studio项目结构,您可以更高效地组织代码和资源,构建可维护的Android应用程序。在 Android Studio 中,可以通过多种视图查看项目结构,最常用的是。代码混淆规则文件,用于发布构建。和结构,类似于主模块。存放原始资源文件,与。

百锦再的博客 2万+

渗透测试面试题

渗透测试面试题 一.思路流程 1.信息收集 服务器的相关信息(真实ip,系统类型,版本,开放端口,WAF等) 网站指纹识别(包括,cms,cdn,证书等),dns记录 whois信息,姓名,备案,邮箱,电话反查(邮箱丢社工库,社工准备等) 子域名收集,旁站,C段等 google hacking针对化搜索,pdf文件,中间件版本,弱口令扫描等 扫描网站目录结构,爆后台,网站banner,测试文件,...

千寻的博客 12万+

【nvidia-B200 生产环境】NVIDIA 570.124.06+Cuda12.8 Ubuntu22.04 nccl-test 一键部署脚本(免修改复制即用)

目录1. 初始化与日志记录2. 安装基础工具与配置更新3. NVIDIA 驱动安装 570.124.064. 安装 Mellanox OFED 24.10-2.1.8.05. 安装 CUDA 12.86. 安装 NCCL 和测试7. 配置 rc.local 和其他优化8. B200 单独步骤9. 最终测试与重启10. 完整生产脚本,复制即可直接使用总结 功能: 设置日志目录和日志文件路径。 使用 命令将标准输出和错误输出同时写入日志文件和终端。 记录脚本开始时间,并计算开始的秒数

jundao1997的专栏 2797

!Android选择文件返回路径

最近刚忙完给的task 捡起了好久好久之前没做好的OTAupdate..(关于选择文件返回路径,复制到cache/recovery这件事!

jujujujujuoo的博客 653

C# + NAudio:构建支持实时音频处理的语音聊天应用(含回声消除)

本文介绍了如何利用C#和NAudio库开发实时语音聊天应用,重点实现回声消除功能。首先概述了NAudio库在音频处理中的作用,包括音频录制、播放和实时处理能力。然后详细讲解了构建基础语音聊天应用的过程,包括麦克风录制和扬声器播放的实现。接着深入探讨了回声消除的原理和实现方法,提出通过比较麦克风输入和扬声器输出的音频信号来消除回声,并给出了核心代码示例。最后,文章还讨论了性能优化方向,如多线程处理和网络传输扩展。该方案为开发高质量实时语音应用提供了实用参考。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1010

android 定义uri,Android应用开发解决Android 7.0及以上系统Uri.fromFile获取Uri报错问题...

本文将带你了解Android应用开发解决Android 7.0及以上系统Uri.fromFile获取Uri报错问题,希望本文对大家学Android有所帮助。<1.在Application的onCreate()添加://解决Uri.fromFile报错if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.N){StrictMode.V...

weixin_32746239的博客 605

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

android 知识点收集

1. 计算时间流逝请使用SystemClock.elapsedRealtime...currentTimeMillis会受系统时钟影响 //未验证 2.android app私有文件的目录 /data/data/com.包名... (要用root的权限, 在adb shell下才能查看。) 转载于:https://www.cnblogs.com/jhj117/p/4121524.htm...

weixin_30621959的博客 82

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【ALearning】第二章 Android工程相关知识介绍

本章主要初步介绍Android工程开发环境的搭建,以对Android项目整体的认识与了解。本章包括Android开发环境搭建、第一个Android项目Hello World与Android项目的文件目录结构介绍。

HOKING的专栏 1344

android中几种数据存储方式

在Android应用开发中,会有一些数据需要存储,下面介绍几种数据存储的方式。 一、将数据存储到应用的cache文件目录下 private void remberCache () { String qq = et_qq.getText ().toString ().trim (); String pwd = et_pwd.getText ().toString ().tri

yangshuangyue的博客 674

Android 总结

Android 基础总结

单行线的专栏 644

中原工学院Android智能手机应用开发期末考点总结

​​onPause()​​:在Activity​ 暂停时调用,用于保存数据、停止动画等轻量级操作。​​onStop()​​:在Activity​ 不再可见时调用,用于释放更大量的资源,如停止服务等。​​​​:在Activity​ 被销毁时调用,用于清理占用的资源,如注销广播接收器、释放内存等。91页对于Activity中一些永久性的重要资源与状态最好在onPause()方法中进行保存Activity生命周期中的“对”onCreate()和onDestroy()

qq_45339506的博客 874

Android学习笔记(1)

1,新建项目及文件目录打开Eclipse,File-New-Project-Android Project,输入Project name,选择合适的Build Target。在Properties中设置相关的设置。文件目录中src为源文件,,一般指的是.JAVA文件。gen文件夹下的R.java一般不需要手动修改,它是系统自动生成的一些内存地址空间相关的信息。Res文件夹下是一些资源文件和布局文件,一般是图片和XML文件。Res文件夹下包含三个子文件夹,drawable,layout,values。Draw

flymaidou的专栏 1075

Android---(1),综述,项目文件说明。

时间:2012/11/12 书籍:Beginning.Android.4.Application.Development 开发环境:eclipse 1.安卓的架构 1.1内核(Linux kernel) --安卓采用的是Linux内核,在内核层面包含了对于各种安卓应将的驱动。 1.2库文件(Libraries) --提供了Android OS的各种库文件。 1.3安卓运行时

theonlydk的专栏 437

android 获取默认路径吗,android 获取系统默认路径

Environment.getDataDirectory().getPath() : /dataEnvironment.getDownloadCacheDirectory().getPath() : /cacheEnvironment.getExternalStorageDirectory().getPath(): /mnt/sdcardEnvironment.getRootDirectory(...

weixin_31641077的博客 203

android stuido adb 操作

最近在做硬件的app开发,涉及到很多本地文件的操作,所以记录下来。 首先是发生了anr时导出文件进行查看: 打开studio的terminal窗口,输入adb pull data/data/traces.txt 后面加上要保存的文件路径 有时候明明存在的文件,却没有办法导出,提示:adb: pull error: remote object '' does not exist (adb root) 输入:adb root && adb remount 参考:https:..

261

Android 获取文件目录以及文件的删除 .

//看来看一下效果 //main.xml文件   &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" and...

kalogen的专栏 295

======CreateFile======

package com.panpass.main; import java.io.File; import java.io.IOException; import android.app.Activity; import android.os.Bundle; import android.os.Environment; import android.widget.TextView; impo

SoulOfAndroid的专栏 718

android studio 重启插件,Android应用开发Android Studio安装Plugins插件 重启后插件却保存不上...

本文将带你了解Android应用开发Android Studio安装Plugins插件 重启后插件却保存不上,希望本文对大家学Android有所帮助。Android Studio安装Plugins插件重启后插件却保存不上,首先,如果你没有更改AS默认的缓存地址(AS默认缓存地址:C:\Users\Administrator),这个地址下面有“.android”,"".AndroidStudioX....

weixin_39887748的博客 314

【错误记录】Android 命令行执行 7zr 可执行程序报错 ( Cannot run program “7zr“ : error=13, Permission denied )

ComponentInfo{kim.hsl.a7_zip/kim.hsl.a7_zip.MainActivity}: java.io.IOException: Cannot run program "/data/user/0/kim.hsl.a7_zip/files/7zr": error=13, Permission denied

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 2020
上一篇: Android Bluetooth BLE相关开发资源汇总
下一篇: Android应用开发——service连接泄露异常:android.app.ServiceConnectionLeaked: that was originally bound here
voidreturn
博客等级 码龄10年 53粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值