標籤:android nativeactivity
昨天把Ogre3d 編譯到Android 平台安裝之後,再回頭看代碼才發現,在Android工程中居然沒有Java源檔案,從Manifest檔案中才知道原來使用的是 NativeActivity 。這一下讓我犯糊塗,沒有Java檔案,沒有Activity,那我要接入廣告或者其它的一些SDK該怎麼做呢?如果我要從一個Activity再跳入遊戲介面那該怎麼做呢?
文章出自 http://blog.csdn.net/huutu QQ:790621656
Ogre3d 的 Manifest 檔案內容如下: 文章出自 http://blog.csdn.net/huutu QQ:790621656
<?xml version="1.0" encoding="utf-8"?><!-- BEGIN_INCLUDE(manifest) --><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.native_activity" android:versionCode="1" android:versionName="1.0"> <!-- This is the platform API where NativeActivity was introduced. --> <uses-sdk android:minSdkVersion="9" /> <!-- This .apk has no Java code itself, so set hasCode to false. --> <application android:label="@string/app_name" android:hasCode="false"> <!-- Our activity is the built-in NativeActivity framework class. This will take care of integrating with our NDK code. --> <activity android:name="android.app.NativeActivity" android:label="@string/app_name" android:configChanges="orientation|keyboardHidden"> <!-- Tell NativeActivity the name of or .so --> <meta-data android:name="android.app.lib_name" android:value="native-activity" /> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest> <!-- END_INCLUDE(manifest) -->
可以看到指定了程式的入口為 NativeActivity 。文章出自 http://blog.csdn.net/huutu QQ:790621656
文章出自 http://blog.csdn.net/huutu QQ:790621656
在不得解之際,想到應該可以用一個Activity繼承NativeActivity ,然後立即嘗試了,果然可以。
文章出自 http://blog.csdn.net/huutu QQ:790621656
如下步驟:
(1) 建立一個 MyActivity 並且建立對應的 布局檔案,建立一個按鈕,添加響應事件,點擊按鈕跳到遊戲介面。
(2) 建立一個 MainActivity 繼承自 NativiActivity 。
(3) 修改Manifest檔案中的 NativiActivity 為 MainActivity 。
(4) 修改Manifest 中的啟動Activity 為MyActivity。
工程運行結果:
點擊按鈕切換到遊戲Activity (好吧這裡就是NDK Demo的純色介面)
文章出自 http://blog.csdn.net/huutu QQ:790621656
Demo下載:
http://download.csdn.net/detail/cp790621656/8542371
文章出自 http://blog.csdn.net/huutu QQ:790621656
Ogre3d 之使用 Android NativeActivity