JNI实战

锅炉压力的监控器 




code.google.com


code.taobao.org


sourceforge.net




grepcode.com




1.假的进度条
2M wav -> MP3  200K
99% ~ 100%




2.真的进度条.
准确的知道 转化的百分比  


C用反射调用JAVA,需要用到方法签名。


C、C++的区别?在做JNI开发的时间,写法会有些差异。
1、要在Android.mk文件中多一个配置。
2、C++语法上略有不同。


 LOCAL_PATH := $(call my-dir)


   include $(CLEAR_VARS)
   #这个是对C++配置。
   LOCAL_CPP_EXTENSION := cpp 
   LOCAL_MODULE    := Hello
   LOCAL_SRC_FILES := Hello.c
LOCAL_LDLIBS += -llog
   include $(BUILD_SHARED_LIBRARY)
   
//return (*env)->NewStringUTF(env,"haha from c");
return      env->NewStringUTF("haha from c++");


JNI最重要就是打通数据通信。JAVA如何给C传参数并返回相应的结果。
如果C想调用JAVA的方法要用方法签名。


MP3转化器,JAVA调用C去转码,C再调用JAVA去更新UI。


运用纯C语言开发手机应用。不过自己订制的可以用。因为它可以
直接编译成ARM下可以运行的。ELF是二进制下可以执行文件的文件头。
其实就是直接生成在ARM架构下的二进制可执行文件,因为JAVA可以直接
执行这些可执行文件,所以就可以用了。
 try {
        //Process  process = Runtime.getRuntime().exec("/data/data/hello");
        Process  process = Runtime.getRuntime().exec("date");
        InputStream is = process.getInputStream();
        DataInputStream dis = new DataInputStream(is);
        String result ;
        StringBuilder sb = new StringBuilder();
        while((result = dis.readLine())!=null){
        sb.append(result);
        sb.append("\n");
        }
        System.out.println(sb.toString());
       
} catch (Exception e) {
e.printStackTrace();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值