標籤:jni ndk so 產生 windows
準備工作:Eclipse ADT IDE 開發工具,NDK ,Java 環境,博主的配置是:Windows x86 , ADT Build: v22.3.0-887826 , JAVA 1.7, NDK android-ndk-r9
首先我們需要知道在 Linux 下編譯 Project 產生 so 可以用 make ,但是在 WINDOWS 就不行了,這個就不多說了,大夥都明
白,然而今天寫的這篇部落格就是教大家怎麼在Windows 配置自己的ADT開發外掛程式也具備這樣的功能,方便快速高效的開發,本
篇部落格暫時沒有涉及 Studio so 外掛程式產生,因為博主習慣 ADT 了 ,準備好上述所有的準備之後,我們開始進行後階段的講解
①首先我們建立一個Demo來測試我們的配置是否成功
是我剛建立的一個Demo,其中JNITools 就是調用so的地方,在沒產生so之前,建議先不要載入so檔案,把注釋的全刪
掉,之後就開始配置ADT產生.h檔案,用來匯入Java class/method
②寫完這樣的Demo類之後,繼續下面的操作,產生 .h 檔案,看下面的步驟,以及配置要求
點擊program 再點左上方的建立 ,可以看到我的program下面有JAVAH/NDK 這是我已經配置好了的,下面繼續教大家配置
免命令列的快速產生操作配置
Arguments:-classpath ${project_loc}\bin\classes -d ${project_loc}\jni -jni ${java_type_name}
之後在配置 Common
每次改完配置記得Apply一下,.h檔案產生的配置就OK了,下面說產生的使用操作
產生的檔案
標頭檔的產生就完成了,就下來就是寫.c檔案並且配置.so檔案產生的外掛程式
編寫如上.c檔案,匯入我們之前產生的標頭檔和方法,下面開始產生.so配置的外掛程式,跟javah配置類似,不過在這之前我們需要配置一下Application.mk/Android.mk檔案,如果Application.mk未配置,預設編譯Android.mk檔案,編寫如下Andriod.mk檔案,在這之前我們可以先不用可以去瞭解這兩個mk檔案的變數到底有啥作用,具體用來幹啥,配置完之後可以再去詳細瞭解一下
②開始配置ADT產生.so檔案的外掛程式
別忘了Apply,下面繼續說.so的產生
so的調用和測試:
整個配置到這裡就講完了,下面就跟大家說說關於so的一些反編譯技巧,這其實是個技術活,相信接觸JNI的朋友都知道,
這並非易事,因為即使解析出來了,也是一些組合語言,還需要繼續深入,才能獲得根本意義上的所需要的東西
在這裡,博主給大家推薦一個so反編譯工具,IDA ,是我覺得目前逆向so最好的工具
總而言之一個包含比較多的函數的so逆向起來是非常麻煩且工作量大的工程,嘿嘿,當然只要有興趣做起來就不是難事,就像我一樣,沒事就喜歡鑽研這些玩意兒
好了這篇部落格就這麼多內容,可以慢慢去揣摩一下
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
Windows環境下教你用Eclipse ADT 外掛程式產生.h/.so檔案,Java下調用JNI,輕鬆學習JNI