位置: 编程技术 - 正文

Android中如何将原生程序向stdout和stderr的输出重定向到logcat(怎么将安卓)

编辑:rootadmin

推荐整理分享Android中如何将原生程序向stdout和stderr的输出重定向到logcat(怎么将安卓),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:android怎么转java,如何将android数据导入到iphone,android怎么转java,android怎么转移到ios,android 程序 如何 转移,android 程序 如何 转移,android怎么导入,android 程序 如何 转移,内容如对您有帮助,希望把文章链接给更多的朋友!

在Android系统中,凡是由Zygote孵化出来的进程,其标准输出(stdout)、标准错误(stderr)都被重定向到了/dev/null这个设备中。因此,任何输出到stdout和stderr的信息都会被忽略。而Android的应用程序,都是自Zygote进程孵化出来的,所以都不会有stdout和stderr输出,printf函数根本不起作用。

这通常没有什么问题,Android为了弥补没有stdout和stderr的缺陷,特别设计了自己的日志系统供开发者使用。但有,有时候我们写的程序会用到已有的一些共享代码,这些共享代码可以被编译到Android平台上,但是它们的日志却是输出到stdout和stderr上的。如果要将它们的日志都输出到logcat上,那么必须得修改原有代码中所有打印日志的部分,不过往往这样做费时费力,还容易出错。那么有没有什么办法可以不修改代码,又让它们的日志输出到logcat上呢?

Android系统原生自带了一个小工具,叫做logwrapper,其位于/system/bin目录下。它可以将指定程序输出到stdout和stderr上的信息转发到logcat上去。

命令的&#;式是:

这里BINARY就是你要转发日志的应用程序,logwrapper会启一个子进程运行你的程序。而ARGS就是需要传递给你的应用程序的参数。

如果你的日志很长,不想全部打印出来的话,只关心程序刚启动之后一会或者程序结束前一会的状况,可以加上-a参数。加上之后,logwrapper只会打印其中之后的前4K和结束之前的前4K的日志。

如果你不想将程序的日志重定向到Amdrpod的日志系统,而是想重定向到内核日志的话,可以加上-k参数。

无论是向stdout的输出还是向stderr的输出,logwrapper转发到logcat中的日志,其Tag统一被设置成你自己的应用程序的名字,而输出级别都是“INFO”。

Android中如何将原生程序向stdout和stderr的输出重定向到logcat(怎么将安卓)

最后,拿个简单的例子实验一下。top命令的输出是打印到stdout上的,如果我们用logwrapper将其重定向一下,会是什么结果呢?

先用logwrapper将top启动起来:

这时候我们用ps命令来看看当前有哪些进程:

可以看到,这时有两个新增的进程,分别是logwrapper和top,并且top进程的父进程是logwrapper进程。

接着,我们用adb logcat连接上Android设备上的logcat,看看有什么结果:

果真top命令的输出被重定向到了logcat,并且级别是INFO(“I”),Tag是程序名(“top”)

禁止所有Activity横屏 在manifest.xml文件中配置设置横屏:在每个activity中加入以下两行代码:activityandroid:screenOrientation=portrait//初始为竖屏android:configChanges=orientation|keyboardHidden|

Android属性allowBackup安全风险浅析 1.allowBackup安全风险描述AndroidAPILevel8及其以上Android系统提供了为应用程序数据的备份和恢复功能,此功能的开关决定于该应用程序中AndroidManifest.xml文件

DOM解析XML文件3-SimpleAdapter_自定义布局 1.新建名为domxml的项目2.新建user_item.xml的自定义布局文件?xmlversion="1.0"encoding="UTF-8"?LinearLayoutxmlns:android="

标签: 怎么将安卓

本文链接地址:https://www.jiuchutong.com/biancheng/385253.html 转载请保留说明!

上一篇:WebView 布局设置fill_parent carch(webview设置ua)

下一篇:禁止所有Activity横屏(禁止所有陌生人的来电设置)

  • 动态市盈率与静态市盈率区别百度百科
  • 支付与其他经营活动有关的现金公式
  • 非盈利组织企业所得税主表如何填列
  • 往来票据如何开具
  • 其他应付款二级科目明细
  • 企业注销盈利一定要交个税吗
  • 开票地址开错有什么后果
  • 在建工程有增值税发票吗
  • 土地整理项目如何提取地块的坐标
  • 建筑材料资源利用
  • 出口退税管理系统怎么登录
  • 开票系统维护费可以全额抵扣吗
  • 支付宝对公账户还款清零要多久
  • 售楼部沙盘制作价格一般多少一平
  • 小规模纳税人跨月冲红退税
  • 保户储金科目属于保险公司的什么科目
  • 应交增值税未认证怎么办
  • 苹果电脑重新安装系统磁盘锁了怎么办
  • 职工福利费汇算清缴怎么填写
  • 小型微利企业的税收政策
  • macbookair怎么设置屏幕
  • 怎么关闭windows defender
  • php在apache中有哪些工作方式
  • 应付账款会计分离
  • php __destruct
  • Laravel中七个非常有用但很少人知道的Carbon方法
  • php常用工具
  • 基于随机森林的气温预测
  • vue3.0项目创建
  • python字典删除键值对方法
  • 企业购买的土地出买后无法收回资金属国有资产流失吗?
  • 印花税调低
  • 物业管理费开票类目
  • mysql怎么防止sql注入
  • 劳务费发票是个人的吗
  • 个人独资企业法人可以发工资吗
  • 生产过程中报废怎么核算成本
  • 利息收入应该填什么科目
  • 固定资产折旧计算方法公式大全
  • 收款人是否应当承担还款责任
  • 处置存货损失应该放哪个科目
  • 往来核算是指会计核算中的资金往来业务
  • 仓储费计入哪个部门的费用
  • 支付系统安装
  • 未计提坏账准备的应收账款
  • 展览门票收入按什么征税
  • 固定资产清理如何计算
  • 一般纳税人混凝土税负率
  • 其他货币资金的核算业务怎样处理
  • mysql批量添加字段
  • linux bin sbin
  • sql触发器使用存储过程
  • win7系统开启telnet服务
  • 如何制作u盘系统win7
  • ubuntu多桌面切换
  • Linux系统配置IP
  • centos查询所有用户
  • Windows Server 2012实用技巧集锦
  • 电脑出现nobootdevicefound咋办
  • win7右下角点击没反应
  • win7系统电脑开不了机
  • win8如何关闭杀毒软件
  • SpriteBuilder Demo学习笔记
  • opengl用法
  • angular 嵌入html
  • jquery制作简单的网页
  • node.js 流
  • Chrome调试技巧
  • js根据对象的key来获取对应值
  • js parsefloat parseint 转换函数
  • javascript的核心语言对象包括
  • python2ide
  • python继承的主要目的
  • 安卓开发常见问题
  • 个人房屋出租给公司怎么开发票
  • 建筑企业个人所得税管理办法
  • 江苏省镇江市街道名称
  • 武汉税务电话号码
  • 交完契税,房产证没办,契税能退吗
  • 季度财务会计报告怎么写
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设