2012-10-23 61 views
0

在NDK中,我知道如何將參數從Java傳遞給C,然後將值從C傳遞給Java。Android與NDK之間的Java和C共享變量

但我們可以有一些數組,我可以從Java和C同時訪問。意味着我可以從C中添加值,並添加一個值或3-4值後,我可以從Java訪問這些值?

如果這是不可行的,我們還可以使用其他的東西,我可以同時獲得這些值?

回答

2

將數組等放入Java代碼中,並使用JNI從本地代碼訪問它(JNI有兩種方式)。不用說,你需要小心。順便說一句,你不能真正的'增值'到Java中的數組。如果你的意思是'添加'而不是'存儲',你可能需要一個列表或其他動態結構。

+0

所以你的意思是說我可以將一個空的數組從Java傳遞給C,然後從C中存儲該數組中的一些值,然後在從C存儲4-5個值後再說,我嘗試從Java訪問相同的數組,然後它會有那些價值? –

+0

是的。閱讀參考資料瞭解更多詳情:http://docs.oracle.com/javase/1.5.0/docs/guide/jni/spec/functions.html#wp16536 –

+0

一個警告:如果你想緩存數組引用和使用它在隨後的JNI調用中,您需要將其轉換爲全局參考。 –