原创:木头月亮

来自:http://blog.csdn.net/mutouyueliang/archive/2011/03/08/6232028.aspx

Android中对NFC的实现代码分布在如下几个地方:

./frameworks/base/core/java/android/nfc/

./frameworks/base/core/java/android/nfc/tech

./frameworks/base/core/java/com/android/internal/nfc/

./external/libnfc-nxp

./packages/apps/nfc

其中./external/libnfc-nxp是用C语言编写的函数库,编译生成libnfc和libnfc_ndef两个函数库。libnfc是一个主要的库,实现了NFC Stack的大部分功能,主要供NFC的服务进程调用。libnfc_ndef是一个很小的函数库,主要是实现NDEF消息的解析,供Framework调用。

./packages/apps/nfc是一个类似于电话本的应用程序,但这个程序在手机开机后自动启动,一直运行,是作为NFC的服务进程存在的。是NFC架构中的核心。

./frameworks/base/core/java/android/nfc/,./frameworks/base/core/java/android/nfc/tech和./frameworks/base/core/java/com/android/internal/nfc/这三个目录实现了NFC的应用接口,其中./frameworks/base/core/java/com/android/internal/nfc/是一些内部类或结构,不对外开放,仅供./frameworks/base/core/java/android/nfc/和./frameworks/base/core/java/android/nfc/tech中的类调用。./frameworks/base/core/java/android/nfc实现了接口包com.android.nfc,./frameworks/base/core/java/android/nfc/tech实现了接口包com.android.nfc.tech.

图示如下:

附录:

NFC Service的说明

NFC:MoveNFCserviceimplementationoutofsystem_server.

NFCserviceisnowanapplicationserviceinpackages/apps/Nfc.

NFCserviceisregisteredthroughServiceManager.addService(),andtheproxy
objectNfcAdapterobtainsahandletoitthroughServiceManager.getService().

**Important**HadtoaddnewsymbolsAID_NFC/NFC_UID/android.uid.nfcand
modifyservice_manager.c,Process.javaandPackageManagerService.javainorder
toforcethecom.android.nfcprocesstotakeafixeduid,sothatitcanuse
ServiceManager.addService().

MostoftheJNIhasmovedtopackages/apps/Nfc/jni.HoweverNdefRecordand
NdefMessagerequiresomein-processnativecode,soandroid_com_NdefMessage.cpp
andandroid_com_NdefRecord.cppstayinframeworks/base/core/jni.Theylinkto
averysmalllibrarylibnfc_ndef.sothatimplementsNDEFmessageparsing.This
hasbeenaddedtocore.mksoalldevices(evenwithoutNFChardware)canwork
withNDEFdata.

原创:木头月亮

来自:http://blog.csdn.net/mutouyueliang/archive/2011/03/08/6232028.aspx

更多相关文章

  1. 详解 Android(安卓)的 Activity 组件
  2. Android(安卓)蓝牙状态机以及蓝牙启动状态机
  3. Android(安卓)Pitfall - Fragment.startActivityForResult(), re
  4. 2010.11.28(2)———android 展示网页 和 调用js代码
  5. android 拍照 onCreate() 调用两次的问题
  6. android jni 程序框架搭建
  7. Android网络应用接口
  8. 详解 Android(安卓)的 Activity 组件
  9. 详解 Android(安卓)的 Activity 组件

随机推荐

  1. 在android平台上如何实现H264解码
  2. Android 打包签名
  3. android的Activity采用透明主题
  4. Android(安卓)Wi-Fi 5G Only时Wi-Fi不可
  5. Android 文件系统及权限修改
  6. Android(安卓)提交数据到服务器
  7. android学习的进阶(从零开始,从初级到高级)
  8. Android Studio 单刷《第一行代码》系列
  9. android 笔记 --- 属性gravity与layout_g
  10. Android有序广播OrderedBroadcast