使用Android JNI,我创建了文件并使用文件描述符编写数据。
示例: -
dest = memalign( BLKSIZE, sz);
if (dest == NULL) {
LOGE("Unable to allocate memory");
return -1;
}
memcpy(dest, bufferIn, sz);
int rc = write(fd, dest, sz);
LOGI("write %d bytes.", rc);
free(dest);
if(rc == -1) {
LOGI("Error in writing : %d %s\n", errno, strerror(errno));
}
写入成功,我可以在文件中看到数据。但是对于每次写入,我都会登录adb logcat。
01-06 12:46:36.831 16292-16806/com.test.example I/io: write 1024 bytes.
01-06 12:46:36.831 16292-16806/com.test.example W/art: Attempt to remove
local handle scope entry from IRT, ignoring.
/ W / art:尝试从IRT中删除本地句柄范围条目,忽略 /
答案 0 :(得分:0)
浏览后的android源代码 http://androidxref.com/5.1.1_r6/more/art/runtime/indirect_reference_table.cc?q=Attempt+to+remove+local+handle+scope+entry+from+IRT
我正在尝试删除本地参考
WifiManager wifi = (WifiManager)getSystemService(Context.WIFI_SERVICE);
if (wifi.isWifiEnabled()){
//wifi is enabled
}
我们不需要自己删除本地引用,一旦JNI函数返回Java,引用将获得GC。
JNI在从本机方法返回时将丢弃本地引用,但此过程与Java垃圾回收无关。通常,我们不需要担心本地引用。