调试了包括驱动,jni层,当然也熟悉了下应用层。

   1. 驱动层包括修改:
       device/eastaeon/aeon6735_65c_l/init.project.rc    //去掉原来修改权限的语句
 
        device/mediatek/mt6735/init.mt6735.rc    //修改权限,不然可以open不了
                 chmod 0777  /dev/ttyMT2
                 chown system system /dev/ttyMT2 
                 chmod 0777 /dev/uart_rfid
 
        kernel-3.10/arch/arm64/configs/aeon6735_65c_l_debug_defconfig  ////加入编
                 CONFIG_RUNBO_RFID=y
                 CONFIG_HKT_RFID=y
 
        kernel-3.10/drivers/misc/mediatek/Kconfig.drivers //增加Kconfig, 在mtk平台,不加可能导致不会编译
                    #Start [chenxw,2015-04-25]Add rfid driver.
menuconfig RUNBO_RFID
        tristate "Runbo rfid driver"
       default y
       ---help---
          Say Y here for supporting Runbo rfid.
if RUNBO_RFID
config HKT_RFID
           tristate "HKT rfid Driver"
           default y
           help
           This is the pr9200 rfid driver.
endif #End 
 
        kernel-3.10/drivers/misc/mediatek/Makefile.mt6735 //增加目录下的Makefile
                    #Start [chenxw,2015-04-25]Add rfid driver.
obj-$(CONFIG_RUNBO_RFID) += rfid/
#End 
 
        kernel-3.10/drivers/misc/mediatek/rfid/Makefile  //添加在附件 :rfid_driver.rar
      kernel-3.10/drivers/misc/mediatek/rfid/rfid.c        //添加在附件,只做上下电,读取数据在uart驱动中做
 
 
2.JNI修改,有两种方法:
            1.一种是在系统的加载的时候加入系统,这种是编入系统的
            2.一种是生成SO文件,在APK调用的时候加载进系统。
          注意:
                jni的声明的函数要和java声明的函数一一对应。
 
    1.编入系统:
            (1). 主要代码:android_hardware_Rfid.cpp
 
             (2). frameworks/base/api/current.txt  
                        修改framework/base下面的api要注意更新api/current.txt文件, 如果修改了Android原有API的 ,需要update frameworks/base/api/current.txt。
                   否则编译被中断并出现编译错误提示,  可以通过运行 make update-api后,自动更新此文件,检查确认正确后,跟代码一起提交即可。
                        public class Rfid{
    ctor public Rfid()
    method public java.lang.String getMessage();
    method public int sendMessage(java.lang.String);

    method public void intercomPowerOff();
    method public void intercomPowerOn();
                         }
 
             (3) . frameworks/base/core/jni/Android.mk 
                      LOCAL_SRC_FILES += android_hardware_Intercom.cpp   //加入编译
 
             (4).frameworks/base/core/jni/AndroidRuntime.cpp
                      extern int register_android_hardware_Intercom(JNIEnv* env);
                      /register_android_hardware_Intercom  类中加入:
                              REG_JNI(register_android_hardware_Intercom), //使系统在启动的时候就加载JNI库
                      
                                 
            
    2.生成SO文件,与APK一起也可以:RfidJNI.rar
              apk里面带有SO文件,只要有节点就可以打开,进行运行,直接在目录下mm就可以生成动态库。
 
 
 
3.rfid的linux c程序,external目录下
       附件rfid.rar
 
 
 

Android RFID调试总结的更多相关文章

  1. Ubuntu杂记——Ubuntu下以USB方式连接Android手机调试

    在Ubuntu下进行Android开发,发现自己的手机就算打开USB连接.USB调试还是连不上,一直都是显示??????.百度了很多,发现都是要改“ /etc/udev/rules.d/50-andr ...

  2. Android Studio调试功能使用总结【转】

    Android Studio调试功能使用总结[转]   这段时间一直在使用Intellij IDEA, 今天把调试区工具的使用方法记录于此. 先编译好要调试的程序. 1.设置断点 选定要设置断点的代码 ...

  3. Android编程: 调试方法

    学习知识:Android的调试方法 ====调试方法==== 前提: IDE环境为Android Studio,熟悉LogCat,知道如何查看日志信息 工具: Android DDMS调试工具,一般点 ...

  4. ###Android 断点调试和高级调试###

    转自:http://www.2cto.com/kf/201506/408358.html 有人说Android 的调试是最坑的,那我只能说是你不会用而已,我可以说Android Studio的调试是我 ...

  5. Android开发调试日志工具类[支持保存到SD卡]

    直接上代码: package com.example.callstatus; import java.io.File; import java.io.FileWriter; import java.i ...

  6. Android Studio调试功能使用总结---转

    Android Studio调试功能使用总结[转]   这段时间一直在使用Intellij IDEA, 今天把调试区工具的使用方法记录于此. 先编译好要调试的程序. 1.设置断点 选定要设置断点的代码 ...

  7. Android无线调试(转)

    Android无线调试——抛开USB数据线 开发Android的朋友都知道,真机调试需要把手机与PC相连,然后把应用部署到真机上进行安装和调试.长长的USB线显得很麻烦,而且如果需要USB接口与其他设 ...

  8. android studio 调试技巧(简直太好用)

    android studio 调试技巧(简直太好用) 说到android studio的调试,很多人可能会说,这有什么可讲的不就是一个断点调试么,刚开始我也是这么认为的,直到我了解之后,才发现,调试原 ...

  9. 【转】Android Eclipse调试技巧

    原文地址:https://www.cnblogs.com/tianchunming/p/5423942.html Android Eclipse调试技巧   在Android 应用程序开发中我们经常需 ...

随机推荐

  1. jq ajax封装

    //ajax公共方法,zs 2017-06-14 $.extend({ //比jq的ajax多了的参数: //salert是否在请求成功后弹出后台的SuressStr字段值 //ealertStr:请 ...

  2. VirtualXposed结合justTrustMe 模块傻瓜式破解app没法抓包问题

    一.首先就是按照这两个apk 声明仅供学习 justTrustMe 链接:https://pan.baidu.com/s/1av3oaez4y4n6a9C1I0VsAg 提取码:mjqg Virtua ...

  3. vue 路由工程化重构

    当项目越来越庞大的时候,路由越来越多,而且遍布的页面也越来越多, 当需要更换地址的时候就无比的繁琐,通过学习了解到可以通过router.js来统一调控 原理: 在路由页面通过name来进行跳转,传入的 ...

  4. 【DeepLearning】AlexNet

    在前文中,我们介绍了LeNet的相关细节,它是由两个卷积层.两个池化层以及两个全链接层组成.卷积都是5*5的模板,stride =1,池化为MAX.整体来说它有三大特点:局部感受野,权值共享和池化.2 ...

  5. 基于flask的python注册到eureka

    Eureka架构中的三个核心角色: 服务注册中心 Eureka的服务端应用,提供服务注册和发现功能,就是刚刚我们建立的eureka-demo 服务提供者 提供服务的应用,可以是SpringBoot应用 ...

  6. 在充电桩联网部署方案中4G DTU的优势是什么

    充电桩作为电动汽车充电生态链的一环,具有非常重要的作用,成都远向电子为电动车充电桩.充电站提供专业的无线通信组网产品与技术解决方案,协助充电桩厂家.充电桩运营商.商业充电服务商实现:充电桩设备工作状态 ...

  7. Java学习的第二十九天

    1. 如果类中的某个属性不希望被序列化则需要transient关键字 序列化一组对象 2.无问题 3.明天学习打印流

  8. Flask 中的MTV架构之Views

    Flask 中的MTV架构之Views 1.MVC与MTV 1.1 MVC ​ M:model,模型,数据模型 ​ V:view,视图,负责数据展示 ​ C:controller,控制器,负责业务逻辑 ...

  9. Charles使用part5——模拟慢网络

    一.配置参数解析: bandwidth -- 带宽,即上行.下行数据传输速度utilisation -- 带宽可用率,大部分modern是100%round-trip latency -- 第一个请求 ...

  10. gdb高级技巧

    注意: 这里是讲gdb的高级技巧.如果没有接触过gdb,请看这篇:点这里. gdb是一个功能极其强大的命令行调试器.其实,除了我们常用的 file b s n q disp p 等命令,也有很多高级技 ...