在給Android添加新的驅動后,app要如何使用呢?
正常的使用一個設備,需要getService。但是像LED等我們自己添加的硬件驅動,Android源代碼根本沒有我們自己添加的服務。
第一種:
我們自己的創建的硬件設備驅動的類是被系統定義為了隱藏類,那么在Android系統中如何使用隱藏類呢?為此我們可以根據android的編譯過程可以看到我們添加的類被添加到framework.jar。但是framework.jar是dex格式,在我們做app時要使用原生態的jar目標文件.
所以我們使用 out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/class.jar這個jar文件。
如何包含jar文件,我們可以Google。
第一步,把jar包放在工程下的libs目錄里,如果沒有就新建這個目錄。
Class.forName:返回與給定的字符串名稱相關聯類或接口的Class對象。
Class.forName是一個靜態方法,同樣可以用來加載類。該方法有兩種形式:Class.forName(String name, boolean initialize, ClassLoader loader)和 Class.forName(String className)。第一種形式的參數 name表示的是類的全名;initialize表示是否初始化類;loader表示加載時使用的類加載器。第二種形式則相當於設置了參數 initialize的值為 true,loader的值為當前類的類加載器。
|
forName Returns the |
|
forName Returns the |
通過類名獲取類。
Class serviceManager = Class.forName("android.os.ServiceManager");
獲取方法
Method method = serviceManager.getMethod("getService", String.class);
調用方法
method.invoke(serviceManager.newInstance(), "phone");
()http://blog.csdn.net/fengyuzhengfan/article/details/38086743