【cocos源码学习】cocos2d-x-4.0 Android Demo工程结构的简析

news2025/2/24 7:04:24

说明

使用cocos new创建的Android工程,并对其进行简单的结构分析

Android工程结构

基于gradle构建的Android工程是于模块来组织的,工程根目录本身是一个主模块,其它为子模块,每个模块都有一个build.gradle文件,主模块还有一个配置文件(settings.gradle),该配置文件定义整个工程包括那些模块
如下所示,
在这里插入图片描述

Demo 目录结构

如下图所示
在这里插入图片描述
我们知道AS的Android项目组织是由多个子工程/模块的方式,工程的模块主要看settings.gradle文件,如下所示,工程有两个模块组成AndGame跟libcocos2dx。
在这里插入图片描述
libcocos2dx模块的内容如下所示,我们会看到其目前上没有java代码(实际上是有的,只是相对路径的方式引入,从模块的build.gradle中可以得出来)
在这里插入图片描述

AndGame/app 模块

一个模块使用到的技术与组织我们主要看其build.gradle,app的build.gradle
有externalNativeBuild的配置,我们就知道他是一个jni工程,JNI工程关键主要看CMakeLists.txt
在这里插入图片描述
在这里插入图片描述
CMakeLists.txt其实就在示例工程根目标下,跟proj.xxx他们同级
在这里插入图片描述

libcocos2dx 模块

在这里插入图片描述
在这里插入图片描述
build.gradle中定义了模块的源代码,有aidl源代码的定义,即会用有到aild
在这里插入图片描述

AS中的视角

用AS打开工程后,在Android的模式下可以看到的工程代码结构如下
在这里插入图片描述

总结

1、示例工程由两个模块组成,一个是APP模块,一个是library模块
2、APP模块配置了有cmake、ndk,即是一个JNI模块,跨平层C++的代码由该模块来构建
3、libcocos2dx是一个Java library,使用了aidl,应该是Cocos的Java平台层的代码和JVM跟Native层交互的胶水层代码

后续

整个工程构建细节的梳理和相关源代码的学习

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/81377.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java基本微信小程序的智能图书管理系统 计算机毕业设计

本设计旨在研究一种社区图书管理系统设计与实现系统,以各种浏览器web页面加上云服务器后端服务系统,通过这一设计过程,进一步熟悉web前端开发技术和云服务器后端开发技术和方法,培养理论联系实际及知识的综合运用能力。 图书管理系…

论文翻译:USE OF LIDAR FOR NEGATIVE OBSTACLE DETECTION: A THOROUGH REVIEW

(鉴定为水刊 综述 老板让看的) Abstract: 野外自动驾驶陆地车辆的负面障碍是指路面上的坑洼、沟渠、悬崖、坑或任何类型的障碍物,但不是以可见的方式,它给车辆或潜在的乘客带来风险,甚至给环境带来风险。 自主陆地车辆正在前进。这…

Golang前置环境配置

如何对go不同版本进行管理 安装gvm gvm工具提供多版本的go进行管理 下载命令: bash < <(curl -s -S -L http://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)这里可能出现对应的raw.githubusercontent.com连不上的情况, 可以在https://www…

springboot+vue基本微信小程序的演出门票管理系统

转票是一个传统的行业。根据当前发展现状&#xff0c;网络信息时代的全面普及&#xff0c;转票也在发生着变化&#xff0c;单就出票这一方面&#xff0c;利用手机预约考试正在逐步进入人们的生活。传统的转票方式&#xff0c;不仅会耗费大量的人力、时间&#xff0c;有时候还会…

Linux(一)按键,目录,基础命令

shell shell就是命令解释器 命令解析器的作用&#xff1a;对用户输入到终端的命令进行解析&#xff0c;调用对应的执行程序 shell将用户输入的命令解释成内核能够识别的指令 shell是按照$Path环境变量 常用的命令解析器&#xff1a; shell – Bourne Shell 路径&#xff1a…

【色彩一致性损失:场景亮度解纠缠网络:纹理-对比度增强网络:IVIF】

DIVFusion: Darkness-free infrared and visible image fusion &#xff08;DIVFusion&#xff1a;无暗区红外与可见光图像融合&#xff09; 红外与可见光图像融合是一种重要的图像增强技术&#xff0c;其目的是在极端环境下生成目标显著、纹理丰富的高质量融合图像。然而&am…

Nginx安装及相关问题解决

文章目录一、 添加 Nginx yum资源库——CentOS 7二、 安装nginx - yum安装三、 启动nginx无法访问解决办法四、 修改nginx页面展示内容通过新建文件通过修改原始文件五、 Nginx 不支持中文怎么办&#xff1f;1. 利用convmv对文件名转码2. 通过修改nginx配置文件转码一、 添加 N…

学生HTML个人网页作业作品:HTML绿色的化妆品静态网站(web前端网页制作课作业)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

【练习题】数据离散化+二维前缀和

【练习题】数据离散化二维前缀和题目大意输入输出样例解释重要提示思路代码时间复杂度题目大意 mtc是一个很优秀的同学&#xff0c;他学习认真&#xff0c;经常刷题。这天&#xff0c;他正好学习到了数据离散化与二位前缀和的相关概念&#xff0c;并给大家进行科普. 数据的离散…

学习周报-20221211

文章目录一 centos7修改系统运行级别的方法方法一方法二二 修改(忘记)centos系统的root密码三 文件的atime、mtime、ctime比较1 定义2 mtime和ctime的比较3 atime在访问文件后并不一定会修改4 相关操作命令对三个时间的影响四 Linux时区设置中的一些问题五 Linux局域网内配置yu…

微服务框架 SpringCloud微服务架构 微服务保护 34 规则持久化 34.1 规则管理模式

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 微服务保护 文章目录微服务框架微服务保护34 规则持久化34.1 规则管理模式34.1.1 规则管理模式34.1.2 规则管理模式 - 原始模式34.1.3 规则管…

android 和风图标字体移植显示墨迹天气图标

android studio版本&#xff1a;21.2.1 例程&#xff1a;newareaautov1 和风天气字体图标使用方法见&#xff1a; android 显示和风天气字体图标_kim5659的博客-CSDN博客_qweather-icons 之前做了个全自动获取天气的app,用的是墨迹的接口&#xff08;实际是科大讯飞再接入墨…

深信服面试常见算法题整理笔记

⭐️我叫恒心&#xff0c;一名喜欢书写博客的研究生在读生。 原创不易~转载麻烦注明出处&#xff0c;并告知作者&#xff0c;谢谢&#xff01;&#xff01;&#xff01; 这是一篇近期会不断更新的博客欧~~~ 有什么问题的小伙伴 欢迎留言提问欧。 文章目录1 反转链表2 排序3 设计…

Docker(二) ----Docker 的基本操作

文章目录前言一、镜像操作1.1 镜像的组成1.2 镜像的操作二、容器操作2.1 容器的基本操作2.2 容器操作的小结总结前言 前面我们学习了Docker的基本定义以及如何安装 Docker, 接下来我们对Docker的基本操作进行了解。上篇文章可点击 初始Docker 一、镜像操作 1.1 镜像的组成 镜…

SpringBoot 整合 Groovy 脚本,实现动态编程

Groovy简介 Groovy 是增强 Java 平台的唯一的脚本语言。它提供了类似于 Java 的语法&#xff0c;内置映射&#xff08;Map&#xff09;、列表&#xff08;List&#xff09;、方法、类、闭包&#xff08;closure&#xff09;以及生成器。脚本语言不会替代系统编程语言&#xff…

在idea中离线安装scala

由于网络受限&#xff0c;需要离线安装和使用scala&#xff0c;安装步骤如下。 1 安装idea scala插件 首先在idea的Help-Aboout选项中&#xff0c;查看idea的版本。 这里可以看到我的版本是2022.3&#xff0c;因此我需要下载对应版本的scala插件&#xff08;Scala插件地址&a…

git使用说明

在Windows上使用Git&#xff0c;可以从Git官网直接下载安装程序&#xff0c;然后按默认选项安装即可。 安装完成后&#xff0c;在开始菜单里找到“Git”->“Git Bash”&#xff0c;蹦出一个类似命令行窗口的东西&#xff0c;就说明Git安装成功&#xff01; 安装完成后&…

MySQL重大Bug!自增主键竟然不是连续递增

InnoDB 自增值保存在内存&#xff0c;MySQL 8.0后&#xff0c;才有了“自增值持久化”能力&#xff0c;即才实现了“若重启&#xff0c;表的自增值可以恢复为MySQL重启前的值”&#xff0c;具体情况是&#xff1a; ≤5.7&#xff0c;自增值保存在内存&#xff0c;无持久化。每…

基于免疫算法的认知无线电资源分配优化算法的matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 认知无线电&#xff08;CR&#xff09;的概念来自Joseph Mitolo博士1999年的开创性工作。它自适应地调整内部通信机制&#xff0c;通过学习&#xff0c;了解等实时变化特定的无线电操作参数&…

数据库实验四:触发器实验

实验四 触发器实验 1.实验目的 ​ 掌握数据库触发器的设计和使用方法。 2.实验内容和要求 ​ 定义BEFORE触发器和AFTER触发器&#xff0c;能够理解不同类型触发器的作用和执行原理&#xff0c;验证触发器的有效性。 3.实验重点和难点 ​ 实验重点&#xff1a;触发器的定义…