位置: 编程技术 - 正文

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横屏(禁止所有陌生人的来电设置)

  • 非税收入一般缴款书一式几联
  • 销项发票能不能留抵
  • 几年前的发票能入账吗
  • 金融服务费进项可以抵扣吗
  • 第一季度亏损第=季度盈利但累计还是亏损要交所得税吗?
  • 先结转损益还是先结转本年利润
  • 委托加工消费税纳税义务发生时间
  • 佣金的支付方式主要有什么
  • 计提高温补贴会计分录
  • 银行卡季度结息
  • 押金可以抵扣吗
  • 全体员工出去旅游朋友圈怎么发
  • 小规模纳税季度申报
  • 小微企业企业所得税怎么征收2023
  • 红字发票开具只能针对一份发票 不可以只冲红其中一部分吗?
  • 五年之内,企业可追补应扣支出
  • 现金流量表编制依据和方法
  • 个税经营所得预扣预缴
  • 土地溢价款如何计算
  • 内存频率调整教程图解
  • 跨年发票能不能报销
  • 在windows 10中任务栏()
  • 应收账款与主营业务收入的比率
  • 小规模纳税人的企业所得税怎么算
  • PHP:stream_register_wrapper()的用法_Stream函数
  • 企业购入旧设备怎么入账
  • 政府会计制度固定资产折旧哪个月开始计提
  • 一只草丛里的狐狸作文
  • 跨省异地施工
  • 代开的发票需要企业盖章还是税务机关盖章?
  • 现金折扣的账务处理最新规定
  • php支付功能
  • 机关事业单位购买茶叶违反什么规定
  • 山东省项目
  • 机器学习实战练手项目
  • php设计模式六大原则
  • 税务三方协议怎么重签
  • 发票查询密码区空白怎么回事
  • js与或运算符
  • echarts怎么引入
  • 结息会计凭证怎么写
  • 企业贷款的条件和流程
  • 做私活要收个人所得税吗
  • 承租人损坏租赁物
  • 当月购入固定资产当月出售了用交印花税吗
  • 电子承兑汇票接收流程
  • 开发成本怎么做分录
  • 出口抵减内销产品应纳税额分录
  • 4s店出售试驾车的增值税是多少
  • 退货会计如何处理
  • 企业收到补贴资金怎么办
  • 商贸公司会计成本核算方法
  • 养老院老人摔倒责任划分
  • 小规模纳税人买车可以抵扣哪些税
  • sql游标实例
  • mysql@变量
  • centos7如何设置中文
  • wweb32.exe - wweb32是什么进程
  • 如何用pe弄双系统引导
  • win10 10月更新
  • xp能不能升级win10
  • realmon.exe - realmon是什么进程 有什么用
  • linux groupdel命令详解
  • win10系统中怎么打开IE浏览器
  • windows10无法安装
  • win7电量
  • three.js官方文档
  • input的file
  • 很好的资源学习入口_android
  • javascript可以写算法吗
  • node.js中使用文件流进行文件复制,首先需要创建一个
  • 在线视频爬取工具
  • jquery常用选择器种类
  • 数字证书使用方法
  • 货物运输代理服务税率
  • 江苏省南京市国医堂
  • 车辆购置税怎么买
  • 网上如何申请
  • 海南海葬需要多少费用
  • 东莞国税稽查分局局长
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设