• JNI


    2019-11-24

    JNI读取文件:

    首先要申请权限

        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

    然后,JNI的默认路径是/,根目录一般都是没有权限,你一般要用存储卡路径,比如我的手机是 /storage/emulated/0/new.txt

    2019-11-25

    之前得出的结论是JNI不能fork出子进程,当前得出这个结论是因为debug没有进子进程。

    今天突发奇想,我在子线程里面创建文件,发现真的创建了,原来JNI是支持fork的,只是debug没有进去而以。

    2019-12-14

    说2点。

    jni进行socket编程,是需要安卓网络权限的。好奇宝宝,不知道安卓是怎么实现的??感觉linux好像没有网络权限的说法的吧。

    其一,犯的是java上的错,本来我用的是bufferedWriter去write的,然后居然调的是OutputStream的flush,居然没生效,浪费了我好多时间。以后切记,高层的wirte要调用高层的flush

    2019-12-15

    c语言 socket write之后,数据在缓冲区里,并没有发出去,我再调一次,就把前面的推送出去了。

        char *req = "GET http://kan.2345.com/ HTTP/1.1
    
    ";
        int k = write(cfd, req, strlen(req));
        int k2 = write(cfd, req, strlen(req));

    想找一个flush方法,一直没有找到,或者想要一个没缓存的设置。没成功,

    后杰找书本,有一句

      int on = 1;
      setsockopt(cfd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on));

    试一下,真的成了。这句话书中说是“快速回收socket”,感觉这个说明应该和 flush没关吧,不过对我来说有效果。

    2019-12-22

        int k = 90;
        //__android_log_print(4, "##############", "年龄:" + 90); 报错,编译不通过
        __android_log_print(4, "##############", "年龄:%d", k);
  • 相关阅读:
    小型的Unix系统字符SHELL
    小型的Unix系统字符SHELL
    string 大小写转换
    string 大小写转换
    string 大小写转换
    ACM 的中取模
    ACM 的中取模
    使用adb命令停止APP后台进程的方法
    how to use adb and gdbserver with VirtualBox
    CentOS的KVM实践(虚拟机创建、网桥配置、Spice)
  • 原文地址:https://www.cnblogs.com/angelshelter/p/11922737.html
Copyright © 2020-2023  润新知