本來想直接看看Thread的,結果差一個小插曲:Android 的Bionic C語言庫的使用.
我們在前面<7>博客的文章中的plus.cpp和plus.h中直接添加讀寫操作文件:增加filemanager(char* infor)的函數
#include<stdio.h> #ifndef PLUS_HEADER_H__ #define PLUS_HEADER_H__ class cale{ public: cale(){}; virtual ~cale(){}; virtual int addplus(int a,int b); virtual char* showmsg(); virtual char* filemanager(char* infor); }; #endif
plus.cpp如下:
#include "plus.h" char* cale::showmsg() { return "cpp program !"; } ; int cale::addplus(int a, int b) { return a + b; } ; char* cale::filemanager(char* infor) { char* str = "Native Code!"; FILE* file = fopen("sdcard/hello.txt", "w+"); if (file == NULL) { file = fopen("mnt/sdcard/hello.txt", "w+"); if (file == NULL) { file = fopen("storage/sdcard/hello.txt", "w+"); } } if (file == NULL) { str = "Native Code! fopen() did not work!"; } else { str = "Native Code! fopen() worked!"; fputs("HELLO WORLD!\n", file); fflush(file); fclose(file); } return str; }
讓后重新swig轉換就可以了.
調用,在APP中需要添加讀寫sdcard權限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
然后使用adb查詢結果: