2014-02-19 59 views
0

我有一個應用程序項目,其中包括與下面的Makefile JNI的本地代碼(example.c):我的應用程序中的本機可執行文件在哪裏?

LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 

LOCAL_MODULE := example 
LOCAL_SRC_FILES := example.c 
LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog 

include $(BUILD_EXECUTABLE) 

所以我建立它像一個可執行文件,一切順利。 可執行文件是否與應用程序「打包」? 如果是的話,我如何得到它的路徑或它在內存中的位置,所以我可以從java代碼運行它?

PS:我不是建立本地代碼共享庫,因爲我想運行一個主要功能與shell命令根,就像這樣:

chmod 777 /path/exe 
/path/exe 

回答

0

創建一個目錄:/jni和另一個目錄/libs。現在將您的example.cAndroid.mk放在/jni目錄中。現在cd/jni目錄並鍵入命令ndk-build。如果你的makefile文件是正確的,並且/libs目錄下的源文件中沒有錯誤,那麼將創建另一個名爲/armeabi的新目錄。在這個目錄裏面,你的可執行文件會存在。

要執行這個可執行文件,android設備必須是root的,或者你可以使用SDK提供的android模擬器。

而且你需要這個可執行文件放入/data/local/位置Android設備的(因爲即使你的設備是植根,你會不會從其他地方執行權限

,你可以這樣做使用下面的命令:

adb push example /data/local/ 

現在進入adb shell模式和CD到/data/local/

更改文件權限:chmod example 777

現在在這個相同的位置,你可以放置你的shell文件。你也可以從這個目錄訪問你的SD卡和其他文件夾。

希望這對你有幫助。如果一切正常,不要忘記接受答案。

相關問題