android libs APP操作新硬件的两种方法(支持添加的驱动)

Android

1个回答

写回答

萌阿萌阿萌

2024-10-22 14:27

+ 关注

Android
Android

在给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目录里,如果没有就新建这个目录。Androidlibs第二步,通过File菜单或者F4进入projectstructure,先在左上方选择+号,然后添加class。

Java
Java

jar,然后左边选中app,再进到dependencies,点+选择filedependency,再从libs目录选择你要的jar包,选择后把scope置为Provide。即可。AndroidlibsClass。forName:返回与给定的字符串名称相关联类或接口的Class对象。

Class。forName是一个静态方法,同样可以用来加载类。该方法有两种形式:Class。forName(Stringname,booleaninitialize,ClassLoaderloader)和Class。forName(StringclassName)。

第一种形式的参数name表示的是类的全名;initialize表示是否初始化类;loader表示加载时使用的类加载器。第二种形式则相当于设置了参数initialize的值为true,loader的值为当前类的类加载器。通过类名获取类。ClassserviceManager=Class。

forName("Android。os。ServiceManager");获取方法Methodmethod=serviceManager。getMethod("getService",String。class);调用方法method。

invoke(serviceManager。newInstance(),"phone");。

举报有用(10分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号