日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

整合后台服务和驱动代码注入

發(fā)布時(shí)間:2023/11/30 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 整合后台服务和驱动代码注入 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

整合后臺服務(wù)和驅(qū)動(dòng)代碼注入

Home鍵的驅(qū)動(dòng)代碼:
/dev/input/event1: 0001 0066 00000001
/dev/input/event1: 0000 0000 00000000
/dev/input/event1: 0001 0066 00000000
/dev/input/event1: 0000 0000 00000000
?
對應(yīng)輸入的驅(qū)動(dòng)代碼:
sendevent/dev/input/event1 0 0 0
sendevent/dev/input/event1 1 102 1
sendevent/dev/input/event1 0 0 0
sendevent/dev/input/event1 1 102 0
sendevent/dev/input/event1 0 0 0
sendevent /dev/input/event1 0 0 0
?
從主頁點(diǎn)擊QQ圖標(biāo)啟動(dòng)QQ的驅(qū)動(dòng)代碼:
/dev/input/event4: 0001 014a 00000001
/dev/input/event4: 0003 0030 00000001
/dev/input/event4: 0003 0035 00000053
/dev/input/event4: 0003 0036 00000394
/dev/input/event4: 0000 0002 00000000
/dev/input/event4: 0000 0000 00000000
/dev/input/event4: 0003 0030 00000001
/dev/input/event4: 0003 0035 00000052
/dev/input/event4: 0003 0036 00000394
/dev/input/event4: 0000 0002 00000000
/dev/input/event4: 0000 0000 00000000
/dev/input/event4: 0003 0030 00000001
/dev/input/event4: 0003 0035 00000052
/dev/input/event4: 0003 0036 00000394
/dev/input/event4: 0000 0002 00000000
/dev/input/event4: 0000 0000 00000000
/dev/input/event4: 0001 014a 00000000
/dev/input/event4: 0000 0002 00000000
/dev/input/event4: 0000 0000 00000000
對應(yīng)輸入的驅(qū)動(dòng)代碼:
sendevent/dev/input/event4 0 0 0
sendevent/dev/input/event4 1 330 1
sendevent/dev/input/event4 3 48 1
sendevent/dev/input/event4 3 53 83
sendevent/dev/input/event4 3 54 916
sendevent/dev/input/event4 0 2 0
sendevent/dev/input/event4 0 0 0
sendevent/dev/input/event4 3 48 1
sendevent/dev/input/event4 3 53 82
sendevent/dev/input/event4 3 54 916
sendevent/dev/input/event4 0 2 0
sendevent/dev/input/event4 0 0 0
sendevent/dev/input/event4 3 48 1
sendevent/dev/input/event4 3 53 82
sendevent/dev/input/event4 3 54 916
sendevent/dev/input/event4 0 2 0
sendevent/dev/input/event4 0 0 0
sendevent/dev/input/event4 1 330 0
sendevent/dev/input/event4 0 2 0
sendevent/dev/input/event4 0 0 0
sendevent/dev/input/event4 0 0 0
?
輸入的驅(qū)動(dòng)代碼優(yōu)化:
sendevent /dev/input/event4 0 0 0
sendevent /dev/input/event4 1 330 1
sendevent /dev/input/event4 3 53 83
sendevent /dev/input/event4 3 54 916
sendevent /dev/input/event4 0 0 0
sendevent /dev/input/event4 1 330 0
sendevent /dev/input/event4 0 0 0
sendevent /dev/input/event4 0 0 0
?
在彈出的輸入法上點(diǎn)擊字母n
/dev/input/event4: 0001 014a 00000001
/dev/input/event4: 0003 0030 00000001
/dev/input/event4: 0003 0035 00000205
/dev/input/event4: 0003 0036 00000463
/dev/input/event4: 0000 0002 00000000
/dev/input/event4: 0000 0000 00000000
/dev/input/event4: 0003 0030 00000001
/dev/input/event4: 0003 0035 00000205
/dev/input/event4: 0003 0036 00000463
/dev/input/event4: 0000 0002 00000000
/dev/input/event4: 0000 0000 00000000
/dev/input/event4: 0003 0030 00000001
/dev/input/event4: 0003 0035 00000205
/dev/input/event4: 0003 0036 00000463
/dev/input/event4: 0000 0002 00000000
/dev/input/event4: 0000 0000 00000000
/dev/input/event4: 0001 014a 00000000
/dev/input/event4: 0000 0002 00000000
/dev/input/event4: 0000 0000 00000000
對應(yīng)輸入的驅(qū)動(dòng)代碼:
sendevent/dev/input/event4 0 0 0
sendevent/dev/input/event4 1 330 1
sendevent/dev/input/event4 3 48 1
sendevent/dev/input/event4 3 53 517
sendevent/dev/input/event4 3 54 1123
sendevent/dev/input/event4 0 2 0
sendevent/dev/input/event4 0 0 0
sendevent/dev/input/event4 3 48 1
sendevent/dev/input/event4 3 53 517
sendevent/dev/input/event4 3 54 1123
sendevent/dev/input/event4 0 2 0
sendevent/dev/input/event4 0 0 0
sendevent/dev/input/event4 3 48 1
sendevent/dev/input/event4 3 53 517
sendevent/dev/input/event4 3 54 1123
sendevent/dev/input/event4 0 2 0
sendevent/dev/input/event4 0 0 0
sendevent/dev/input/event4 1 330 0
sendevent/dev/input/event4 0 2 0
sendevent/dev/input/event4 0 0 0
sendevent/dev/input/event4 0 0 0
?
優(yōu)化后的驅(qū)動(dòng)輸入代碼:
sendevent /dev/input/event4 00 0
sendevent /dev/input/event4 1330 1
sendevent /dev/input/event4 353 517
sendevent /dev/input/event4 354 1123
sendevent /dev/input/event4 00 0
sendevent /dev/input/event4 1330 0
sendevent /dev/input/event4 00 0
sendevent /dev/input/event4 00 0
?
點(diǎn)擊發(fā)送按鈕
/dev/input/event4: 0001 014a 00000001
/dev/input/event4: 0003 0030 00000001
/dev/input/event4: 0003 0035 00000292
/dev/input/event4: 0003 0036 0000027f
/dev/input/event4: 0000 0002 00000000
/dev/input/event4: 0000 0000 00000000
/dev/input/event4: 0003 0030 00000001
/dev/input/event4: 0003 0035 00000291
/dev/input/event4: 0003 0036 0000027f
/dev/input/event4: 0000 0002 00000000
/dev/input/event4: 0000 0000 00000000
/dev/input/event4: 0003 0030 00000001
/dev/input/event4: 0003 0035 00000292
/dev/input/event4: 0003 0036 0000027f
/dev/input/event4: 0000 0002 00000000
/dev/input/event4: 0000 0000 00000000
/dev/input/event4: 0003 0030 00000001
/dev/input/event4: 0003 0035 00000292
/dev/input/event4: 0003 0036 0000027f
/dev/input/event4: 0000 0002 00000000
/dev/input/event4: 0000 0000 00000000
/dev/input/event4: 0001 014a 00000000
/dev/input/event4: 0000 0002 00000000
/dev/input/event4: 0000 0000 00000000
?
對應(yīng)輸入的驅(qū)動(dòng)代碼:
sendevent/dev/input/event4 0 0 0
sendevent/dev/input/event4 1 330 1
sendevent/dev/input/event4 3 48 1
sendevent/dev/input/event4 3 53 658
sendevent/dev/input/event4 3 54 639
sendevent/dev/input/event4 0 2 0
sendevent/dev/input/event4 0 0 0
sendevent/dev/input/event4 3 48 1
sendevent/dev/input/event4 3 53 657
sendevent/dev/input/event4 3 54 639
sendevent/dev/input/event4 0 2 0
sendevent/dev/input/event4 0 0 0
sendevent/dev/input/event4 3 48 1
sendevent/dev/input/event4 3 53 658
sendevent/dev/input/event4 3 54 639
sendevent/dev/input/event4 0 2 0
sendevent/dev/input/event4 0 0 0
sendevent/dev/input/event4 3 48 1
sendevent/dev/input/event4 3 53 658
sendevent/dev/input/event4 3 54 639
sendevent/dev/input/event4 0 2 0
sendevent/dev/input/event4 0 0 0
sendevent/dev/input/event4 1 330 0
sendevent /dev/input/event40 2 0
sendevent/dev/input/event4 0 0 0
sendevent/dev/input/event4 0 0 0
?
優(yōu)化后的驅(qū)動(dòng)輸入代碼:
sendevent /dev/input/event4 0 0 0
sendevent /dev/input/event4 1 330 1
sendevent /dev/input/event4 3 53 658
sendevent /dev/input/event4 3 54 639
sendevent /dev/input/event4 0 0 0
sendevent /dev/input/event4 1 330 0
sendevent /dev/input/event4 0 0 0
sendevent /dev/input/event4 0 0 0
?
?
所以整套動(dòng)作如下:
1、按下Home鍵,讓手機(jī)界面回到系統(tǒng)主頁
Home鍵對應(yīng)輸入的驅(qū)動(dòng)代碼:
sendevent /dev/input/event1 0 0 0
sendevent /dev/input/event1 1 102 1
sendevent /dev/input/event1 0 0 0
sendevent /dev/input/event1 1 102 0
sendevent /dev/input/event1 0 0 0
sendevent /dev/input/event1 0 0 0
?
2、從主頁點(diǎn)擊QQ圖標(biāo)啟動(dòng)QQ
驅(qū)動(dòng)代碼
sendevent /dev/input/event4 0 0 0
sendevent /dev/input/event4 1 330 1
sendevent /dev/input/event4 3 53 83
sendevent /dev/input/event4 3 54 916
sendevent /dev/input/event4 0 0 0
sendevent /dev/input/event4 1 330 0
sendevent /dev/input/event4 0 0 0
sendevent /dev/input/event4 0 0 0
?
3、在彈出的輸入法上點(diǎn)擊字母n
驅(qū)動(dòng)代碼
sendevent /dev/input/event4 0 0 0
sendevent /dev/input/event4 1 330 1
sendevent /dev/input/event4 3 53 517
sendevent /dev/input/event4 3 54 1123
sendevent /dev/input/event4 0 0 0
sendevent /dev/input/event4 1 330 0
sendevent /dev/input/event4 0 0 0
sendevent /dev/input/event4 0 0 0
?
4、點(diǎn)擊發(fā)送按鈕
sendevent /dev/input/event4 0 0 0
sendevent /dev/input/event4 1 330 1
sendevent /dev/input/event4 3 53 658
sendevent /dev/input/event4 3 54 639
sendevent /dev/input/event4 0 0 0
sendevent /dev/input/event4 1 330 0
sendevent /dev/input/event4 0 0 0
sendevent /dev/input/event4 0 0 0
?
5、按下Home鍵,讓手機(jī)界面回到系統(tǒng)主頁
Home鍵對應(yīng)輸入的驅(qū)動(dòng)代碼:
sendevent /dev/input/event1 0 0 0
sendevent /dev/input/event1 1 102 1
sendevent /dev/input/event1 0 0 0
sendevent /dev/input/event1 1 102 0
sendevent /dev/input/event1 0 0 0
sendevent /dev/input/event1 0 0 0

實(shí)現(xiàn)的效果如下:就是從我的手機(jī)qq給通過我的設(shè)備發(fā)送一個(gè)字母n

這是發(fā)送界面


這是接受界面



上面的步驟是怎么獲取指令的動(dòng)作,下面描述的這個(gè)例子是我從手機(jī)主頁打開QQ,然后從搜索列表中找出我的某個(gè)好友,然后給他發(fā)送消息“你好”,然后返回主頁面。

當(dāng)然,整套系統(tǒng)不能連續(xù)做,中間要有停頓,否則有的時(shí)候系統(tǒng)還沒有把響應(yīng)動(dòng)作做完,下一個(gè)動(dòng)作又開始了,導(dǎo)致動(dòng)作出錯(cuò)。可以在代碼里用sleep函數(shù)控制等待的時(shí)間。整套動(dòng)作在PC上用終端演示完全沒有問題,下一步就可以在手機(jī)上實(shí)現(xiàn)了。

具體的在代碼里的實(shí)現(xiàn):

第一步:在我前兩篇博客里的有個(gè)關(guān)于Android服務(wù)的例子,名字叫Servic.zip,在這個(gè)例子里加入了一個(gè)動(dòng)作列表的類,用來保存動(dòng)作指令,就是上面的指令序列。

第二步:將我上一篇博客里用按鈕來注入代碼的響應(yīng)函數(shù)doXue()重新封裝一下,放服務(wù)的類里面,我把參數(shù)換成了String數(shù)組,每次傳一個(gè)動(dòng)作的指令數(shù)組過去,然后用sleep控制等待時(shí)間。比如,啟動(dòng)QQ時(shí)間會(huì)比較長,我就設(shè)置成等待5秒再繼續(xù)執(zhí)行下一個(gè)動(dòng)作。

好了,核心代碼如下:

指令類:從這個(gè)類的定義里面可以清楚的看到每個(gè)步驟了 ,我就不多解釋每個(gè)數(shù)組里面的指令的功能了,都寫在注釋里了。

[java]?view plaincopy
  • public?class?OrderList?{??
  • ????//1---Home鍵對應(yīng)輸入的驅(qū)動(dòng)代碼??
  • ????static?String[]?orderHome1?=?{??
  • ????????"sendevent?/dev/input/event1?0?0?0",??
  • ????????"sendevent?/dev/input/event1?1?102?1",??
  • ????????"sendevent?/dev/input/event1?0?0?0",??
  • ????????"sendevent?/dev/input/event1?1?102?0",??
  • ????????"sendevent?/dev/input/event1?0?0?0",??
  • ????????"sendevent?/dev/input/event1?0?0?0"??
  • ????};??
  • ??????
  • ????//2---從主頁點(diǎn)擊QQ圖標(biāo)啟動(dòng)QQ的驅(qū)動(dòng)代碼??
  • ????static?String[]?orderQQ2??=?{??
  • ????????"sendevent?/dev/input/event4?0?0?0",??
  • ????????"sendevent?/dev/input/event4?1?330?1",??
  • ????????"sendevent?/dev/input/event4?3?53?83",??
  • ????????"sendevent?/dev/input/event4?3?54?916",??
  • ????????"sendevent?/dev/input/event4?0?0?0",??
  • ????????"sendevent?/dev/input/event4?1?330?0",??
  • ????????"sendevent?/dev/input/event4?0?0?0",??
  • ????????"sendevent?/dev/input/event4?0?0?0"??
  • ????};??
  • ??????
  • ??????
  • ??
  • ????//3---在彈出的QQ界面上點(diǎn)擊搜索??
  • ????static?String[]?orderSearch3??=?{??
  • ????"sendevent?/dev/input/event4?0?0?0",??
  • ????"sendevent?/dev/input/event4?1?330?1",??
  • ????"sendevent?/dev/input/event4?3?53?363",??
  • ????"sendevent?/dev/input/event4?3?54?194",??
  • ????"sendevent?/dev/input/event4?0?0?0",??
  • ????"sendevent?/dev/input/event4?1?330?0",??
  • ????"sendevent?/dev/input/event4?0?0?0",??
  • ????"sendevent?/dev/input/event4?0?0?0"??
  • ????};??
  • ??????
  • ??????
  • ????//4---輸入hyl?選擇何一柳?前提是輸入法是中文輸入模式??
  • ????static?String[]?orderInput4??=?{??
  • ????????"sendevent?/dev/input/event4?0?0?0",??
  • ????????"sendevent?/dev/input/event4?1?330?1",??
  • ????????"sendevent?/dev/input/event4?3?53?219",??
  • ????????"sendevent?/dev/input/event4?3?54?1014",??
  • ????????"sendevent?/dev/input/event4?0?0?0",??
  • ????????"sendevent?/dev/input/event4?1?330?0",??
  • ????????"sendevent?/dev/input/event4?0?0?0",??
  • ????????"sendevent?/dev/input/event4?1?330?1",??
  • ????????"sendevent?/dev/input/event4?3?53?530",??
  • ????????"sendevent?/dev/input/event4?3?54?1127",??
  • ????????"sendevent?/dev/input/event4?0?0?0",??
  • ????????"sendevent?/dev/input/event4?1?330?0",??
  • ????????"sendevent?/dev/input/event4?0?0?0",??
  • ????????"sendevent?/dev/input/event4?1?330?1",??
  • ????????"sendevent?/dev/input/event4?3?53?367",??
  • ????????"sendevent?/dev/input/event4?3?54?1003",??
  • ????????"sendevent?/dev/input/event4?0?0?0",??
  • ????????"sendevent?/dev/input/event4?1?330?0",??
  • ????????"sendevent?/dev/input/event4?0?0?0",??
  • ????????"sendevent?/dev/input/event4?1?330?1",??
  • ????????"sendevent?/dev/input/event4?3?53?130",??
  • ????????"sendevent?/dev/input/event4?3?54?768",??
  • ????????"sendevent?/dev/input/event4?0?0?0",??
  • ????????"sendevent?/dev/input/event4?1?330?0",??
  • ????????"sendevent?/dev/input/event4?0?0?0",??
  • ????????"sendevent?/dev/input/event4?0?0?0"??
  • ????};??
  • ??????
  • ????//5---從搜索結(jié)果中選擇何一柳??
  • ????static?String[]?orderSelect5??=?{??
  • ????????"sendevent?/dev/input/event4?0?0?0",??
  • ????"sendevent?/dev/input/event4?1?330?1",??
  • ????"sendevent?/dev/input/event4?3?53?438",??
  • ????"sendevent?/dev/input/event4?3?54?223",??
  • ????"sendevent?/dev/input/event4?0?0?0",??
  • ????"sendevent?/dev/input/event4?1?330?0",??
  • ????"sendevent?/dev/input/event4?0?0?0"??
  • ????};??
  • ??????
  • ????//6---點(diǎn)擊輸入框?彈出輸入法??
  • ????static?String[]?orderGetInput6??=?{??
  • ????????"sendevent?/dev/input/event4?0?0?0",??
  • ????"sendevent?/dev/input/event4?1?330?1",??
  • ????"sendevent?/dev/input/event4?3?53?412",??
  • ????"sendevent?/dev/input/event4?3?54?1233",??
  • ????"sendevent?/dev/input/event4?0?0?0",??
  • ????"sendevent?/dev/input/event4?1?330?0",??
  • ????"sendevent?/dev/input/event4?0?0?0",??
  • ????"sendevent?/dev/input/event4?0?0?0"??
  • ????};??
  • ??????
  • ????//7---從輸入法打字?輸入?你好?四個(gè)字??
  • ????static?String[]?orderInputText7??=?{??
  • ????????"sendevent?/dev/input/event4?0?0?0",??
  • ????????"sendevent?/dev/input/event4?1?330?1",??
  • ????????"sendevent?/dev/input/event4?3?53?524",??
  • ????????"sendevent?/dev/input/event4?3?54?1020",??
  • ????????"sendevent?/dev/input/event4?0?0?0",??
  • ????????"sendevent?/dev/input/event4?1?330?0",??
  • ????????"sendevent?/dev/input/event4?0?0?0",??
  • ????????"sendevent?/dev/input/event4?1?330?1",??
  • ????????"sendevent?/dev/input/event4?3?53?222",??
  • ????????"sendevent?/dev/input/event4?3?54?1006",??
  • ????????"sendevent?/dev/input/event4?0?0?0",??
  • ????????"sendevent?/dev/input/event4?3?53?221",??
  • ????????"sendevent?/dev/input/event4?3?54?1006",??
  • ????????"sendevent?/dev/input/event4?1?330?0",??
  • ????????"sendevent?/dev/input/event4?0?0?0",??
  • ????????"sendevent?/dev/input/event4?1?330?1",??
  • ????????"sendevent?/dev/input/event4?3?53?209",??
  • ????????"sendevent?/dev/input/event4?3?54?1009",??
  • ????????"sendevent?/dev/input/event4?0?0?0",??
  • ????????"sendevent?/dev/input/event4?1?330?0",??
  • ????????"sendevent?/dev/input/event4?0?0?0",??
  • ????????"sendevent?/dev/input/event4?1?330?1",??
  • ????????"sendevent?/dev/input/event4?3?53?350",??
  • ????????"sendevent?/dev/input/event4?3?54?903",??
  • ????????"sendevent?/dev/input/event4?0?0?0",??
  • ????????"sendevent?/dev/input/event4?1?330?0",??
  • ????????"sendevent?/dev/input/event4?0?0?0",??
  • ????????"sendevent?/dev/input/event4?1?330?1",??
  • ????????"sendevent?/dev/input/event4?3?53?521",??
  • ????????"sendevent?/dev/input/event4?3?54?992",??
  • ????????"sendevent?/dev/input/event4?0?0?0",??
  • ????????"sendevent?/dev/input/event4?1?330?0",??
  • ????????"sendevent?/dev/input/event4?0?0?0",??
  • ????????"sendevent?/dev/input/event4?1?330?1",??
  • ????????"sendevent?/dev/input/event4?3?53?115",??
  • ????????"sendevent?/dev/input/event4?3?54?762",??
  • ????????"sendevent?/dev/input/event4?0?0?0",??
  • ????????"sendevent?/dev/input/event4?1?330?0",??
  • ????????"sendevent?/dev/input/event4?0?0?0",??
  • ????????"sendevent?/dev/input/event4?0?0?0"??
  • ????};??
  • ??????
  • ??????
  • ????//8---點(diǎn)擊發(fā)送按鈕代碼??
  • ????static?String[]?orderInputSend8??=?{??
  • ????????"sendevent?/dev/input/event4?0?0?0",??
  • ????"sendevent?/dev/input/event4?1?330?1",??
  • ????"sendevent?/dev/input/event4?3?53?658",??
  • ????"sendevent?/dev/input/event4?3?54?639",??
  • ????"sendevent?/dev/input/event4?0?0?0",??
  • ????"sendevent?/dev/input/event4?1?330?0",??
  • ????"sendevent?/dev/input/event4?0?0?0",??
  • ????"sendevent?/dev/input/event4?0?0?0"??
  • ????};??
  • }??

  • 實(shí)際執(zhí)行這些指令的函數(shù)doXue(String[] orders)

    [java]?view plaincopy
  • //指令執(zhí)行函數(shù)??
  • void?doXue(String[]?orders){??
  • ????Log.i(TAG,?"doXue-----------------");??
  • ????Runtime?runtime?=?Runtime.getRuntime();??
  • ????DataOutputStream?dataOut;??
  • ????try?{??
  • ??????????Process?process?=?runtime.exec("su?");??
  • ????????????InputStream?in?=?process.getInputStream();??
  • ????????????BufferedReader?bufferReader?=?new?BufferedReader(??
  • ????????????????????????????new?InputStreamReader(in));??
  • ????????????BufferedReader?err=new?BufferedReader(new?InputStreamReader(process.getErrorStream()));??
  • ????????????String?line?=?null;??
  • ????????????dataOut?=?new?DataOutputStream(process.getOutputStream());??
  • ??????????//點(diǎn)擊發(fā)送按鈕??
  • ????????????for(String?order?:?orders){??
  • ????????????????dataOut.writeBytes(order?+?";");??
  • ????????????}??
  • ????????????dataOut.flush();??
  • ??????????????
  • ????????????dataOut.close();??
  • ????????????process.waitFor();??
  • ????????????while?((line?=?err.readLine())?!=?null)?{??
  • ???????????????Log.i(TAG,line);??
  • ????????}??
  • ????????????while?((line?=?bufferReader.readLine())?!=?null)?{??
  • ????????????????Log.i(TAG,line);??
  • ????????????}??
  • ????}?catch?(Exception?e)?{??
  • ????????????e.printStackTrace();??
  • ????????????Log.i(TAG,e.getMessage());??
  • ????}finally{??
  • ????}??
  • }??

  • 最后是調(diào)用這個(gè)注入驅(qū)動(dòng)代碼的服務(wù)的代碼:

    [java]?view plaincopy
  • @Override??
  • public?void?onCreate()?{??
  • ????//?TODO?Auto-generated?method?stub??
  • ????Log.i(TAG,?"Service-----------------created");??
  • ????super.onCreate();??
  • ??????
  • ????Thread?thread?=?new?Thread()?{??
  • ????@Override??
  • ????public?void?run()?{??
  • ????????????Log.i(TAG,?"Service-----------------");??
  • ????????????try?{??
  • ????????????????Log.i(TAG,?"Service-----------------orderHome1");??
  • ????????????????doXue(OrderList.orderHome1);??
  • ????????????????Thread.sleep(1000?*?2);??
  • ????????????????Log.i(TAG,?"Service-----------------orderHome1");??
  • ????????????????doXue(OrderList.orderHome1);??
  • ????????????????Thread.sleep(1000?*?2);??
  • ????????????????Log.i(TAG,?"Service-----------------orderQQ2");??
  • ????????????????doXue(OrderList.orderQQ2);??
  • ????????????????Thread.sleep(1000?*?5);?//啟動(dòng)QQ時(shí)間設(shè)置稍微長一點(diǎn)??
  • ????????????????Log.i(TAG,?"Service-----------------orderSearch3");??
  • ????????????????doXue(OrderList.orderSearch3);??
  • ????????????????Thread.sleep(1000?*?2);??
  • ????????????????Log.i(TAG,?"Service-----------------orderInput4");??
  • ????????????????doXue(OrderList.orderInput4);??
  • ????????????????Thread.sleep(1000?*?2);??
  • ????????????????Log.i(TAG,?"Service-----------------orderSelect5");??
  • ????????????????doXue(OrderList.orderSelect5);??
  • ????????????????Thread.sleep(1000?*?2);??
  • ????????????????Log.i(TAG,?"Service-----------------orderGetInput6");??
  • ????????????????doXue(OrderList.orderGetInput6);??
  • ????????????????Thread.sleep(1000?*?2);??
  • ????????????????Log.i(TAG,?"Service-----------------orderInputText7");??
  • ????????????????doXue(OrderList.orderInputText7);??
  • ????????????????Thread.sleep(1000?*?2);??
  • ????????????????Log.i(TAG,?"Service-----------------orderInputSend8");??
  • ????????????????doXue(OrderList.orderInputSend8);??
  • ????????????????Thread.sleep(1000?*?2);??
  • ????????????????doXue(OrderList.orderHome1);??
  • ????????????}?catch?(InterruptedException?e)?{??
  • ????????????????//?TODO?Auto-generated?catch?block??
  • ????????????????e.printStackTrace();??
  • ????????????}??
  • ??????????????
  • ????}??
  • ????};??
  • ????thread.start();??
  • }??

  • 最后就是啟動(dòng)服務(wù)了,這個(gè)代碼就不貼了,網(wǎng)上很多,之前的例子里面也有。這個(gè)demo的最終效果就是,打開這個(gè)app以后,點(diǎn)擊啟動(dòng)服務(wù),然后程序會(huì)自動(dòng)請求root權(quán)限,如果你的手機(jī)root過,或者有root權(quán)限管理工具的話,就選擇授權(quán),然后,手機(jī)會(huì)自動(dòng)回到主頁,然后打開QQ,然后搜索聯(lián)系人,然后發(fā)消息,最后再次回到主頁。

    Demo的下載地址:不要積分。

    http://download.csdn.net/detail/diaoliangwang/7402083

    演示效果的gif


    當(dāng)然了,再次說明下,這種驅(qū)動(dòng)代碼不同類型不同款的手機(jī)是不同的,同款手機(jī)如果Rom不同可能也不同,上面的指令僅僅針對我自己的手機(jī),所以如果你用上面的代碼來測試你自己的手機(jī)的話,應(yīng)該不會(huì)又效果,隨便舉個(gè)例子,我的QQ圖標(biāo)放在主頁的那個(gè)位置,你的QQ不一定也在那個(gè)位置,再加上屏幕大小還不一樣。

    ?因此,后面我會(huì)繼續(xù)改進(jìn),開始時(shí)候讓用戶自己在自己的手機(jī)上錄制動(dòng)作,程序獲取手機(jī)的相關(guān)驅(qū)動(dòng)代碼,然后編制成一套動(dòng)作就行了。

    后面還需要優(yōu)化的地方:

    1、我在前一篇博客里自己寫的驅(qū)動(dòng)代碼16進(jìn)制轉(zhuǎn)10進(jìn)制轉(zhuǎn)換工具還不夠完善,沒有去處重復(fù)的指令,比如系統(tǒng)模擬了同一個(gè)點(diǎn)的多次點(diǎn)擊,這個(gè)完全可以過濾掉,還有一些沒用的驅(qū)動(dòng)代碼也可以過濾掉。讓輸出的結(jié)果更加簡潔,后面有時(shí)間我會(huì)繼續(xù)優(yōu)化上傳。

    2、目前demo的動(dòng)作還不夠連貫,需要自己編寫代碼,后面需要改成讓程序自動(dòng)錄制用戶的操作,這就涉及到另一個(gè)問題,怎么用服務(wù)從android后臺拿到寫入驅(qū)動(dòng)里的程序,而不是從PC端去獲取,讓整個(gè)錄制動(dòng)作,到系統(tǒng)再次響應(yīng)同一個(gè)動(dòng)作連續(xù)在一起。

    總結(jié)

    以上是生活随笔為你收集整理的整合后台服务和驱动代码注入的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。