NFC学习—— code编译和code结构
对于NFC代码编译,目前为止,我见过两家不同方案商的书写方式,都是在device下的XXXX.mk文件中书写,XXXX不同的方案商不同的产品名称不同。下面具体来看:
方式A:
客户端:android提供了两个API包给apk,分别是android.nfc.tech、android.nfc,实现了NFC的应用接口,代码路径frameworks/base/core/java/android/nfc/tech、frameworks/base/core/java/android/nfc。
服务端:packages/apps/Nfc是一个类似电话本的应用,这个程序在启动后自动运行,并一直运行,作为NFC的服务进程存在,是NFC的核心。
在这个程序代码中,有个JNI库,供NfcService调用,代码路径是packages/apps/Nfc/jni/.编译文件中,还有个Tag部分,代码路径是packages/apps/Tag.
库文件:代码路径是external/libnfc-nxp,用C编写的库文件,有两个库,分别是libnfc.so和libnfc_ndef.so。libnfc.so是一个主要的库,实现了NFC stack的大部分功能,主要提供NFC的服务进程调用。libnfc_ndef是一个很小的库,主要是实现NDEF消息的解析,供framework调用
nfc_hw.c:这个文件的具体路径不确定。pn544.c:这个文件是具体nfc芯片的驱动,一般都是drivers下。
由于本人初学,能力有限,有错误的地方欢迎指出。
参考文章:
NFC framework introduce(一)