天天看點

使用jni接口完成android本地程式的運作--具體的操作

雖然上一篇文章《使用jni接口完成android本地程式的運作》講述了一些理論上的知識,但是如何具體操作呢?要知道android的java虛拟機與标準的jvm是不一緻的,是以肯定會遇到具體操作的問題。實際上,具體操作也不難,隻要按照android文檔的介紹按部操作即可:

1.在apps目錄下拷貝一個最簡單的例子,比如hello-jni作為模闆,命名為你的應用的名稱,然後删除其下的和hello-jni相關的内容;

2.将需要編譯的源代碼樹拷貝到jni目錄之下;

3.jni目錄下的Android.mk檔案内容如下:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_CFLAGS       := ...#拷貝所有原始Makefile中的CFLAGS/CPPFLAGS/等等一切指令行标志,包括預編譯宏的定義

LOCAL_LDLIBS     := ...#拷貝所有的連結時用到的動态庫路徑,動态庫,靜态庫(-L,-l)

LOCAL_MODULE    := ...#最終的供java調用的so名稱,省略了lib和.so的

LOCAL_SRC_FILES := ...#所有參與編譯的源代碼檔案

include $(BUILD_SHARED_LIBRARY)

4.在apps的上級目錄執行:make APP=XXX 即可

5.注意,不能使用網上著名的打包好的droid-gcc工具來利用-fPIC -shared參數生成動态庫,那樣的動态庫是很難直接使用的,必須做很多後續的工作才可以。其實,ndk的作用也就在于省略了很多所謂的後續工作,它簡化了生成動态庫的過程

 本文轉自 dog250 51CTO部落格,原文連結:http://blog.51cto.com/dog250/1271174

繼續閱讀