调试了包括驱动,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. 手把手教你如何制作和使用lib和dll

    本文的内容经过本人亲自调试,确保可用,实用,测试环境为win10+vs2015+C++ 目录 静态库 什么是静态库? 怎么创建 如何使用 静态库的第一种使用方法 静态库的第二种使用方法 动态链接库 动 ...

  2. 文件开启关闭操作c语言模板

    #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <stri ...

  3. maven中执行package, install, deploy的区别

    package命令完成了项目编译.单元测试.打包功能,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库 install命令完成了项目编译.单元测试 ...

  4. webpack4的安装使用

    1.全局安装Webpack 安装到全局后你可以在任何地方共用一个 Webpack 可执行文件( 也就是说可以直接在终端使用webpack的命名 ,例如:webpack --config webpack ...

  5. linux中nginx中配置端口转发

    域名指向主机IP地址,通过域名:8080才能访问网站,去掉后面的8080:或者其他的端口号,直接使用域名访问网站 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处 ...

  6. oracle基本学习

    oracle目录及卸载 1.oracle的目录介绍: oradata:数据库存储文件的目录 db_home: network >admin:配置网络服务和监听器服务 jdk:oracle自带jd ...

  7. STM32入门系列-库目录及文件介绍

    已经介绍了过了CMSIS标准,ST公司按照这个标准设计了一套基于STM32F10x的固件库,我们可以直接在ST公司的官网进行下载,现在给大家STM32最新固件库v3.5,在网盘上给大家提供了下载包,链 ...

  8. 嵌入式linux和stm32嵌入式开发这两者之间有什么关联性

    对于更开始入坑的同学,可能也像我一样搞不清楚两者的区别与联系.现在结合知乎网上的相关资料发一篇文章来具体分析. 基于STM32的开发属于微控制器开发领域,主要开发工具是keil或IAR,这种开发更准确 ...

  9. Java实现评论回复功能

    目录 一.分类方式 1.单一型 2.嵌套型 3.两层型 二.实现原理 1.单一型 2.嵌套型 3.两层型 使用递归循环开发评论回复功能,适用于大部分的简单单体应用 评论功能或许是大多数的单体应用之中会 ...

  10. python数据类型互相转换

    类型转换 关注公众号"轻松学编程"了解更多. 主要针对几种存储工具:list.tuple.dict.set 特殊之处:dict是用来存储键值对的. 1.list 转换为set l1 ...