Android P ioctl读取mac,在android JNI中通过socket获取MAC硬件地址,socket创建成功,但调用ioctl的时候,返回-1,怎么回事?...

2015-05-16 回答

jni对性能的提升没有我预想中的大,对于for循环的速度提升大概在1倍左右,所以如果数量级不大的话,性能提升不会很明显

jni编完之后,不能调试,是不是很蛋疼,不像android java可以看出错信息。jni crash之后,界面上表示为没有任何反应,过段时间直接退出应用,没有提示、也没有xxx已停止运行。第一次遇到真是无从下手,有没有!!!,经过对java层的log研究发现,原来jni crash后,cpu就直接死在那里(相当于assert,程序停止运行)。果断时间后java层发现程序已挂之后(进程僵死),就强制杀死该进程。于是程序直接退出而无提示。(以上分析纯属个人分析,如有不对,敬请指正)。这时发现如果能有单步调试功能那该多好!!

百度一下 ndk单步调式 一般能搜出如下结果:

1、安装cdt插件

2、安装sequoyah插件

3、使用插件装入jni文件、导入jni头文件

4、配置eclipse jni编译环境

5、修改ndk-gdb脚本

6、运行ndk-gdb脚本,并修改生成的文件(windows需安装cygwin)

7、配置eclipse native调试环境

吓尿了,有没有!!!单步调试这么麻烦!!!麻烦不说,windows下使用ndk-gdb效率还特别低

另外,对于修改google release的ndk脚本,我一直持保留态度,安说release的脚本应该直接能用的,为什么要做修改后才能用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值