能调用哪些命令?

一般性的, 最常用的命令都能调用, 比如cat, cp, top, ls, ps命令, 但用法和linux上的有较大区别, 可通过–help/-h查询具体的命令用法;
我熟知linux terminal命令行, 但如何知道android都有哪些常用命令呢?
首先, 需要知道默认android使用toolbox提供扩展命令, 里面内置的命令少的可怜, 不同api版本也不同, 具体有哪些, 可以针对对应版本通过adb shell命令连接真机或模拟器测试, 也可以查看https://android.googlesource.com/platform/system/core/+/对应版本/toolbox/目录下的罗列;
其次, 有些定制机型采用了busybox代替toolbox, busybox提供了非常丰富的unix命令集, 可谓麻雀虽小但五脏俱全, 那么也可针对这种机型使用更确实的命令, 但我目前的观点是, toolbox支持的命令, busybox都支持, 也就是如果想要兼容, toolbox是最小的子集;
再次, 回到toolbox上, 我们还需要知道, 从android源码的变迁来看, 4.2及其以后提供了grep命令, 5.0开始使用netbsd的一个bin子集代替自己的实现, 包括grep, 6.0则换成了toybox(在源码的external/toybox/)来提供grep/cp等命令的实现, 后面可能还会发生变化;
最后, shell内置的命令, 如pwd, echo等在4.0-4.4上还在/system/core/sh/builtins.c里, 但到5.x上不知道在哪里实现了, 很囧啊, 有知道的还望告诉我啊. 6.0则一并挪到了external/toybox/toys/posix/下;

java层程序怎么调用?

确认能调用某个命令后, 怎么在程序中调用呢? 这里我只想提及两点:
1. 测试是否有此权限;
2. 使用

Runtime.getRuntime().exec(new String[]{"sh", "-c", "top -t -n 1 -d 0"});

代替

Runtime.getRuntime().exec("top -t -n 1 -d 0");

更多相关文章

  1. 浅谈iOS和Android系统版本的迭代
  2. 2019年Android版本分布(市场占有率、市场份额)统计
  3. android展讯平台重要的打包命令及生成镜像文件的Linux命令
  4. cocos2dx 2.0版本在android下的安装配置问题
  5. android如何统一aar/jar/moudle中引用依赖库版本不一致的问题
  6. Android 轻松实现后台搭建+APP版本更新
  7. [android]命令行向虚拟机发短信打电话
  8. Android百度地图——SDK版本v2.0.0初探
  9. Android学习App调试的几个命令实践

随机推荐

  1. Android(安卓)Bluetooth初始化流程
  2. PullToRefreshLayout +RecyclerView 实现
  3. android 权限示例
  4. android 水平(左右)滚动 HorizontalScrollV
  5. Android(安卓)RadioGroup RadioButton的
  6. Android(安卓)NDK各版本下载
  7. Android页面启动 editext获取焦点 scroll
  8. 安卓NDK的开发
  9. android源码分享
  10. android Style应用