[置顶] 记一次内存泄露优化过程

背景项目目前存在使用久了或者重复打开关闭某个页面,内存会一直飙升,居高不下,频繁发生GC。静置一段时间后,情况有所改善,但是问题依旧明显,如图1-1、1-2。 图1-1.操作时的内存使用情况 图1-2.静置时的内存使用情况如上图1-1,是通过Android Studio查看内存(灰色)和CPU(红色)使用情况,可以看出内存有发生抖动并且是处于比较高的状态,再者,从logcat可以看到一直发生GC...
阅读(6523) 评论(4)

关于 Android 进程保活,你所需要知道的一切

出处早前,我在知乎上回答了这样一个问题:“怎么让 Android 程序一直后台运行,像 QQ 一样不被杀死?”。关于 Android 平台的进程保活这一块,想必是所有 Android 开发者瞩目的内容之一。你到网上搜 Android 进程保活,可以搜出各种各样神乎其技的做法,绝大多数都是极其不靠谱。前段时间,Github 还出现了一个很火的“黑科技”进程保活库,声称可以做到进程永。怀着学习和膜拜的心...
阅读(837) 评论(0)

Android Studio compile project添加一个本地项目依赖包时,提示程序包不存在

问题情景在一个项目里,建了一个library项目和application项目,在application项目的build.gradle将library项目compile project进来,编译的时候都正常,但是运行的时候,提示程序包不存在。解决办法将library项目下的build.gradle->buildTypes{..}->minifyEnabled熟悉置为falsebuildTypes {...
阅读(4688) 评论(2)

Java NIO Scatter / Gather

Java NIO开始支持scatter/gather,scatter/gather用于描述从Channel(译者注:Channel在中文经常翻译为通道)中读取或者写入到Channel的操作。 分散(scatter)从Channel中读取是指在读操作时将读取的数据写入多个buffer中。因此,Channel将从Channel中读取的数据“分散(scatter)”到多个Buffer中。 聚集(gat...
阅读(359) 评论(0)

TextView ClickableSpan onClickListener点击事件冲突

需求是这样的:TextView是在一个ListView item里面,TextView的文本需要格式。当有‘@’或者‘网址’时,将它们的文本高亮并且点击时进行跳转,当点击在‘@’或者‘网址’之外的地方时,要响应LivtView的item click事件。TextView的高亮是使用ClickableSpan实现的。前提: LivtView的item click事件我是通过item布局的最外层Vie...
阅读(2093) 评论(0)

Android Studio 2.0正式版 新特性

原文地址 中文翻译 Posted by Jamal Eason, Product Manager, AndroidAndroid Studio 2.0 is the fastest way to build high quality, performant apps for the Android platform, including phones and tablets, Android A...
阅读(802) 评论(0)

Java NIO Buffer

Java NIO中的Buffer用于和NIO通道进行交互。如你所知,数据是从通道读入缓冲区,从缓冲区写入到通道中的。缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存。这块内存被包装成NIO Buffer对象,并提供了一组方法,用来方便的访问该块内存。Buffer的基本用法使用Buffer读写数据主要有4个步骤: 数据写入buffer 调用buffer.flip() 从buffer读取数据...
阅读(313) 评论(0)
    个人资料
    • 访问:534131次
    • 积分:4349
    • 等级:
    • 排名:第6896名
    • 原创:105篇
    • 转载:22篇
    • 译文:5篇
    • 评论:307条
    关于我
    博客专栏
    最新评论