Java?如何接收kernel傳過來的數(shù)組(推薦)
如接收float 類型數(shù)組,JNI 定義jfloatArray 類型數(shù)據(jù) 通過env->ReleaseFloatArrayElements 將float 數(shù)據(jù)拷貝成jfloatArray類型
JNI 部分:
static jfloatArray TempMlsSensorRead_native(JNIEnv* env , jobject /* clazz */,jint length){
float * address=(float *)g_device->mlx90640_read(g_device);
float *example =new float [768]{};
for(int i=0;i<768;i++){
example[i]=address[i];
}
jfloatArray copyArray = env->NewFloatArray(768);
env->ReleaseFloatArrayElements(copyArray,example,0);
return copyArray;
}
static const JNINativeMethod method_table[] = {
{ "nativeTempMlsSensorOpen", "()I", (void*)TempMlsSensorOpen_native },
{ "nativeTempMlsSensorWrite", "(I)I", (void*)TempMlsSensorWrite_native },
+ { "nativeTempMlsSensorRead", "(I)[F", (void*)TempMlsSensorRead_native },
{ "nativeTempMlsSensorReadValue", "()I", (void*)TempMlsSensorRead_native_value },
{ "nativeTempMlsSensorIoctl", "(II)I", (void*)TempMlsSensorIoctl_native },
{ "nativeTempMlsSensorClose", "()I", (void*)TempMlsSensorClose_native },AIDL 接口添加float 數(shù)組類型
interface ITempMlsSensor {
int TempMlsSensorOpen();
int TempMlsSensorWrite(int value);
+ float[] TempMlsSensorRead(int length);
int TempMlsSensorReadValue();
int TempMlsSensorIoctl(int cmd, int value);
int TempMlsSensorClose();
}JAVA 類型數(shù)組類型
@Override
+ public float[] TempMlsSensorRead(int length) throws android.os.RemoteException{
+ return nativeTempMlsSensorRead(length);
+ }
public static native int nativeTempMlsSensorOpen();
public static native int nativeTempMlsSensorWrite(int value);
+ public static native float [] nativeTempMlsSensorRead(int length);
public static native int nativeTempMlsSensorReadValue();
public static native int nativeTempMlsSensorIoctl(int cmd,int value);
public static native int nativeTempMlsSensorClose();到此這篇關于Java 如何接收kernel傳過來的數(shù)組的文章就介紹到這了,更多相關Java接收kernel數(shù)組內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
JAVA實現(xiàn)網(wǎng)絡/本地圖片轉(zhuǎn)BASE64存儲代碼示例
這篇文章主要給大家介紹了關于JAVA實現(xiàn)網(wǎng)絡/本地圖片轉(zhuǎn)BASE64存儲的相關資料,Base64是網(wǎng)絡上最常見的用于傳輸8Bit字節(jié)碼的編碼方式之一,Base64就是一種基于64個可打印字符來表示二進制數(shù)據(jù)的方法,需要的朋友可以參考下2023-07-07
Java使用OpenFeign管理多個第三方服務調(diào)用
最近開發(fā)了一個統(tǒng)一調(diào)度類的項目,需要依賴多個第三方服務,這些服務都提供了HTTP接口供我調(diào)用。感興趣的可以了解一下2021-06-06
Java 實戰(zhàn)項目之畢業(yè)設計管理系統(tǒng)的實現(xiàn)流程
讀萬卷書不如行萬里路,只學書上的理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+SSM+jsp+mysql+maven實現(xiàn)畢業(yè)設計管理系統(tǒng),大家可以在過程中查缺補漏,提升水平2021-11-11
解決JdbcTemplate查詢時報錯Incorrect column count: ex
文章描述了在使用JdbcTemplate執(zhí)行查詢時遇到的`IncorrectResultSetColumnCountException`錯誤,原因是`queryForList`方法返回的是`List<Map<String, Object>>`類型,不能直接轉(zhuǎn)換成對象,解決方法是將代碼修改為適當?shù)牟樵兎绞?以避免錯誤2026-01-01
Mybatis使用JSONObject接收數(shù)據(jù)庫查詢的方法
這篇文章主要介紹了Mybatis使用JSONObject接收數(shù)據(jù)庫查詢,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-12-12
解決nacos報錯java.lang.ClassNotFoundException: com.netflix.
這篇文章主要介紹了解決nacos報錯java.lang.ClassNotFoundException: com.netflix.config.DynamicPropertyFactory的問題,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06

