• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Registering
V2EX  ›  程序员

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

  •  
  •   Registering · May 10, 2015 · 4521 views
    This topic created in 4194 days ago, the information mentioned may be changed or developed.
    写android到现在主要SDK方面,慢慢有点瓶颈,要学得东西需要深入点了

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

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

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

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

    顺便分享一个简单NDK示例: https://github.com/ragnraok/android-image-filter
    Registering
    Registering
    OP
    May 11, 2015
    8
    @miao1007
    谢谢啦!!!
    silvernoo
    silvernoo
    May 11, 2015
    9
    @miao1007 用NDK来存放密码或者APPKEY。应该没什么必要,对方只要拿到so文件。用正常方法调用native方法然后输出。这样做只是饶了一个弯而已。然而并没有什么用。
    guxuede
    guxuede
    May 11, 2015
    10
    游戏应用可能用的比较多,普通应用很少用到
    vjnjc
    vjnjc
    May 11, 2015
    11
    @silvernoo 我觉得可能是c实现的加密算法比较多吧,用ndk调用比较简便.
    WispZhan
    WispZhan
    May 11, 2015
    12
    没什么特别要求可以不用。
    1.改善代码性能
    2.使用现成的C/C++ 轮子
    3.加密协议。
    基本就这3中情况。个人遇到过第2、3种。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1318 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 50ms · UTC 20:08 · PVG 04:08 · LAX 12:08 · JFK 15:08
    ♥ Do have faith in what you're doing.