通過JNI實現c/c++和Android的java層函數互調

來源:互聯網
上載者:User

本文轉自:http://codingnow.cn/cocos2d-x/992.html

文章摘要: 本文主要實現兩個功能: (1)通過Android sdk的API得到應用程式的包名(PackageName),然後傳遞給c++層函數。 (2)通過c++函數調用Android的java層函數,顯示一個對話方塊,點擊按鈕退出程式。 1. 首先來簡單學習一下JNI的相關知識,我這篇文章中簡單實現了怎麼在Android Java層調用c++函數。要想使用JNI,必須得…

本文主要實現兩個功能:
(1)通過Android sdk的API得到應用程式的包名(PackageName),然後傳遞給c++層函數。
(2)通過c++函數調用Android的java層函數,顯示一個對話方塊,點擊按鈕退出程式。

1. 首先來簡單學習一下JNI的相關知識,我這篇文章中簡單實現了怎麼在Android Java層調用c++函數。要想使用JNI,必須得包含標頭檔,android是使用ndk編譯c/c++的,這裡jni.h檔案位於:\android-ndk-r8b\platforms\android-14\arch-arm\usr\include\jni.h,該檔案定義了所有和JNI相關的資料類型和介面。下面是相關程式碼片段:

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 #
include <inttypes.h>      /* C99 */
typedefuint8_t        
jboolean;      
/*
unsigned 8 bits */
typedefint8_t         
jbyte;         
/*
signed 8 bits */
typedefuint16_t       
jchar;         
/*
unsigned 16 bits */

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.