① android程序執行shell命令是shell許可權嗎,如果不是該怎麼用shell許可權來執行可執行文件
shell只是一個人機界面,到底以shell什麼用戶執行,看看你那文件許可權,是否該該用戶有執行許可權先。你說的很模糊。
② 安卓.sh和.rc腳本的區別
rc是android初始化腳本,用android init language編寫,通過init程序來執行。sh是linux裡面的shell腳本,可以在sh或者 bash裡面執行。
在Android中使用啟動腳本init.rc,可以在系統的初始化中進行簡單的操作。
init.rc啟動腳本路徑:system/core/rootdir/init.rc
內容:
Commands:命令
Actions:動作
Triggers:觸發條件
Services:服務
Options:選項
Properties:屬性
Commands是一些基本操作。如:
mkdir /system
mkdir /data 0771 system system
mkdir /persist 0771 system system
devwait /dev/block/mmcblk0p12
mount ext3 /dev/block/mmcblk0p
Action表示一系列命令,通常在Triggers中調用,如:
on init //表示一個觸發條件
sysclktz 0
loglevel 3
# setup the global environment
export PATH /sbin:/system/sbin:/system/bin:/system/xbin
export LD_LIBRARY_PATH /system/lib
export ANDROID_BOOTLOGO 1
Services通常表示啟動一個可執行程序,Options是服務的附加內容,用於配合服務使用。
service vold /system/bin/vold //vold是服務名稱,/system/bin/vold是所對應的可執行程序。
socket vold stream 0660 root mount //socket是配合服務使用的選項
ioprio be 2
service netd /system/bin/netd
socket netd stream 0660 root system
配合服務使用的選項有socket,user,group,oneshot。
oneshot表示該服務只啟動一次,而如果沒有oneshot選項,這個可執行程序將一直存在——如果可執行程序被殺死,則會重新啟動。
Properties是系統中使用的一些值,可以進行設置和讀寫。
setprop ro.HIDDEN_APP_MEM 5120 //setprop用於設置屬性
setprop ro.CONTENT_PROVIDER_MEM 5632
setprop ro.EMPTY_APP_MEM 6144
...
on property:ro.kernel.qemu=1 //on property用於判斷屬性
start adbd
這里的屬性在整個android系統運行中都是一致的。
init腳本的關鍵字可以參考init進程中的system/core/init/keyword.h文件。如:
KEYWORD(chroot, COMMAND, 1, do_chroot) //chroot是命令,do_chroot()是調用的函數,這個函數在init進程中的system/core/init/builtins.c文件中定義。
③ android 的shell中如何使用while和for,我需要實現100次循環dd命令。
你這種for loop語句適用於bash,在android默認sh中是會報語法錯誤的。
腳本:
#!/system/bin/bash
for ((i=1;i<100;i++)
do
循環體語句
done
④ android shell腳本
你是要在Android的模擬器上安裝程序是嗎?如果說的,下面的提示希望能幫到你。
1. 先確認你的環境變數的里的path變數值里有沒有sdk的目錄,如果沒有,先把這個目錄添加上去;
2. 打開你的cmd,然後輸入adb,然後點擊enter鍵,系統會出來很多代碼,不用理這個;
3. 進入你放你要安裝的apk的目錄里;
4. 然後輸入「adb install apk文件名」,最後點擊enter鍵,耐心等待系統幫你安裝了。
⑤ android shell中提示 [ : not found如何解決,本人新手望大神不吝賜教
使用mv命令對於只讀文件是不可行的,如果你是要將文件在pc機和你的android目標機之間進行傳輸最簡單的方法是使用pull或者push,如果你是在你android目標機內部的不同文件夾下進行文件復制,最簡單的方法是使用cat <local> > <remote>,其中<local>代表你要拷貝的文件,<remote>表示你需要拷貝到的地方。例如"cat test.txt > /sdcard/test.txt 「 可以將當前文件夾下的test.txt拷貝至/sdcard下面。
⑥ Android,sh腳本,文件路徑提示不存在No such file or directory,
看看是不是沒有許可權去訪問那個文件夾
⑦ 如何讓Android系統或Android應用執行shell腳本
android系統執行shell腳本,需要首先確認用戶具有修改shell的許可權,使用 process來執行指令,如下代碼:
java">publicvoidexecShell(Stringcmd){
try{
//許可權設置
Processp=Runtime.getRuntime().exec("su");//開始執行shell腳本
//獲取輸出流
OutputStreamoutputStream=p.getOutputStream();
=newDataOutputStream(outputStream);
//將命令寫入
dataOutputStream.writeBytes(cmd);
//提交命令
dataOutputStream.flush();
//關閉流操作
dataOutputStream.close();
outputStream.close();
}
catch(Throwablet)
{
t.printStackTrace();
}
}
⑧ com.android.shell是什麼意思
某個應用的包名而已,com.android.obs.shell應該是android中的shell模擬器的應用程序。
⑨ android 7.0 shell 執行sh腳本,提示不存在
不能用 「.」 ,要用 source .
⑩ android的shell有啥用
android 底層驅動實際linux, linux中大量使用了shell。那 shell到底是什麼東西呢?個人理解相當於windows中的
cmd,但是shell很強大,如果你能熟練使用shell,在android開發中如虎添翼。
下面就android常用的shell進行一下說明:
1. cd (change directory)
如: cd / 跳轉到根目錄 cd ~ 跳轉到用戶所在的目錄
2. ls (list)
顯示目錄結構
3. chmod 777 path
在開發過程中,如果發現文件不能讀寫,首先應該想到是否給user許可權,可以通過該命令試試看
改變目錄屬性,如果目錄下面還有子目錄,加上-R
4. chown 該變目錄所有者
如果目錄還有子目錄,加上-R
5. rm 目錄
如果是文件加上-f
如果是目錄加上-r
6. find
找文件,如果找到R.java文件,然後刪除它
find . -name R.java|args rm -rf
find . -name *.svn|xargs rm -rf
find . -name *.class|xargs rm -rf
7. 替換,如某個文件中根據某個模式替換某行
如下命令就是找到FPTitlebar.java這個java文件,找不到// pm.shutDown();,用pm.shutDown();替換之。
find . -name FPTitlebar.java -exec sed -i 's\// pm.shutDown();\ pm.shutDown();\' {} \;
比較難的如下所示:
find . -name *.java -exec sed -i 's\KeyEvent.KEYCODE_2\KeyEvent.KEYCODE_CAMERA \g ' {} \;
find . -name *.java -exec sed -i 's\KeyEvent.KEYCODE_1\KeyEvent.KEYCODE_CALL \g ' {} \;
找到所有的java文件,用KeyEvent.KEYCODE_CAMERA替換KeyEvent.KEYCODE_2
8. 編譯android源碼時實際也是執行shell命令:
//執行build 目錄下envsetup.sh命令
. build/envsetup.sh
//彈出選擇框,分別選擇第一個,第一個,第五個,第三個
choosecombo 1 1 5 3
//設置環境變數
export ANDROID_JAVA_HOME=$JAVA_HOME
//執行update命令
make update-api
//起4 個線程同時編譯
make -j 4
9. 如果你使用了第三so包,需要在android編譯,直接在mk文件中添加如下設置即可:
如下所示:
1. 聲明library名稱
###############################
LOCAL_STATIC_JAVA_LIBRARIES := xstream
###############################
2. 加入引入的庫文件
###############################
include $(CLEAR_VARS)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := xstream:xstream-1.3.1.jar
include $(BUILD_MULTI_PREBUILT)
###############################