如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
由麦可网整理,转载请注明出处Android讲述执行怎样执行shell脚本1.新建自己的shell文件,或者中windows上传例如:d:\\x.sh#!/system/bin/sh#最简单的一个shell,没什么功能#需要注意的是必须是#!/system/bin/sh开头(有空格)#和一般linux不同,如果用#!/bin/sh就会找不到(因为没有)在cmd中用adbpushd:\\x.sh/data/kenshin上传shell第一个参数是本地文件位置,第二个是远程位置(也就是放在Android中的位置),在根目录的data目录下,kenshin是我自己创建的一个文件夹.如果失败了,说是只有只读权限的话,需要修改文件夹的权限.具体如下:进入adbshell,使用mount命令查看挂了哪些块.Java代码:C:\DocumentsandSettings\Kenshintang>adbshell#mountmountrootfs/rootfsro00tmpfs/devtmpfsrw,mode=75500devpts/dev/ptsdevptsrw,mode=60000proc/procprocrw00sysfs/syssysfsrw00tmpfs/sqlite_stmt_journalstmpfsrw,size=4096k00/dev/block/mtdblock0/systemyaffs2ro,noatime,nodiratime00/dev/block/mtdblock1/datayaffs2rw,nosuid,nodev00/dev/block/mtdblock2/cacheyaffs2rw,nosuid,nodev00复制代码比如/dev/block/mtdblock0/system就是只读的,/dev/block/mtdblock1/data是读写的修改读写权限用mount命令例如mount-tyaffs2-oremount,rw,noatime,nodiratime/dev/mtdblock0/system-o选项用来描述设备或者档案的挂接方式,常用的有loop:用来把一个文件当成硬盘分区挂接上系统ro:采用只读方式挂接设备rw:采用读写方式挂接设备具体的用法可以googlelinux命令mout的用法.上面那句话的意思就是让/system文件夹有读写的权限2.cd到shell所在的文件夹,查看x.sh的权限,一般上传上去的话是没有执行权限的,可以用ls-l查看使用chmod777x.sh增加权限,具体可以googlechmod的用法.3.执行./x.sh4.如何在程序中执行shellJava代码:Java代码packageeoe.kenshin.hellocommand;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;importandroid.app.Activity;importandroid.os.Bundle;importandroid.widget.TextView;publicclassHelloCommandextendsActivity{/**Calledwhentheactivityisfirstcreated.*/privateTextViewtv;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);tv=(TextView)findViewById(R.id.tv01);try{execCommand("./data/kenshin/x.sh");}catch(IOExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}publicvoidexecCommand(Stringcommand)throwsIOException{//startthelscommandrunning//String[]args=newString[]{"sh","-c",command};Runtimeruntime=Runtime.getRuntime();Processproc=runtime.exec(com