关闭

在Android中通过ndk读取本地文件

标签: android
967人阅读 评论(0) 收藏 举报
分类:

准备

作为测试,首先要先把文件从PC上传到Android手机中,可通过命令实现。通过以下命令就可以把pc上test目录下的所有文件传到Android手机中的/sdcard/testfolder/目录下。

adb shell mkdir -p /sdcard/testfolder/
adb push pc_dir/test/ /sdcard/testfolder/

编写NDK接口

在NDK中用C读取文件时首先需要通过Java语言拿到地址,具体地可通过String类型传递文件地址到NDK中。
Example:

public static native int loadFile(String filePath);

在NDK中拿到地址后,需要把String类型的参数转化为C语言的char *,下面转换的示例代码

    JNIEXPORT jint JNICALL Java_com_guigu_loadFile
        (JNIEnv *env, jclass obj, jstring filePath)
{
    const char* testfilePath = env->GetStringUTFChars(filePath, 0);
    if(testfilePath == NULL ) {

        return -1;
    }
/*********************************************/
//read and operate the file, or doing something
/*********************************************/
    env->ReleaseStringUTFChars(filePath, testfilePath);

        return  0;

}

在Java层调用JNI接口

在调用接口前,需要在Java层获得文件路径,然后作为参数传进去。

        File sdcard = Environment.getExternalStorageDirectory();
        String fileDir = sdcard.getAbsolutePath() + "/testfolder/test.txt";

        int result = testClasee.loadFile(fileDir);

ps: 在操作文件时一定要小心int, long, unsigned long等类型在不同平台的长度大小是否与写文件时匹配,博主被这个问题坑了两天。

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Android NDK读取文件

在学习图像处理时,经常需要将C/C++代码实现的算法移植到android客户端,此次,NDK是我们经常采用的技术,而我们也会碰到需要在NDK中加载资源的情况,例如从XML中读取参数配置,或者在NDK中...
  • qianchenglenger
  • qianchenglenger
  • 2016-06-02 22:23
  • 3755

Android NDK下读取数据文件的方法

方法1:数据文件放在assert目录,java层获得assert句柄,传给NDK,NDK用AAssetManager、AAsset_read去读文件。比较晦涩。 方法2:数据文件放在libs/arme...
  • brandon2015
  • brandon2015
  • 2016-01-13 10:43
  • 2472

android用NDK在内存卡创建目录、文件并进行读写操作

创建目录操作:
  • u012176591
  • u012176591
  • 2014-04-13 22:26
  • 4053

Android NDK实现apk文件的增量更新

  • 2017-11-22 08:03
  • 1.63MB
  • 下载

windows下Android,ndk编译C文件脚本

  • 2017-12-18 20:12
  • 2KB
  • 下载

android jni ndk so文件的使用

  • 2011-07-11 05:18
  • 4.28MB
  • 下载

Android之so文件、JNI和NDK

  • 2015-08-25 15:32
  • 55KB
  • 下载

android studio中使用ndk编译.so文件,调用C/C++代码(jni编程)

  • 2017-05-23 14:15
  • 19.78MB
  • 下载

选择文件 ( android开发环境包集合 NDK SDK JDK ANT

  • 2015-10-26 14:36
  • 31B
  • 下载

人脸检测,检测人睁闭眼睛,可以判断是否疲劳驾驶,代码是androidStudio+opencv工程 带android下JNI通过NDK编译so库文件。

  • 2017-12-27 17:56
  • 15.71MB
  • 下载
    个人资料
    • 访问:182638次
    • 积分:2760
    • 等级:
    • 排名:第15013名
    • 原创:86篇
    • 转载:6篇
    • 译文:0篇
    • 评论:73条
    文章分类
    最新评论