我觉得并不是一定的吧 , 只要你愿意 , 你直接用系统调用都可以哦 。
   但问题是不用JNI ,那你怎么给应用层提供接口

解决方案 »

  1.   

    那看来一定是要用JNI的模式来重写这些现成的代码了.是这样吗,有没有比较可行的路子。
      

  2.   

    方案1.Java应用层<---->通讯协议C/C++(so文件)---------------不用改写C/C++,拿过来就用
    方案2.Java应用层<-->JNI(NDK)<-->通讯协议C/C++(so文件)-----要重写C/C++,加一层JNI的外衣包裹
    第2种办法肯定可行,不知道第1种方案目前Android是否可以做到?
      

  3.   

    你去下这一个文档:
    http://bbs.androidcn.com/thread-196-1-1.html

    有可以不通过jni,dalvik虚拟机的调用方法...
      

  4.   


    要么java调用C库。
    要么整个界面程序用C++开发
      

  5.   

    恩 , 可以看看NDK的实现嘛 ,对这东西不太了解 , 应该是一样的吧。
      

  6.   

    我觉得只能用JNI调用底层库!
      

  7.   

    还可以soctet通信,比如framework里面的RIL.java都是通过soctet和底层的RILD通信的,底层的RILD也是c代码加载.so库!