android杂记:C++文件的添加log方法分享

1.添加头文件

复制代码 代码如下:

#include <utils/Log.h>  

//或者 

#include <cutils/Log.h>

这个时候可以使用ALOGE/ALOGI/ALOGW 等方法打印出log

不过有些地方不能这么使用,因为依赖libutils libctuils库

在mk文件见添加如下依赖编译即可

复制代码 代码如下:

#LOCAL_MODULE := ... ...  

#base_intermediates := $(call local-intermediates-dir)  //该行之下添加,这个貌似是查找依赖文件 

LOCAL_SHARED_LIBRARIES += \ 

        libutils libcutils 

    ... ... 

include $(BUILD_SHARED_LIBRARY) //该行之上,这时候是开始编译

2.通常的堆栈

复制代码 代码如下:

android::CallStack stack; 

stack.update(1); 

stack.dump("");

这个需要加个头文件,不过要特别注意一个问题,这个头必须加在所有头的末尾,不然用不了滴,尤其是看android源码里webkit的时候。需要加的头文件如下:

复制代码 代码如下:

#include <utils/CallStack.h>

今天有事,后续补全,如果大家有更好的,或者特殊的情况,欢迎推荐

3.C++另类堆栈

这个方法是可文件控制的。通过对android设备中的文件读写,然后空指针赋值,这样就可以达到文件控制的目的

该方法好处只要是C、C++文件均可添加此log,无依赖,便捷!也有个不好处,log只能运行到你添加的地方,因为崩库了,后面的无法运行了。

实现代码如下:

复制代码 代码如下:

FILE *fp = NULL; //需要注意  

fp = fopen("data/test", "r"); 

if(NULL == fp) 



    return false; //需要返回值时使用  

} esle { 

    fclose(fp); 

    int *fp = NULL; 

    *fp = 100;  //空指针赋值出错,小样就它错了  

    return false; //需要返回值时使用  

}

一般崩库了是看不到堆栈的,我们可以通过反汇编来查看具体的堆栈。

在android里编译出的库有两套:一套无符号的,是查看不了的,另一套是有符号的,我们查看的就是这套,

有符号的编译出来后是在路径(\out\target\product\generic\symbols\system\lib)下

android中自带有arm的反汇编工具,在设置后编译环境后就可以正常使用了,命令如下:

复制代码 代码如下:

arm-eabi-addr2line -f -e **.so 地址1 地址2 ... ...

时间: 2024-10-23 09:30:52

android杂记:C++文件的添加log方法分享的相关文章

android杂记:C++文件的添加log方法分享_Android

1.添加头文件 复制代码 代码如下: #include <utils/Log.h>   //或者  #include <cutils/Log.h>  这个时候可以使用ALOGE/ALOGI/ALOGW 等方法打印出log 不过有些地方不能这么使用,因为依赖libutils libctuils库在mk文件见添加如下依赖编译即可 复制代码 代码如下: #LOCAL_MODULE := ... ...   #base_intermediates := $(call local-inter

Android修改jar文件包名的方法分享

前言 jar 包我们会非常高频率的使用,尤其是用一些其他三方库的时候,往往把 java 代码打包成 jar 文件,方便项目依赖使用. 带来的问题是, 多个jar包容易出现包名冲突. 这时候我们修改 jar 文件的包名是一个比较快速有效的解决办法. 举两个例子,是笔者亲身经历的两个情况. Gson库:这个相信很多人都在使用,但是直接导入 gson 的 jar 包,在 HTC Desire HD 这款手机上会抛出异常(TypeNotFoundException) Jackson库:这也是个 json

Android编程实现文件浏览功能的方法【类似于FileDialog的功能】_Android

本文实例讲述了Android编程实现文件浏览功能的方法.分享给大家供大家参考,具体如下: 最近正在弄上传文件,当时想怎么能实现fileDialog的功能呢,打开文件,浏览文件,然后选择文件呢,查了好多资料,也看了不少论坛,都说里面没有这个功能,那真是奇怪了,里面没有这个功能,当然就需要自己动手添加这个功能了. 首先说一下这个文件浏览的简单实现原理: 首先选择一个目录做为根目录,然后打开此目录,常用的就是使用File这个类了,如下: File file=new File(path); 然后可以通过

Android上传文件到服务器的方法

本文实例为大家分享了Android端实现文件上传的具体代码,供大家参考,具体内容如下 1).新建一个Android项目命名为androidUpload,目录结构如下: 2).新建FormFile类,用来封装文件信息 package com.ljq.utils; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.InputStream;

Android 修改host文件的3种方法

Android修改hosts文件的方法介绍 本文介绍三种Android手机修改hosts文 件的方法,但修改hosts文件一定要谨慎:Android手机hosts文件的换行符必须是n而不是windows的rn,使用Notepad++打开 hosts文件,依次点击菜单中的"视图–显示符号–显示所有字符",如果行末是LF就没问题,CR LF结束则需要替换所有的CR LF为LF. Android手机hosts文件路径:/system/etc/hosts 修改hosts方法一:需重启 修改ho

钉钉APP管理员添加员工方法分享

给各位钉钉软件的使用者们来详细的解析分享一下管理员添加员工的方法. 方法分享:   1.第一步:先进行钉钉添加组织架构. 2.第一步:钉钉手机客户端--联系人界面--管理--管理成员和部门,可进行添加员工.添加子部门.设置人员权限.可见范围等. 好了,以上的信息就是小编给各位钉钉的这一款软件的使用者们带来的详细的管理员添加员工的方法解析分享的全部内容了,各位看到这里的软件使用者们,小编相信你们现在那是非常的清楚了添加员工的方法了吧,那么各位使用者们就快去按照小编上面给大家带来的方法自己去拉人添加

美图秀秀一键添加边框方法分享

给各位美图秀秀软件的使用者们来详细的解析分享一下一键添加边框的方法. 方法分享: 1.打开图片.运行美图秀秀软件,按提示打开照片.   2.加边框.点标题栏上的"边框"图标切换至边框页面,在页面左侧点击"简单边框"图标后,页面右侧会出现很多边框素材可供选择,在喜欢的边框上单击一下,页面会自动跳转到边框编辑框,这时就可以看到宝宝照片加上边框的效果了,如果不满意可以点右侧的素材更换边框,效果满意点"应用".     3.保存.图片做好后点标题栏上的&

Android 解析XML 文件的四种方法总结_Android

java解析xml文件四种方式 1.介绍 1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这个层次结构允许开发人员在树中寻找特定信息.分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作.由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的.DOM以及广义的基于树的处理具有几个优点.首先,由于树在内存中是持久的,因此可以修改它以便应用程序能对数据和结构作出更改.它还可以

Android 解析XML 文件的四种方法总结

java解析xml文件四种方式 1.介绍 1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这个层次结构允许开发人员在树中寻找特定信息.分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作.由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的.DOM以及广义的基于树的处理具有几个优点.首先,由于树在内存中是持久的,因此可以修改它以便应用程序能对数据和结构作出更改.它还可以