歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 如何成功運行SDL官方提供的Android平台的Demo

如何成功運行SDL官方提供的Android平台的Demo

日期:2017/3/1 9:33:58   编辑:Linux編程

編寫說明:SDL的官方提供了一個Android的demo模板SDLActivity,無法直接運行,按照官方的文檔操作過程中也會遇到很多問題,這裡把我成功編譯並運行的過程記錄下來,希望對大家有所幫助!

SDL簡介:SDL是Simple DirectMedia Layer的縮寫,它是一套開源的C語言跨平台多媒體開發庫,提供了多種控制圖像,聲音等接口,廣泛用於游戲,媒體播放器,模擬器開發等。

基本環境:
1. 操作系統:Windows7 64位;
2. Android SDK開發環境: adt-bundle-windows-x86_64-20130729.zip
3. Android NDK開發包:android-ndk-r9d-windows-x86_64.zip


操作步驟:
第一步:准備SDL源代碼包;
1. 去http://www.libsdl.org/官網下載最新版SDL2-2.0.3.tar.gz;
2. 解壓後,可以在根目錄下找到android-project目錄和README-android.txt,前者是一個一個Android工程模板,後者是關於如何使用該工程的文檔說明。
3. 調整目錄,使其成為一個可編譯的工程:
(1) 將android-project目錄剪切到與SDL2-2.0.3同級的目錄;
(2) 然後將SDL2-2.0.3目錄拷貝到android-project\jni目錄下,並重命名為SDL;


第二步:為SDL增加main函數
(1) mainhttp://wiki.libsdl.org/Tutorials#Android.c文件可以從http://www.dinomage.com/wp-content/uploads/2013/01/main.c下載;
(2) 下載之後將其放入android-project\jni\src目錄;
(3) 將main.c加入android-project\jni\src\Android.mk: 在Android.mk中默認有個YourSourceHere.c,將其替換為main.c即可;


第三步:編譯libSDL2.so和libmain.so
注:請確認NDK的bin目錄已經配置到環境變量PATH中去;
打開cmd命令窗口,進入到android-project目錄,然後執行"ndk-build"命令進行編譯。編譯成功後會在android-project根目錄下生成libs目錄,下面有各個平台的需要的這兩個so文件。


第四步:修改build target配置文件
默認的工程是使用的=android-12,必須使這個target與你系統配置的一致,否則編譯會失敗. 具體的配置位於android-project/project.properties和android-project/default.properties中。由於adt-bundle-windows-x86_64-20130729.zip包對應的是android-18,因此需要將這兩個文件中的配置全部改為android-18.


第五步:導入Eclipse運行
依次選擇File->New->Android->Android Project from Existing Code,然後選擇android-project目錄將工程文件導入到Eclipse中。
然後選擇按照正常的Android工程運行即可。這個時候程序閃一下什麼都沒有,因為沒有添加資源。可下載一個bmp圖片放到android-project/assets中,這個目錄是由eclipse自動生成的。然後運行就可以看到通過SDL渲染出來的圖片了。這 裡提供一個官方文檔中提到的bmp地址:http://www.dinomage.com/wp-content/uploads/2013/01/image.bmp 。整個工程的源代碼可以到我的github上去下載,地址:https://github.com/dennishucd/SDLActivity

參考資料:
1. http://wiki.libsdl.org/Tutorials#Android
2. http://www.dinomage.com/2013/01/howto-sdl-on-android/

更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11

Copyright © Linux教程網 All Rights Reserved