您的位置:首页 > 移动开发 > Android开发

android 开发配置及jni使用总结

2014-06-04 17:12 211 查看
本人文采不好,此文章是关于android配置jni使用 自己的一些经验总结。

首先说的是开发环境的搭建,网上很多教程,我也是在网上找的 步骤如下这里就不复述了。

1.1、JDK安装
1.2、Eclipse安装
1.3、Android SDK安装
1.4、ADT安装
1.5、创建AVD

配置android开发环境是在windows系统下搭建的。
电脑配置不够的朋友会发现 使用android AVD 模拟器会很慢,我有一个解决的办法,就是android-x86 ,可以把android系统安装在虚拟机上,运行效果比AVD 好很多,就是网络连接会有一些问题。具体的解决办法可以上网搜索。
eclipse 连接 android-x86 的方法时 ,先知道android-x86系统的IP ,eclipse 配置 android->DDMS 勾选上 use ADBHOST 再把IP 写在 ADBHOST
value中。
在开发中需要使用第三方的库 ,他们给的源码是c/c++写的。刚开始接触android不太懂,首先想到的是把库用java翻译一下,后来发现这个工作量太大了,然后在网上搜索 原理android上可以使用c/c++的库的
就是jni。
接下来就是配置jni的环境了,网上有很多的教程,主要的就是 使用cygwin这个工具 在windows下模拟 unix的编译环境,我刚开始也下载这个工具,整整下载了一天多还没下下来(公司网特慢),ndk的版本有windows上的
还有linux上的,首先我下载的是windwos下的ndk r9d的版本由于cygwin下载不下来,只能选择别的发办法了。
网上有很多接受 linux上ndk的环境配置,那个还需要把android的环境在搭建一遍本麻烦的,后来就想 cygwin主要就是模拟unix的编译环境,我可以吧源码用linux编译一个android可以调用的so文件就可以解决问题了,后来验证我的方法时可以的。
ndk 下载网址 http://developer.android.com/sdk/ndk/index.html
首先在linux上安装ndk 并配环境变量,网上有教程。
编译的时候出现这样的问题,我是使用Vmware虚拟机安装的linux系统 使用共享文件夹来共享windwos和linux里的文件。把源码放在共享文件夹下 编译会出一个错的,需要把源文件放在别的路径下,例如 共享文件夹路径
/mnt/hgfs/Share/code 在这个路径下是编译不过的 需要反正该别的路径下 如 /home/code 就可以了。进入 jni文件夹在 ndk—build 就可以生成so文件了(没有错误的前提下)
还有一点,就是编译完的so文件 如何连接方法的问题,刚开始始终连接不上,原来是方法需要重命名,把你需要的方法前面加上 java_包名路径_l类名_方法名 才可以。
例如 c库有如下方法 long func(void);
在jni 对应的java调用的时候 需要那这个c的方法名改写成 jlong java_com_android_code_func(JNIEnv* env, jobject thiz );
对应的返回值类型要改写 jlong ,string 需要改写成 jstring 原因是什么我不太清楚,因为刚接触^_^ 还在学习中。
想上面写的方法名称 对应的 java调用类名称是code.java 路径是 com/android 这个是不可以改的 否则会连接不到的。
在java中 使用so文件的方法 网上很多教程。我这里简单说一下
还是上面的例子
code.java 文件内容如下
public class code{
static{

System.loadLibrary("so文件名 不需要前面的 lib");

}

public native long func();

}
以上内容看着可能有点乱^_^ 请见谅 有需要的朋友参考下
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: