Android Shell原理

本文介绍了Android Shell的实现原理,包括shell解释器如何处理内置和扩展命令。核心在于system/core/sh目录下的源码,其中toolbox负责扩展命令的执行。添加自定义命令只需在system/core/toolbox创建相应.c文件并实现_main函数。另外,Android系统中还引入了busybox,可以通过修改init.rc将busybox设置为默认shell,并调整PATH环境变量。
摘要由CSDN通过智能技术生成

 

 


 

shell实现分为两部分:

一、shell解释器和内置命令

源码位于system/core/sh目录下,主要完成shell命令的解释查找,对于builtins.c中包含的内置命令,直接执行,对于toolbox的扩展命令,间接调用toolbox程序完成。

 

ps:android2.2中已经使用了system/core/mksh作为默认解释器了

 

二、toolbox扩展命令

主要完成扩展命令的执行,每一个扩展命令对应一个name_main函数,如ls命令,对应ls_main函数。同时,每一个扩展命令都由一个system/core/toolbox/目录下面的.c文件实现。toolbox.c会根据这个目录下面的.c文件生成tools.h头文件,并在system/core/toolbox/Android.mk文件中为每个命令生成指向toolbox的连接。toolbox的实现结构使它扩展一个命令很容易。

假设现在我们自己想手工添加一个shell命令mycommand,只要在system/core/toolbox/目录下面新建一个mycommand.c文件,并在里面实现一个mycommand_main函数,然后在system/core/toolbox/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值