企业网站建设的三个核心问题,网站收录很高,信阳建设企业网站公司,杭州建站平台htop来源于top#xff0c;top是Unix/linux下功能强大的性能检测工具之一#xff0c;用于实时检测并统计进程的属性和状态#xff0c;基于ncurses库#xff0c;可上显示文字界面。但是top已经非常陈旧#xff0c;不支持鼠标点击操作#xff0c;不支持查看进程的各个子线程…htop来源于toptop是Unix/linux下功能强大的性能检测工具之一用于实时检测并统计进程的属性和状态基于ncurses库可上显示文字界面。但是top已经非常陈旧不支持鼠标点击操作不支持查看进程的各个子线程的信息(对于我来说这个非常重要有助于分析代码的效率并优化)不支持color显示易用性较差(曾有人提出改进top但未被接受)。htop官网对htop和top的比较2、htop源码下载网站首页源码下载git cloneGitHub地址目前最新版本是2.0.1次之2.0.0再次之1.0.33、使用ndk进行交叉编译3.1下载ndk不同的Android版本有不同的ndk4.4使用的是android-ndk-r9b-linux-x86_64.tar.bz2();android5.0的NDK下载地址()3.2解压android-ndk-r9b-linux-x86_64.tar.bz2并安装交叉编译工具安装之后就按照正常的linux交叉编译流程操作就可以了$./make-standalone-toolchain.sh--archarm --ndk-dir/home/klaus/tools/android-ndk-r9b --systemlinux-x86_64--install-dir/home/klaus/tools/android-ndk-r9b --platformandroid-19这样就将交叉编译工具安装到/home/klaus/tools/android-ndk-r9b3.3交叉编译ncurseshtop编译时必须有ncurses库的支持所以编译htop之前必须先编译ncurses。下载ncurses:$./configureCCarm-linux-androideabi-gcc-4.6 --prefix$PWD/system--hostarm-linux-androideabi --with-sharedCPPFLAGS-I/home/klaus/tools/android-ndk-r9b/sysroot/usr/include$make make installnotea、出现下图错误修改b、出现下图错误执行$makeclean$./configureCCarm-linux-androideabi-gcc-4.6 --prefix$PWD/system--hostarm-linux-androideabi --with-sharedCPPFLAGS-I/home/klaus/tools/android-ndk-r9b/sysroot/usr/include如果还有这个错误重启一下机器3.4、交叉编译htop2.0.1版本klausserver:~/tools/htop-2.0.1$./autogen.shklausserver:~/tools/htop-2.0.1$ ./configure--prefix/home/klaus/tools/htop-2.0.1/system --hostarm--bindir/home/klaus/tools/htop-2.0.1/system/xbin--with-sysroot/home/klaus/tools/android-ndk-r9b/sysrootCCarm-linux-androideabi-gcc-4.6 CFLAGS-I/home/klaus/tools/ncurses-6.0/system/include-I/home/klaus/tools/ncurses-6.0/system/include/ncurses-I/home/klaus/tools/android-ndk-r9b/sources/android/support/includeLDFLAGS-L/home/klaus/tools/ncurses-6.0/system/lib --disable-unicode出现以下错误是由于configure文件在检查libncurses库时出现了问题分析configure.ac文件发现如下在disable-unicode时检查libncurses6.so库。此时我们查看以下我们交叉编译之后的ncurses的install目录是否有libncurses6.so文件很显然是没有的所以我们需要建立一个软连接然后进入htop2.0.1再次执行configure配置命令然后编译、安装如果编译时出现以下错误此时按照下图执行注释掉HAVE_LINUX_AFFINITY即可编译通过至此htop编译成功3.4.1、将编译好的文件拷贝到Android设备上去运行使用adb通过usb进入Android设备的shell将编译好的ncurses和htop拷贝到system目录下由于Android的system目录是只读的需要remount我是在windows下开发的从linux主机上拷贝到Android设备需要借助window而window对目录是不区分大小写的所以需要对linux上的内容进行压缩然后在Android上解压。拷贝文件到Android由于data目录下有system目录为了不影响system另外建立了一个目录cmd_htop用于解压拷贝htop应用程序及相关文件到/system此时可以执行htop命令但是会有错误需要执行环境变量如下执行htop命令如下以上红色部分就是htop的执行效果至此htop2.0.1移植到Android成功。3.5、交叉编译htop1.0.3版本编译和2.0.1的版本差不多klausserver:~/tools/htop-1.0.3$./configure --prefix/home/klaus/tools/htop-1.0.3/system --hostarm--bindir/home/klaus/tools/htop-1.0.3/system/xbin--with-sysroot/home/klaus/tools/android-ndk-r9b/sysrootCCarm-linux-androideabi-gcc-4.6 CFLAGS-I/home/klaus/tools/ncurses-6.0/system/include-I/home/klaus/tools/ncurses-6.0/system/include/ncursesLDFLAGS-L/home/klaus/tools/ncurses-6.0/system/lib --disable-unicode如果编译出现以下错误按照下面的执行增加#includemake编译出现以下错误时执行以下操作注释掉HAVE_NATIVE_AFFINITY增加#defineSYS_ioprio_get __NR_ioprio_get#defineSYS_ioprio_set __NR_ioprio_set然后再编译然后将压缩安装目录system为system1.0.3.tar.gz将system1.0.3.tar.gz拷贝到Android下4、使用方法详细应用请man htop查阅。选择某一进程按s:用strace追踪进程的系统调用P、T、M和top下是一样的按CPU,Time、Memory使用排序。下面有F1~F10的功能和对应的字母快捷键。ShortcutKeyFunctionKeyDescriptionhF1Invoke htopHelpSF2Htop SetupMenu/F3Search for aProcessIF4Invert SortOrdertF5Tree ViewF6Sort by acolumn[F7Nice -(change priority)]F8Nice (changepriority)kF9Kill aProcessqF10Quit htop