6.3 Android硬件访问服务APP代码
以下步骤是操作MainActivity类
1、导入包
import android.os.ILedService
2、添加成员变量
private ILedService iLedService = null;
3、在OnCreate中对上面新增加的成员变量赋值
iLedService =ILedService.stub.asInterface(ServiceManager.getService("led"));
4、使用它:
iLedService .ledCtrl();
安装以上操作编译应用程序的时候会出错,提示找不到android.os.ILedService,原因是该接口文件被android系统声明为一个隐藏类,可以看到系统生成的ILedService.java中有个hide说明,其不能被导出去给应用使用,那么怎么才能使用这些隐藏类呢
使用mmm frameworks/base show commands>log.txt 2>&1重新生成ILedService.java,查看日志看起涉及哪些文件,看到最后发现其会生成一个framework.jar,那么是否是包含这个jar文件,结果是不行,因为framework.jar是dex格式,其是Android对源代码优化后的格式,而我们在编译的时候需要原生态的文件。
怎么去使用Android SDK with Hidden and internal APIs available(隐藏接口和内部api接口)
A、包含什么
out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classer.jar复制出来导入到应用工程
B、怎么包含
使用Android Studio->File->Project Structure->点击右上角的“+”号->Import .JAR/.AAR Package->选择classer.jar
接着使用Android Studio->File->Project Structure->在左边目录中选择我们的app,在右边会出现点击Dependencies->点击右边的“+”号,选择Module dependency->选择classer,ok
重新编译解决了找不到android.os.ILedService的问题
现在又出现找不到ServiceManager,输入import android.os.ServiceManager 再次rebuild project,提示一些代码必须处理某系异常,选中指定的代码,按下CTRL+ALT+T,在选择try/catch,会自动添加处理异常
再次编译
出错:android studio java.lang.OutOfMemoryError:GC overhead limi exceeded
解决方法:在build.gradle中添加dexOptions{javaMaxHeapSize "4g"},工具会提示你“sync Now”同步,点击它
再次编译
出错:android studio Too many method references
解决方法:首先在build.gradle中的defaultConfig中添加一句“multiDexEnabled true”
在build.gradle中的dependencies中添加一句“compile ‘com.android.support:multidex:1.0.0’”
修改AndroidMainfest.xml文件在application字段中添加android:name = "android.support.multidex.MultiDexApplication"
点击syncNow后编译运行
6.3 Android硬件访问服务APP代码的更多相关文章
- 2.Android硬件访问服务编写系统代码【转】
本文转载自:https://blog.csdn.net/qq_33443989/article/details/76696772 版权声明:本文为博主(Tower)自学笔记,欢迎转载! :-) ...
- 6.1、Android硬件访问服务之框架
1.通过前面led点亮的例子,其流程如下 Android app(java)(通过loadLibrary)——>C library(C库做如下事情)——>1.JNI_Onload 2.jn ...
- 6.4 Android硬件访问服务编写HAL代码
JNI向上提供本地函数,向下加载HAL文件,并调用HAL的函数: HAL负责访问驱动程序执行硬件操作 JNI和HAL都是用c语言或者C++语言编写的,JNI加载HAL的实质就是使用dlopen加载动态 ...
- 6.2、Android硬件访问服务编写系统代码
1.实现接口文件给App使用,接口文件是应用程序查询获得服务时获得 使用AIDL(Android接口定义语言)来实现ILedService.java接口 定义ILedService.aidl inte ...
- 6.5 Android硬件访问服务使用反射
1.前面的例子中App为了能够范问ILedService接口,把classes.jar导入到应用程序中,但是我们不想把classes编进apk包里面去,这样导致我们的apk程序会很大(解压缩apk会发 ...
- Android硬件访问服务中的HAL-查看打印的信息
JNI 向上提供本地函数,向下加载HAL文件并调用HAL的函数 HAL 负责访问驱动程序执行硬件操作. external\chromium_org\third_party\hwcplus\src\h ...
- LED硬件访问服务(2)——JNI/HAL
一.系统编程 1.SystemServer.java类中提供了main()方法,说明它是以一个进程的方式存在的,启动后直接执行其run() 2.注册服务ServiceManager.addServic ...
- 硬件访问服务学习笔记_WDS
1.Android驱动框架App1 App2 App3 App4-------------------硬件访问服务-------------------JNI-------------------C库 ...
- 在Ubuntu上为Android系统的Application Frameworks层增加硬件访问服务(老罗学习笔记5)
在数字科技日新月异的今天,软件和硬件的完美结合,造就了智能移动设备的流行.今天大家对iOS和Android系统的趋之若鹜,一定程度上是由于这两个系统上有着丰富多彩的各种应用软件.因此,软件和硬件的关系 ...
随机推荐
- 【深入篇】Andorid中常用的控件及属性
TextView android:autoLink 设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接.可选值(none/web/email/phone/map/al ...
- ssh框架的总结
一.spring:是基础,可以管理对象,也可以通过关键对象管理另一个框架.但是首先应该明确spring并不是只能应用于web方面,而是可以应用在一般的java项目中.只是如果在web环境下使用需要在w ...
- vue脚手架3.0的搭建
一.安装node 打开cmd输入node -v查看是否安装成功 显示node版本号表示安装成功,显示‘node’不是内部或外部命令表示未安装node.node安装地址:http://nodejs.cn ...
- pwconv---pwunconv 密码投影
pwconv命令用来开启用户的投影密码.Linux系统里的用户和群组密码,分别存放在名称为passwd和group的文件中, 这两个文件位于/etc目录下.因系统运作所需,任何人都得以读取它们,造成安 ...
- sim800c GPRS模块的透传模式
一.透传模式 基于sim800c GPRS模块在建立TCP/IP连接情况下,可以设置进入透传模式,用来接收和发送数据,一旦进入即从串口收到的数据将被打包,然后发送.接收同理. 注意在透传模式下所有的A ...
- LeetCode_ZigZag Conversion
一.题目 ZigZag Conversion Total Accepted: 31399 Total Submissions: 140315My Submissions The string &quo ...
- 杭电(hdu)2053 Switch Game 水题
Switch Game Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tota ...
- checkbox-padding 调整checkbox字体跟图标距离
有时候我们会遇到需要调整控件中的内容相对于容器的位置.这里有两种情况 1.linearlayout这样的容器中,包含button类的控件,这时候margin可以调节 2.textview中的文字内容 ...
- Java学习笔记五 常用API对象一
常用API:字符串操作:String类,StringBuffer类,StringBulider类 字符串是最重要的数据类型之一,处理字符串也是一种语言的基本工作. 1.String类: public ...
- CISP/CISA 每日一题 13
监控信息系统人员所提供服务的效率和效果的工具: 1.例外报告:识别所有没有成功完成的或出了故障的应用 2.作业重运行报告:大多数异常终止作业都会导致重起 3.操作员问题报告:记录计算机运行问题及解决方 ...