资源描述:
《Android 讲述执行怎样执行shell脚本.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、由麦可网整理,转载请注明出处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是我自己创建
2、的一个文件夹.如果失败了,说是只有只读权限的话,需要修改文件夹的权限.具体如下:进入adbshell,使用mount命令查看挂了哪些块.Java代码:C:DocumentsandSettingsKenshintang>adbshell#mountmountrootfs/rootfsro00tmpfs/devtmpfsrw,mode=75500devpts/dev/ptsdevptsrw,mode=60000proc/procprocrw00sysfs/syssysfsrw00tmpfs/sqlite_stmt_journalstmpfsrw,size=4096k00/dev/bloc
3、k/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
4、 -o选项用来描述设备或者档案的挂接方式,常用的有 loop:用来把一个文件当成硬盘分区挂接上系统 ro:采用只读方式挂接设备 rw:采用读写方式挂接设备 具体的用法可以googlelinux命令mout的用法. 上面那句话的意思就是让/system文件夹有读写的权限 2.cd到shell所在的文件夹,查看x.sh的权限,一般上传上去的话是没有执行权限的,可以用ls-l查看使用chmod777x.sh增加权限,具体可以googlechmod的用法. 3.执行./x.sh 4.如何在程序中执行shellJava代码:Java代码1packageeoe.kenshin.he
5、llocommand;23由麦可网整理,转载请注明出处12importjava.io.BufferedReader;34importjava.io.IOException;56importjava.io.InputStream;78importjava.io.InputStreamReader;910importandroid.app.Activity;1112importandroid.os.Bundle;1314importandroid.widget.TextView;151617181920publicclassHelloCommandextendsActivity{2122/*
6、*Calledwhentheactivityisfirstcreated.*/2324privateTextViewtv;25262728@Override2930publicvoidonCreate(BundlesavedInstanceState){3132super.onCreate(savedInstanceState);3334setContentView(R.layout.main);3536tv=(TextView)findViewById(R.id.tv01);37383940try{4142execCommand("./data/kenshin/x.sh");4344}
7、catch(IOExceptione){由麦可网整理,转载请注明出处12//TODOAuto-generatedcatchblock34e.printStackTrace();56}78}9101112publicvoidexecCommand(Stringcommand)throwsIOException{1314//startthelscommandrunning1516//String[]args=newString[]{"s