写 android 的小伙伴, JNI, NDK,你用得多吗?

2015 年 5 月 10 日
 Registering
写android到现在主要SDK方面,慢慢有点瓶颈,要学得东西需要深入点了

JNI和NDK现在还没用过,也没学过,但是大多应聘要求都有这一项。

想问问大家用的多不多,准备这个星期搞搞,入门一下。

欢迎高屋建瓴的老司机,总结总结这个方面的知识和应用,方便后人学习。
3910 次点击
所在节点    程序员
13 条回复
inmyfree
2015 年 5 月 11 日
3年+经验路过,用过一次,大部分都是不用的
r00tt
2015 年 5 月 11 日
4+经验,用得次数还好。
有时候java代码性能遇到瓶颈考虑用ndk 来实现
有时候有些数据需要更高的安全也会采用ndk
还有时候有些c/c++的库需要在android上跑那就更要用了。总之,学上一学还是有必要的
janxin
2015 年 5 月 11 日
不太多,不过推荐学一学
silvernoo
2015 年 5 月 11 日
用过一两次,通常只是在C语言的模块提供上层调用的时候用。编译过一次opssl,cURL。
jedyu
2015 年 5 月 11 日
如2楼所说,性能、安全性的考虑,会用到,或者一些原有的依赖库,懒得用Java再实现一遍
icedx
2015 年 5 月 11 日
不多
但有时候不得不用
miao1007
2015 年 5 月 11 日
用的不多,因为目前这样的瓶颈很少。

需求主要有两个:
1. 使用C来加密算法,比如不想让别人知道的字符串。
2. 高性能计算,比如SQL/SMS加密,视频解析,图像滤镜。

顺便分享一个简单NDK示例: https://github.com/ragnraok/android-image-filter
Registering
2015 年 5 月 11 日
@miao1007
谢谢啦!!!
silvernoo
2015 年 5 月 11 日
@miao1007 用NDK来存放密码或者APPKEY。应该没什么必要,对方只要拿到so文件。用正常方法调用native方法然后输出。这样做只是饶了一个弯而已。然而并没有什么用。
guxuede
2015 年 5 月 11 日
游戏应用可能用的比较多,普通应用很少用到
vjnjc
2015 年 5 月 11 日
@silvernoo 我觉得可能是c实现的加密算法比较多吧,用ndk调用比较简便.
WispZhan
2015 年 5 月 11 日
没什么特别要求可以不用。
1.改善代码性能
2.使用现成的C/C++ 轮子
3.加密协议。
基本就这3中情况。个人遇到过第2、3种。
kyze8439690
2015 年 5 月 12 日

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/190047

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX