android eclipse services,Eclipse中调试Android Framework本地代码模块部分过程记录

环境:Amlogic S905M2 +

ubunt12.04 + win7 + adt_bundle_linux + Android SDK

过程:

1.

为避免用Eclipse基础版本(Luna)后需要安装包括adt、cdt等插件麻烦,直接解压adt_bundle_linux安装IDE环境

2.

调试准备:目标设备(Amlogic S905M2

)中需要有gdbserver;host主机(ubuntu)中需要交叉编译版本的gdb。gdb可采用$(AOSPROOT)\prebuilts\gcc\linux-x86\arm\arm-eabi-4.7\bin已编译好的版本(这里需要注意的是$(AOSPROOT)\prebuilts\gcc\linux-x86\arm目录下存在多个版本,选择--version执行无差错的,仅供参考),相应的在目录$(AOSPROOT)\prebuilts\misc\android-arm\gdbserver,ps:注意确保两者版本的一致性。

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png

3. 具体步骤:

(1)新建工程项目,导入代码。启动Eclipse后,File->New Project->Makefile Project

with Existing Code

(2)点击Next,配置project,点击Finish

a4c26d1e5885305701be709a3d33442f.png

(3)设置property。载入源码为了编辑和跟踪,而不是为了编译工程,因此需要Disable编译选项。在Property窗口中的C/C++

Build中的Builder Settings中取消Use default build

command,并随意填写个编译器的名称

a4c26d1e5885305701be709a3d33442f.png

(4)编译要调试部分源码的debug版本(带调试symbol,AOSP源码在linux中编译)。

cd $(AOSPROOT)

#source

build/envsetup.sh

#lunch

$(DEVICE_MODULE_NAME)(仅限于与Amlogic S905M2 相关的device部分)

#cd

$(AOSPROOT)/framework/native/services/surfaceflinger

#vi

Android.mk (将其中的LOCAL_CFLAGS加上"

-O0 -g ")

#mm

-B LOCAL_STRIP_MODULE=false

(5)烧录。不采取整体的烧录,只将前一步骤生成的libsurfaceflinger.so上传至设备的/system/bin目录中,reboot设备重启即可

#adb

connect DeviceIP

#adb

push

$(AOSPROOT)/out/target/product/XXX/symbols/system/lib/libsurfaceflinger.so

#reboot

(6)远程调试其它配置。在Eclipse调试之前,需要告诉gdb哪里去查找标准库的符号信息,新建配置文件gdb4android.cmds,添加如下内容

set

solib-absolute-prefix

$(AOSPROOT)/out/target/product/cmcc_zhejiang/symbols

set

solib-search-path

$(AOSPROOT)/out/target/product/cmcc_zhejiang/symbols/system/bin:

solib-search-path

$(AOSPROOT)/out/target/product/cmcc_zhejiang/symbols/system/lib

(7)Debug

Configuration配置如下

a4c26d1e5885305701be709a3d33442f.png

展开Debug

Tab,设置GDB debugger和GDB command file,点击Apply后Close

a4c26d1e5885305701be709a3d33442f.png

点击Debugger的子TAB-Connection

a4c26d1e5885305701be709a3d33442f.png

(8)设置调试会话

Device端:

setprop

service.adb.tcp.port 5555

stop

adbd

start

adbd

host端:

#adb

connect DeviceIP

#adb

forward tcp:10000 tcp:10000

#adb

shell gdbserver :10000

--attach THREADIP(THREADIP为SurfaceFlinger进程ID号)

Eclipse点击Debug后,在device端任意移动焦点就可进入断点(SurfaceFlinger相关类中)

a4c26d1e5885305701be709a3d33442f.png

调试Android

Framework本地代码部分通常采用打印输出来进行调试较为普遍,而常用上述直观的断点调试在整个过程中会遇到诸多的问题,连接问题、设备弹出、设备重启需要重新设置连接等,所幸最终能成功搭建好并成功进入设置的断点,也是碰到并解决了诸多的问题,使用各种工具,mark一下^@^

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

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

相关文章

android studio内置终端,Android Studio Terminal xx不是内部或者外部命令

背景在使用AS工具自带命令面板Terminal的时候,相信你有碰到过:xx不是内部或者外部命令,也不是可运行程序。解决办法就是配置环境变量一、在 Terminal 中使用 adb,报 adb 不是内部或者外部命令,也不是可运行的程序。解决…

svm预测结果为同一个值_SVM算法总结

一、1.感知机模型:感知器模型是SVM、神经网络、深度学习等算法的基础;感知器模型就是试图找到一条直线,能够把所有的“1”类和“-1”类分隔开,如果是高维空间中,感知器模型寻找的就是一个超平面,能够把所有的二元类别分…

iOS 动画绘制线条颜色渐变的折线图

效果图 .................... 概述 现状 折线图的应用比较广泛,为了增强用户体验,很多应用中都嵌入了折线图。折线图可以更加直观的表示数据的变化。网络上有很多绘制折线图的demo,有的也使用了动画,但是线条颜色渐变的折线图的…

android使碎片切换界面,玩转Android中的碎片Fragment

引言:在Android开发中,我们都知道一些界面的展示经常会用到的就是Activity,但是Activity存在着很大的局限性,比如说手机上的界面显示在平板上面就会发生各种变形的问题,Activity也无法实现局部的数据刷新,所以Android3.0之后出来了Fragment,Fragment通常…

html GPS坐标实现,JavaScript 实现GPS坐标点距离计算(两个经/纬度间的距离计算)...

在LBS(基于位置服务)的一些应用中,有时我们会需要计算两个用户或两个坐标点之间的距离。要解决这类问题,就要了解空间几何的概念并结合数学中在三角函数公式计算两点之间的值。本文介绍基于经度/纬度的,两个坐标点之间的距离计算,…

机器学习基于skcilearn tensorflow电子书_Tensorflow机器学习模型的跨平台上线

本篇文章转载自博客园,作者: 刘建平Pinard在用PMML实现机器学习模型的跨平台上线中,我们讨论了使用PMML文件来实现跨平台模型上线的方法,这个方法当然也适用于tensorflow生成的模型,但是由于tensorflow模型往往较大,使…

html5 observer api,基于HTML5新特性Mutation Observer实现编辑器的撤销和回退操作

MutationObserver介绍MutationObserver给开发者们提供了一种能在某个范围内的DOM树发生变化时作出适当反应的能力.该API设计用来替换掉在DOM3事件规范中引入的Mutation事件.Mutation Observer(变动观察器)是监视DOM变动的接口。当DOM对象树发生任何变动时,Mutation …

Maven(五)使用Nexus搭建Maven私服

文章装载于:http://blog.csdn.net/jun55xiu/article/details/39497089 Nexus介绍 Nexus是Maven仓库管理器,如果你使用Maven,你可以从Maven中央仓库下载所需要的构件(artifact),但这通常不是一个好的做法&am…

计算机学测打多少字,速度测试,一分钟能打多少字?

六、速度测试——检验学习效果经过一段时间的练习,输入速度提高了不少吧,赶快来测试一下现在一分钟可以输入多少英文或汉字。金山打字通2010的“速度测试”功能不仅有基本的“屏幕对照”速度测试,还有“书本对照”测试及要求较高的“同声录入…

HDFS入门(1)

2015.07.12笔记 1.HDFS Distributed File System(操作系统实现人机交互,最重要的功能是文件管理,使用文件管理系统,windows、Linux文件管理系统有共性:用户可创建文件/夹,删除,修改权限&#xf…

竞赛图 计算机网络 应用题,我校学子获2020年“中国高校计算机大赛-网络技术挑战赛”全国总决赛一等奖(图)...

近日,2020年“中国高校计算机大赛-网络技术挑战赛”全国总决赛在温州浙南科技城落下帷幕。我校计算机与信息安全学院陈俊彦、雷晓春老师指导的“智载车队”团队(成员:林楷浩、陈澳格、黄湖)在创业先锋C系列中获得全国一等奖,在创新创意A系列中…

建立远程桌面连接计算机无密码,win7远程桌面空密码的步骤_win7系统如何设置让远程桌面登录无需密码-win7之家...

在日常工作中,可能经常会使用到远程连接桌面功能,我们要远程桌面的话,通常是要输入密码才可以的,但是有些用户觉得麻烦,那么win7系统如何设置让远程桌面登录无需密码呢?带着大家的这个问题,本文…

tkinter如何lable重复显示到同一行中_如何创建包含 CAD 导入和选择的仿真 App

在使用 COMSOL 软件二次开发的过程中,你可能会遇到这样的问题:如何使用 App 开发器创建可以处理 CAD 导入并能让用户交互式选择边界条件的仿真 App?我需要了解编程吗?今天我们将为您介绍在 COMSOL 软件中创建包含 CAD 导入和选择的…

计算机科学导论课后单词,计算机科学导论课后总结

计算机科学导论课后总结1老师上课给我们演示了一个迷宫的程序,然后我上网查找了一下,大致学习了一下这个程序的思想。迷宫这个题目和数据结构—图有关迷宫的随机生成和路径搜索主要和图的遍历有关,一般来说图的遍历主要有两种方式&#xff1a…

表单内如何直接贴图而不用上传图片_表单如何添加图片?

表单其实就是我们平常经常看到的收集信息的框框,如姓名、电话等,当然易表单就远不止这些哦,还可制作调查问卷,报名登记、投票评选和考试测评。平时大家都擅长于制作表单的文字内容,实际上表单里边添加一些图片会让表单…

Android应用的安全的攻防之战

一、前言 在前两篇破解的文章中,我们介绍了如何使用动态调试来破解apk,一个是通过调试smali源码,一个是通过调试so代码来进行代码的跟踪破解,那么今天我们就这两篇文章的破解方法,来看看Android中开发应用的过程中如何…

标准正态分布表_表达矩阵的归一化和标准化,去除极端值,异常值

我们阅读量破万的综述:RNA-seq这十年(3万字长文综述)给粉丝朋友们带来了很多理解上的挑战,所以我们开辟专栏慢慢介绍其中的一些概念性的问题,上一期:RNA-seq的counts值,RPM, RPKM, FPKM, TPM 的异同在数据挖掘过程&…

计算机网络关于封装成帧题目,上海第二工业大学-计算机网络通信期中试卷答案...

上海第二工业大学 (试卷编号: )2014-2015学年第2学期 计算机网络与通信 期中考试试卷姓名: 学号: 班级: 成绩:一、 填空题 (每空1分,共18分)1. 当前广泛提及的三网融合中的三网分别是 电信网络 、 电视网络…

微星主板超频_内存超频能力依旧拔群!微星MEG Z490 ACE主板评测

一、前言:内存超频首选的新板子来了一直以来,微星主板都以强悍的内存超频能力而著称,而高频内存对于许多游戏带来的提升都是肉眼可见。随着全新Intel 10代酷睿处理器的上市,微星的MEG系列的Z490主板会给大家带来哪些惊喜呢&#x…

g++ 内存不够_手机内存老是不足?这三招,让你马上腾出12个G

不知道朋友们遇到手机卡慢、空间不足的第一反应是什么?A:换个手机。B:内存满了,找清理软件狂删啊!使用智能手机的人大家肯定和小编一样恋旧,觉得换手机很麻烦所以不断尝试各种清理软件,清理手机…