手游开发知识(三)--NDK联机调试

Unity安卓FPS+RPG+生存手游开发:从核心玩法到手柄支持实战 在移动游戏领域,第一人称射击(FPS)游戏因其强烈的沉浸感和紧张刺激的对抗性,一直是玩家和开发者关注的热点。然而,纯粹的射击玩法已难以满足玩家日益增长的需求,将角色扮演(RPG)的成长、叙事和生存建造等元素融入其中,正成为手游创新的重要方向。今天要探讨的,正是这样一个融合了RPG元素的硬核末日生存题材FPS手游——《太阳天堂的钥匙》v0.9.9版本,其对手柄的原生支持更是为移动端FPS体验带来了新的可能。本文将深入解析这类融合型游戏的设计思路、技术实现,并重点探讨在安卓平台上实现手柄支持的关键技术与实战方案 阅读详情

转发,请保持地址:http://blog.youkuaiyun.com/stalendp/article/details/8807603

做NDK开发的时候,调试是比较头疼的事情;但是没有调试,有些具体的错误就无法了解。这里我流水似的介绍一下在真机下的ndk调试方案,以下是我的笔记:

NDK进行调试的时候,遇到了几个问题:

1) 需要对Android手机有root权限来设置执行一些命令

2)配置ndk-build

3)配置adbserver

4)配置adb client


调试的整体流程:

在进行调试之前,ndk-adb脚本要从手机上获取一些文件来做调试前准备(bug a);之后,将建立一个远程调试构架来调试应用程序。其中服务器端(adbserver)负责与手机通讯,本地客户端(client)将通过服务器端调试手机程序。 

=============

bug A)权限问题

=============

 在调试准备阶段,ndk-adb脚步将从手机端获取相关信息,比如 1) 位于/data/data下的app信息;还有和机器相关的应用程序: gdb.setup, app_process 和 libc.so 等文件(通过查看ndk-adb的执行日志,后两个文件分别位于手机的/system/bin 和 /system/lib下);这些目录都默认都是root的,为了在调试时能够访问,需要修改root权限为system。不然会产生如下的错误: run-as: Package 'com.example.tttt' has corrupt installation

解决方案:修改权限。

-------

sss$ adb shell

$ su

# chmod 771 /data/data

# chown system.system /data/data

参考文章:http://stackoverflow.com/questions/4873124/android-native-debug-ndk-gdb-on-htc-desire-run-as-flaw

=============

bug B)没有调试信息的问题

=============

需要在编译阶段,在ndk-build命令上加参数“NDK_DEBUG=1”

错误消息为:Verify if the application was built with NDK_DEBUG=1

具体为:打开工程的properties,修改如下图(去掉Use Default build command,在build Command中加入相关参数):

参考文章:http://tools.android.com/recent/usingthendkplugin


=============

bug C)配置远程调试--server端

=============

就是使用系统的脚本进行,命令为:

ndk-gdb --verbose --force --start --project <project/dir> --adb=/Applications/adt-bundle-mac/sdk/platform-tools/adb

建立Eclipse工具,如下图所示:


=============

bug D)配置远程调试--client端

=============

在配置client端时,有5个变量要提供;项目名称,gdb的实际位置,本地server的端口号;还有两个是运行ndk-adb进行调试准备阶段的产物(请参考bug A中的描述,分别为:gdb.setup, app_process;  因为client端只需要跟本地的server通讯,需要把gdb.setup拷贝一份,并把最后一行“target remote :5039”去掉。

具体请参考文章结尾的参考资料。

图例如下:






==============

关于对手机的root

==============

最后关于手机刷机的技术,HTC G7需要用到的软件为: unrevoked v3.2.0.92_0.93(需要跟手机的nboot匹配)。

具体请参考http://unrevoked.com/rootwiki/doku.php/public/windows_hboot_driver_install

具体请参考 NOTE:HTC刷机

关于Eclipse中配置JNI开发环境,请参考NOTE: NDK在Eclipse中的集成开发

》》参考资料

     配置NDK环境:http://www.eclipse.org/sequoyah/documentation/native_debug.php

     书籍:《Android NDK Beginner's Guide》的最后一章: Chapter11 Debugging and Troubleshooting


Unity手游逆向实战:利用Il2CppDumper与010 Editor修改游戏数值 在移动应用安全与软件逆向工程领域,理解程序的底层数据结构和内存布局是一项核心技能。通过分析二进制文件,可以深入探究应用如何存储和处理关键数据,例如游戏中的角色属性、资源数量等。这项技术的原理在于,程序在编译后,其逻辑与数据会以特定的二进制格式存储在可执行文件中。对于使用Unity引擎并采用Il2Cpp技术进行代码保护的应用,其C#代码被转换为C++并编译为本地机器码,同时生成包含元数据的文件,这增加了逆向分析的复杂度。掌握相关工具链,能够帮助安全研究人员、开发者和技术爱好者学习软件保护机制、进行安全评估,或 阅读详情

相关推荐

Cocos Creator 2.x 升级 gradle 导致编译不过去的解决办法

Cocos Creator 2.x 升级 gradle 导致编译不过去的解决办法

专业解决各种上架过包问题,专业团队专业处理 1258

Android NDK中的C++调试踩坑标记

RT, Android NDK中的C++调试, GDB调试比较麻烦,在ADT Eclipse中: 1.配置好NDK给工程加上Native Support 2.编译中加上NDK_DEBUG=1 3.然后改造下mk文件: #APP_DEBUG will be set by android-ndk if NDK_DEBUG=1 is set. ifdef APP_DEBUG ...

aigao1992的博客 468

石器时代手机端源码解析:Android与iOS双端移植实战

移动端网络游戏开发中,客户端与服务端通信依赖协议定义和资源管理。协议解析需严格对齐字节序与字段顺序,资源加载则涉及二进制格式解析与热更新机制。这些基础技术决定了跨平台移植的可行性。在Android和iOS上运行老端游资产,需解决Gradle版本兼容、Xcode签名、so库缺失等问题,同时处理联机掉线和资源路径大小写等常见坑。本文以石器时代手机端源码为例,分享从目录拆解到双端跑通、再到资源热更与协议版本管理的工程实践,帮助开发者高效迁移二十年前端游资产。

weixin_33798152的博客 453

NDK DEBUG方法

NDK DEBUG方法 一、JNI单步调试,Debug As Android Native Apllication 二、借用NDK-STACK调试工具

Yu的专栏 6390

Unity开发3D麻将框架:跨平台、低延迟与规则可插拔

3D麻将是一种强交互、高精度、多端一致的实时游戏类型,其核心在于牌面拖拽响应、胡牌逻辑判定、网络状态同步与低端设备适配。Unity凭借成熟的UGUI、Netcode for GameObjects、DOTS架构及跨平台构建能力,成为实现「一套代码跑通PC/Android/iOS/WebGL」的首选引擎。相比Three.js的碰撞调试复杂、Cocos的拖拽顺滑度不足、原生开发的三端同步成本高,Unity在UI延迟控制(<80ms)、物理轴心精度、断线状态回滚等关键指标上具备工程级稳定性。本文聚焦3D麻将开发中

weixin_29847829的博客 127

斗地主手机游戏源码:C++规则引擎+帧同步+Lua热更

斗地主作为经典棋牌类游戏,其核心难点在于规则严谨性、多端状态一致性与实时交互可靠性。本文围绕确定性规则引擎原理展开,基于位图化牌型表示与常数时间校验算法,实现高精度出牌判定;结合帧同步协议与离线优先设计,解决联机不同步、断网重连手牌错乱等高频工程问题;通过C++核心+Unity渲染+Lua热更的三层架构,兼顾性能、可维护性与快速迭代能力。适用于需要落地真实手游逻辑的算法验证、跨平台同步优化及热更新实践场景。

weixin_31509753的博客 63

cocos2d-x-3.17 android升级 gradle NDK_DEBUG=0 -o NDK_DEBUG=1 -o cocos2dlua_shared gradle 7.0

bradle 升级到 classpath 'com.android.tools.build:gradle:4.2.2'- //arguments 'NDK_DEBUG=0 -o' 修改成下面。- //arguments 'NDK_DEBUG=1 -o' 修改成下面。//-LOCAL_MODULE := cocos2dlua_shared 修改成下面。android.mk文件。 gradle 7.0

win_huanglian的专栏 1117

告别零散脚本:用Playwright+Pytest+Yaml+Allure搭建可维护的UI自动化项目

UI自动化测试是软件质量保障的关键环节,其核心在于模拟用户操作,对Web应用界面进行功能验证。传统的脚本堆砌方式常因代码耦合度高、维护成本大而难以为继。工程化解决方案通过分离关注点,将测试逻辑、数据和配置解耦,从而显著提升项目的可读性、可维护性和可扩展性。其技术价值在于构建可持续运行的自动化资产,而非一次性脚本。典型的应用场景包括Web应用的回归测试、兼容性测试及CI/CD流水线中的质量门禁。本文以Playwright、Pytest、Yaml和Allure为核心技术栈,详细阐述了如何从项目架构、页面对象模型

weixin_42529328的博客 299

UE4 虚幻4打包安卓出现NDK_DEBUG=1

虚幻4打包安卓出现NDK_DEBUG=1,安装NVPACK,重启,环境变量也都配了,android选项也都填了,就是不好使。。。一直出现NDK_DEBUG=1 解决了,原因是,NVPACK不能安装到文件夹中,必须是硬盘的根目录(总感觉这是个Bug啊),打包成功。 AndroidSDK配置 ...

Deveuper的博客 1309

【超详细】基于YOLOv8的PCB缺陷检测

印刷电路板(PCB)瑕疵数据集:是一个公共的合成PCB数据集,由北京大学发布,其中包含1386张图像以及6种缺陷(缺失孔,鼠标咬伤,开路,短路,杂散,伪铜),用于检测,分类和配准任务。本文我们选取了其中适用与检测任务的693张图像,随机选择593张图像作为训练集,100张图像作为验证集。

weixin_45679938的博客 2万+

S32K144 ADC硬件触发实战:PDB模块配置与DMA传输全流程解析

本文详细解析了S32K144微控制器中ADC硬件触发的全流程实现。通过配置PDB模块产生精确的定时触发信号,并联动DMA实现转换数据的自动搬运,构建了一个无需CPU干预的高效、低抖动数据采集系统。文章深入讲解了时钟配置、模块初始化、DMA引擎搭建及实战调试技巧,为汽车电子和工业控制应用提供了可靠的解决方案。

weixin_29174141的博客 226

调试、手机-手游开发知识(三)--NDK联机调试-by小雨

本文纯属个人见解,是对前面学习的总结,如有描述不正确的地方还请高手指正~     转发,请持保地址:http://blog.youkuaiyun.com/stalendp/article/details/8807603     做NDK发开的时候,调试是较比头疼的事件;但是没有调试,有些详细的误错就没法懂得。这里我流水似的绍介一下在真机下的ndk调试案方,以下是我的记笔:     NDK行进调试的时候,...

weixin_33817333的博客 153

深入解析set_clock_groups:异步时钟约束的最佳实践与陷阱规避

本文深入解析了FPGA/芯片设计中set_clock_groups命令在异步时钟约束中的核心作用与最佳实践。文章对比了同步时钟、异步时钟与不重叠时钟的区别,强调了正确使用set_clock_groups避免时序分析陷阱的重要性,并提供了与set_false_path的优先级差异分析及实战规避方法,帮助设计者确保时序收敛与电路可靠性。

weixin_29232121的博客 375

月光·阿西西:如何在手机上实现20ms超低延迟的PC游戏串流体验?

你是否曾梦想在通勤路上用手机畅玩《艾尔登法环》?或者躺在沙发上用平板体验《赛博朋克2077》的震撼画面?月光·阿西西修改版正是为这个梦想而生的开源解决方案。这款基于Moonlight安卓端的深度优化版本,通过一系列创新技术将游戏串流延迟降低到惊人的20ms以内,让你随时随地享受PC级游戏体验。 ## 移动游戏串流的三大痛点与解决方案 传统游戏串流方案往往面临三大挑战:延迟过高导致操作不跟手、兼

gitblog_00309的博客 2013

现代密码学5.3--Hash and MAC

现代密码学5.3--Hash and MAC 博主正在学习INTRODUCTION TO MODERN CRYPTOGRAPHY (Second Edition) --Jonathan Katz, Yehuda Lindell,做一些笔记供自己回忆,如有错误请指正。整理成一个系列现代密码学,方便检索。 第二章定义了完美安全及其对应的密码方案“一次一密”, 第三章介绍了多种安全定义 3.1-3.3 计算安全,PRG和基于PRG构造的满足计算安全的密码方案; 3.4-3.5 CPA安全,PRF和基于PRF构

qq_41545715的博客 685

RT-2(robotics-transformer2)论文--阅读笔记

谷歌RT-2机器人论文的阅读笔记。

weixin_61255639的博客 1828

超简单的NDK单步调试方法

最近为了性能需求,开始搞JNI,白手起搞真心不容易。中间差点崩溃了好几次,最终总算得到一点心得。   JNI对性能的提升没有我预想中的大,对于for循环的速度提升大概在1倍左右,所以如果数量级不大的话,性能提升不会很明显 JNI编完之后,不能调试,是不是很蛋疼,不像android Java可以看出错信息。JNI crash之后,界面上表示为没有任何反应,过段时间直接退出应用,没有提示、也没有

吴工的专栏 3万+

[VT虚拟化驱动]安装DPC回调检测CPU对VT的支持

文章目录前言一、驱动基本框架二、安装DPC回调三、检测CPU对VT的支持本章代码def.h:DriverEntry.cpputil.cpp 前言 对于VT的介绍网上有很多详细的介绍,这里不再赘述,只需要知道它有比操作系统还高的权限,可以利用这一点进行某些操作,如内存隐藏, 无痕HOOK ,MSR HOOK, 调试或者反调试, 这里直奔主题 一、驱动基本框架 虚拟机设置里虚拟化引擎设置: 新建一个空的WDM工程,平台设置为x64平台,右键属性——>Inf2Cat——>Run Inf2Cat设置

吾无法无天的博客 3908

ndk-gdb时提示应用不可调试的解决方法

在开发包含c/c++本地代码的android项目中,通过gdb来调试代码是必不可少的前提。 android官方为此提供了ndk-gdb,看起来非常之nice。但个人在实践中发现还是有一系列问题需要记载下(ndk版本:r10e): 1) ndk-build NDK_DEBUG=1这个选项编译时要加上,一般将之定制在你的c/c++ builder中 2) 即...

weixin_33755847的博客 255

让 RAP 弹窗参数真正变成必填:Excel Upload Action 的两种实现路径

摘要 在RAP应用中,action弹窗参数经常缺乏必填校验,导致用户体验差。本文提出两种解决方案:1)在action实现中手动校验,简单但交互不流畅;2)通过root abstract entity和abstract BDEF建模,利用field(mandatory)实现框架级校验,推荐此长期方案。后者将约束集中到模型层,使UI与执行期校验一致,特别适合ABAP Cloud环境。以Excel导入为例,强制填写备注和明确选择试运行,可避免审计问题,提升系统可靠性。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 198

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

安卓ndk调试笔记

环境: adt Build: v22.6.2-1085508 ndk android-ndk-r10e sdk-api 19 模拟器 Genymotion nexus 5.0, 华为荣耀3C(刷MIUI6 Rom)步骤:设置Android.mk LOCAL_CFLAGS += -UNDEBUG -D_DEBUG 设置 Application.mk APP_ABI := all AP

学贵有恒 845

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

ndk学习6: 使用gdb调试ndk程序一

生成debug版程序 方法一: 使用ndk-build编译时,加上如下参数NDK_DEBUG=1,之后生成so文件之外,还会生成gdbobserver,gdb.setup调式文件 方法二: 修改AndroidManifest.xml文件,增加debuggable属性为true <applicationandroid:debuggable...

weixin_30563319的博客 277

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

上一篇: SVN和Trac系统在mac下的安装
下一篇: cocos2dx代码片段
stalendp
博客等级 码龄17年 854粉丝 108原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值