- 博客(41)
- 资源 (2)
- 收藏
- 关注
转载 使用Systrace分析UI性能
使用Systrace分析UI性能原文链接 : Analyzing UI Performance with Systrace原文作者 : Android Developers译文出自 : 开发技术前线 www.devtf.cn。未经允许,不得转载!译者 : desmond1121校对者: desmond1121开发应用的时候,应该检查它是否有流畅的用户体验,即60fps的
2016-02-29 00:59:16 1729 3
原创 LeakCanary (二)
本文为LeakCanary: Detect all memory leaks!的翻译。原文在: https://corner.squareup.com/2015/05/leak-canary.htmljava.lang.OutOfMemoryError at android.graphics.Bitmap.nativeCreate(Bitmap.java:-2)
2016-02-29 00:57:07 464
原创 LeakCanary (一)
LeakCanaryAndroid 和 Java 内存泄露检测。“A small leak will sink a great ship.” - Benjamin Franklin千里之堤, 毁于蚁穴。 -- 《韩非子·喻老》demo一个非常简单的 LeakCanary demo: https://github.com
2016-02-29 00:55:48 1048
原创 BlockCanary
BlockCanary — 轻松找出Android App界面卡顿元凶BlockCanary是我利用个人时间开发的Android平台上的一个轻量的,非侵入式的性能监控组件,应用只需要简单地加几行,提供一些该组件需要的上下文环境就可以在使用应用的时候检测主线程上的各种卡顿问题,并通过组件提供的各种信息分析出原因并进行修复。背景在复杂的项目环境中,由于历史代码庞大,业务
2016-02-29 00:49:21 2926
转载 Android内存泄露 (五)
Android中导致内存泄漏的竟然是它----Dialog一. 内存泄漏的 Bug 猛增最近在 App 进行 mokey 测试的时候检测到一些内存泄漏问题。在前天的测试中,楼主一瞬间收到了4个这样的 Bug 单,瞬间心理无比纠结,真有千万只羊驼向我奔来。登录页面出现内存泄漏??!!楼主的代码是如此的完美而无懈可击,这么可能出现这么多泄漏的问题?插播
2016-02-29 00:45:22 847
原创 Android内存泄露 (四)
Android中Handler引起的内存泄露DEC 28TH, 2014在Android常用编程中,Handler在进行异步操作并处理返回结果时经常被使用。通常我们的代码会这样实现。123456789public class SampleActivity extends Activity { private fin
2016-02-29 00:43:39 308
转载 Android内存泄露 (三)
内存泄露在开发应用的过程中,我们总会遇到内存泄露的问题。现在通过代码列出一些常见的内存泄露的情况以及解决方案。在安卓中内存泄露常常出现的情况是指组件生命周期已经结束,但是其引用被其他对象持有,得不到释放引起的。常见的内存泄露的情况,主要是有两种:内部类和静态引用的问题。内部类内部类的种类成员内部类局部内部类匿名内部类静态内部类非静态内部类的问题
2016-02-29 00:42:19 280
原创 ANDROID 探究OOM内幕
从早期G1的192MB RAM开始,到现在动辄1G -2G RAM的设备,为单个App分配的内存从16MB到48MB甚至更多,但OOM从不曾离我们远去。这是因为大部分App中图片内容占据了50%甚至75%以上,而App内容的极大丰富,所需的图片越来越多,屏幕尺寸也越来越大分辨率也越来越高,所需的图片的大小也跟着往上涨,这在大屏手机和平板上尤其明显。而且还经常要兼容低版本的设备。所以Android的
2016-02-29 00:40:37 253
转载 Android内存泄露 (二)
Android 内存泄漏总结 内存管理的目的就是让我们在开发中怎么有效的避免我们的应用出现内存泄漏的问题。内存泄漏大家都不陌生了,简单粗俗的讲,就是该被释放的对象没有释放,一直被某个或某些实例所持有却不再被使用导致 GC 不能回收。最近自己阅读了大量相关的文档资料,打算做个 总结 沉淀下来跟大家一Android 内存泄漏总结内存管理的目的就是让我们在开发中怎么有效的避免我们的应
2016-02-29 00:38:05 476
转载 Android oom 全解析
Android oom 有时出现很频繁,这一般不是Android设计的问题,一般是我们的问题。 就我的经验而言,出现oom,无非主要是以下几个方面: 一、加载对象过大 二、相应资源过多,没有来不及释放。 解决这样的问题,也有一下几个方面: 一:在内存引用上做些处理,常用的有软引用、强化引用、弱引用 二:在内存中加载图片时直接在内存中做处理,如:边界压缩.
2016-02-29 00:33:59 376
原创 Android内存泄露 (一)
1. android内存泄露概念 不少人认为JAVA程序,因为有垃圾回收机制,应该没有内存泄露。其实如果我们一个程序中,已经不再使用某个对象,但是因为仍然有引用指向它,垃圾回收器就无法回收它,当然该对象占用的内存就无法被使用,这就造成了内存泄露。如果我们的java运行很久,而这种内存泄露不断的发生,最后就没内存可用了。当然java的,内存泄漏和C/C++是不一样的。如果java程序完全
2016-02-29 00:29:17 364
转载 Android 系统稳定性 - ANR(三)
1.4 如何避免ANR 1.4.1 ANR发生在主线程,不要阻塞主线程 Android应用程序的所有标准组件全部运行在一个单一的主线程中,在主线程中所做的任何耗时的操作都有可能造成ANR,因为这些耗时的操作会使得主线程没有机会处理用户输入事件或者广播事件。 因此在主线程中执行的任何函数所做的工作都应该尽可能的少,特别是对于Activity的生命周期函数来
2016-02-29 00:23:43 354
转载 Android 系统稳定性 - ANR(二)
1.2如何分析ANR问题引起ANR问题的根本原因,总的来说可以归纳为两类:应用进程自身引起的,例如:主线程阻塞、挂起、死循环应用进程的其他线程的CPU占用率高,使得主线程无法抢占到CPU时间片其他进程间接引起的,例如:当前应用进程进行进程间通信请求其他进程,其他进程的操作长时间没有反馈其他进程的CPU占用率高,使得当前
2016-02-29 00:23:08 817
转载 Android 系统稳定性 - ANR(一)
如果你是一个Android应用程序开发人员,你的人生中不可避免的三件事情是:死亡、缴税和ANR。这么说是夸张了,但是由于Android本身的设计,以及应用程序和系统在开发过程中的缺陷,经常会在测试过程中遇到各种各样的ANR问题。在功能性的测试中还少一些,主要是在压力测试中(例如Monkey测试)会遇到非常多的ANR问题。本章的目的就是汇总笔者在工作中遇到的各种ANR问题,将其归纳总结出一套分析和处
2016-02-29 00:21:26 400
转载 Android 系统稳定性 - OOM(二)
2.3如何分析内存溢出问题无论怎么小心,想完全避免 bad code 是不可能的,此时就需要一些工具来帮助我们检查代码中是否存在会造成内存泄漏的地方。既然要排查的是内存问题,自然需要与内存相关的工具,DDMS和MAT就是两个非常好的工具。下面详细介绍。2.3.1 内存监测工具 DDMS --> HeapAndroid tools 中的 DDMS 就带有一个很不错
2016-02-29 00:19:49 597
转载 Android 系统稳定性 - OOM(一)
2.1.1 什么是内存溢出 2.1.2 为什么会有内存溢出Android 主要应用在嵌入式设备当中,而嵌入式设备由于一些众所周知的条件限制,通常都不会有很高的配置,特别是内存比较有限。如果我们编写的代码当中有太多的对内存使用不当的地方,难免会使得我们的设备运行缓慢,甚至是死机。为了能够使系统安全且快速的运行,Android 的每个应用程序都运行在单独的进程中,这个进程是由
2016-02-29 00:17:55 408
转载 Android性能优化-泛谈 (一)
Android性能优化 根据Android的层次结构,性能优化也是分层次进行的,本文会分别对Application、Framework、Native、Kernel各层做总结,每层主要会从性能优化的基本思想、优化技巧、优化工具几个方面进行说明。第一章Android应用性能优化(概述) 应用程序的性能问题是最明显、最容易体现的一类,表现形式也五花八门,举几个例子:
2016-02-29 00:14:58 404
转载 Android抽象布局——include、merge 、ViewStub
[-]布局重用include减少视图层级merge需要时使用ViewStub 在布局优化中,Androi的官方提到了这三种布局、、,并介绍了这三种布局各有的优势,下面也是简单说一下他们的优势,以及怎么使用,记下来权当做笔记。1、布局重用标签能够重用布局文件,简单的使用如下:[html] v
2016-02-29 00:12:55 250
转载 一个高效的UI才是一个拉风的UI(二)
前言 前篇博客翻箱倒柜的介绍了优化UI设计的两个方法,第一个就是使用尽量少的组件来实现布局功能,第二个就是使用标签来减少不必要的根节点,这两个方法都可以提高应用UI的运行效率,但是够了吗?远远是不够的,方法就像money一样永远不嫌多,所以不再介绍多一些UI设计优化的方法说得过去么? 摸摸口袋里面的都快四岁、运行着古老的android 2.2系统的屌丝机对于我来说,随便一个大于
2016-02-28 15:13:54 352
转载 一个高效的UI才是一个拉风的UI(一)
开篇 Android是一个运行在移动终端上的操作系统,跟传统PC最大的不同所在就是移动终端的资源紧缺问题“比较”明显,当然对于一些屌丝机型,应该用“非常“来形容才靠谱。所以经常会出现在一些比较缺乏青春活力的老型机上,运行一些软件被异常终止的情况;然而作为互联网厂家来说,广大的屌丝机用户肯定是一大笔用户资源,这是能放弃的市场吗?!当然不行o(╯□╰)o,所以我们要尽可能得提高软件的效率来赢
2016-02-28 15:12:07 417
原创 Android 优化布局层次结构
使用HierchyViewer HierchyViewer需要你选择一个已连接的设备或者模拟器中的一个运行的程序,显示出布局的树结构。每个块上的红绿灯代表它的测量,布局,以及绘图性能,帮助你找出潜在的问题。有读者在读完《Android UI 优化——使用HierarchyViewer工具》后提出HierarchyViewer没有显示出红绿黄灯和时间,这怎么解决。在tool目录启动
2016-02-28 15:07:00 700
原创 使用HierarchyViewer工具
进入正题,我们这一篇文章会提到为什么使用HierarchyViewer,怎么使用HierarchyViewer,后者内容会多一下。为什么使用HierarchyViewer 不合理的布局会使我们的应用程序UI性能变慢,HierarchyViewer能够可视化的角度直观地获得UI布局设计结构和各种属性的信息,帮助我们优化布局设计。HierarchyViewer是我们优化程
2016-02-28 15:05:03 2031
转载 Android Drawable 那些不为人知的高效用法
版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[-]概述Drawable基本概念自定义DrawableRoundImageDrawableCircleImageDrawable自定义Drawable State提升我们的UI Perfermance 转载请标明出处:http://blog.csdn.net/lmj6235657
2016-02-28 15:02:43 335
转载 Android的内存机制和常见泄漏情形
一、 Android的内存机制 Android的程序由Java语言编写,所以Android的内存管理与Java的内存管理相似。程序员通过new为对象分配内存,所有对象在java堆内分配空间;然而对象的释放是由垃圾回收器来完成的。那么GC怎么能够确认某一个对象是不是已经被废弃了呢?Java采用了有向图的原理。Java将引用关系考虑为图的有向边,有向边从引用者指向引用对象。线程对象可以
2016-02-28 14:40:04 212
转载 Android内存管理原理
一般来说,程序使用内存的方式遵循先向操作系统申请一块内存,使用内存,使用完毕之后释放内存归还给操作系统。然而在传统的C/C++等要求显式释放内存的编程语言中,记得在合适的时候释放内存是一个很有难度的工作,因此Java等编程语言都提供了基于垃圾回收算法的内存管理机制:垃圾内存回收算法常见的垃圾回收算法有引用计数法(Reference Counting)、标注并清理(Mark
2016-02-28 14:38:09 536 1
转载 Android 操作系统的内存回收机制
Android 是一款基于 Linux 内核,面向移动终端的操作系统。为适应其作为移动平台操作系统的特殊需要,谷歌对其做了特别的设计与优化,使应用程序关闭但不退出,并由操作系统进行进程的回收管理。本文在 Application Framework 与 Linux 内核两个层次上,以进程为粒度,对 Android 操作系统的进程资源回收机制进行了剖析。读者可以从本文获得对 Android 应用程
2016-02-28 14:36:00 809
转载 Android性能优化典范(四)
作者简介:胡凯(@胡凯me),腾讯Android工程师,热爱开源与分享,维护Android官方培训课程协作项目,关注Android应用性能优化的总结与分享,推崇Android官方最佳实践。个人博客:http://hukai.me,Github:https://github.com/kesenhoo。Android性能优化典范第4季的课程学习笔记终于在2015年的最后一天完成了(
2016-02-28 14:33:35 544
转载 Android性能优化典范(三)
Android性能优化典范的课程最近更新到第三季了,这次一共12个短视频课程,包括的内容大致有:更高效的ArrayMap容器,使用Android系统提供的特殊容器来避免自动装箱,避免使用枚举类型,注意onLowMemory与onTrimMemory的回调,避免内存泄漏,高效的位置更新操作,重复layout操作的性能影响,以及使用Batching,Prefetching优化网络请求,压缩传输数据等等
2016-02-28 14:31:53 616
转载 Android性能优化典范(二)
Google前几天刚发布了Android性能优化典范第2季的课程,一共20个短视频,包括的内容大致有:电量优化、网络优化、Android Wear上如何做优化、使用对象池来提高效率、LRU Cache、Bitmap的缩放、缓存、重用、PNG压缩、自定义View的性能、提升设置alpha之后View的渲染性能,以及Lint、StictMode等工具的使用技巧。 下面是对这些课程的总结摘要,认知有
2016-02-28 14:21:43 265
转载 Android性能优化典范(一)
转载自胡凯的博客 Android性能优化典范 2015年伊始,Google发布了关于Android性能优化典范的专题, 一共16个短视频,每个3-5分钟,帮助开发者创建更快更优秀的Android App。课程专题不仅仅介绍了Android系统中有关性能问题的底层工作原理,同时也介绍了如何通过工具来找出性能问题以及提升性能的建议。主要从三个 方面展开,Android的渲染机制,内存与GC
2016-02-28 14:12:03 550
转载 优化安卓应用内存的神秘方法以及背后的原理
安卓应用一般都害怕自己被杀,内存占用高是被杀的重要原因之一,所以大家都想尽各种招数应对,但效果都一般。但有一招:WindowManagerGlobal.getInstance().startTrimMemory(TRIM_MEMORY_COMPLETE);几乎没有人提及。这段时间的实战,在通知栏和桌面都有尝试,发现效果还不错,但要掌握好这个函数的用法,需要仔细理解背
2016-02-28 14:09:34 560
转载 关于堆和栈的那些事
编程语言书籍中经常解释值类型被创建在栈上,引用类型被创建在堆上,但是并没有本质上解释这堆和栈是什么。我仅有高级语言编程经验,没有看过对此更清晰的解释。我的意思是我理解什么是栈,但是它们到底是什么,在哪儿呢(站在实际的计算机物理内存的角度上看)?在通常情况下由操作系统(OS)和语言的运行时(runtime)控制吗?它们的作用范围是什么?它们的大小由什么决定?哪个更快?答案一栈
2016-02-28 14:06:31 1113
转载 Android内存优化-泛谈二
随着技术的发展,智能手机硬件配置越来越高,可是它和现在的PC相比,其运算能力,续航能力,存储空间等都还是受到很大的限制,同时用户对手机的体验要 求远远高于PC的桌面应用程序。以上理由,足以需要开发人员更加专心去实现和优化你的代码了。选择合适的算法和数据结构永远是开发人员最先应该考虑的事 情。同时,我们应该时刻牢记,写出高效代码的两条基本的原则:(1)不要做不必要的事;(2)不要分配不必要的内存。
2016-02-28 13:59:15 368
转载 ANDROID内存优化(大汇总——全)
转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持!写在最前:本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上把网上搜集的各种内存零散知识点进行汇总、挑选、简化后整理而成。所以我将本文定义为一个工具类的文章,如果你在ANDROID开发中遇到关于内存问题,或者马上要参加面
2016-02-28 13:51:12 381
转载 ANDROID内存优化(大汇总——中)
转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持!写在最前:本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上把网上搜集的各种内存零散知识点进行汇总、挑选、简化后整理而成。所以我将本文定义为一个工具类的文章,如果你在ANDROID开发中遇到关于内存问题,或者马上要参加面
2016-02-28 13:50:33 202
转载 ANDROID内存优化(大汇总——上)
转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持!写在最前:本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上把网上搜集的各种内存零散知识点进行汇总、挑选、简化后整理而成。所以我将本文定义为一个工具类的文章,如果你在ANDROID开发中遇到关于内存问题,或者马上要参加面试,
2016-02-28 13:49:43 417
转载 Process Stats:了解你的APP如何使用内存
原文地址:http://android-developers.blogspot.com/2014/01/process-stats-understanding-how-your.html?m=1原作者:Dianne Hackborn, Android framework team翻译:大苞米,http://blog.csdn.net/a396901990An
2016-02-28 13:48:13 1360
原创 Android内存优化-泛谈 (一)
一、 Android的内存机制 Android的程序由Java语言编写,所以Android的内存管理与Java的内存管理相似。程序员通过new为对象分配内存,所有对象在java堆内分配空间;然而对象的释放是由垃圾回收器来完成的。C/C++中的内存机制是“谁污染,谁治理”,java的就比较人性化了,给我们请了一个专门的清洁工(GC)。 那么GC怎么能够确认某一个对象是不是已经被废
2016-02-28 13:33:40 325
转载 在 Mac OS X Lion 下修改 Hosts 的四种方法
Posted on 2011 年 09 月 14 日 by Eyon13条评论一名刚刚使用 Mac OS X Lion 系统的朋友问我怎么该系统下修改 Hosts 文件,说网上搜了很多办法都不管用,只要编辑 Hosts 文件就出现”你不是文件 hosts 的所有者,因此没有权限写到该文件”的提示,要解决这个权限问题又比较麻烦,对于刚刚使用 Mac 的用户来说
2014-10-02 16:51:19 376
原创 Eclipse for mac常用快捷键
ommand + O:显示当前类zCommand + 1:快速修复Command + D:删除当前行Command + Option + ↓:复制当前行到下一行Command + Option + ↑:复制当前行到上一行Option + ↓:当前行和下面一行交互位置Option + ↑:当前行和上面一行交互位置Option + ←:前一个编辑的页面Option +
2014-09-27 21:29:36 534
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人