Posts List
  1. Linux(Ubuntu)
    1. ssh 登录远程机器
    2. scp 远程机器与本地进行文件复制传输
    3. crontab 定时任务
    4. awk 强大的文本分析工具
    5. 时间同步
    6. Virtual Box 调整磁盘大小
  2. Android
    1. monkey 随机测试工具
    2. 内存泄漏检查
    3. NDK开发时,std::string显示不全问题

Linux(Ubuntu),Android日常工作碎碎念

此篇文章仅用于记录一些在使用Linux进行日常工作过程中,比较有用,能提高效率或解决问题的知识点,技术点.写大篇幅觉得浪费,不写又容易忘记.于是统一记录到此碎碎念中.

Linux(Ubuntu)

ssh 登录远程机器

1
$ ssh username@192.168.1.2

scp 远程机器与本地进行文件复制传输

1
$ scp

crontab 定时任务

1
2
$ crontab -e # 编辑定时任务
$ crontab -l # 列出当前任务

awk 强大的文本分析工具

使用方法

1
2
3
4
5
6
7
8
9
10
11
$ awk '{pattern + action}' {filenames}
$ awk '{print $1}'
# 例如
$ echo "text1 text2 text3" | awk '{print $0}'
# 输出
$ text1 text2 text3
$ echo "text1 text2 text3" | awk '{print $2}'
# 输出
$ text1

awk甚至可以使用条件判断,循环,变量等完成工作.更详情的内容可自行搜索

时间同步

在使用crontab之前,首先要保证本机的时间正确.最简单的办法是直接与网络时间服务器同步一下即可.
常用服务器如下:

  • 中国国家授时中心:210.72.145.44
  • NTP服务器(上海) :ntp.api.bz
    1
    $ sudo ntpdate -u ntp.api.bz

如果没有网络,则可以通过date命令自己手动调整时间

Virtual Box 调整磁盘大小

1
$ vboxmanage modifyhd xxx.vid --resize size_in_mb

例如希望将磁盘大小修改为100G

1
$ vboxmanage modifyhd ubuntu.vid --resize 102400

调整好磁盘大小好,还需要进入系统调整分区大小,否则新增加的空间依旧无法使用
Windows 可以采用自带的分区工具,
Linux 系列则可以使用 GParted 工具进行分区,如果是非图形界面,则考虑采用 Linux 安装盘进入图形界面进行分区。当然如果比较厉害,那么请使用 fdisk 及 resize2fs 进行分区 =。=

Android

monkey 随机测试工具

每一次发布版本或者提交功能前,使用monkey经常可以跑出一些潜在的问题,非常有用.

1
2
3
4
5
6
7
8
9
# 启动, 将$packagename改成自己的应用包名即可.
# 最后一句报告输出可不要,默认输出在终端上,默认报异常时结束
$ adb shell monkey -p $packagename -v --throttle 25 -s $seed $count --bugreport $logdir/report.log
# 停止
# 采用kill掉进程的方式.
# 先查看monkey在设备上的进程号,然后kill掉设备上对应的进程号$pid即可
$ adb shell ps | grep monkey
$ adb shell kill $pid

结合前面提到的awk命令,组合一下可以写成一个脚本用于每次结束monkey时调用

1
2
3
#!/bin/bash
# monkey_stop.sh
adb shell kill `adb shell ps | grep monkey | awk '{print $2}'`

内存泄漏检查

多次打开APP,并退出后,调用以下命令,查看结果.
如果ViewsActivities的结果不为0,则说明存在内存泄漏情况.
需要结合Android Device MonitorLeakCanary进行排查

1
$ adb shell dumpsys meminfo $packagename

NDK开发时,std::string显示不全问题

在进行 NDK 开发的时候,当对std::string 变量进行Copy Value操作或者在 lldb 中进行 po 操作时
会发现,当字符串长度超过 300 个字符时,复制出来的字符串最后几位是...
出现这个问题其实是lldb的限制 300 个字符输出的限制,把这个重新设置一下就好。

在 Native Debug 状态下进行断点,然后切换到lldb 标签页,输入以下命令

1
$ set set target.max-string-summary-length 10000

然后运行至需要查看变量的代码行,这时候再Copy Value或者在lldb中进行po操作
拿到的字符串就是完整的了。

本文作者:JeremyHe
本文链接:https://alzz.me/posts/2016/06/06/15_nag_about-linux-ubuntu-android/
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!

联系作者
微信。◕‿◕。