2026/4/16 21:50:06
网站建设
项目流程
佛山新网站制作怎么样,专业做算命网站,毕业设计网站,电商网站建设与管理原文 Android Studio是一个为Android平台开发程序的集成开发环境#xff0c;可供开发者免费使用。需要在官网下载并安装最新版的Android Studio#xff0c;然后继续后文的编译构建。
可以参考源码包中tutorials/tutorial_11的做法类似构建自己的项目#xff0c;具体步骤如下…原文Android Studio是一个为Android平台开发程序的集成开发环境可供开发者免费使用。需要在官网下载并安装最新版的Android Studio然后继续后文的编译构建。可以参考源码包中tutorials/tutorial_11的做法类似构建自己的项目具体步骤如下1. 新建自己的项目。这里我们直接打开已有的behaviac_android项目如下图所示2. 双击打开build.gradle文件如下图所示3. 在打开的文件中修改cmake文件的相对路径如下代码所示externalNativeBuild { cmake { path ../../../../CMakeLists.txt } }这是由于CMakeLists.txt所在的路径在源码包的最顶级如下图所示需要参考上面的CMakeLists.txt用于编译构建behaviac组件。在这个CMakeLists.txt文件中还需要添加自己的项目这里是tutorial_11来做示范如下代码所示add_subdirectory (${PROJECT_SOURCE_DIR}/tutorials/tutorial_11/cpp)打开该文件可以看到我们将tutorial_11作为一个lib来编译构建如下代码所示if (BEHAVIAC_ANDROID_STUDIO) add_library(tutorial_11 SHARED ${BTUNITTEST_INC} ${BTUNITTEST_SRC}) else() # add the executable add_executable(tutorial_11 ${BTUNITTEST_INC} ${BTUNITTEST_SRC}) endif() target_link_libraries (tutorial_11 libbehaviac ${CMAKE_THREAD_LIBS_INIT})5. 新建Android所需的assets目录将behaviac编辑器导出的行为树和类型信息文件全部放在该目录中如下图所示6. 在tutorial_11.cpp文件的InitBehavic()方法中调用了Workspace::SetFilePath()接口设置行为树加载路径必须要以“assets:/”字符串开头如下代码所示constchar*InitBehavic(){LOGI(InitBehavic\n);#if!BEHAVIAC_CCDEFINE_ANDROIDbehaviac::Workspace::GetInstance()-SetFilePath(../tutorials/tutorial_11/cpp/exported);#elsebehaviac::Workspace::GetInstance()-SetFilePath(assets:/behaviac/exported);#endifbehaviac::Workspace::GetInstance()-SetFileFormat(behaviac::Workspace::EFF_xml);returnInitBehavic\n;}7. 在项目的MainActivity.java文件中加载behaviac_gcc_debug和tutorial_11_gcc_debug库如下代码所示static{System.loadLibrary(behaviac_gcc_debug);System.loadLibrary(tutorial_11_gcc_debug);}8. 在onCreate()方法中调用C的方法这样处理仅供示范并将AssetManager实例传递给C端如下代码所示protectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// Example of a call to a native methodTextViewtv(TextView)findViewById(R.id.sample_text);tv.setText(TestMain(getApplication().getAssets()));}publicnativeStringTestMain(android.content.res.AssetManagerassetManager);9. 在tutorial_11.cpp文件中实现了上一步中的TestMain()方法调用接口Workspace::SetAssetManager()设置AssetManager实例如下代码所示externCJNIEXPORT jstring JNICALLJava_com_tencent_behaviac_behaviac_1android_MainActivity_TestMain(JNIEnv*env,jclass cls,jobject assetManager){AAssetManager*mgrAAssetManager_fromJava(env,assetManager);BEHAVIAC_ASSERT(mgr);behaviac::CFileManager::GetInstance()-SetAssetManager(mgr);std::string strTestBehaviac();returnenv-NewStringUTF(str.c_str());}10. 编译构建APK包并安装运行结果如下图所示本教程相关的工作区和代码工程详见源码包的目录tutorials/tutorial_11。