android 使用surfaceview 内存泄漏,大神帮忙看一哈

qq_17120545 2016-12-16 07:07:49
xml:


<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/loading_bg"
android:orientation="vertical">

<FrameLayout
android:id="@+id/lLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/loading_bg"
android:orientation="vertical">

<com.xxx.xxx.app.web.MySurfaceView
android:id="@+id/sv"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
</com.xxx.xxx.app.web.MySurfaceView >


......




java 代码:




.....

mSurfaceView = (MySurfaceView) mMainView.findViewById(R.id.sv);
SurfaceHolder sh = mSurfaceView.getHolder();
sh.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
sh.addCallback(this);
.....






MySurfaceView



public class MySurfaceView extends SurfaceView {
private static final String TAG ="BesTVSurfaceView";
public MySurfaceView (Context context) {
super(context);
}

public MySurfaceView (Context context, AttributeSet attrs) {
super(context, attrs);
}

public MySurfaceView (Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}

private void initView() {
Log.d(TAG,"initView");
}


@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
initView();
}
}












LeakCanary 内存泄漏分析工具
结果日志:
* com.xxx.xxx.app.MainActivity has leaked:
* GC ROOT static android.view.SurfaceView.mSurfaceContext
* leaks com.xxx.xxx.app.MainActivity instance[/code]
...全文
844 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
亲爱的Joe 2019-09-09
  • 打赏
  • 举报
回复
应该是你的SurfaceHokder 的 addCallback(this),导致的内存泄漏 建议页面销毁时removeCallback
刘兆贤 2016-12-18
  • 打赏
  • 举报
回复
msurfacecontext泄漏,因为它是静态的,估计你的activity的launchmode是标准,而非single instance,每次都生成新页面而没能回收。
Android Camera开发入门:目录 第一篇: 前景  一、Android Camera开发前景;      1)camera相关应用的领域      2)相关岗位介绍;      3)市场招聘介绍;      4)发展前景介绍;  二、学习这门课的重要性;      1)适合的人群;      2)熟悉和了解Android Camera 应用开发流程的重要性 第二篇: 开发环境安装  一、jdk、sdk的配置;  二、android studio的安装介绍;  三、adb命令的使用; 第三篇: Camera 常用api和最新框架介绍  一、android camera api介绍      1)camera1、camera2 区别;      2)camera 1、camera2 常用api介绍;      3)android camerax;  二、android camera最新框架介绍 第四篇:Camera api1实现预览、拍照、录像功能  一、预览  二、拍照  三、录像  四、获取实时预览流 第五篇: Camera2相机 打开功能实现第六篇: Camera2相机 预览功能实现  1)surfaceview、textureview 第七篇: Camera2相机 拍照功能实现 1)单拍; 第八篇:Camera2相机 录像功能实现1)正常录像 第九篇:Camera2预览方向、拍照方向设置     1) 预览变形问题如何处理? 第十篇:YUV流处理  1)如何获取实时预览流?  2)  思考:双码流方案如何实现?一边本地录像,一边后台推流 第十一篇:dumpsys media.camera 第十二篇:Camera2 Zoom变焦第十三篇:人脸识别(android 原生 & 三方人脸识别算法)第十四篇:Uvc UsbCamera第十五篇:Android Camera2拍摄RAW图第十六篇: Android Camera2同时打开前后摄 并 录像第十七篇: Android Camera2 视频慢动作  附:1)提供android开发相关资源      软件工具、Android相关学习书籍、学习相关网站博客等链接2)提供课程讲解中设计到的App 源码    * Camera API1使用源码    * Camera API2使用源码    * 调用三方算法人脸识别源码    *  录像慢动作源码    * Uvc UsbCamera相关源码3)课件

80,337

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧