[筆記] Android NDK 開發的初體驗
Android SDK 開發程式都以 JAVA 語法為主,不過有些以 C/C++ 語言編寫的程式碼想要用 JAVA 來重寫,恐怕花的時間將很長。由於 Android 平台是從 C/C++ 所開發而成,因此 Android 提供一套 NDK (Native Development Kit) 讓原本 C/C++ 開發人員也能將 C++ 語言移植到 Android 環境裡。之前我們在 Linux 環境下編譯成功的 C++ 檔案,打算移植到 Android 平台上,初次使用 NDK 編譯遇上不少問題,過程中我們將這些問題記下來並找到解決辦法,希望對後進者提供幫助,縮短開發時間。 <遇上 NDK 編譯的問題> 問題一: NDK compiler 對於資料強制型態較嚴格,底下有兩個案例 void *TimerManThread( void *arg ) { printf("TimerManThread=%x\n", (unsigned int)arg); /* 錯誤訊息 error: cast from 'void*' to 'unsigned int' loses precision [-fpermissive] */ printf("TimerManThread=%x\n", (unsigned int*) arg); /* 解決辦法 */ } void AChkPtr_(void *ptr) { ...