博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
调试、手机-手游开发知识(三)--NDK联机调试-by小雨
阅读量:6160 次
发布时间:2019-06-21

本文共 2137 字,大约阅读时间需要 7 分钟。

本文纯属个人见解,是对前面学习的总结,如有描述不正确的地方还请高手指正~

    转发,请持保地址:

    做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

    参考文章:

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

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

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

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

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

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

    参考文章:

    

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

    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匹配)。

    详细请参考

    详细请参考 NOTE:HTC刷机

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

    》》参考资料

         置配NDK境环:

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

文章结束给大家分享下程序员的一些笑话语录: 有一天,一个男人穿越森林的时候,听到一个细微的声音叫住他。他低头一看,是一只青蛙。

“如果你亲我一下,我会变成一个美丽的公主哦。”男人一言不发,把青蛙捡起来,放入口袋。
“如果你亲我一下,我会变成一个美丽的公主哦。而且,我会告诉我遇到的每一个人,你是多么聪明和勇敢,你是我的英雄。”男人把青蛙拿出来,对着它微微一笑,又把它放回口袋。
“如果你亲我一下,我会变成一个美丽的公主,然后我愿意成为你的爱人一星期。”男人又把青蛙拿出来,对着它微微一笑,把它放回口袋。
“如果你亲我一下,我会变成一个美丽的公主,然后我愿意成为你的爱人一年,而且你可以对我做任何事。”再一次,男人把青蛙拿出来,对着它微微一笑,又把它放回口袋。
  最后,青蛙无力地问:“我开出了这么好的条件,为什么你还不肯吻我?”男人说:“我是一个程序员,我可没时间和什么公主鬼混。不过,拥有一个会说话的青蛙,倒是蛮酷的。”

转载地址:http://xqhfa.baihongyu.com/

你可能感兴趣的文章
Javascript Ajax 异步请求
查看>>
DBCP连接池
查看>>
cannot run programing "db2"
查看>>
mysql做主从relay-log问题
查看>>
Docker镜像与容器命令
查看>>
批量删除oracle中以相同类型字母开头的表
查看>>
Java基础学习总结(4)——对象转型
查看>>
BZOJ3239Discrete Logging——BSGS
查看>>
SpringMVC权限管理
查看>>
spring 整合 redis 配置
查看>>
cacti分组发飞信模块开发
查看>>
浅析LUA中游戏脚本语言之魔兽世界
查看>>
飞翔的秘密
查看>>
Red Hat 安装源包出错 Package xxx.rpm is not signed
查看>>
编译安装mysql-5.6.16.tar.gz
查看>>
活在当下
查看>>
每天进步一点----- MediaPlayer
查看>>
PowerDesigner中CDM和PDM如何定义外键关系
查看>>
跨域-学习笔记
查看>>
the assignment of reading paper
查看>>