V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
gnaix
V2EX  ›  Android

Android Studio 开发 NDK 的两种方式选择

  •  
  •   gnaix · 2016-06-23 16:29:28 +08:00 · 13034 次点击
    这是一个创建于 3111 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Android Studio 在很早就支持 NDK 开发了,但是一直没有正式版本的 gradle 支持。
    现在官方最新的experimental版本应该到了0.7.0-alpha4

    但是experimental版本各种不方便啊,之前也写过一篇教程NDK 开发 - Android Studio 环境搭建

    后来发现另外一种方式:在项目下建一个 jni 目录用配置好Android.mkApplication.mk,写好C/C++文件。最后用脚本编译生成并复制到相应的目录下,当然也可以用 gradle 的 task ,一次编译。
    第二种方式优点是可以不用修改build.gradle文件了。缺点可能是编译调试优点麻烦。

    所以开发 NDK 的大神们 你们是用哪种方式开发的。或者有更好的开发方式。(先不考虑 eclipse )

    13 条回复    2016-06-26 08:37:48 +08:00
    ju5t4fun
        1
    ju5t4fun  
       2016-06-23 18:37:31 +08:00
    现在 Android Studio 2.2 Preview 可以使用 gradle 稳定版+Android.mk 开发 ndk , http://tools.android.com/tech-docs/external-c-builds
    youxiachai
        2
    youxiachai  
       2016-06-23 18:39:57 +08:00
    lz..你的资料有多久没 update 了....现在 as 都支持 c++ debug 了..
    youxiachai
        3
    youxiachai  
       2016-06-23 18:40:26 +08:00
    详见今年 google io android studio 的视频...
    sampeng
        4
    sampeng  
       2016-06-23 18:41:11 +08:00
    瞄了个咪的。。。我刚升级到 2.2.。。我原来的 ndk 开发项目就打不开了。。。我用的 experimental 。。。挺方便的啊。。断点啥的也都有。。。
    youxiachai
        5
    youxiachai  
       2016-06-23 18:42:23 +08:00
    sampeng
        6
    sampeng  
       2016-06-23 18:43:46 +08:00
    不是经常升级的原因是, android studio 常年患有 gradle 不兼容的毛病。偏偏 gradle 下载又慢的死人。所以我是能不更新不更新。。。拖了好久一更新,果然各种 gradle 版本不兼容。。
    acros
        8
    acros  
       2016-06-23 19:06:54 +08:00
    @sampeng android 开发最气人的就是各种环境搭建,这个 Gradle 版本多如牛毛竟然还要一个个挑过去···
    sampeng
        9
    sampeng  
       2016-06-23 20:09:15 +08:00
    @acros 这也是影响 android studio 推广的一大原因。。。
    我跟很多人安利,不接受的原因也在这。。一更新环境就不能用。。。人都是懒的
    Lonely
        10
    Lonely  
       2016-06-23 20:24:09 +08:00
    @sampeng 用了这么久的 AS 还没碰到过 gradle 不兼容的问题。你举个栗子呢?至于 gradle 下载慢,你不会挂代理吗? Xcode 也经常更新后会有一堆问题。
    ilotuo
        11
    ilotuo  
       2016-06-23 20:33:32 +08:00
    experimental 不支持符号表和函数跳转等.官方也说了
    我还在坚持使用 1.5 + Android.mk 调试全靠打印 发现其实也不是那么依赖断点
    allenx
        12
    allenx  
       2016-06-24 09:37:30 +08:00
    用第 2 种,一般是先在其他平台调试 OK 了之后放到 android NDK 下面去。
    liufuyi
        13
    liufuyi  
       2016-06-26 08:37:48 +08:00
    第二种的方法的缺陷 就是调试起来 麻烦

    我这边是 历史遗留问题外加导入了几个静态库,也是用得第二种
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2773 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 12:35 · PVG 20:35 · LAX 04:35 · JFK 07:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.