zoukankan      html  css  js  c++  java
  • 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后编译运行

  • 相关阅读:
    linux下gdb常用的调试命令 .
    Programming lessons I learned
    lvalue和rvalue、传值和传引用、木桶
    gnuplot的简明教程——英文版,很不错
    100 的阶乘末尾有多少个0?
    lvalue和rvalue、传值和传引用、木桶
    gnuplot的简明教程——英文版,很不错
    100 的阶乘末尾有多少个0?
    poj1728
    poj1809
  • 原文地址:https://www.cnblogs.com/liusiluandzhangkun/p/9125682.html
Copyright © 2011-2022 走看看