1. 程式人生 > >android通過JNI用C/C++建立本地檔案

android通過JNI用C/C++建立本地檔案

通過jni在本地建立檔案

1.在android studio建立基本的jni工程,並且在APP介面成功顯示"Hello from C++"

不會的可以看android studio使用jni

2.在native-lib.cpp檔案中建立檔案

為了方便,我們直接在stringFromJNI函式中建立檔案

#include <jni.h>
#include <string>
#include <stdio.h>
#include <android/log.h>        
//方便用日誌檢視

#define LOG_D(...)  __android_log_print(ANDROID_LOG_DEBUG, "jni", __VA_ARGS__)
//使用巨集來呼叫日誌庫

extern "C" JNIEXPORT jstring JNICALL
Java_com_example_clientfile_MainActivity_stringFromJNI(
        JNIEnv *env,
        jobject /* this */) {
    std::string hello = "Hello from C++";
    
    FILE* file = NULL;        
    file = fopen("/data/data/com.example.clientfile/hello.txt","a");    //建立檔案
    if(file == NULL){        //容錯
        LOG_D("檔案建立失敗%s","222");
    }    
    fwrite("1111",3,1,file);            //往檔案中寫檔案

    fclose(file);                    //關閉檔案
    return env->NewStringUTF(hello.c_str());
}

其中非常需要注意的一點是建立檔案的位置,必須是"/data/data/[project name]/test.txt",否則無法建立。

3.檢視是否生成了該檔案

點選View->Tool->Windows->Device File Explorer

在彈出的對話方塊中選擇data->data->[你的專案名稱]

沒有我們想要建立的hello.txt檔案

我們在我們的專案明上右擊,選擇Synchronize

出現了hello.txt

同時我們來看一下該檔案的路徑

在檔名上右擊,選擇Copy Path,然後隨便找一個地方貼上

結果是 /data/data/com.example.clientfile/hello.txt

所以,我們在該APP內建立的檔案只能在這個目錄先,當然我們也可以在專案名下先建立目錄,在新建的目錄下建立檔案也可以。

最後開啟hello.txt檔案,看內容是否生成,右擊選擇open

顯示111

至此,在android內使用jni建立本地檔案已成功。