位置: 编程技术 - 正文

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

  • 资产负债表里的存货包括哪些科目
  • 减免增值税计入
  • 疫情期间生活服务业免征增值税截止时间
  • 买入返售金融资产什么意思
  • 预缴增值税怎么填表
  • 原材料的归集和整理
  • 免税即征即退先征后退
  • 注册资本低于实际投资
  • 经纪人佣金计入什么科目
  • 房地产开发企业预缴增值税
  • 营改增后补缴营业税
  • 发票认证了还能退回吗
  • 作废发票 红字发票
  • 去税局代开增值税专票需要什么资料?
  • 固定资产一次性扣除账务处理
  • 持有至到期投资在资产负债表怎么填
  • 环保税计算方法和税率1.2
  • 所得税退税会计分录为啥要借贷所得税费用
  • win10如何设置一键还原系统
  • 交易性金融资产是什么意思
  • 职工福利费属于什么科目?
  • 网络连接错误是什么意思啊
  • 场租费发票如何开
  • 可转换债券的特点有哪些?
  • 什么叫奖励旅游
  • vue onblur
  • 小规模纳税人免税额度是多少
  • php pdo连接sqlserver
  • 基建费用如何摊销
  • 一个金税盘可以用一个用户名和密码开票吗
  • 深入浅出讲解傅里叶变换
  • 应收账款为负数正常吗为什么
  • 企业发生的利得或损失应计入企业的营业外收支
  • 一键部署源码
  • phpcms程序
  • 股权转让个人转个人要交什么税
  • MYSQL的数据类型共有几大类?
  • 平台收取佣金开什么发票
  • 未交增值税如何计提
  • 法定公益金和法定保险金
  • 厂家返利怎么入账
  • 建行E信通贴现需要发票吗
  • 构建固定资产的借款利息资本化文件依据
  • 享受小微企业免征增值税政策
  • 电子发票报销后退款
  • 挂靠单位账务处理是?
  • 增值税进项用不完怎么办
  • 4月确认收入5月支出
  • 研发支出是科目吗
  • 生产型企业加计扣除10%
  • 借用别的公司资质的协议范本
  • 会计档案步骤
  • 工业企业外购材料支付的采购费用应计入什么账户
  • myeclipse连接mysql数据库代码
  • centos下载教程2020
  • win10开始菜单怎么居中
  • centos设置hostname
  • 手把手教你如何退税
  • win10 自带
  • 怎么给电脑装win8系统
  • Linux运维工程师工作内容
  • 怎么用linux运行c程序
  • combobox 添加选项
  • android native opengl
  • 电脑怎么自动清除垃圾
  • 折中查找偶数怎么办
  • javascript还有人用吗
  • 使用ngView配合AngularJS应用实现动画效果的方法
  • pythonlist删除指定位置元素
  • rom开发是做什么的
  • python中ans
  • jquery点击方法
  • 阜阳市税务局地址
  • 我国现行税法体系中采用多次课征的税种是
  • 河北省税务局稽查局领导班子
  • 福建平潭综合实验区属于哪个市
  • 电子税务局开发票流程
  • 免税收入要不要交水利基金?
  • 如何进行税务筹划的方法
  • 刚注册了一家深圳公司
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设