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
83be0201
Commit
83be0201
authored
Nov 15, 2018
by
liuyang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
APK抓包>从频道1开始依次抓取, 截图epg逻辑优化
#BYLSERVER-1693
parent
64b86c31
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
34 additions
and
16 deletions
+34
-16
Task.kt
app/src/main/java/com/duolebo/blyrobot/data/Task.kt
+32
-15
AdbUtil.kt
app/src/main/java/com/duolebo/blyrobot/util/AdbUtil.kt
+2
-1
No files found.
app/src/main/java/com/duolebo/blyrobot/data/Task.kt
View file @
83be0201
...
...
@@ -211,14 +211,15 @@ class Task : Thread, IAppBaseCallback {
Log
.
i
(
TAG
,
"processChannels"
)
step
()
quitCapture
()
AdbUtil
.
sendMultiKey
(
this
.
apkInfo
.
channelKeyEvent
)
for
(
i
in
index
+
1
until
this
.
apkInfo
.
channelCount
)
{
if
(
this
.
status
==
State
.
MANUAL_STOP
)
return
false
// 模拟按键事件. 切换频道进行抓取
this
.
channelIndex
=
i
capture
(
apkInfo
.
captureDelay
)
AdbUtil
.
sendMultiKey
(
this
.
apkInfo
.
channelKeyEvent
)
if
(!
AppUtil
.
isAppForeground
(
context
,
this
.
apkInfo
.
packageName
))
{
Log
.
i
(
TAG
,
"target app crashed?"
)
...
...
@@ -226,6 +227,8 @@ class Task : Thread, IAppBaseCallback {
}
step
()
AdbUtil
.
sendMultiKey
(
this
.
apkInfo
.
channelKeyEvent
)
}
return
true
...
...
@@ -237,26 +240,19 @@ class Task : Thread, IAppBaseCallback {
*/
private
fun
step
()
{
Log
.
i
(
TAG
,
"step channel ${this.channelIndex}"
)
doCapture
()
doScreenShot
()
}
private
fun
doCapture
()
{
var
playUrlItems
=
analysisCapture
()
// 如果没有抓取到地址,再次尝试
if
(
playUrlItems
.
size
<=
0
)
{
capture
(
this
.
apkInfo
.
captureDelay
)
playUrlItems
=
analysisCapture
()
}
// 截图保存
val
screenShots
=
saveScreenShot
()
if
(
screenShots
.
size
>
0
)
uploadImages
.
addAll
(
screenShots
)
val
channels
=
this
.
reportJson
.
optJSONArray
(
"channels"
)
val
channelJson
=
JSONObject
()
val
channelImageFile
=
File
(
screenShots
[
0
])
channelJson
.
putOpt
(
"channelImage"
,
channelImageFile
.
name
)
val
channelEpgImageFile
=
File
(
screenShots
[
1
])
channelJson
.
putOpt
(
"channelEpgImage"
,
channelEpgImageFile
.
name
)
channelJson
.
putOpt
(
"channelId"
,
this
.
channelIndex
)
val
playUrls
=
JSONArray
()
...
...
@@ -281,7 +277,8 @@ class Task : Thread, IAppBaseCallback {
if
(
quit
)
{
Log
.
i
(
TAG
,
"capture sleep $delay seconds"
)
Thread
.
sleep
(
delay
*
1000L
)
sleepBySeconds
(
delay
.
toLong
())
quitCapture
()
}
}
...
...
@@ -358,7 +355,7 @@ class Task : Thread, IAppBaseCallback {
}
// 截取一张频道图+一张显示频道节目的图
private
fun
saveScreenShot
():
ArrayList
<
String
>
{
private
fun
doScreenShot
()
{
val
screenImages
=
ArrayList
<
String
>()
var
time
=
imageDateFormat
.
format
(
Date
())
...
...
@@ -372,7 +369,27 @@ class Task : Thread, IAppBaseCallback {
screenShot
(
absOkName
)
screenImages
.
add
(
"$absOkName.jpg"
)
return
screenImages
AdbUtil
.
sendMultiKey
(
"back"
)
if
(
screenImages
.
size
>
0
)
uploadImages
.
addAll
(
screenImages
)
val
channelJson
=
JSONObject
()
val
channelImageFile
=
File
(
screenImages
[
0
])
channelJson
.
putOpt
(
"channelImage"
,
channelImageFile
.
name
)
val
channelEpgImageFile
=
File
(
screenImages
[
1
])
channelJson
.
putOpt
(
"channelEpgImage"
,
channelEpgImageFile
.
name
)
channelJson
.
putOpt
(
"channelId"
,
this
.
channelIndex
)
}
private
fun
sleepBySeconds
(
seconds
:
Long
)
{
try
{
Thread
.
sleep
(
seconds
*
1000
)
}
catch
(
e
:
Exception
)
{
e
.
printStackTrace
()
}
}
// 截图处理,转成jpg
...
...
app/src/main/java/com/duolebo/blyrobot/util/AdbUtil.kt
View file @
83be0201
...
...
@@ -9,7 +9,7 @@ import java.io.IOException
import
java.io.InputStreamReader
object
AdbUtil
{
const
val
TAG
=
"AdbUtil"
const
val
TAG
=
"
Task
AdbUtil"
const
val
SHELL
=
"sh"
const
val
ROOT_SHELL
=
"su"
const
val
LINE_BREAK
=
"\n"
...
...
@@ -209,6 +209,7 @@ object AdbUtil {
}
fun
sendMultiKey
(
keyPath
:
String
)
{
Log
.
i
(
TAG
,
"sendMultiKey:$keyPath"
)
val
keyEvents
=
ArrayList
<
EmulateKey
>()
val
keys
=
keyPath
.
split
(
Constants
.
SLASH
)
for
(
stepKey
in
keys
)
{
...
...
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