JNI實戰
鍋爐壓力的監控器
code.google.com
code.taobao.org
sourceforge.net
grepcode.com
1.假的進度條
2M wav -> MP3 200K
99% ~ 100%
2.真的進度條.
準確的知道 轉化的百分比
C用反射調用JAVA,需要用到方法簽名。
C、C++的區別?在做JNI開發的時間,寫法會有些差異。
1、要在Android.mk文件中多一個配置。
2、C++語法上略有不同。
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
#這個是對C++配置。
LOCAL_CPP_EXTENSION := cpp
LOCAL_MODULE := Hello
LOCAL_SRC_FILES := Hello.c
LOCAL_LDLIBS += -llog
include $(BUILD_SHARED_LIBRARY)
//return (*env)->NewStringUTF(env,"haha from c");
return env->NewStringUTF("haha from c++");
JNI最重要就是打通數據通信。JAVA如何給C傳參數並返回相應的結果。
如果C想調用JAVA的方法要用方法簽名。
MP3轉化器,JAVA調用C去轉碼,C再調用JAVA去更新UI。
運用純C語言開發手機應用。不過自己訂製的可以用。因爲它可以
直接編譯成ARM下可以運行的。ELF是二進制下可以執行文件的文件頭。
其實就是直接生成在ARM架構下的二進制可執行文件,因爲JAVA可以直接
執行這些可執行文件,所以就可以用了。
try {
//Process process = Runtime.getRuntime().exec("/data/data/hello");
Process process = Runtime.getRuntime().exec("date");
InputStream is = process.getInputStream();
DataInputStream dis = new DataInputStream(is);
String result ;
StringBuilder sb = new StringBuilder();
while((result = dis.readLine())!=null){
sb.append(result);
sb.append("\n");
}
System.out.println(sb.toString());
} catch (Exception e) {
e.printStackTrace();
}
code.google.com
code.taobao.org
sourceforge.net
grepcode.com
1.假的進度條
2M wav -> MP3 200K
99% ~ 100%
2.真的進度條.
準確的知道 轉化的百分比
C用反射調用JAVA,需要用到方法簽名。
C、C++的區別?在做JNI開發的時間,寫法會有些差異。
1、要在Android.mk文件中多一個配置。
2、C++語法上略有不同。
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
#這個是對C++配置。
LOCAL_CPP_EXTENSION := cpp
LOCAL_MODULE := Hello
LOCAL_SRC_FILES := Hello.c
LOCAL_LDLIBS += -llog
include $(BUILD_SHARED_LIBRARY)
//return (*env)->NewStringUTF(env,"haha from c");
return env->NewStringUTF("haha from c++");
JNI最重要就是打通數據通信。JAVA如何給C傳參數並返回相應的結果。
如果C想調用JAVA的方法要用方法簽名。
MP3轉化器,JAVA調用C去轉碼,C再調用JAVA去更新UI。
運用純C語言開發手機應用。不過自己訂製的可以用。因爲它可以
直接編譯成ARM下可以運行的。ELF是二進制下可以執行文件的文件頭。
其實就是直接生成在ARM架構下的二進制可執行文件,因爲JAVA可以直接
執行這些可執行文件,所以就可以用了。
try {
//Process process = Runtime.getRuntime().exec("/data/data/hello");
Process process = Runtime.getRuntime().exec("date");
InputStream is = process.getInputStream();
DataInputStream dis = new DataInputStream(is);
String result ;
StringBuilder sb = new StringBuilder();
while((result = dis.readLine())!=null){
sb.append(result);
sb.append("\n");
}
System.out.println(sb.toString());
} catch (Exception e) {
e.printStackTrace();
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.