Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
B
BYLAppRobot
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
liuyang
BYLAppRobot
Commits
b89ddb3d
Commit
b89ddb3d
authored
Sep 27, 2018
by
liuyang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
按键改进
parent
3f1fa42c
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
63 additions
and
23 deletions
+63
-23
test.json
app/src/main/assets/test.json
+2
-1
EmulateKey.kt
app/src/main/java/com/duolebo/blyrobot/data/EmulateKey.kt
+6
-0
Task.kt
app/src/main/java/com/duolebo/blyrobot/data/Task.kt
+15
-2
BylRobotService.kt
...main/java/com/duolebo/blyrobot/service/BylRobotService.kt
+1
-1
BylWebService.kt
...c/main/java/com/duolebo/blyrobot/service/BylWebService.kt
+1
-1
AdbUtil.kt
app/src/main/java/com/duolebo/blyrobot/util/AdbUtil.kt
+32
-17
AppUtil.kt
app/src/main/java/com/duolebo/blyrobot/util/AppUtil.kt
+1
-1
Constants.kt
app/src/main/java/com/duolebo/blyrobot/util/Constants.kt
+5
-0
No files found.
app/src/main/assets/test.json
View file @
b89ddb3d
...
...
@@ -2,5 +2,6 @@
"name"
:
"电视家"
,
"packageName"
:
"com.elinkway.tvlive2"
,
"launcher"
:
"com.elinkway.tvlive2.activity.SplashActivity"
,
"launchDelay"
:
"15"
"launchDelay"
:
"15"
,
"keyEvents"
:
"down|3/ok"
}
\ No newline at end of file
app/src/main/java/com/duolebo/blyrobot/data/EmulateKey.kt
0 → 100644
View file @
b89ddb3d
package
com.duolebo.blyrobot.data
class
EmulateKey
{
var
key
:
String
=
"down"
var
delay
=
"1"
}
\ No newline at end of file
app/src/main/java/com/duolebo/blyrobot/data/Task.kt
View file @
b89ddb3d
...
...
@@ -3,6 +3,7 @@ package com.duolebo.blyrobot.data
import
android.content.Context
import
android.util.Log
import
com.duolebo.blyrobot.util.AdbUtil
import
com.duolebo.blyrobot.util.AppUtil
import
com.duolebo.blyrobot.util.Constants
import
org.json.JSONObject
import
net.gotev.uploadservice.UploadNotificationConfig
...
...
@@ -18,6 +19,8 @@ class Task {
private
lateinit
var
launcher
:
String
private
lateinit
var
imagePath
:
String
private
var
launchDelay
=
15
private
lateinit
var
keyEvent
:
String
private
var
context
:
Context
private
val
imageDateFormat
=
SimpleDateFormat
(
"yyyy_MM_dd_HH_mm_ss"
,
Locale
.
CHINA
)
var
proc
:
Process
?
=
null
...
...
@@ -31,6 +34,7 @@ class Task {
this
.
launcher
=
json
.
optString
(
Constants
.
LAUNCHER
)
this
.
launchDelay
=
json
.
optInt
(
Constants
.
LAUNCH_DELAY
,
15
)
this
.
imagePath
=
this
.
context
.
cacheDir
.
absolutePath
+
"/"
+
this
.
packageName
this
.
keyEvent
=
json
.
optString
(
Constants
.
KEY_EVENT
)
val
dir
=
File
(
this
.
imagePath
)
if
(!
dir
.
exists
())
dir
.
mkdirs
()
...
...
@@ -38,6 +42,9 @@ class Task {
fun
start
()
{
this
.
launchApp
()
this
.
capture
()
this
.
uploadImage
()
this
.
report
()
stop
()
}
...
...
@@ -72,6 +79,10 @@ class Task {
}).
start
()
}
private
fun
report
()
{
}
private
fun
parseCaptureFile
(
filterUrl
:
String
)
{
val
file
=
File
(
"/sdcard/capture.txt"
)
val
lines
=
file
.
readLines
()
...
...
@@ -112,8 +123,10 @@ class Task {
fun
screenShot
()
{
val
time
=
imageDateFormat
.
format
(
Date
())
val
imagePath
=
this
.
imagePath
+
"/${packageName}_$time.png"
AdbUtil
.
screenShot
(
imagePath
)
var
pngPath
=
this
.
imagePath
+
"/${packageName}_$time.png"
val
jpgPath
=
pngPath
.
replace
(
".png"
,
".jpg"
)
AdbUtil
.
screenShot
(
pngPath
)
AppUtil
.
pngToJpg
(
pngPath
,
jpgPath
)
}
fun
uploadImage
()
{
...
...
app/src/main/java/com/duolebo/blyrobot/service/BylRobotService.kt
View file @
b89ddb3d
...
...
@@ -82,7 +82,7 @@ class BylRobotService: Service() {
private
fun
testKey
()
{
Thread
(
Runnable
{
AdbUtil
.
sendMultiKey
(
"down/up/right"
,
0.5f
)
AdbUtil
.
sendMultiKey
(
"down/up/right"
)
}).
start
()
}
...
...
app/src/main/java/com/duolebo/blyrobot/service/BylWebService.kt
View file @
b89ddb3d
...
...
@@ -7,7 +7,7 @@ import com.duolebo.blyrobot.web.CaptureWebServer
class
BylWebService
:
Service
()
{
lateinit
var
webServer
:
CaptureWebServer
private
lateinit
var
webServer
:
CaptureWebServer
override
fun
onCreate
()
{
super
.
onCreate
()
...
...
app/src/main/java/com/duolebo/blyrobot/util/AdbUtil.kt
View file @
b89ddb3d
package
com.duolebo.blyrobot.util
import
android.util.Log
import
com.duolebo.blyrobot.data.EmulateKey
import
java.io.BufferedReader
import
java.io.DataOutputStream
import
java.io.IOException
...
...
@@ -47,7 +48,7 @@ object AdbUtil {
exeCmdEcho
(
exeCommands
,
root
)
}
fun
exeCmdEcho
(
commands
:
ArrayList
<
String
>,
root
:
Boolean
=
false
)
{
fun
exeCmdEcho
(
commands
:
ArrayList
<
String
>,
root
:
Boolean
=
false
)
:
List
<
String
>?
{
Log
.
i
(
TAG
,
"exe cmd echo: $commands"
)
val
exeCommands
=
ArrayList
<
String
>()
exeCommands
.
addAll
(
commands
)
...
...
@@ -55,6 +56,8 @@ object AdbUtil {
for
(
line
in
results
!!
)
{
Log
.
i
(
TAG
,
"echo line: $line"
)
}
return
results
}
fun
sendCommands
(
commands
:
ArrayList
<
String
>,
root
:
Boolean
=
false
):
List
<
String
>?
{
...
...
@@ -85,7 +88,7 @@ object AdbUtil {
dos
.
flush
()
}
dos
.
writeBytes
(
EXIT
)
dos
.
writeBytes
(
EXIT
+
LINE_BREAK
)
dos
.
flush
()
status
=
proc
.
waitFor
()
...
...
@@ -156,26 +159,38 @@ object AdbUtil {
exeCmdEcho
(
cmdKey
,
true
)
}
fun
sendMultiKey
(
keyPath
:
String
,
delay
:
Float
)
{
val
allKey
=
ArrayList
<
String
>()
val
keys
=
keyPath
.
split
(
'/'
)
fun
sendMultiKey
(
keyPath
:
String
)
{
val
keyEvents
=
ArrayList
<
EmulateKey
>()
val
keys
=
keyPath
.
split
(
Constants
.
SLASH
)
for
(
stepKey
in
keys
)
{
if
(
'*'
in
stepKey
)
{
val
params
=
stepKey
.
split
(
'*'
)
for
(
i
in
0
..
params
[
1
].
toInt
())
allKey
.
add
(
params
[
0
])
}
else
allKey
.
add
(
stepKey
)
var
delay
=
"1"
if
(
Constants
.
VERTICAL_BAR
in
stepKey
)
{
val
params
=
stepKey
.
split
(
Constants
.
VERTICAL_BAR
)
delay
=
params
[
1
]
}
if
(
Constants
.
ASTERISK
in
stepKey
)
{
val
params
=
stepKey
.
split
(
Constants
.
ASTERISK
)
for
(
i
in
0
..
params
[
1
].
toInt
())
{
val
keyEvent
=
EmulateKey
()
keyEvent
.
key
=
params
[
0
]
keyEvent
.
delay
=
delay
keyEvents
.
add
(
keyEvent
)
}
}
else
{
val
keyEvent
=
EmulateKey
()
keyEvent
.
key
=
stepKey
keyEvent
.
delay
=
delay
keyEvents
.
add
(
keyEvent
)
}
}
val
commands
=
ArrayList
<
String
>()
for
(
key
in
allKey
)
{
Log
.
i
(
TAG
,
"send key: $key"
)
val
cmdKey
=
"input keyevent ${Constants.KEY_MAP[key]}"
for
(
key
Event
in
keyEvents
)
{
Log
.
i
(
TAG
,
"send key: $key
Event
"
)
val
cmdKey
=
"input keyevent ${Constants.KEY_MAP[key
Event.key
]}"
commands
.
add
(
cmdKey
)
if
(
delay
>
0
)
{
commands
.
add
(
"sleep $delay"
)
}
commands
.
add
(
"sleep ${keyEvent.delay}"
)
}
exeCmdEcho
(
commands
,
true
)
...
...
app/src/main/java/com/duolebo/blyrobot/util/AppUtil.kt
View file @
b89ddb3d
...
...
@@ -65,7 +65,7 @@ object AppUtil {
return
""
}
fun
pn
t
ToJpg
(
pngFilePath
:
String
,
jpgFilePath
:
String
)
{
fun
pn
g
ToJpg
(
pngFilePath
:
String
,
jpgFilePath
:
String
)
{
val
bitmap
=
BitmapFactory
.
decodeFile
(
pngFilePath
)
try
{
BufferedOutputStream
(
FileOutputStream
(
jpgFilePath
)).
use
{
bos
->
...
...
app/src/main/java/com/duolebo/blyrobot/util/Constants.kt
View file @
b89ddb3d
...
...
@@ -37,6 +37,11 @@ object Constants {
const
val
PACKAGE_NAME
=
"packageName"
const
val
LAUNCHER
=
"launcher"
const
val
LAUNCH_DELAY
=
"launchDelay"
const
val
KEY_EVENT
=
"keyEvent"
const
val
ASTERISK
=
"*"
const
val
SLASH
=
"/"
const
val
VERTICAL_BAR
=
"|"
const
val
ACTION_LOCAL_SERVICE
=
"action_local_service"
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment