[發明專利]一種Android native調用Java API的實現方法有效
| 申請號: | 202010825679.3 | 申請日: | 2020-08-17 |
| 公開(公告)號: | CN111966427B | 公開(公告)日: | 2022-06-21 |
| 發明(設計)人: | 曾亮 | 申請(專利權)人: | 四川長虹電器股份有限公司 |
| 主分類號: | G06F9/448 | 分類號: | G06F9/448;G06F9/54 |
| 代理公司: | 四川省成都市天策商標專利事務所(有限合伙) 51213 | 代理人: | 趙以鵬 |
| 地址: | 621000 四*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 android native 調用 java api 實現 方法 | ||
本發明公開了一種Android native調用Java API的實現方法,屬于計算機應用技術領域。本發明包括以下步驟:Java層調用JNI提供單獨的注冊接口,所述單獨的注冊接口在Java層調用時,將Java層API對應的JNI環境變量進行保存,并在單獨的注冊接口中調用native層的注冊接口;JNI提供JNI回調函數給native層進行注冊;native層程序在運行時,在程序中特定的時刻進行JNI回調函數的調用;在JNI提供給native層的JNI回調函數中調用之前保存的JNI環境變量,完成JNI對Java層API的調用。本專利使得Android native調用Java API的注冊和回調過程能夠完全分離,本地程序能夠自主的掌握回調的時機,在嵌入式應用中更具有實用性。
技術領域
本發明涉及計算機應用技術領域,尤其是一種Android native調用Java API的實現方法。
背景技術
Android操作系統是一種以Linux為基礎的操作系統,主要使用于便攜設備。Android系統中的上層應用一般基于Java開發完成的,但是一些涉及本地服務或者硬件等方面的業務時,還是需要運用C來實現,而C程序運行在native層。
JNI((Java Native Interface;Java,native接口)就提供了一個使得Java層和native層能夠互相調用的機制。
然而現有技術中native層對Java層API的調用方式中,往往需要兩個部分通過JNI多次重復的進行調用,或者需要通過Java層API的調用來觸發native層對于Java層API的調用,這樣使得效率低下,容易引起內存泄漏或程序崩潰等問題,也使得兩個模塊之間的獨立性降低,而且嵌入式開發中本地需要在某些特定的時刻主動的調用Java層API,此類的解決方案在之前的專利中均未提到。
發明內容
本發明提出了一種Android native調用Java API的實現方法,以期解決上述技術問題。
為了實現上述目的,本發明采用以下技術方案:
一種Android native調用Java API的實現方法,包括以下步驟:
Java層調用JNI提供單獨的注冊接口,所述單獨的注冊接口在Java層調用時,將Java層API對應的JNI環境變量進行保存,并在單獨的注冊接口中調用native層的注冊接口;
JNI提供JNI回調函數給native層進行注冊;至此完成Java層到native層的注冊流程;
native層程序在運行時,在程序中特定的時刻進行JNI回調函數的調用;
在JNI提供給native層的JNI回調函數中調用之前保存的JNI環境變量,完成JNI對Java層API的調用,至此完成native層到Java層的回調。
進一步的,所述JNI提供單獨的注冊接口,包括JNI為Java層提供的調用接口,所述調用接口沒有額外的參數,JNI通過所述調用接口的默認參數拿到Java層API對應的環境變量。
進一步的,所述Java層API對應的JNI環境變量為JNI中用于標記Java層API的多個參數。
進一步的,述Java層API對應的JNI環境變量為JNI中用于標記Java層API的三個參數,分別為:JavaVM,jobject對象,Java API的MethodID。
進一步的,所述native層的注冊接口是指在native層實際上需要注冊JNI回調函數的注冊接口,該注冊接口需要JNI回調函數指針作為參數。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于四川長虹電器股份有限公司,未經四川長虹電器股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010825679.3/2.html,轉載請聲明來源鉆瓜專利網。





