天天看點

跟着鬼哥學so修改,一,準備篇

圖/文 聽鬼哥說故事

閑話少說,so的修改,重要性大家都知道,這裡從頭編寫so檔案,分析so檔案,修改so檔案,打算做一個系列的教程,當然,主要是看時間允許。

android的sdk配置以及ndk環境下載下傳,請同學們自行google即可。

翻牆也不會,工具也不會用,搜尋也懶得搞,請直接略過本文即可。

0x1:建立立一個安卓工程

跟着鬼哥學so修改,一,準備篇

0x2:編寫調用so代碼和方法定義

在MainActivity.java同目錄下建立一個JniGg.java檔案,用于調用so

跟着鬼哥學so修改,一,準備篇

0x3:生成檔案頭.h檔案

在這個目錄可以看到我們編寫好并且已經編譯的class檔案,eclipse是自動編譯的。

跟着鬼哥學so修改,一,準備篇

一切正常編譯,那麼現在我們回到工程根目錄下:

跟着鬼哥學so修改,一,準備篇

然後在指令行切換到此目錄:

跟着鬼哥學so修改,一,準備篇

現在我們使用下面的指令:javah -classpath bin/classes -d jni com.ggndktest1.JniGg

跟着鬼哥學so修改,一,準備篇

不報錯,并且成功編譯出.h檔案,才算成功的。

上面需要注意的是那個bin/classes,因為我的電腦上編譯完的classes目錄是這個樣子的,參照上文那個檔案目錄的截圖圖檔,個别電腦上不需要/classes。然後在Eclipse,右擊工程,進行重新整理,可以看到如下截圖:

跟着鬼哥學so修改,一,準備篇

0x4:編寫c代碼

跟着鬼哥學so修改,一,準備篇

在jni目錄下建立file,gg-jni.c自己看看代碼,也就知道啥意思了

跟着鬼哥學so修改,一,準備篇

然後就是Android.mk檔案的編寫了

跟着鬼哥學so修改,一,準備篇

0x5:生成so檔案

跟着鬼哥學so修改,一,準備篇

切換到工程根目錄,然後直接ndk-build即可。這裡需要注意,ndk-build需要配置環境變量,自行搜尋配置方法即可。

0x6:android調用代碼

跟着鬼哥學so修改,一,準備篇

建立一個TextView,然後顯示so裡面的字元串。然後運作我們的測試代碼:

跟着鬼哥學so修改,一,準備篇

相關附件和文檔:

http://pan.baidu.com/s/1pJ2Y047

文章同時也交由www.pd521.com 首發,轉載請注明出處。

繼續閱讀