個人記錄下調用jni全過程,省的自己忘記了。哎。
有些需要準備的地方,ndk環境,ndk源碼一份,cygwin要裝好,配好profile。java要配好環境變數。
1.首先建立一個工程,建個類對調用native的方法進行聲明。package com.stay.jni;
public class CallNative {
public CallNative() {
}
static {//匯入的lib名去掉前面的lib
System.loadLibrary("skytech");
}
public native byte[] readCmd(String path);
public native int writeCmd(byte[] cmd, String path);
}
2.build下項目,開啟cmd,cd到該工程bin目錄下,
D:\>cd D:\android\rayn\TestJni\bin
D:\android\rayn\TestJni\bin>javah -jni com.stay.jni.CallNative
然後在bin目錄下會出現一個.h檔案這是聲明的標頭檔
3.我們要的是裡面聲明的方法,把我們要寫的c檔案改成相同的方法名就可以了。(我做了一件非常挫的事,把實現寫到.h檔案裡了,一直拿.h檔案去編譯。。= =)
4.在工程裡建個jni目錄,將改好的c檔案和mk檔案(隨便copy一個,改下路徑和lib名就好啦)copy進去
5.將整個工程拷貝到ndk的samples目錄裡(D:\android-ndk-r5\samples)
6.開啟cygwin、配好環境。開啟cygwin.bat。進行編譯。萬事ok。這樣就可以成功調用jni了。
順便發個招聘貼:自己公司的,(上海浦東)額,下面寫的要求比較低,但老大面了50多個,才選中了一個。我們招人很謹慎的,但是我們的待遇絕對不會含糊。有意向的可以聯絡我。
Android職位要求:
1、 從事Android手機平台應用軟體開發一年左右工作經驗;
2、 按照項目需求開發對應功能;
3、 精通基於Android SDK的應用程式開發,能獨立進行各種應用程式開發;
4、 具有團隊協作能力,有較強的讀、寫和交流能力;
5、 工作勤奮主動,有責任,具有良好的溝通能力,團隊精神;
6、 熱愛互連網行業,適應創業性公司的成長速度與挑戰。
有以下經驗者優先:
1、有過至少一個面向使用者的手機上應用程式的完整研發經曆;
2、具有豐富的java編程經驗;
IOS職位要求:1、從事iphone手機平台應用軟體開發工作1年左右;
2、具備獨立完成項目開發的能力,熟悉iPhone平台介面開發和網路開發;
3、在電腦技術領域擁有紮實的技術功底,尤其在資料結構、演算法和代碼、軟體設計方面功力深厚;
4、對新技術感興趣,學習能力強,有鑽研和開拓精神;
5、工作勤奮主動,有責任,具有良好的溝通能力,團隊精神;
6、熱愛互連網行業,適應創業性公司的成長速度與挑戰。
有以下經驗者優先:
1、有過至少一個面向使用者的手機上應用程式的完整研發經曆;
2、具有豐富的Objective C和Cocoa編程經驗;
我們能給您帶來什嗎?
1. 自由開放的工作氛圍。
2. 比您當前收入更高的薪資。
3. 期權獎勵,我們保證公司發展的同時員工能夠分享到相應的利益。