Android RFID調試總結


調試了包括驅動,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
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM