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)文件。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM