美文网首页
内存优化

内存优化

作者: 我在等你回复可你没回 | 来源:发表于2019-05-30 10:41 被阅读0次

native内存泄漏检测原理?

有一个api
API:get_malloc_leak_info
参考:
https://blog.csdn.net/u011280717/article/details/51820268

内存大概印象

一个system UI大概就是70多M的样子
一个3D游戏也是70多M的样子
一个Setting大概30多M的样子

Uptime和Realtime是什么?

应该是开机时间

内存PSS是什么?

Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
就是平分了so库的,所以最后加起来就是占用的总大小。很稳

Lost RAM是什么

不可见内存
Lost = driver reserve + GPU + ION
ION是内存管理器。
参考:https://www.jianshu.com/p/6893cea51512

进程优先级

查看,如下是前台进程。

1|Hi3798MV200:/proc/4666 $ su
Hi3798MV200:/proc/4666 # cat oo
oom_adj        oom_score      oom_score_adj
Hi3798MV200:/proc/4666 # cat  oom_score_adj
0

定义是在ProcessList.java文件中


image.png

参考:
https://www.jianshu.com/p/4ee14aa23f07

LowMemKiller原理

就是内存较低的时候去杀进程。
依赖两个节点的值去杀:
/sys/module/lowmemorykiller/parameters/adj
/sys/module/lowmemorykiller/parameters/adj
看上去只会杀Android应用进程的样子。

Android又分成adjType
可以看到有很大堆


image.png

pts是什么?

绘制流程

hwc_STB.cpp
hwc_prepare

hwc_common_STB.cpp
hisi_hwc_prepare

分析

出现下面的崩溃
--------- beginning of crash
05-30 07:40:38.617 4701 4701 E AndroidRuntime: FATAL EXCEPTION: main
05-30 07:40:38.617 4701 4701 E AndroidRuntime: Process: com.antutu.videobench, PID: 4701
05-30 07:40:38.617 4701 4701 E AndroidRuntime: android.database.sqlite.SQLiteConstraintException: UNIQUE constraint failed: VideoResult.videoId (code 1555)
05-30 07:40:38.617 4701 4701 E AndroidRuntime: at android.database.sqlite.SQLiteConnection.nativeExecuteForChangedRowCount(Native Method)
05-30 07:40:38.617 4701 4701 E AndroidRuntime: at android.database.sqlite.SQLiteConnection.executeForChangedRowCount(SQLiteConnection.java:734)
05-30 07:40:38.617 4701 4701 E AndroidRuntime: at android.database.sqlite.SQLiteSession.executeForChangedRowCount(SQLiteSession.java:754)
05-30 07:40:38.617 4701 4701 E AndroidRuntime: at android.database.sqlite.SQLiteStatement.executeUpdateDelete(SQLiteStatement.java:64)
05-30 07:40:38.617 4701 4701 E AndroidRuntime: at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1677)
05-30 07:40:38.617 4701 4701 E AndroidRuntime: at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1656)
05-30 07:40:38.617 4701 4701 E AndroidRuntime: at com.antutu.videobench.c.a.c.a(Unknown Source)
05-30 07:40:38.617 4701 4701 E AndroidRuntime: at com.antutu.videobench.activity.bh.handleMessage(Unknown Source)
05-30 07:40:38.617 4701 4701 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
05-30 07:40:38.617 4701 4701 E AndroidRuntime: at android.os.Looper.loop(Looper.java:154)
05-30 07:40:38.617 4701 4701 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6097)
05-30 07:40:38.617 4701 4701 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
05-30 07:40:38.617 4701 4701 E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1013)
05-30 07:40:38.617 4701 4701 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:903)
05-30 07:40:38.718 2665 3464 W ActivityManager: Force finishing activity com.antutu.videobench/.activity.TestMoviePlayerActivity

有一些注册失败
05-30 07:37:57.975 1707 3979 E AV : Do HI_UNF_AVPLAY_RegisterAcodecLib("libHA.AUDIO.DOLBYPLUS.decode.so") error, error code = 0xffffffff
05-30 07:37:57.975 1707 3979 E AV : Do HI_UNF_AVPLAY_RegisterAcodecLib("libHA.AUDIO.DTSHD.decode.so") error, error code = 0xffffffff
05-30 07:37:57.975 1707 3979 E AV : Do HI_UNF_AVPLAY_RegisterAcodecLib("libHA.AUDIO.DTSM6.decode.so") error, error code = 0xffffffff
05-30 07:37:57.976 1707 3979 E AV : Do HI_UNF_AVPLAY_RegisterAcodecLib("libHA.AUDIO.DRA.decode.so") error, error code = 0xffffffff
05-30 07:37:57.976 1707 3979 E AV : Do HI_UNF_AVPLAY_RegisterAcodecLib("libHA.AUDIO.DOLBYTRUEHD.decode.so") error, error code = 0xffffffff
05-30 07:37:57.977 1707 3979 E AV : Do HI_UNF_AVPLAY_RegisterAcodecLib("libHA.AUDIO.WMA.decode.so") error, error code = 0xffffffff

Line 1308: 05-30 07:37:50.314  1707  3089 V HisiMediaPlayer: set vdec error cover: 0

05-30 08:17:30.928 2665 2694 D hwcursor: show the hal fb!
05-30 08:17:30.945 2665 2688 D ViewRootImpl[videobench]: updatePointerIcon called with position out of bounds

image.png

注册在这里
http:///device/hisilicon/bigfish/sdk/source/msp/api/avplay/

代码框架主要在


image.png

有时占用超过了75
User 74%, System 25%, IOW 0%, IRQ 0%
User 955 + Nice 3 + Sys 333 + Idle 0 + IOW 0 + IRQ 0 + SIRQ 0 = 1291

PID USER PR NI CPU% S #THR VSS RSS PCY Name
17412 u0_a48 20 0 55% S 46 1192132K 317484K fg com.antutu.videobench
26595 u0_a53 20 0 25% S 43 1270296K 59272K fg tv.danmaku.bili:ijkservice
2279 root 20 0 10% S 4 31244K 1128K fg /tmp/ava/lighttpd/fastcgi/playguide.fcgi
1896 root 20 0 0% D 1 0K 0K fg AoEngineTask
1708 audioser 20 0 0% S 11 58584K 4632K fg /system/bin/audioserver
501 root RT 0 0% D 1 0K 0K unk HI_VPSS_Process
1707 media 20 0 0% S 21 161164K 33484K fg /system/bin/mediaserver
26501 u0_a53 16 -4 0% S 102 1338544K 173636K fg tv.danmaku.bili
1702 system 20 0 0% S 15 114584K 8780K fg /system/bin/dtvserver
1672 system 12 -8 0% S 15 133424K 4160K fg /system/bin/surfaceflinger

HDMI看
https://blog.csdn.net/cyz_1257/article/details/54849213

如何主动调用abort
查看:https://blog.csdn.net/pxy139/article/details/79778017

SEGV_MAPERR是什么?
访问的内存还没有映射,一般是空指针
参考:https://www.jianshu.com/p/8c0863e4cb72

hw_get_module(GRALLOC_HARDWARE_MODULE_ID, &module)是怎么查看的?

coredump分析步骤

https://blog.csdn.net/jornas/article/details/80295686

开不了coredump

get_signal_to_deliver
sig_kernel_coredump
在公司可以开
在海思的目录开


image.png

生成在kernel.img,根文件系统

setrlimit 4 -1 -1
mkdir /data/coredump 0777 system system
write /proc/sys/kernel/core_pattern  /data/coredump/core.%e.%p
write /proc/sys/fs/suid_dumpable 1

on boot
setrlimit 4 -1 -1
mkdir /data/coredump 0777 system system
write /proc/sys/kernel/core_pattern /data/coredump/core.%e.%p
write /proc/sys/fs/suid_dumpable 1

5.实时查看kernel log
adb shell

参考https://blog.csdn.net/ztguang/article/details/70136154

binder/proc/

海思打包
/device/hisilicon/bigfish/build/ext4.mk

问题
print变量中出现<optimized out>。

解决
添加编译选项-O0,意思是不进行编译优化,gdb在默认情况下会使用-O2。
使用-O0选项调试的时候就会顺畅了,发布项目的时候不用再使用 -O0参数项,gcc 默认编译或加上-O2优化编译会提高程序运行速度。在muduo源码中使用-O2选项,调试的时候对其Makefile进行修改即可。

批量打印stack,使用ndk-stack,build.py

妈的 怀疑是内核死锁了

rw_semaphore
参考:https://blog.csdn.net/juS3Ve/article/details/79428049
参考:
https://www.jianshu.com/p/dabaded56e03?from=timeline

汇编代码

函数返回
MOV pc,lr

stp是什么命令?

surface分配内存

/frameworks/native/libs/gui/Surface.cpp

static inline int native_window_set_buffers_dimensions(
struct ANativeWindow* window,
int w, int h)
{
return window->perform(window, NATIVE_WINDOW_SET_BUFFERS_DIMENSIONS,
w, h);
}
这里去设置大小。

static inline int native_window_set_buffers_user_dimensions(
struct ANativeWindow* window,
int w, int h)
{
return window->perform(window, NATIVE_WINDOW_SET_BUFFERS_USER_DIMENSIONS,
w, h);
}

设置backtrace

Stack frame #00 pc 0004dadf  /system/lib/libgui.so (_ZN7android7Surface20setBuffersDimensionsEjj+82): Routine android::Surface::setBuffersDimensions(unsigned int, unsigned int) at /proc/self/cwd/frameworks/native/libs/gui/Surface.cpp:980 (discriminator 1)
Stack frame #01 pc 0004be11  /system/lib/libgui.so (_ZN7android7Surface12hook_performEP13ANativeWindowiz+40): Routine android::Surface::hook_perform(ANativeWindow*, int, ...) at /proc/self/cwd/frameworks/native/libs/gui/Surface.cpp:213 (discriminator 2)
Stack frame #02 pc 000e8575  /system/lib/libstagefright.so (_ZN7android33setNativeWindowSizeFormatAndUsageEP13ANativeWindowiiiiib+140): Routine native_window_set_buffers_dimensions(ANativeWindow*, int, int) at /proc/self/cwd/system/core/include/system/window.h:762
Stack frame #03 pc 00089455  /system/lib/libstagefright.so (_ZN7android6ACodec35setupNativeWindowSizeFormatAndUsageEP13ANativeWindowPib+448): Routine android::ACodec::setupNativeWindowSizeFormatAndUsage(ANativeWindow*, int*, bool) at /proc/self/cwd/frameworks/av/media/libstagefright/ACodec.cpp:1136
Stack frame #04 pc 0008a6eb  /system/lib/libstagefright.so (_ZN7android6ACodec38configureOutputBuffersFromNativeWindowEPjS1_S1_b+106): Routine android::ACodec::configureOutputBuffersFromNativeWindow(unsigned int*, unsigned int*, unsigned int*, bool) at /proc/self/cwd/frameworks/av/media/libstagefright/ACodec.cpp:1158
Stack frame #05 pc 0008a0b1  /system/lib/libstagefright.so (_ZN7android6ACodec37allocateOutputBuffersFromNativeWindowEv+36): Routine android::ACodec::allocateOutputBuffersFromNativeWindow() at /proc/self/cwd/frameworks/av/media/libstagefright/ACodec.cpp:1240 (discriminator 1)
Stack frame #06 pc 00089557  /system/lib/libstagefright.so (_ZN7android6ACodec21allocateBuffersOnPortEj+102): Routine android::ACodec::allocateBuffersOnPort(unsigned int) at /proc/self/cwd/frameworks/av/media/libstagefright/ACodec.cpp:839
Stack frame #07 pc 00097189  /system/lib/libstagefright.so (_ZN7android6ACodec17LoadedToIdleState12stateEnteredEv+28): Routine android::ACodec::LoadedToIdleState::stateEntered() at /proc/self/cwd/frameworks/av/media/libstagefright/ACodec.cpp:7163
Stack frame #08 pc 0000edf5  /system/lib/libstagefright_foundation.so (_ZN7android25AHierarchicalStateMachine11changeStateERKNS_2spINS_6AStateEEE+368): Routine android::AHierarchicalStateMachine::changeState(android::sp<android::AState> const&) at /proc/self/cwd/frameworks/av/media/libstagefright/foundation/AHierarchicalStateMachine.cpp:114 (discriminator 2)
Stack frame #09 pc 000965e5  /system/lib/libstagefright.so (_ZN7android6ACodec11LoadedState7onStartEv+80): Routine android::ACodec::LoadedState::onStart() at /proc/self/cwd/frameworks/av/media/libstagefright/ACodec.cpp:7149 (discriminator 1)
Stack frame #10 pc 00096a1d  /system/lib/libstagefright.so (_ZN7android6ACodec11LoadedState17onMessageReceivedERKNS_2spINS_8AMessageEEE+160): Routine android::ACodec::LoadedState::onMessageReceived(android::sp<android::AMessage> const&) at /proc/self/cwd/frameworks/av/media/libstagefright/ACodec.cpp:6877
Stack frame #11 pc 0000ebc5  /system/lib/libstagefright_foundation.so (_ZN7android25AHierarchicalStateMachine13handleMessageERKNS_2spINS_8AMessageEEE+76): Routine android::AHierarchicalStateMachine::handleMessage(android::sp<android::AMessage> const&) at /proc/self/cwd/frameworks/av/media/libstagefright/foundation/AHierarchicalStateMachine.cpp:58 (discriminator 5)
Stack frame #12 pc 0000ea25  /system/lib/libstagefright_foundation.so (_ZN7android8AHandler14deliverMessageERKNS_2spINS_8AMessageEEE+24): Routine android::AHandler::deliverMessage(android::sp<android::AMessage> const&) at /proc/self/cwd/frameworks/av/media/libstagefright/foundation/AHandler.cpp:27
Stack frame #13 pc 00010bf5  /system/lib/libstagefright_foundation.so (_ZN7android8AMessage7deliverEv+60): Routine android::AMessage::deliver() at /proc/self/cwd/frameworks/av/media/libstagefright/foundation/AMessage.cpp:354 (discriminator 2)
Stack frame #14 pc 0000f58d  /system/lib/libstagefright_foundation.so (_ZN7android7ALooper4loopEv+380): Routine android::ALooper::loop() at /proc/self/cwd/frameworks/av/media/libstagefright/foundation/ALooper.cpp:220 (discriminator 1)
Stack frame #15 pc 0000e3dd  /system/lib/libutils.so (_ZN7android6Thread11_threadLoopEPv+264): Routine android::Thread::_threadLoop(void*) at /proc/self/cwd/system/core/libutils/Threads.cpp:754
Stack frame #16 pc 00046e63  /system/lib/libc.so (_ZL15__pthread_startPv+22): Routine __pthread_start(void*) at /proc/self/cwd/bionic/libc/bionic/pthread_create.cpp:198 (discriminator 1)
Stack frame #17 pc 00019cbd  /system/lib/libc.so (__start_thread+6): Routine __start_thread at /proc/self/cwd/bionic/libc/bionic/clone.cpp:41 (discriminator 1)

线程是这一个
u0_a65 6165 5421 1363748 164468 futex_wait 00000000 S JNISurfaceTextu
代码路径在frameworks/av/media/libstagefright/
/frameworks/av/media/libstagefright/foundation

allocateBuffersOnPort

    if (storingMetadataInDecodedBuffers()) {
        err = allocateOutputMetadataBuffers();
    } else {
        err = allocateOutputBuffersFromNativeWindow();
    }

大小从这里设置的。
/frameworks/av/media/libstagefright/ACodec.cpp
return setNativeWindowSizeFormatAndUsage(
nativeWindow,
def.format.video.nFrameWidth,
def.format.video.nFrameHeight,
def.format.video.eColorFormat,
mRotationDegrees,
usage,
reconnect);
参考:https://blog.csdn.net/wan8180192/article/details/50269199

什么时候开始分配内存?

上层入口

AwesomePlayer::initVideoDecoder
这个不用了,使用
Nuplayer

以Nuplayer为入口进行分析:
/frameworks/av/media/libmediaplayerservice/nuplayer/NuPlayer.h
/frameworks/av/media/libmediaplayerservice/nuplayer/NuPlayer.cpp

走的是海思的player

妈的 大小是有BufferQueueProducer的mcore决定的。
BufferQueueCore是这个玩意
SurfaceFlinger::createNormalLayer

/frameworks/native/services/surfaceflinger/Client.cpp
Client::createSurface

SurfaceComposerClient::createSurface

/frameworks/base/core/jni/android_view_SurfaceControl.cpp
nativeCreate

/frameworks/base/libs/hwui/OpenGLRenderer.cpp

GraphicBufferListener::init

在下面这里改了尺寸
uint32_t Layer::doTransaction(uint32_t flags) {
ATRACE_CALL();

pushPendingState();
Layer::State c = getCurrentState();
if (!applyPendingStates(&c)) {
    return 0;
}

const Layer::State& s(getDrawingState());

const bool sizeChanged = (c.requested.w != s.requested.w) ||
                         (c.requested.h != s.requested.h);

if (sizeChanged) {
    // the size changed, we need to ask our client to request a new buffer
    ALOGD_IF(DEBUG_RESIZE,
            "doTransaction: geometry (layer=%p '%s'), tr=%02x, scalingMode=%d\n"
            "  current={ active   ={ wh={%4u,%4u} crop={%4d,%4d,%4d,%4d} (%4d,%4d) }\n"
            "            requested={ wh={%4u,%4u} }}\n"
            "  drawing={ active   ={ wh={%4u,%4u} crop={%4d,%4d,%4d,%4d} (%4d,%4d) }\n"
            "            requested={ wh={%4u,%4u} }}\n",
            this, getName().string(), mCurrentTransform,
            getEffectiveScalingMode(),
            c.active.w, c.active.h,
            c.crop.left,
            c.crop.top,
            c.crop.right,
            c.crop.bottom,
            c.crop.getWidth(),
            c.crop.getHeight(),
            c.requested.w, c.requested.h,
            s.active.w, s.active.h,
            s.crop.left,
            s.crop.top,
            s.crop.right,
            s.crop.bottom,
            s.crop.getWidth(),
            s.crop.getHeight(),
            s.requested.w, s.requested.h);

    // record the new size, form this point on, when the client request
    // a buffer, it'll get the new size.
    mSurfaceFlingerConsumer->setDefaultBufferSize(
            c.requested.w, c.requested.h);
}

他的trace是

Build fingerprint: 'HiSTBAndroidV6/Hi3798MV200/Hi3798MV200:7.0/NRD90M/lwf05300944:userdebug/test-keys'
pid: 1672, tid: 5522, name: Binder:1672_5  >>> /system/bin/surfaceflinger <<<
signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
Stack frame #00 pc 000366c7  /system/lib/libgui.so (_ZN7android19BufferQueueConsumer20setDefaultBufferSizeEjj+98): Routine android::BufferQueueConsumer::setDefaultBufferSize(unsigned int, unsigned int) at /proc/self/cwd/frameworks/native/libs/gui/BufferQueueConsumer.cpp:563
Stack frame #01 pc 0003e147  /system/lib/libgui.so (_ZN7android10GLConsumer20setDefaultBufferSizeEjj+70): Routine android::GLConsumer::setDefaultBufferSize(unsigned int, unsigned int) at /proc/self/cwd/frameworks/native/libs/gui/GLConsumer.cpp:217 (discriminator 1)
Stack frame #02 pc 0001aa87  /system/lib/libsurfaceflinger.so: Routine android::Layer::doTransaction(unsigned int) at /proc/self/cwd/frameworks/native/services/surfaceflinger/Layer.cpp:1415 (discriminator 1)
Stack frame #03 pc 00028bc1  /system/lib/libsurfaceflinger.so: Routine android::SurfaceFlinger::handleTransactionLocked(unsigned int) at /proc/self/cwd/frameworks/native/services/surfaceflinger/SurfaceFlinger_hwc1.cpp:1388 (discriminator 2)
Stack frame #04 pc 00027245  /system/lib/libsurfaceflinger.so: Routine android::SurfaceFlinger::handleTransaction(unsigned int) at /proc/self/cwd/frameworks/native/services/surfaceflinger/SurfaceFlinger_hwc1.cpp:1359
Stack frame #05 pc 00026e3d  /system/lib/libsurfaceflinger.so: Routine android::SurfaceFlinger::handleMessageTransaction() at /proc/self/cwd/frameworks/native/services/surfaceflinger/SurfaceFlinger_hwc1.cpp:945
Stack frame #06 pc 00011e49  /system/lib/libutils.so (_ZN7android6Looper9pollInnerEi+492): Routine android::Looper::pollInner(int) at /proc/self/cwd/system/core/libutils/Looper.cpp:337 (discriminator 1)
Stack frame #07 pc 00011bcf  /system/lib/libutils.so (_ZN7android6Looper8pollOnceEiPiS1_PPv+26): Routine android::Looper::pollOnce(int, int*, int*, void**) at /proc/self/cwd/system/core/libutils/Looper.cpp:219
Stack frame #08 pc 0001cf85  /system/lib/libsurfaceflinger.so: Routine android::Looper::pollOnce(int) at /proc/self/cwd/system/core/include/utils/Looper.h:265
Stack frame #09 pc 00026a0d  /system/lib/libsurfaceflinger.so (_ZN7android14SurfaceFlinger3runEv+10): Routine android::SurfaceFlinger::waitForEvent() at /proc/self/cwd/frameworks/native/services/surfaceflinger/SurfaceFlinger_hwc1.cpp:785
Stack frame #10 pc 0000102b  /system/bin/surfaceflinger
Stack frame #11 pc 00016c2d  /system/lib/libc.so (__libc_init+48): Routine __libc_init at /proc/self/cwd/bionic/libc/bionic/libc_init_dynamic.cpp:109
Stack frame #12 pc 00000e1c  /system/bin/surfaceflinger

这里setsize
Layer::setSize

wms了现在进入
正常时候:
06-04 06:56:33.123 2631 3120 E WindowManager: computeShownFrameLocked: WindowStateAnimator{665d7c5 Toast} mShownPosition.set mWin.mFrame.left = 798 mWin.mFrame.top=864 mWin.mXOffset=0 mWin.mYOffset=0

异常时候:
WindowManager: computeShownFrameLocked: WindowStateAnimator{d8d8c07 Toast} mShownPosition.set mWin.mFrame.left = 0 mWin.mFrame.top=2138536879 mWin.mXOffset=0 mWin.mYOffset=0

06-06 01:41:36.142 2595 2606 V applyDimension: applyDimension value=30.0 unit=1 metrics=1da9c000 DisplayMetrics{density=1.5, width=1920, height=1080, scaledDensity=1.5, xdpi=38.0, ydpi=38.0}
06-06 01:41:36.148 3552 3552 E getMetricsWithSize: outMetrics.density=1.5
06-06 01:41:36.149 3552 3552 I wenfengtou: setDensity2.0
06-06 01:41:36.149 3552 3552 I wenfengtou: setDensity2.0
06-06 01:41:36.152 3552 3552 V applyDimension: applyDimension value=1280.0 unit=1 metrics=278d0000 DisplayMetrics{density=2.0, width=1920, height=1080, scaledDensity=2.0, xdpi=38.0, ydpi=38.0}

修改方案,在relayoutwindow的时候,限制大小:
DisplayMetrics dm = new DisplayMetrics();
dm = mContext.getResources().getDisplayMetrics();
int screenWidth = dm.widthPixels;
int screenHeight = dm.heightPixels;
Slog.e(TAG,"relayoutWindow screenWidth=" + screenWidth + " screenHeight=" + screenHeight);
if (requestedWidth > screenWidth || requestedHeight > screenHeight) {
Slog.e(TAG, win + "relayoutWindow to big!!! return");
return 0;
}

怎样打崩应用

package com.example.myapplication;

import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.Toast;

import com.blankj.utilcode.util.Utils;

public class MainActivity extends AppCompatActivity {
    Button mbutton;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mbutton = (Button) findViewById(R.id.button);
        mbutton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               // Toast.makeText("Drawpad没有使能").show();
                final DisplayMetrics appDm = Utils.getApp().getResources().getDisplayMetrics();
                float zero = 0f;
                float haha = 1f;
                appDm.density = haha/ zero;
                appDm.densityDpi = (int) (160 * appDm.density);
                appDm.scaledDensity = appDm.density;

               // DisplayMetrics dm2 = new DisplayMetrics();
               // wm.getDefaultDisplay().getMetrics(dm2);
                Log.i("hackn","dm2.density=" + Utils.getApp().getResources().getDisplayMetrics().density);
                Toast.makeText(MainActivity.this,"Drwapad没有使能哈哈哈哈哈哈哈哈",Toast.LENGTH_SHORT).show();

            }
        });
    }
}

Bilibili崩溃问题

view在不断增大

image.png

给詹一美打国际电话 没有出现问题。

高负载时,主线程非常卡。
User 66%, System 25%, IOW 0%, IRQ 0%
User 698 + Nice 120 + Sys 316 + Idle 90 + IOW 0 + IRQ 0 + SIRQ 1 = 1225

PID USER PR NI CPU% S #THR VSS RSS PCY Name
15182 u0_a51 16 -4 53% D 100 1518312K 418640K fg tv.danmaku.bili
6085 u0_a51 20 0 28% S 44 1290900K 150796K fg tv.danmaku.bili:ijkservice
1776 shell 20 0 3% S 9 30784K 940K fg /sbin/adbd
21582 shell 20 0 1% S 1 4008K 1788K fg logcat
1575 logd 30 10 1% S 9 18356K 6868K bg /system/bin/logd

小时代 宿舍姐妹花 必然会卡死

widget.Space占了很多个

参考:https://www.cnblogs.com/tangZH/p/10955429.html
https://blog.csdn.net/yxz329130952/article/details/50288145

https://www.codercto.com/a/3992.html
关于弹幕的一个开源介绍

                Toast mToast = Toast.makeText(Utils.getApp(),"hahahha",Toast.LENGTH_LONG);
                if (Build.VERSION.SDK_INT == Build.VERSION_CODES.N_MR1) {
                    try {
                        //noinspection JavaReflectionMemberAccess
                        Field field = View.class.getDeclaredField("mContext");
                        field.setAccessible(true);
                        field.set(mToast.getView(), new ApplicationContextWrapperForApiff());
                    } catch (Throwable throwable) {
                        throwable.printStackTrace();
                    }
                }
                mToast.show();
image.png

搞崩系统的代码

package com.example.myapplication;

import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.Toast;

import com.blankj.utilcode.util.Utils;

public class MainActivity extends AppCompatActivity {
    Button mbutton;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mbutton = (Button) findViewById(R.id.button);
        mbutton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               // Toast.makeText("Drawpad没有使能").show();
                final DisplayMetrics appDm = Utils.getApp().getResources().getDisplayMetrics();
                float zero = 0f;
                float haha = 1f;
                appDm.density = haha/ zero;
                appDm.densityDpi = (int) (160 * appDm.density);
                appDm.scaledDensity = appDm.density;

               // DisplayMetrics dm2 = new DisplayMetrics();
               // wm.getDefaultDisplay().getMetrics(dm2);

                Log.i("hackn","dm2.density=" + Utils.getApp().getResources().getDisplayMetrics().density);
                Haha hh = new Haha();
                Toast.makeText(MainActivity.this,"Drwapad没有使能哈哈哈哈哈哈哈哈",Toast.LENGTH_SHORT).show();

            }
        });
    }

    static class Haha {
       Woc woc = new Woc();
        Haha() {
            Log.i("haha", "construct");
        }
    }
}

06-11 06:09:25.034 4326 4326 I HookMain: new TintTextView count = 1589
06-11 06:09:25.039 4326 4326 I HookMain: new TintTextView count = 1590
06-11 06:09:25.042 4326 4326 I HookMain: new TintTextView count = 1591
06-11 06:09:25.045 4326 4326 I HookMain: new TintTextView count = 1592
06-11 06:09:25.050 4326 4326 I HookMain: new TintTextView count = 1593
没复现问题是的数量

对比下来 这个多了很多

image.png

出现了这么多个bitmap
(<Xposed>)
06-11 07:30:01.546 5633 5633 I HookMain: setBackgroundDrawable count = 988
06-11 07:30:01.546 5633 5633 I HookMain: at com.bilibili.magicasakura.widgets.TintImageView.setBackgroundDrawable(<Xposed>)
06-11 07:30:01.550 5633 5633 I HookMain: setBackgroundDrawable count = 989
06-11 07:30:01.550 5633 5633 I HookMain: at com.bilibili.magicasakura.widgets.TintImageView.setBackgroundDrawable(<Xposed>)
06-11 07:30:01.670 5633 5633 I HookMain: setBackgroundDrawable count = 990
06-11 07:30:01.670 5633 5633 I HookMain: at com.bilibili.magicasakura.widgets.TintImageView.setBackgroundDrawable(<Xposed>)
06-11 07:30:01.699 5633 5633 I HookMain: setBackgroundDrawable count = 991
06-11 07:30:01.699 5633 5633 I HookMain: at com.bilibili.magicasakura.widgets.TintImageView.setBackgroundDrawable(<Xposed>)
06-11 07:30:01.781 5633 5633 I HookMain: setBackgroundDrawable count = 992
06-11 07:30:01.781 5633 5633 I HookMain: at com.bilibili.magicasakura.widgets.TintImageView.setBackgroundDrawable(<Xposed>)
06-11 07:30:01.785 5633 5633 I HookMain: setBackgroundDrawable count = 993
06-11 07:30:01.785 5633 5633 I HookMain: at com.bilibili.magicasakura.widgets.TintImageView.setBackgroundDrawable(<Xposed>)

看上去像不断地在加载comments的view

06-11 07:58:08.872  4166  4166 I HookMain: setBackgroundDrawable count = 1043
06-11 07:58:08.872  4166  4166 I HookMain: java.lang.Throwable
06-11 07:58:08.872  4166  4166 I HookMain:      at com.wenfengtou.xposedsimpledemo.HookMain$2.beforeHookedMethod(HookMain.java:73)
06-11 07:58:08.872  4166  4166 I HookMain:      at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:340)
06-11 07:58:08.872  4166  4166 I HookMain:      at com.bilibili.magicasakura.widgets.TintImageView.setBackgroundDrawable(<Xposed>)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.View.setBackground(View.java:18120)
06-11 07:58:08.872  4166  4166 I HookMain:      at com.bilibili.magicasakura.widgets.a.c(BL:160)
06-11 07:58:08.872  4166  4166 I HookMain:      at com.bilibili.magicasakura.widgets.a.b(BL:111)
06-11 07:58:08.872  4166  4166 I HookMain:      at com.bilibili.magicasakura.widgets.a.a(BL:49)
06-11 07:58:08.872  4166  4166 I HookMain:      at com.bilibili.magicasakura.widgets.TintImageView.<init>(BL:40)
06-11 07:58:08.872  4166  4166 I HookMain:      at com.bilibili.magicasakura.widgets.TintImageView.<init>(BL:29)
06-11 07:58:08.872  4166  4166 I HookMain:      at java.lang.reflect.Constructor.newInstance0(Native Method)
06-11 07:58:08.872  4166  4166 I HookMain:      at java.lang.reflect.Constructor.newInstance(Constructor.java:430)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.LayoutInflater.createView(LayoutInflater.java:645)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:787)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.LayoutInflater.rInflate(LayoutInflater.java:858)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.LayoutInflater.rInflate(LayoutInflater.java:861)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.LayoutInflater.inflate(LayoutInflater.java:518)
06-11 07:58:08.872  4166  4166 I HookMain:      at de.robv.android.xposed.XposedBridge.invokeOriginalMethodNative(Native Method)
06-11 07:58:08.872  4166  4166 I HookMain:      at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:360)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.LayoutInflater.inflate(<Xposed>)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.LayoutInflater.inflate(LayoutInflater.java:426)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.databinding.g.a(BL:126)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.databinding.g.a(BL:95)
06-11 07:58:08.872  4166  4166 I HookMain:      at b.xn.a(BL:58)
06-11 07:58:08.872  4166  4166 I HookMain:      at com.bilibili.app.comm.comment2.comments.view.ac.a(BL:86)
06-11 07:58:08.872  4166  4166 I HookMain:      at com.bilibili.app.comm.comment2.comments.view.aa.b(BL:59)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.support.v7.widget.RecyclerView$a.c(BL:6794)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.support.v7.widget.RecyclerView$Recycler.a(BL:5975)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.support.v7.widget.RecyclerView$Recycler.a(BL:5858)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.support.v7.widget.RecyclerView$Recycler.c(BL:5854)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.support.v7.widget.LinearLayoutManager$c.a(BL:2230)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.support.v7.widget.LinearLayoutManager.a(BL:1557)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.support.v7.widget.LinearLayoutManager.a(BL:1517)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.support.v7.widget.LinearLayoutManager.c(BL:612)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.support.v7.widget.RecyclerView.K(BL:3924)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.support.v7.widget.RecyclerView.o(BL:3641)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.support.v7.widget.RecyclerView.onLayout(BL:4194)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.View.layout(View.java:17519)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.View.layout(View.java:17519)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1079)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.View.layout(View.java:17519)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.View.layout(View.java:17519)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.support.v4.widget.SwipeRefreshLayout.onLayout(BL:625)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.View.layout(View.java:17519)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.support.v4.view.ViewPager.onLayout(BL:1775)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.View.layout(View.java:17519)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.View.layout(View.java:17519)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.View.layout(View.java:17519)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.View.layout(View.java:17519)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.support.design.widget.d.layoutChild(BL:142)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.support.design.widget.g.onLayoutChild(BL:41)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onLayoutChild(BL:1556)
06-11 07:58:08.873  4166  4166 I HookMain:      at tv.danmaku.bili.widget.PinnedBottomScrollingBehavior.onLayoutChild(BL:41)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.support.design.widget.CoordinatorLayout.onLayout(BL:888)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.View.layout(View.java:17519)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.View.layout(View.java:17519)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.View.layout(View.java:17519)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.View.layout(View.java:17519)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.View.layout(View.java:17519)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
06-11 07:58:08.873  4166  4166 I HookMain:      at com.android.internal.policy.DecorView.onLayout(DecorView.java:724)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.View.layout(View.java:17519)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2342)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2069)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1246)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6302)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.Choreographer$CallbackRecord.run(Choreographer.java:871)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.Choreographer.doCallbacks(Choreographer.java:683)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.Choreographer.doFrame(Choreographer.java:619)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:857)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.os.Handler.handleCallback(Handler.java:751)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.os.Handler.dispatchMessage(Handler.java:95)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.os.Looper.loop(Looper.java:154)
06-11 07:58:08.873  4166  4166 I HookMain:      at android.app.ActivityThread.main(ActivityThread.java:6097)
06-11 07:58:08.873  4166  4166 I HookMain:      at java.lang.reflect.Method.invoke(Native Method)
06-11 07:58:08.873  4166  4166 I HookMain:      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1013)
06-11 07:58:08.873  4166  4166 I HookMain:      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:903)
06-11 07:58:08.873  4166  4166 I HookMain:      at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:107)
06-11 07:58:08.918  4166  4166 E Xposed  :      at com.wenfengtou.xposedsimpledemo.HookMain$2.beforeHookedMethod(HookMain.java:75)

bilibili会定时请求一些framecallback,可以忽略掉
06-12 01:11:14.947 4219 5428 I postFrameCallback: postFrameCallback b.hflb@91ff8fb 06-12 01:11:14.947 4219 5428 I postFrameCallback: java.lang.Throwable 06-12 01:11:14.947 4219 5428 I postFrameCallback: at com.wenfengtou.xposedsimpledemo.HookMain7.beforeHookedMethod(HookMain.java:142)
06-12 01:11:14.947 4219 5428 I postFrameCallback: at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:340)
06-12 01:11:14.947 4219 5428 I postFrameCallback: at android.view.Choreographer.postFrameCallback(<Xposed>)
06-12 01:11:14.947 4219 5428 I postFrameCallback: at b.hfl.n(BL:538)
06-12 01:11:14.947 4219 5428 I postFrameCallback: at b.hfl.handleMessage(BL:299)
06-12 01:11:14.947 4219 5428 I postFrameCallback: at android.os.Handler.dispatchMessage(Handler.java:102)
06-12 01:11:14.947 4219 5428 I postFrameCallback: at android.os.Looper.loop(Looper.java:154)
06-12 01:11:14.947 4219 5428 I postFrameCallback: at android.os.HandlerThread.run(HandlerThread.java:61)

出现问题的时候,出现很多viewdatabining的log

06-12 01:23:17.311 13646 13646 I postFrameCallback: postFrameCallback android.databinding.ViewDataBinding$8@ab1a300
06-12 01:23:17.311 13646 13646 I postFrameCallback: java.lang.Throwable
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at com.wenfengtou.xposedsimpledemo.HookMain$7.beforeHookedMethod(HookMain.java:142)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:340)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.Choreographer.postFrameCallback(<Xposed>)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.databinding.ViewDataBinding.h(BL:549)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at b.aej.e(BL:97)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at b.aej.<init>(BL:88)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at b.aej.<init>(BL:33)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at b.aeb.a(BL:92)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.databinding.i.a(BL:39)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.databinding.g.a(BL:199)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.databinding.g.a(BL:130)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.databinding.g.a(BL:95)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at b.xn.a(BL:58)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at com.bilibili.app.comm.comment2.comments.view.ac.a(BL:86)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at com.bilibili.app.comm.comment2.comments.view.aa.b(BL:59)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.support.v7.widget.RecyclerView$a.c(BL:6794)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.support.v7.widget.RecyclerView$Recycler.a(BL:5975)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.support.v7.widget.RecyclerView$Recycler.a(BL:5858)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.support.v7.widget.RecyclerView$Recycler.c(BL:5854)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.support.v7.widget.LinearLayoutManager$c.a(BL:2230)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.support.v7.widget.LinearLayoutManager.a(BL:1557)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.support.v7.widget.LinearLayoutManager.a(BL:1517)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.support.v7.widget.LinearLayoutManager.c(BL:612)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.support.v7.widget.RecyclerView.K(BL:3924)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.support.v7.widget.RecyclerView.o(BL:3641)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.support.v7.widget.RecyclerView.onLayout(BL:4194)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1079)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.support.v4.widget.SwipeRefreshLayout.onLayout(BL:625)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.support.v4.view.ViewPager.onLayout(BL:1775)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.support.design.widget.d.layoutChild(BL:142)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.support.design.widget.g.onLayoutChild(BL:41)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onLayoutChild(BL:1556)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at tv.danmaku.bili.widget.PinnedBottomScrollingBehavior.onLayoutChild(BL:41)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.support.design.widget.CoordinatorLayout.onLayout(BL:888)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at com.android.internal.policy.DecorView.onLayout(DecorView.java:724)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2342)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2069)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1246)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6302)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:871)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.Choreographer.doCallbacks(Choreographer.java:683)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.Choreographer.doFrame(Choreographer.java:619)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:857)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.os.Handler.handleCallback(Handler.java:751)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.os.Handler.dispatchMessage(Handler.java:95)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.os.Looper.loop(Looper.java:154)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.app.ActivityThread.main(ActivityThread.java:6097)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at java.lang.reflect.Method.invoke(Native Method)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1013)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:903)
06-12 01:23:17.311 13646 13646 I postFrameCallback:     at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:107)
06-12 01:23:17.437 13646 13646 I postFrameCallback: postFrameCallback android.databinding.ViewDataBinding$8@6628c4c
06-12 01:23:17.437 13646 13646 I postFrameCallback: java.lang.Throwable
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at com.wenfengtou.xposedsimpledemo.HookMain$7.beforeHookedMethod(HookMain.java:142)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:340)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.Choreographer.postFrameCallback(<Xposed>)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.databinding.ViewDataBinding.h(BL:549)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at b.aej.e(BL:97)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at b.aej.<init>(BL:88)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at b.aej.<init>(BL:33)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at b.aeb.a(BL:92)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.databinding.i.a(BL:39)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.databinding.g.a(BL:199)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.databinding.g.a(BL:130)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.databinding.g.a(BL:95)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at b.xn.a(BL:58)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at com.bilibili.app.comm.comment2.comments.view.ac.a(BL:86)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at com.bilibili.app.comm.comment2.comments.view.aa.b(BL:59)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.support.v7.widget.RecyclerView$a.c(BL:6794)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.support.v7.widget.RecyclerView$Recycler.a(BL:5975)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.support.v7.widget.RecyclerView$Recycler.a(BL:5858)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.support.v7.widget.RecyclerView$Recycler.c(BL:5854)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.support.v7.widget.LinearLayoutManager$c.a(BL:2230)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.support.v7.widget.LinearLayoutManager.a(BL:1557)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.support.v7.widget.LinearLayoutManager.a(BL:1517)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.support.v7.widget.LinearLayoutManager.c(BL:612)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.support.v7.widget.RecyclerView.K(BL:3924)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.support.v7.widget.RecyclerView.o(BL:3641)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.support.v7.widget.RecyclerView.onLayout(BL:4194)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1079)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.support.v4.widget.SwipeRefreshLayout.onLayout(BL:625)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.support.v4.view.ViewPager.onLayout(BL:1775)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.support.design.widget.d.layoutChild(BL:142)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.support.design.widget.g.onLayoutChild(BL:41)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onLayoutChild(BL:1556)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at tv.danmaku.bili.widget.PinnedBottomScrollingBehavior.onLayoutChild(BL:41)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.support.design.widget.CoordinatorLayout.onLayout(BL:888)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
06-12 01:23:17.438 13646 13646 I postFrameCallback:     at com.android.internal.policy.DecorView.onLayout(DecorView.java:724)
06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2342)
06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2069)
06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1246)
06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6302)
06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:871)
06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.view.Choreographer.doCallbacks(Choreographer.java:683)
06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.view.Choreographer.doFrame(Choreographer.java:619)
06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:857)
06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.os.Handler.handleCallback(Handler.java:751)
06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.os.Handler.dispatchMessage(Handler.java:95)
06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.os.Looper.loop(Looper.java:154)
06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.app.ActivityThread.main(ActivityThread.java:6097)
06-12 01:23:17.438 13646 13646 I postFrameCallback:     at java.lang.reflect.Method.invoke(Native Method)
06-12 01:23:17.438 13646 13646 I postFrameCallback:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1013)
06-12 01:23:17.438 13646 13646 I postFrameCallback:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:903)
06-12 01:23:17.438 13646 13646 I postFrameCallback:     at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:107)

viewdatabinder就是view的数据变化的时候,更新view的一个机制。说明view的某个数据变了???
卧槽。

看是在 CALLBACK_TRAVERSAL中去遍历了一次视图。
mFrameInfo.markPerformTraversalsStart();
doCallbacks(Choreographer.CALLBACK_TRAVERSAL, frameTimeNanos);

自己手写的应用貌似不太一样,我去。这么弄得

06-12 03:28:20.559  4273  4273 I postFrameCallback: postFrameCallback android.databinding.ViewDataBinding$8@3c1f29d
06-12 03:28:20.559  4273  4273 I postFrameCallback: java.lang.Throwable
06-12 03:28:20.559  4273  4273 I postFrameCallback:     at com.wenfengtou.xposedsimpledemo.HookMain$1.beforeHookedMethod(HookMain.java:67)
06-12 03:28:20.559  4273  4273 I postFrameCallback:     at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:340)
06-12 03:28:20.559  4273  4273 I postFrameCallback:     at android.view.Choreographer.postFrameCallback(<Xposed>)
06-12 03:28:20.559  4273  4273 I postFrameCallback:     at android.databinding.ViewDataBinding.requestRebind(ViewDataBinding.java:584)
06-12 03:28:20.559  4273  4273 I postFrameCallback:     at android.databinding.ViewDataBinding.handleFieldChange(ViewDataBinding.java:548)
06-12 03:28:20.559  4273  4273 I postFrameCallback:     at android.databinding.ViewDataBinding.access$800(ViewDataBinding.java:63)
06-12 03:28:20.559  4273  4273 I postFrameCallback:     at android.databinding.ViewDataBinding$WeakPropertyListener.onPropertyChanged(ViewDataBinding.java:1465)
06-12 03:28:20.559  4273  4273 I postFrameCallback:     at android.databinding.PropertyChangeRegistry$1.onNotifyCallback(PropertyChangeRegistry.java:30)
06-12 03:28:20.559  4273  4273 I postFrameCallback:     at android.databinding.PropertyChangeRegistry$1.onNotifyCallback(PropertyChangeRegistry.java:26)
06-12 03:28:20.559  4273  4273 I postFrameCallback:     at android.databinding.CallbackRegistry.notifyCallbacks(CallbackRegistry.java:201)
06-12 03:28:20.559  4273  4273 I postFrameCallback:     at android.databinding.CallbackRegistry.notifyFirst64(CallbackRegistry.java:122)
06-12 03:28:20.559  4273  4273 I postFrameCallback:     at android.databinding.CallbackRegistry.notifyRemainder(CallbackRegistry.java:169)
06-12 03:28:20.559  4273  4273 I postFrameCallback:     at android.databinding.CallbackRegistry.notifyRecurse(CallbackRegistry.java:145)
06-12 03:28:20.559  4273  4273 I postFrameCallback:     at android.databinding.CallbackRegistry.notifyCallbacks(CallbackRegistry.java:91)
06-12 03:28:20.559  4273  4273 I postFrameCallback:     at android.databinding.BaseObservable.notifyChange(BaseObservable.java:60)
06-12 03:28:20.559  4273  4273 I postFrameCallback:     at com.example.myapplication.Woc.setOut(Woc.java:12)
06-12 03:28:20.559  4273  4273 I postFrameCallback:     at com.example.myapplication.MainActivity$2.handleMessage(MainActivity.java:59)

bilibili的这个方法是入口

.method public a(Lb/aei;Lb/za;)V
    .locals 2

    .line 33
    iget-object v0, p1, Lb/aei;->x:Ltv/danmaku/bili/widget/ForegroundConstraintLayout;

    const/16 v1, 0x8

    invoke-virtual {v0, v1}, Ltv/danmaku/bili/widget/ForegroundConstraintLayout;->setVisibility(I)V

    .line 34
    iget-object v0, p1, Lb/aei;->v:Lcom/bilibili/magicasakura/widgets/TintTextView;

    invoke-virtual {v0, v1}, Lcom/bilibili/magicasakura/widgets/TintTextView;->setVisibility(I)V

    .line 35
    iget-object v0, p1, Lb/aei;->g:Lcom/bilibili/magicasakura/widgets/TintTextView;

    invoke-virtual {v0, v1}, Lcom/bilibili/magicasakura/widgets/TintTextView;->setVisibility(I)V

    .line 36
    iget-object v0, p1, Lb/aei;->m:Landroid/widget/TextView;

    invoke-virtual {v0, v1}, Landroid/widget/TextView;->setVisibility(I)V

    .line 37
    iget-object v0, p1, Lb/aei;->l:Landroid/widget/TextView;

    invoke-virtual {v0, v1}, Landroid/widget/TextView;->setVisibility(I)V

    .line 38
    iget-object v0, p2, Lb/za;->x:Lcom/bilibili/app/comm/comment2/basemvvm/observable/LazyObservableBoolean;

    invoke-virtual {v0}, Lcom/bilibili/app/comm/comment2/basemvvm/observable/LazyObservableBoolean;->getValue()Z

    move-result v0

    if-nez v0, :cond_0

    iget-object v0, p2, Lb/za;->y:Lcom/bilibili/app/comm/comment2/basemvvm/observable/LazyObservableBoolean;

    invoke-virtual {v0}, Lcom/bilibili/app/comm/comment2/basemvvm/observable/LazyObservableBoolean;->getValue()Z

    move-result v0

    if-eqz v0, :cond_1

    .line 39
    :cond_0
    invoke-virtual {p2}, Lb/za;->a()Lcom/bilibili/app/comm/comment2/comments/viewmodel/y;

    move-result-object v0

    invoke-virtual {v0}, Lcom/bilibili/app/comm/comment2/comments/viewmodel/y;->d()Lcom/bilibili/app/comm/comment2/CommentContext;

    move-result-object v0

    .line 40
    invoke-virtual {v0}, Lcom/bilibili/app/comm/comment2/CommentContext;->a()Lb/abi;

    move-result-object v1

    if-eqz v1, :cond_1

    .line 41
    invoke-virtual {v0}, Lcom/bilibili/app/comm/comment2/CommentContext;->a()Lb/abi;

    move-result-object v0

    iget-object v1, p2, Lb/za;->z:Lcom/bilibili/app/comm/comment2/basemvvm/observable/LazyObservableField;

    invoke-virtual {v1}, Lcom/bilibili/app/comm/comment2/basemvvm/observable/LazyObservableField;->getValue()Ljava/lang/Object;

    move-result-object v1

    invoke-static {v1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;

    move-result-object v1

    invoke-virtual {v0, v1}, Lb/abi;->a(Ljava/lang/String;)V

    .line 44
    :cond_1
    invoke-virtual {p2}, Lb/za;->a()Lcom/bilibili/app/comm/comment2/comments/viewmodel/y;

    move-result-object v0

    invoke-virtual {p1, v0}, Lb/aei;->a(Lcom/bilibili/app/comm/comment2/comments/viewmodel/y;)V

    .line 45
    invoke-virtual {p1, p2}, Lb/aei;->a(Lb/za;)V

    .line 46
    iget-object v0, p0, Lb/xn;->q:Lb/xq;

    iget-object v1, p1, Lb/aei;->k:Landroid/databinding/o;

    invoke-virtual {v0, v1, p2}, Lb/xq;->a(Landroid/databinding/o;Lb/za;)V

    .line 47
    invoke-virtual {p1}, Lb/aei;->b()V

    return-void
.end method

06-12 01:23:17.437 13646 13646 I postFrameCallback: at b.xn.a(BL:58) 这个方法没有进去的。
06-12 01:23:17.437 13646 13646 I postFrameCallback: at com.bilibili.app.comm.comment2.comments.view.ac.a(BL:86)
06-12 01:23:17.437 13646 13646 I postFrameCallback: at com.bilibili.app.comm.comment2.comments.view.aa.b(BL:59) 这个方法也没有进去。得找到进去得点

出问题时mLayoutRequested为true!!!!
06-12 15:06:16.493 4037 4037 I performTraversals: mView =DecorView@a8b0240[VideoDetailsActivity] mAdded=true mStopped=false mReportNextDraw=false mLayoutRequested=true

正常播放是这样子得
performTraversals: mView =DecorView@6e22548[VideoDetailsActivity] mAdded=true mStopped=false mReportNextDraw=false mLayoutRequested=false

会有请求刷新界面得操作

06-12 15:19:42.620  4568  4568 I requestLayout: requestLayout
06-12 15:19:42.620  4568  4568 I requestLayout: java.lang.Throwable
06-12 15:19:42.620  4568  4568 I requestLayout:         at com.wenfengtou.xposedsimpledemo.HookMain$1.beforeHookedMethod(HookMain.java:69)
06-12 15:19:42.620  4568  4568 I requestLayout:         at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:340)
06-12 15:19:42.620  4568  4568 I requestLayout:         at android.view.ViewRootImpl.requestLayout(<Xposed>)
06-12 15:19:42.620  4568  4568 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
06-12 15:19:42.620  4568  4568 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
06-12 15:19:42.620  4568  4568 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
06-12 15:19:42.620  4568  4568 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
06-12 15:19:42.620  4568  4568 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
06-12 15:19:42.620  4568  4568 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
06-12 15:19:42.620  4568  4568 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
06-12 15:19:42.620  4568  4568 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
06-12 15:19:42.620  4568  4568 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
06-12 15:19:42.620  4568  4568 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
06-12 15:19:42.620  4568  4568 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
06-12 15:19:42.620  4568  4568 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
06-12 15:19:42.620  4568  4568 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
06-12 15:19:42.620  4568  4568 I requestLayout:         at android.widget.RelativeLayout.requestLayout(RelativeLayout.java:360)
06-12 15:19:42.620  4568  4568 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
06-12 15:19:42.620  4568  4568 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
06-12 15:19:42.620  4568  4568 I requestLayout:         at android.support.v7.widget.RecyclerView.requestLayout(BL:4202)
06-12 15:19:42.620  4568  4568 I requestLayout:         at android.support.v7.widget.RecyclerView$p.b(BL:5327)
06-12 15:19:42.620  4568  4568 I requestLayout:         at android.support.v7.widget.RecyclerView$p.a(BL:5294)
06-12 15:19:42.620  4568  4568 I requestLayout:         at android.support.v7.widget.RecyclerView$b.a(BL:12012)
06-12 15:19:42.620  4568  4568 I requestLayout:         at android.support.v7.widget.RecyclerView$a.a(BL:7114)
06-12 15:19:42.620  4568  4568 I requestLayout:         at com.bilibili.app.comm.comment2.comments.view.aa$1.d(BL:37)
06-12 15:19:42.620  4568  4568 I requestLayout:         at com.bilibili.app.comm.comment2.comments.view.ab.run(Unknown Source)
06-12 15:19:42.620  4568  4568 I requestLayout:         at android.os.Handler.handleCallback(Handler.java:751)
06-12 15:19:42.620  4568  4568 I requestLayout:         at android.os.Handler.dispatchMessage(Handler.java:95)
06-12 15:19:42.620  4568  4568 I requestLayout:         at android.os.Looper.loop(Looper.java:154)
06-12 15:19:42.620  4568  4568 I requestLayout:         at android.app.ActivityThread.main(ActivityThread.java:6097)
06-12 15:19:42.620  4568  4568 I requestLayout:         at java.lang.reflect.Method.invoke(Native Method)
06-12 15:19:42.620  4568  4568 I requestLayout:         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1013)
06-12 15:19:42.620  4568  4568 I requestLayout:         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:903)
06-12 15:19:42.620  4568  4568 I requestLayout:         at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:107)

md,是不是跟视频格式有关系?flv么有问题,mp4有问题???


image.png

Bilibli总会有这一句

06-12 15:33:24.021 14486 14486 I requestLayout: requestLayout
06-12 15:33:24.021 14486 14486 I requestLayout: java.lang.Throwable
06-12 15:33:24.021 14486 14486 I requestLayout:         at com.wenfengtou.xposedsimpledemo.HookMain$1.beforeHookedMethod(HookMain.java:69)
06-12 15:33:24.021 14486 14486 I requestLayout:         at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:340)
06-12 15:33:24.021 14486 14486 I requestLayout:         at android.view.ViewRootImpl.requestLayout(<Xposed>)
06-12 15:33:24.021 14486 14486 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
06-12 15:33:24.021 14486 14486 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
06-12 15:33:24.021 14486 14486 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
06-12 15:33:24.021 14486 14486 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
06-12 15:33:24.021 14486 14486 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
06-12 15:33:24.021 14486 14486 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
06-12 15:33:24.021 14486 14486 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
06-12 15:33:24.021 14486 14486 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
06-12 15:33:24.021 14486 14486 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
06-12 15:33:24.021 14486 14486 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
06-12 15:33:24.021 14486 14486 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
06-12 15:33:24.021 14486 14486 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
06-12 15:33:24.021 14486 14486 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
06-12 15:33:24.021 14486 14486 I requestLayout:         at android.widget.RelativeLayout.requestLayout(RelativeLayout.java:360)
06-12 15:33:24.021 14486 14486 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
06-12 15:33:24.021 14486 14486 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
06-12 15:33:24.021 14486 14486 I requestLayout:         at android.support.v7.widget.RecyclerView.requestLayout(BL:4202)
06-12 15:33:24.021 14486 14486 I requestLayout:         at android.support.v7.widget.RecyclerView$p.b(BL:5327)
06-12 15:33:24.021 14486 14486 I requestLayout:         at android.support.v7.widget.RecyclerView$p.b(BL:5302)
06-12 15:33:24.021 14486 14486 I requestLayout:         at android.support.v7.widget.RecyclerView$b.b(BL:12022)
06-12 15:33:24.021 14486 14486 I requestLayout:         at android.support.v7.widget.RecyclerView$a.c(BL:7214)
06-12 15:33:24.021 14486 14486 I requestLayout:         at com.bilibili.app.comm.comment2.comments.view.aa$1.a(BL:27)
06-12 15:33:24.021 14486 14486 I requestLayout:         at b.aac$1.a(BL:59)
06-12 15:33:24.021 14486 14486 I requestLayout:         at b.wt.a(BL:19)
06-12 15:33:24.021 14486 14486 I requestLayout:         at b.wu$1.a(BL:26)
06-12 15:33:24.021 14486 14486 I requestLayout:         at b.wr.a(BL:36)
06-12 15:33:24.021 14486 14486 I requestLayout:         at b.ws$1.b(BL:52)
06-12 15:33:24.021 14486 14486 I requestLayout:         at android.databinding.h$1.a(BL:48)
06-12 15:33:24.021 14486 14486 I requestLayout:         at android.databinding.h$1.a(BL:39)
06-12 15:33:24.021 14486 14486 I requestLayout:         at android.databinding.c.a(BL:201)
06-12 15:33:24.021 14486 14486 I requestLayout:         at android.databinding.c.b(BL:122)
06-12 15:33:24.021 14486 14486 I requestLayout:         at android.databinding.c.a(BL:169)
06-12 15:33:24.021 14486 14486 I requestLayout:         at android.databinding.c.c(BL:145)
06-12 15:33:24.021 14486 14486 I requestLayout:         at android.databinding.c.a(BL:91)
06-12 15:33:24.021 14486 14486 I requestLayout:         at android.databinding.h.a(BL:136)
06-12 15:33:24.021 14486 14486 I requestLayout:         at android.databinding.h.b(BL:94)
06-12 15:33:24.021 14486 14486 I requestLayout:         at android.databinding.ObservableArrayList.notifyAdd(BL:118)
06-12 15:33:24.021 14486 14486 I requestLayout:         at android.databinding.ObservableArrayList.addAll(BL:60)
06-12 15:33:24.021 14486 14486 I requestLayout:         at com.bilibili.app.comm.comment2.comments.viewmodel.bf$1.a(BL:227)
06-12 15:33:24.021 14486 14486 I requestLayout:         at com.bilibili.app.comm.comment2.comments.viewmodel.bf$1.a(BL:169)
06-12 15:33:24.021 14486 14486 I requestLayout:         at com.bilibili.okretro.b.a(BL:50)
06-12 15:33:24.021 14486 14486 I requestLayout:         at b.evp$3.run(BL:216)
06-12 15:33:24.021 14486 14486 I requestLayout:         at android.os.Handler.handleCallback(Handler.java:751)
06-12 15:33:24.021 14486 14486 I requestLayout:         at android.os.Handler.dispatchMessage(Handler.java:95)
06-12 15:33:24.021 14486 14486 I requestLayout:         at android.os.Looper.loop(Looper.java:154)
06-12 15:33:24.021 14486 14486 I requestLayout:         at android.app.ActivityThread.main(ActivityThread.java:6097)
06-12 15:33:24.021 14486 14486 I requestLayout:         at java.lang.reflect.Method.invoke(Native Method)
06-12 15:33:24.021 14486 14486 I requestLayout:         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1013)
06-12 15:33:24.021 14486 14486 I requestLayout:         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:903)
06-12 15:33:24.021 14486 14486 I requestLayout:         at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:107)

我靠,貌似是评论区,因为一刷新就出来了。

image.png

滑动监听

06-12 15:11:28.700  2474  2474 I addOnScrollListener: addOnScrollListener
06-12 15:11:28.700  2474  2474 I addOnScrollListener: java.lang.Throwable
06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at com.wenfengtou.xposedsimpledemo.HookMain$1.afterHookedMethod(HookMain.java:28)
06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:374)
06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at android.support.v7.widget.RecyclerView.addOnScrollListener(<Xposed>)
06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at com.bilibili.app.comm.comment2.comments.view.y.a(BL:240)
06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at b.wy.onViewCreated(BL:49)
06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at android.support.v4.app.FragmentManagerImpl.moveToState(BL:1471)
06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(BL:1784)
06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at android.support.v4.app.FragmentManagerImpl.moveToState(BL:1852)
06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at android.support.v4.app.d.b(BL:802)
06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at android.support.v4.app.FragmentManagerImpl.executeOps(BL:2625)
06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(BL:2411)
06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(BL:2366)
06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at android.support.v4.app.FragmentManagerImpl.execSingleAction(BL:2243)
06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at android.support.v4.app.d.commitNowAllowingStateLoss(BL:654)
06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at android.support.v4.app.FragmentPagerAdapter.finishUpdate(BL:146)
06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at android.support.v4.view.ViewPager.a(BL:1244)
06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at android.support.v4.view.ViewPager.c(BL:1092)
06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at android.support.v4.view.ViewPager.setAdapter(BL:540)
06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at tv.danmaku.bili.ui.video.VideoDetailsActivity.a(BL:1218)
06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at tv.danmaku.bili.ui.video.VideoDetailsActivity.a(BL:1317)
06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at tv.danmaku.bili.ui.video.VideoDetailsActivity.ad(BL:852)
06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at tv.danmaku.bili.ui.video.VideoDetailsActivity.s(BL:216)
06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at tv.danmaku.bili.ui.video.VideoDetailsActivity$13.a(BL:1307)
06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at tv.danmaku.bili.ui.video.VideoDetailsActivity$13.a(BL:1283)
06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at com.bilibili.okretro.b.a(BL:50)
06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at b.evp$3.run(BL:216)
06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at de.robv.android.xposed.XposedBridge.invokeOriginalMethodNative(Native Method)
06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:360)
06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at b.evp$3.run(<Xposed>)
06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at android.os.Handler.handleCallback(Handler.java:751)
06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at android.os.Handler.dispatchMessage(Handler.java:95)
06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at android.os.Looper.loop(Looper.java:154)
06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at android.app.ActivityThread.main(ActivityThread.java:6121)
06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at java.lang.reflect.Method.invoke(Native Method)
06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:107)

下拉评论的log

06-12 16:20:29.669  3101  3101 I setImageDrawable: setImageDrawableandroid.graphics.drawable.BitmapDrawable@4d81131
06-12 16:20:29.669  3101  3101 I setImageDrawable: java.lang.Throwable
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at com.wenfengtou.xposedsimpledemo.HookMain$1.afterHookedMethod(HookMain.java:28)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:374)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at com.bilibili.magicasakura.widgets.TintImageView.setImageDrawable(<Xposed>)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at com.bilibili.magicasakura.widgets.f.a(BL:107)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at com.bilibili.magicasakura.widgets.f.d(BL:145)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at com.bilibili.magicasakura.widgets.f.b(BL:118)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at com.bilibili.magicasakura.widgets.f.a(BL:50)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at com.bilibili.magicasakura.widgets.TintImageView.<init>(BL:43)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at com.bilibili.magicasakura.widgets.TintImageView.<init>(BL:29)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at java.lang.reflect.Constructor.newInstance0(Native Method)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at java.lang.reflect.Constructor.newInstance(Constructor.java:430)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.view.LayoutInflater.createView(LayoutInflater.java:645)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:787)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.view.LayoutInflater.rInflate(LayoutInflater.java:858)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.view.LayoutInflater.rInflate(LayoutInflater.java:861)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.view.LayoutInflater.inflate(LayoutInflater.java:518)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at de.robv.android.xposed.XposedBridge.invokeOriginalMethodNative(Native Method)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:360)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.view.LayoutInflater.inflate(<Xposed>)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.view.LayoutInflater.inflate(LayoutInflater.java:426)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.databinding.g.a(BL:126)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.databinding.g.a(BL:95)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at b.xo.b(BL:61)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at com.bilibili.app.comm.comment2.comments.view.ac.a(BL:84)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at com.bilibili.app.comm.comment2.comments.view.aa.b(BL:59)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.support.v7.widget.RecyclerView$a.c(BL:6794)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.support.v7.widget.RecyclerView$Recycler.a(BL:5975)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.support.v7.widget.ak.a(BL:286)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.support.v7.widget.ak.a(BL:343)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.support.v7.widget.ak.b(BL:359)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.support.v7.widget.ak.a(BL:366)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.support.v7.widget.ak.run(BL:397)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.os.Handler.handleCallback(Handler.java:751)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.os.Handler.dispatchMessage(Handler.java:95)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.os.Looper.loop(Looper.java:154)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.app.ActivityThread.main(ActivityThread.java:6121)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at java.lang.reflect.Method.invoke(Native Method)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
06-12 16:20:29.669  3101  3101 I setImageDrawable:      at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:107)

下拉时候申请刷新

06-12 16:22:47.960  3101  3101 I requestLayout: requestLayout
06-12 16:22:47.960  3101  3101 I requestLayout: java.lang.Throwable
06-12 16:22:47.960  3101  3101 I requestLayout:         at com.wenfengtou.xposedsimpledemo.HookMain$7.afterHookedMethod(HookMain.java:82)
06-12 16:22:47.960  3101  3101 I requestLayout:         at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:374)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewRootImpl.requestLayout(<Xposed>)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.View.requestLayout(View.java:19781)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.View.requestLayout(View.java:19781)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.View.requestLayout(View.java:19781)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.View.requestLayout(View.java:19781)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.View.requestLayout(View.java:19781)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.View.requestLayout(View.java:19781)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.View.requestLayout(View.java:19781)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.View.requestLayout(View.java:19781)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.View.requestLayout(View.java:19781)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.View.requestLayout(View.java:19781)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.View.requestLayout(View.java:19781)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.bringChildToFront(ViewGroup.java:1349)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.View.bringToFront(View.java:11614)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.support.v4.widget.SwipeRefreshLayout.setTargetOffsetTopAndBottom(BL:1169)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.support.v4.widget.SwipeRefreshLayout.onInterceptTouchEvent(BL:709)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2175)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2264)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2264)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2264)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2264)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2264)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2264)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2264)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2264)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2264)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2264)
06-12 16:22:47.960  3101  3101 I requestLayout:         at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:414)
06-12 16:22:47.960  3101  3101 I requestLayout:         at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1808)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.app.Activity.dispatchTouchEvent(Activity.java:3064)
06-12 16:22:47.960  3101  3101 I requestLayout:         at b.ei.dispatchTouchEvent(BL:69)
06-12 16:22:47.960  3101  3101 I requestLayout:         at b.ei.dispatchTouchEvent(BL:69)
06-12 16:22:47.960  3101  3101 I requestLayout:         at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:376)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.View.dispatchPointerEvent(View.java:10243)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4438)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4306)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3853)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3906)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3872)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3999)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3880)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4056)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3853)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3906)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3872)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3880)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3853)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:6247)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:6221)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:6182)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6350)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.os.MessageQueue.nativePollOnce(Native Method)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.os.MessageQueue.next(MessageQueue.java:323)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.os.Looper.loop(Looper.java:136)
06-12 16:22:47.960  3101  3101 I requestLayout:         at android.app.ActivityThread.main(ActivityThread.java:6121)
06-12 16:22:47.960  3101  3101 I requestLayout:         at java.lang.reflect.Method.invoke(Native Method)
06-12 16:22:47.960  3101  3101 I requestLayout:         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
06-12 16:22:47.960  3101  3101 I requestLayout:         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
06-12 16:22:47.960  3101  3101 I requestLayout:         at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:107)

晚上调试的代码


看上去每跳一帧就会重新加载评论。
hook住评论后,播放就流畅了。

是什么layer的长宽有问题??
貌似是动画还有preload的界面。
06-19 11:07:25.249 1651 1651 I hwc : HISI_HWC gpu compose for layer cropHeight =-1,cropWidth =-1
06-19 11:07:25.249 1651 1651 I hwc : HISI_HWC gpu compose for layer cropHeight =-1,cropWidth =-1
06-19 11:07:25.265 1651 1651 I SurfaceFlinger: SurfaceFlinger start setPerFrameData= 1
06-19 11:07:25.265 1651 1651 I SurfaceFlinger: SurfaceFlinger setPerFrameData= animation background stackId=1
06-19 11:07:25.265 1651 1651 I SurfaceFlinger: SurfaceFlinger setPerFrameData= com.qljy.middlescreen/com.qljy.middlescreen.ui.activity.PrepareLoadActivity
06-19 11:07:25.265 1651 1651 I SurfaceFlinger: SurfaceFlinger setPerFrameData end
06-19 11:07:25.265 1651 1651 I hwc : HISI_HWC gpu compose for layer cropHeight =-1,cropWidth =-1
06-19 11:07:25.265 1651 1651 I hwc : HISI_HWC gpu compose for layer cropHeight =-1,cropWidth =-1

看正常使用的应用,一般会有startingwindow

06-19 11:33:19.926  1655  1655 I SurfaceFlinger: SurfaceFlinger setPerFrameData= com.wenfengtou.xposedsimpledemo/com.wenfengtou.xposedsimpledemo.MainActivity crop=(   0,   0,1920,1080)
06-19 11:33:19.926  1655  1655 I SurfaceFlinger: SurfaceFlinger setPerFrameData= Starting com.wenfengtou.xposedsimpledemo crop=(   0,   0,1920,1080)
06-19 11:33:19.926  1655  1655 I SurfaceFlinger: SurfaceFlinger setPerFrameData end
06-19 11:33:19.926  1655  1655 I hwc     : HISI_HWC gpu compose for layer cropHeight =1080,cropWidth =1920
06-19 11:33:19.926  1655  1655 I hwc     : HISI_HWC gpu compose for layer cropHeight =1080,cropWidth =1920

相关文章

网友评论

      本文标题:内存优化

      本文链接:https://www.haomeiwen.com/subject/noddtctx.html