Android系统shell中的clear命令实现

之前一直不太清楚,当我们在shell命令行输入很多命令,会在屏幕上输出一些信息,为什么一执行clear这个命令以后,所有的信息就没了呢?

现在终于搞明白了,找到了clear命令的源代码clear.c

源码如下:

#include <stdio.h>

int clear_main(int argc, char **argv) {
    /* This prints the clear screen and move cursor to top-left corner control
     * characters for VT100 terminals. This means it will not work on
     * non-VT100 compliant terminals, namely Windows' cmd.exe, but should
     * work on anything unix-y. */
    fputs("\x1b[2J\x1b[H", stdout);
    return 0;
}

震惊了!!!就两行代码!!!这里面稀奇古怪的字符串重定向到stdout(标准输出)是什么东西呢?
其实是一串VT100的控制码,那这一串代码什么东西呢?

"\x1b[2J",//清除整个屏幕,行属性变成单宽单高,光标位置不变

"\x1b[H",//光标移动

更加详细的命令可以参考以下博文:

http://blog.sina.com.cn/s/blog_7347cd380100upwj.html

时间: 2024-11-03 11:55:55

Android系统shell中的clear命令实现的相关文章

Android系统shell中的df命令实现

当我们在shell中敲击df这条命令的时候,会看到: root@android:/ # df Filesystem Size Used Free Blksize /dev 446.8M 36.0K 446.8M 4096 /mnt/secure 446.8M 0.0 K 446.8M 4096 /mnt/asec 446.8M 0.0 K 446.8M 4096 /mnt/cart0 446.8M 0.0 K 446.8M 4096 /mnt/obb 446.8M 0.0 K 446.8M 40

settings-无法再android系统setting中的actionbar中添加switch

问题描述 无法再android系统setting中的actionbar中添加switch 在系统setting中添加了一个自己的选项.可惜在界面中的actionbar上无法添加switch 系统的蓝牙setting中有相同的结构.源码的添加switch代码如下: 大神们!!!求解啊!!!!!! Activity activity = getActivity(); Switch actionBarSwitch = new Switch(activity); if (activity instanc

浅谈Android系统开发中LOG的使用

在程序开发过程中,LOG是广泛使用的用来记录程序执行过程的机制,它既可以用于程序调试,也可以用于产品运营中的事件记录.在Android系统中,提供了简单.便利的LOG机制,开发人员可以方便地使用.在这一篇文章中,我们简单介绍在Android内核空间和用户空间中LOG的使用和查看方法.         一. 内核开发时LOG的使用.Android内核是基于Linux Kerne 2.36的,因此,Linux Kernel的LOG机制同样适合于Android内核,它就是有名的printk,与C语言的

Android系统开发中log的使用方法及简单的原理_Android

在程序开发过程中,LOG是广泛使用的用来记录程序执行过程的机制,它既可以用于程序调试,也可以用于产品运营中的事件记录.在Android系统中,提供了简单.便利的LOG机制,开发人员可以方便地使用.在平时开发过程中经常需要与log打交道,所以很有必要了解log的使用方法及简单的原理. 1.linux内核的log输出 在标准的linux内核开发过程中,使用printk,这是一个与printf输出打印齐名的函数,同样提供格式化输出功能,只是其有 打印级别且将信息保存到/proc/kmsg日志中,使用c

Android系统开发中log的使用方法及简单的原理

在程序开发过程中,LOG是广泛使用的用来记录程序执行过程的机制,它既可以用于程序调试,也可以用于产品运营中的事件记录.在Android系统中,提供了简单.便利的LOG机制,开发人员可以方便地使用.在平时开发过程中经常需要与log打交道,所以很有必要了解log的使用方法及简单的原理. 1.linux内核的log输出 在标准的linux内核开发过程中,使用printk,这是一个与printf输出打印齐名的函数,同样提供格式化输出功能,只是其有 打印级别且将信息保存到/proc/kmsg日志中,使用c

shell中的管道命令及并行执行

发现在写脚本的的时候有三个符号都很有用一个是管道命令符"|",一个是并行执行命令符"&",另一个是"&&" 所谓管道,充当的作用就是连接管道的前后两个部分.具体来说就是将管道前的命令执行的结果作为管道后的输入.例如android中查看dns相关属性的时候就可以是用命令getprop |grep dns由于getprop返回的结果较多,但是并不是所有的都是我们目前所关心的,使用grep命令对getprop的输出进行过滤,只保

Android系统辅助功能中的放大手势机制介绍(Magnification Gesture Mechanism)

前言: Magnification Gesture是Android系统辅助设置中提供的一种功能,它能够提供全局任意窗口的放大浏览功能,以帮助视力不是特别好的用户也能无障碍的使用,提升用户体验.本文档基于Android4.2.2进行分析,包括从设置中开启.用户触发到机制运行一整套流程. 文章目录: 一.关于Magnification Gesture 二.与Magnification Gesture相关的系统服务启动流程 三.来自用户的操作--打开Magnification Gesture开关的执行

Android中执行java命令的方法及java代码执行并解析shell命令_Android

android中执行java命令的方法大家都晓得吗,下面一段内容给大家带来了具体解析. android的程序基于java开发,当我们接上调试器,执行adb shell,就可以执行linux命令,但是却并不能执行java命令. 那么在android的shell中是否就不能执行java程序了呢. 答案是否定的.我们可以通过app_process来执行java程序. 写一个hello world吧,就是刚开始学java的时候 写得那个hello world,这次要在android上运行. 用记事本新建

Android中执行java命令的方法及java代码执行并解析shell命令

android中执行java命令的方法大家都晓得吗,下面一段内容给大家带来了具体解析. android的程序基于java开发,当我们接上调试器,执行adb shell,就可以执行linux命令,但是却并不能执行java命令. 那么在android的shell中是否就不能执行java程序了呢. 答案是否定的.我们可以通过app_process来执行java程序. 写一个hello world吧,就是刚开始学java的时候 写得那个hello world,这次要在android上运行. 用记事本新建