2015-07-02 26 views
3

我目前面臨的現狀:Java和C文件創建物業

我想創建切換爲槍王醒來的姿態,這是「接通」具有以下提交到Nexus 6 PowerHAL:https://gerrit.omnirom.org/#/c/13930/1/power/power_shamu.c

我想通過使用系統應用程序(用java編寫)來提供啓用/禁用此功能(寫入上述C文件中的內核sysfs路徑)的切換來實現此目的。顯然,我不能將它包裝在ifdef或任何東西中,但我被告知可以在應用程序中創建一個屬性(Java文件),然後在C文件中繼承它。

理論上,這將功能如下:

  • 啓用應用程序/禁用功能(Java的設置屬性來打開或關閉)
  • 屬性由C文件,以確定寫入的sysfs什麼價值路徑

sysfs文件的內容就像比較啓用和禁用文件的值一樣簡單,我更關心完成此操作所涉及的邏輯。

我知道Java很少,但有一個堅實的C++基礎。

我做了一些Google搜索,但無法找到任何相關的東西。

任何見識都會很棒。

- 傑克

+1

要小心,C和C++是不一樣的東西! – Troyseph

+0

Linux內核功能通常是通過在sysfs中編寫文件來控制的,而您不需要C來執行此操作。你想用C來做什麼? – Joni

回答

0

的Android NDK有你需要的一切

public class MyActivity extends Activity { 
    static { 
     System.loadLibrary("library"); 
    } 

    /** 
    * Native method implemented in C/C++ 
    */ 
    public native String toggleFoo(); 
} 

#include <string.h> 
#include <jni.h> 

jstring Java_com_package_MyActivity_toggleFoo(JNIEnv* env, jobject javaThis) { 
    return (*env)->NewStringUTF(env, "Hello from native code!"); 
}