<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                Android平臺中,NFC系統模塊運行在一個名為"com.android.nfc"的應用進程中,該應用程序的代碼位于packages/apps/Nfc下。由于目前NFC HAL層的實現還沒有統一接口,所以該應用程序對應的組織結構如圖8-26所示。 :-: ![](https://box.kancloud.cn/b2658352cf6a3874a7e84f69a669e100_910x416.jpg) 圖8-26 Android平臺中Nfc模塊結構 如果使用NXP公司pn系列的NFC芯片,則Nfc模塊結構如左圖所示,即最終的APK文件名為Nfc.apk,它通過packages/apps/Nfc/nxp目錄下dhimpl模塊與libnfc_jni以及libnfc這兩個動態庫交互。libnfc的代碼位于external/libnfc-nxp目錄下,由NXP公司提供以用于操作NXP公司的NFC芯片。 如果使用博通公司2079x系列的NFC芯片,則Nfc模塊結構如右圖所示,即最終的APK文件名為NfcNci.apk,它通過packages/apps/Nfc/nci目錄下的dhimpl模塊與libnfc_nci_jni以及libnfc_nci這兩個動態庫交互。libnfc_nci的代碼位于external/libnfc-nci目錄下,由博通公司提供以用于操作博通公司的NFC芯片。 >[info] 提示 圖8-26所述的Nfc模塊結構對應的Android系統版本為4.2,而Android 4.1只支持NXP公司的芯片。 如果看過libnfc_jni或libnfc_nci_jni的代碼,會發現它們分別使用了NXP和博通公司封裝得用于和各自NFC芯片交互的API,代碼可讀性非常差。這種情況出現的原因正是前文所說當前Linux Kernel中還沒有一種統一的方法讓用戶空間的進程和NFC驅動交互。當然,此問題有望通過完善NFC Subsystem和對應的netlink消息機制得以解決。 基于上述原因,本書不打算介紹任何與特定芯片平臺結合過于緊密的模塊。所以,本章分析重點將以圖8-26中Nfc.apk為主,它包含了Android平臺中NFC的一些核心知識。讀者在掌握的基礎上,可嘗試結合pn544芯片的數據手冊來自行分析dhimpl、libnfc-jni和libnfc。 下面將開始NFC代碼分析之旅,包括兩條分析路線。 * 先分析NFC相關的應用程序,從客戶端角度介紹如何使用Android系統提供的NFC服務。 * 然后介紹Nfc.apk,展示NFC系統模塊的核心內容。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看