位置: 编程技术 - 正文

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

  • 财务刷卡手续费怎么处理
  • 无形资产的确认条件
  • 银行转账记录能保存多久
  • 全年一次性奖金个税计算
  • 核定征收需要什么条件
  • 进销存账需要合并吗
  • 小规模个体户营业执照一共几个章
  • 工业企业制造费用具体怎么摊
  • 公司零申报怎么注销
  • 产品成本计算的公式
  • 合同取消写什么
  • 企业所得税需要调整的有什么科目
  • 医院食堂承包方案的实施细则
  • 税控设备指什么
  • 银行和保险公司归哪个部门管
  • 车改补贴是否计入工资总额
  • 对方已认证的发票在哪里
  • 分公司注销时有未分配利润需要交税吗
  • 流动资产包括哪些形式
  • 投资性房地产属于流动资产吗
  • 党员经费的使用范围
  • 一次性领取的年金 税率表
  • 什么叫抵免
  • 防伪税控技术维护费怎么申报
  • 投资回报周期是多少天
  • 工会经费是不是应付职工薪酬
  • 证券权益包括哪些内容
  • 申请一般纳税人公司流程
  • 第三方科技
  • php面向对象是什么意思
  • 工地包工工程款一般怎么结
  • PHP:pg_field_num()的用法_PostgreSQL函数
  • vi应用项目
  • 一般纳税人向小规模纳税人开专票
  • Smarty3配置及入门语法
  • js经典案例代码大全
  • 残疾人个人所得税减免怎么填写申报
  • 教大家8天学通MongoDB——第一天 基础入门篇
  • 综合所得汇算清缴是什么意思
  • sqlserver表数据导出导入
  • 安装sql server 2008硬件要求
  • 主营业务收入和营业外收入均属于收入
  • mysql group by实现原理
  • 资产负债表中的货币资金包括哪些
  • 享受优惠政策的通知
  • 减免税款借方有利息吗
  • 资产负债表和科目余额表怎么核对
  • 研发费加计扣除申报表怎么填
  • 收到货款但未开票怎么入账
  • 税审报告一定要税所主任签吗
  • 个体工商户是否要交税
  • 不同数据库之间的数据一同传递
  • mysql2002解决办法
  • 微软6月24号
  • win8系统开机直接进入桌面
  • vidaa 破解
  • 更新win8
  • win8.1技巧
  • securecrt输入中文乱码
  • shadowbar.exe - shadowbar是什么进程 有何作用
  • linux命令的参数
  • linux系统怎么复制文件到u盘
  • win7的cpu怎么看
  • tar命令参数详解
  • js如何使用
  • mvp功能
  • Shell脚本监控日志 出现关键字 grep提醒
  • perl写文件
  • Linux修改tomcat默认端口号8080
  • python中 index
  • linux 部署
  • java jsonstring
  • python动态绑定属性
  • jquery图表
  • 江苏省税务厅电话
  • 光伏发电要交税不
  • 国家税务总局61号
  • 河南国税发票查询真伪官网
  • 财税知识
  • 西安代驾平台有哪些
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设