Eclipse开发Android-NDK项目自动生成javah头文件

博主双修Android,iOS底层库开发也有好几年了,一直盼望Android平台能有Xcode那样强大的IDE,尽管Eclipse的ADT插件也能很好的代码提示,自动补全,但每次新开类生成javah文件也是比较头疼的。

Android Studio从1.3版本开始说是加强NDK的接入,引入了『com.android.tools.build:gradle-experimental』,从功能使用上来看还是挺好的,比如能在java层自动生成对应的jni方法,并能在java和c\c++之间函数跳转,还能自动生成一些简单的env操作,比如转换String类。但是,这个gradle-experimental的写法和默认的gradle差别太大,到博主发这篇帖子是,AS2.1.2仍然还在开发这个插件。AS 2.2 preview版已经可以支持cmake和mk的编译了,而且cmake作为新建项目时勾选c++支持的默认形式了,难道要放弃gradle-experimental 🙁 。目前还不支持代码提示,跳转这些基本操作,后面的版本应该会加强吧。

另外还有一个比较严重的问题,Android Studio好慢,越来越慢了,经常导入一个项目卡半天,最后只能强制退出。项目编译起来,i7-4790都觉得用起来卡。博主到现在仍然使用最经典的Eclipse Indigo,哈哈。

废话完了,现在帖正题,Eclipse其实也是很强大的,我这里利用Ant脚本来实现自动化编译javah头文件。

  1. 首先,在工程里新建一个xml文件,名字随便取,就叫GenJavah.xml吧,内容如下

  2. 在项目上点右键->Properties->Builders->New->Ant Builder->OK
  3. Name随便取吧,比如还是叫GenJavah。Main标签的Buildfile:点Browse Workspace…,选中刚才那个xml文件,ok

已经好了,每当保存了包含native方法的java文件保存后,选菜单栏Project->Build Project,ant帮我们自动向jni目录生成这些头文件。或者你按编译快捷键也可以。我们的c\c++ source文件只需要引入这个头文件,新的native方法就可以开始实现了。

这帖比较啰嗦,主要想吐槽下Android的开发环境,这么多年了,都还没让NDK开发者爽。不过gradle也有它比较强大的地方吧,本人才疏学浅,望指正。

后记:AndroidStudio 2.2正式发布后,NDK开发这块已经很成熟了,建议使用新平台了.

原创文章,转载请注明: 转载自贝壳博客

本文链接地址: Eclipse开发Android-NDK项目自动生成javah头文件

1 评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据