Android 外部存储 公用
时间: 2023-11-16 19:01:43 浏览: 109
Android 外部存储是指设备上可供应用程序读写的共享存储空间,它可以是可移动存储介质(如SD卡)或设备内部存储。公用的外部存储是指所有应用程序都可以访问的存储空间,而私有的外部存储则是指只有特定应用程序可以访问的存储空间。在 Android 中,可以使用外部存储来保存各种类型的数据,例如图片、音频、视频、文档等等。
相关问题
Android stdio
Android Studio是一款由Google开发的集成开发环境(IDE),用于开发Android应用程序。在Android Studio的项目源码中,一般包含一些常见的文件,如.gradle和.idea文件夹。在导入项目之前,可以根据需要删除这两个文件夹。此外,还可以通过打开build.gradle文件来查看和修改Gradle的版本号。Gradle是一种用于构建和管理Android项目的工具。可以通过在自己电脑上新建一个Android Studio项目并查看build.gradle文件来了解自己的Gradle版本号。最后,可以打开Android Studio软件并导入已经修改好的项目。导入成功后,就可以开始开发Android应用程序了。\[1\]
在Android Studio项目中,还有一些常见的文件目录。其中,build目录是系统生成的文件目录,最终生成的apk文件就在这个目录中。libs目录用于存放项目需要添加的.jar包或.so包等外部库。src目录是项目的源代码目录,其中包括androidTest用于存放测试包,main用于存放主要的项目目录和代码,test用于存放单元测试代码。\[2\]
此外,Android Studio项目中的values目录用于存储应用程序引用的一些值。其中,colors.xml文件存储了一些颜色样式,dimens.xml文件存储了一些公用的dp值,strings.xml文件存储了引用的字符串值,styles.xml文件存储了应用程序需要用到的一些样式。\[3\]
#### 引用[.reference_title]
- *1* [android stdio如何导入别人的项目](https://blog.csdn.net/qq_45644671/article/details/112141069)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [Android Studio 目录结构详解](https://blog.csdn.net/Small_Mouse0/article/details/58300419)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
android 开辟内存空间存放
### Android 中的数据存储方式
#### 使用内部存储私有空间保存数据
对于希望仅限于特定应用访问的数据,可以利用内部存储的私有空间。此位置提供了一种安全的方式用于存放敏感信息或不期望被其他任何组件触及的内容。
```java
String path = context.getFilesDir().toString();
File file = new File(path, "example.txt");
try (FileOutputStream fos = new FileOutputStream(file)) {
fos.write("Data to write".getBytes());
} catch (IOException e) {
Log.e("InternalStorage", "Error writing internal storage.", e);
}
```
上述代码展示了如何创建并写入位于应用程序专属目录下的文本文件[^2]。
#### 利用外部存储公共区域共享资源
为了使生成的媒体或其他类型的文档能够被整个系统内的各个部分所获取,则应该考虑采用外部存储器上的公开路径来进行操作。
```java
// 获取公共下载目录作为目标地址
File publicDownloadDir = Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_DOWNLOADS);
if (!publicDownloadDir.exists()) {
if (!publicDownloadDir.mkdirs()) {
// Handle error creating directory.
}
}
File outputFile = new File(publicDownloadDir, "shared_file.png");
try (FileOutputStream fos = new FileOutputStream(outputFile)){
bitmap.compress(Bitmap.CompressFormat.PNG, 90, fos);
} catch (FileNotFoundException e){
e.printStackTrace();
} catch (IOException e){
e.printStackTrace();
}
```
这里给出了向SD卡上的公用下载夹内放置PNG图像的具体实现方法。
#### 应对外部存储私密分区的需求
有时开发者既想要享受外置介质的大容量优势又不想让这些资料暴露给外界,在这种情况下就可以选用外部储存里的私人领域来做为容器。
```java
File privateExternalDir = getExternalFilesDir(null);
File myPrivateFile = new File(privateExternalDir, "private_data.bin");
try (FileOutputStream fos = new FileOutputStream(myPrivateFile)){
fos.write(dataBytes);
} catch (Exception ex){
// Error handling code here...
}
```
这段脚本解释了怎样在一个由当前APP独占使用的子文件夹里建立二进制形式的新项目。
#### 动态内存管理实践
除了持久化的磁盘级IO之外,针对临时性的对象实例化以及数组构建等活动往往涉及到堆栈层面即时性的分配行为;尤其是在JNI接口调用期间更是如此。此时便需要用到诸如`malloc()`、`calloc()`、`realloc()` 和 `free()`这样的标准库API来完成相应的任务[^3]。
例如:
```c
void* ptr;
ptr = malloc(10 * sizeof(int)); /* 请求连续的整数型缓冲区 */
memset(ptr, 0, 10 * sizeof(int));
/* ... 对指针指向的空间做进一步处理 ... */
free(ptr); /* 归还之前申请到的手动控制权 */
```
以上就是关于在不同场景下合理规划Android平台之上各类实体所需占用的工作单元的一些指导原则和技术细节介绍。
阅读全文
相关推荐



