⑴ android shell腳本
你是要在Android的模擬器上安裝程序是嗎?如果說的,下面的提示希望能幫到你。
1. 先確認你的環境變數的里的path變數值里有沒有sdk的目錄,如果沒有,先把這個目錄添加上去;
2. 打開你的cmd,然後輸入adb,然後點擊enter鍵,系統會出來很多代碼,不用理這個;
3. 進入你放你要安裝的apk的目錄里;
4. 然後輸入「adb install apk文件名」,最後點擊enter鍵,耐心等待系統幫你安裝了。
⑵ android 中如何去執行js腳本
android要執行腳本,只有通過本地的webview打開腳本頁面。
調用步驟
1、設置webview支持腳本
webSettings.setjavaScriptEnabled(true);
2、打開腳本頁面
mWebView.loadUrl("file:///android_asset/demo.html");//這里打開該app的asset目錄下的demo.html,裡面含有wave函數腳本
3、調用腳本
mWebView.loadUrl("javascript:wave()");//調用打開頁面中的wave函數
⑶ 安卓.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文件中定義。
⑷ 安卓智能機上執行腳本
用「GScript」軟體可以直接在手機端執行。
也可以用Recovery刷入ROM。但直接刷入手機中的話是不會直接執行的,需要recovery刷機腳本的配合。
如果能明確腳本的作用,也可以用abd來對手機操作執行。
注意:請弄清楚操作的後果再執行操作,注意備份
⑸ 安卓手機按鍵精靈連續點擊腳本
打開【按鍵精靈】,再打開的主界面左側找到【快速向導】,並且單擊它
安卓是一種基於Linux內核(不包含GNU組件)的自由及開放源代碼的操作系統。主要使用於移動設備,如智能手機和平板電腦,由美國Google公司和開放手機聯盟領導及開發。Android操作系統最初由Andy Rubin開發,主要支持手機。2005年8月由Google收購注資。2007年11月,Google與84家硬體製造商、軟體開發商及電信營運商組建開放手機聯盟共同研發改良Android系統。
智能手機,是指像個人電腦一樣,具有獨立的操作系統,獨立的運行空間,可以由用戶自行安裝軟體、游戲、導航等第三方服務商提供的程序,並可以通過移動通訊網路來實現無線網路接入的手機類型的總稱。目前智能手機的發展趨勢是充分加入了人工智慧、5G等多項專利技術,使智能手機成為了用途最為廣泛的專利產品。
⑹ android系統有沒有腳本語言
java目前還是主流,c,c++目前也只是能通過jni調用,不過谷哥未來有支持c,c++開發的動向,還有一些非主流的開發方式:如果僅是開發應用的話,perl,c#,flashair,HTML+css+js都是可以的,不過都不怎麼成熟。
HTML+css+js是屬於webAPP,網上也有一些開源的框架,例如Sencha,它可以支持跨平台,也有android的例子,有興趣的可以看看,flashair(flex)不屬於web應用,同樣也是跨平台的,但是需要用戶另外安裝運行環境。使用MonoforAndroid(原名:MonoDroid)可以讓開發人員使用VisualStudio來創建基於C#和.NET的應用程序,並且讓這些程序可運行在Android手機上。要在Android上運行perl,首先要讓Android支持Perl。所以要把環境搭好,先安裝SL4A(ScriptingLayerforAndriod),然後再安裝Perl插件,Perl腳本就能在Android系統上運行了
⑺ android怎麼實現按鍵腳本
程序經常需要調試,需要程序自動按鍵,或者某些繁瑣操作,比如游戲外掛,需要按鍵精靈來完成。
android 提供給開發者發送模擬按鍵的類Instrumentation:
public classInstrumentationextends Object
java.lang.Object
↳ android.app.Instrumentation
Known Direct
可以模擬發送很多事件(這些方法寫在thread類里,所以部分帶有thread的sleep方法):
發送back事件:
private void back()
{
inst.sendKeyDownUpSync(KeyEvent.KEYCODE_BACK);
}
復制代碼
發送enter事件:(在keyevent中有很多按鍵碼,該方法可以發送任何按鍵的事件)
private void enter() throws InterruptedException
復制代碼
{
inst.sendKeyDownUpSync(KeyEvent.KEYCODE_NUMPAD_ENTER);
sleep(500);
}
復制代碼
根據坐標點發送點擊事件:
private void click(int x ,int y) throws InterruptedException
{
inst.sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis(),
<span style="white-space:pre"> </span>SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN, x, y, 0));
sleep(500);
inst.sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis(),
SystemClock.uptimeMillis(), MotionEvent.ACTION_UP, x, y, 0));
}
復制代碼
根據坐標發送長按事件:
private void longClick(int x, int y) throws InterruptedException{
inst.sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis(),
SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN, x, y, 0));
sleep(2000);
inst.sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis(),
SystemClock.uptimeMillis(), MotionEvent.ACTION_UP, x, y, 0));
}
復制代碼
發送向下事件:
private void move() throws InterruptedException
{
inst.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_DOWN);
sleep(500);
inst.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_DOWN);
sleep(500);
}
⑻ android 中怎麼執行js腳本
android要執行腳本,只有通過本地的webview打開腳本頁面。
調用步驟
1、設置webview支持腳本
webSettings.setJavaScriptEnabled(true);
2、打開腳本頁面
mWebView.loadUrl("file:///android_asset/demo.html");//這里打開該app的asset目錄下的demo.html,裡面含有wave函數腳本
3、調用腳本
mWebView.loadUrl("javascript:wave()");//調用打開頁面中的wave函數
⑼ Android 講述執行怎樣執行shell腳本
一、Android應用啟動服務執行腳本
1 如何寫服務和腳本
在android源碼根目錄下有/device/tegatech/tegav2/init.rc文件相信大家對這個文件都不陌生(如果不明白就仔細研讀下android啟動流程)。如果在該腳本文件中添加諸如以下服務:
service usblp_test /data/setip/init.usblpmod.sh
oneshot
disabled
註解:每個設備下都會有自己對應的init.rc,init.設備名.rc腳本文件。oneshot disabled向我們說明了在系統啟動的時候這個服務是不會自動啟動的。並且該服務的目的是執行/data/setip/init.usblpmod.sh腳本。腳本的內容你可以隨便寫,只要符合shell語法就可以了,比如腳本可以是簡單的設置eth0:
# ! /system/bin/sh //腳本的開頭必須這樣寫。
Ifconfig eth0 172.16.100.206 netmask 255.255.0.0 up//設置ip的命令
2、如何在應用中啟動服務
1)首先了解下在服務啟動的流程
1. 在你的應用中讓init.rc中添加的服務啟動起來。
首先了解下在服務啟動的流程:
在設備目錄下的init.c(切記並不是system/core/init/init.rc)
Main函數的for(;;)循環中有一個handle_property_set_fd(),函數:
for (i = 0; i < fd_count; i++) {
if (ufds[i].revents == POLLIN) {
if (ufds[i].fd == get_property_set_fd())
handle_property_set_fd();
else if (ufds[i].fd == get_keychord_fd())
handle_keychord();
else if (ufds[i].fd == get_signal_fd())
handle_signal();
}
}
這個函數的實現也在system/core/init目錄下,該函數中的check_control_perms(msg.value, cr.uid, cr.gid)函數就是檢查該uid是否有許可權啟動服務(msg.value就是你服務的名字),如果應用為root或system用戶則直接返回1.之後就是調用handle_control_message((char*) msg.name + 4, (char*) msg.value),該函數的參數就是去掉1.ctl.後的start和2.你服務的名字。這個函數的詳細內容:
void handle_control_message(const char *msg, const char *arg)
{
if (!strcmp(msg,"start")) {
msg_start(arg);
} else if (!strcmp(msg,"stop")) {
msg_stop(arg);
} else if (!strcmp(msg,"restart")) {
msg_stop(arg);
msg_start(arg);
} else {
ERROR("unknown control msg '%s'\n", msg);
}
}
匹配start後調用msg_start.服務就這樣起來了,我們的解決方案就是在檢查許可權的地方「下點功夫」,因為我們不確定uid,所以就讓check_control_perms這個函數不要檢查我們的uid,直接檢查我們服務的名字,看看這個函數:
static int check_control_perms(const char *name, unsigned int uid, unsigned int gid) {
int i;
if (uid == AID_SYSTEM || uid == AID_ROOT)
return 1;
/* Search the ACL */
for (i = 0; control_perms[i].service; i++) {
if (strcmp(control_perms[i].service, name) == 0) {
if ((uid && control_perms[i].uid == uid) ||
(gid && control_perms[i].gid == gid)) {
return 1;
}
}
}
return 0;
}
這個函數裡面是必須要檢查uid的,我們只要在for循環上寫上。
if(strcmp(「usblp_test」,name)==0) //usblp_test就是我們服務的名字。
return 1;
這樣做不會破壞android原本的結構,不會有什麼副作用。
init.c和init.rc都改好了,現在就可以編譯源碼了,編譯好了裝到機子開發板上就可以了。
⑽ 如何讓Android系統或Android應用執行shell腳本
android系統執行shell腳本,需要首先確認用戶具有修改shell的許可權,使用 process來執行指令,如下代碼:
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();
}
}