android 集成第三方静态库的编译方法

  最近在集成第三方静态库,在网上搜索了好多资料,试过好多次,出现过各种问题。下面是走过的一些历程,记录下来,以便后面参考。

在这个案子中,我是用NDK来生成so。

下面是要用到得cygwin的安装和配置:

1、下载cygwin安装包。

2、点击安装,在Select Packages界面,安装Devel分支下的所有安装包。同时也搜索下VIM,安装VIM。选中后就等待下载和安装完成。

3、安装完成后,要进行一些环境变量的配置:

  将cygwin安装目录下的bin设置到系统的path路径。点击 Cygwin.bat 启动cygwin,出现bash shell dos 窗口,分别执行命令 make -v,gcc -v没有报错,出现对应的版本显示,就表示安装成功了.为了编译方便,编辑一下 cygwin.bat 文件,设置环境变量,我的文件编辑如下,供参考:
  @echo off

  f:
  chdir f:/develop/cygwin_a/bin

  set HOME=/cygdrive/f/cygwin/home/
  set NDK=/cygdrive/f/Android/Android_SDK/android-ndk  

  bash --login -i

也可点击桌面的Cygwin Terminal,执行

  vim .bash_profile

在文件末尾加上

  NDK=/cygdrive/f/Android/Android_SDK/android-ndk

  exprot NDK

4、验证安装是否成功

  启动cygwin,进入命令窗口,切换目录到android NDK (cd $NDK)安装目录samples/hello-jni目录,执行$NDK/ndk-build clean,随后执行 $NDK/ndk-build,这个时候看到清除了原来的文件,重新编译生成了 libhello-jni.so,即大功告成.

5、cygwin用到的命令

  cd $NDK

  ls

  ndk-build

  ndk-build clean

  

 

下面是配置NDK环境:

1、下载 android-ndk-r7b-windows, 找度娘要了这个包。解压到F盘中。

2、将ndk

 

为静态库(.a)创建jni接口:

1、必备文件:静态库libtest.a、静态库libtest.a的头文件libtest.h,将这两个文件放在Android工程的jni目录下。

2、增加jni.java, 内容如下,刷新Android工程,在bin目录下生产jni.class。

  

package com.lgq.test;

public class jni {
    
    static {
        System.loadLibrary("test");
    }
    
    public static final native int getVersion();
    public static final native int doUpdate(String path);
    public static final native int doCalibration();    
    
}

 

3、打开cygwin, 进入Android工程目录bin文件夹下, 执行

  javah -classpath . -jni com.lgq.test.jni

 

 

最近在集成第三方静态库(.a),下面是一些参考:

 

android 集成第三方静态库的编译方法

http://blog.csdn.net/lizhiguo0532/article/details/7219349

 

 

Android中编译及使用静态库  

http://fanwei51880.blog.163.com/blog/static/3240674020111140737614/

这里采用的方式是Java调用动态库(.so)文件,动态库再调用静态库(.a)文件。

posted @ 2012-04-05 22:42  天南星客  阅读(4381)  评论(0编辑  收藏  举报