在android中通过java层程序调用命令行的一些备注
来源:互联网 发布:最好的桌面主题软件 编辑:程序博客网 时间:2024/05/16 13:47
能调用哪些命令?
一般性的, 最常用的命令都能调用, 比如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");
- 在android中通过java层程序调用命令行的一些备注
- C# 中通过程序调用命令行Ping 网络的实现
- 在java中调用操作系统的命令行
- NativeActivity通过jni调用java层的Android API
- NativeActivity通过jni调用java层的Android API
- Android Studio NDK 开发之在Native中调用java层的函数
- 【iOS-cocos2d-X 游戏开发之十三】详细讲解在Xcode中利用预编译并通过Jni调用Android的Java层代码(cocos2dx里访问调用Android函数)!
- 【iOS-cocos2d-X 游戏开发之十三】详细讲解在Xcode中利用预编译并通过Jni调用Android的Java层代码(cocos2dx里访问调用Android函数)!
- VS2010 通过Jni调用Android的Java层代码(cocos2dx里访问调用Android函数)!
- 在命令行中运行java程序的步骤
- 如何在命令行中运行java程序
- Android在自己的程序中调用外部程序
- Android在自己的程序中调用外部程序
- Cocos2d-x学习之通过Jni调用Android的Java层代码
- Cocos2d-x3.3RC0通过JNI调用Android的Java层URI代码发送短信
- Cocos2d-x3.3RC0通过JNI调用Android的Java层代码,实现分享功能
- java程序通过命令行执行
- 在命令行环境Java程序调用导入的jar包中的类
- HDU 4514并查集判环+最长路
- Matlab实现线性回归和逻辑回归: Linear Regression & Logistic Regression
- 案例学习: MapReduce
- 简易HTTP服务器的实现
- MySQL relay_log_purge=0 时的风险
- 在android中通过java层程序调用命令行的一些备注
- C语言 有/无符号数 需要注意的问题
- bzoj 3206: [Apio2013]道路费用 最小生成树
- 动态规划之最少硬币
- margin与padding
- MATLAB数据处理快速学习教程
- 记于2016.4.6
- NSInvocation在获取返回值后crash问题
- 【有毒的设计模式】模板方法模式