Commit 83be0201 authored by liuyang's avatar liuyang

APK抓包>从频道1开始依次抓取, 截图epg逻辑优化

#BYLSERVER-1693
parent 64b86c31
......@@ -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
......
......@@ -9,7 +9,7 @@ import java.io.IOException
import java.io.InputStreamReader
object AdbUtil {
const val TAG = "AdbUtil"
const val TAG = "TaskAdbUtil"
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) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment