ndk android 文档,Android NDK写文件

本文详细介绍了在Android中访问内部和外部存储的方法,包括使用getFilesDir()获取内部存储路径,添加权限到应用清单以访问外部存储,以及如何通过JNI在C++中操作文件路径。同时提到了获取设备根权限的潜在方案,但不建议这样做,建议遵循最佳实践以确保应用兼容性和安全性。
摘要由CSDN通过智能技术生成

>您可以随时访问目录

您的应用程序在其中.

这个目录通常是:

数据/数据/< Your_package_name_usually

com.android.appName> /文件/< your_filename>

但是更好地使用getFilesDir()

确保有效的文件路径与未来

android的版本更改.

>如果你想使用外部存储

相反,请确保你放这个

你的应用程序清单中的代码行

获得许可.

然后使用sdcard目录:

getExternalStorageDirectory();

//通常:/ sdcard /< your_filename>

>否则,您可以根设备

并获得整体访问权限

文件系统.但你必须要

请求您的所有应用用户获取

之前他们的设备的根访问

使用你的应用程序有些游戏

用这种做事的方式,但我

不会推荐它.如果还是

想做这个,查找超级用户

应用程序的Android,它是免费的

值得信赖的.

一旦你有了android目录,只需创建一个接收jstring参数的JNI本机方法,然后在本地代码中设置它.将其转换为std :: string,您将可以使用fopen()来使用它.

//Inside your java activity

File f = this.getApplicationContext().getFilesDir();

LibLoader.setupArchiveDir(f.toString());

//Inside your JNI wrapper

JNIEXPORT bool JNICALL Java_com_android_appName_LibLoader_setupArchiveDir(JNIEnv * env, jobject obj, jstring dir)

{

const char* temp = env->GetStringUTFChars(dir, NULL);

std::string stringDir(temp);

// Will be receive as a std::string inside C++ code

MyNativeObjectInC++->SetupArchiveDir(stringDir);

}

编辑:

在第一次使用它之前,您可能需要手动创建C中的/文件:

int result_code = mkdir(“/ data / data / com.app / files /”,0770)

干杯!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值