![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android性能优化
七色音阶
这个作者很懒,什么都没留下…
展开
-
Android内存泄漏研究
概念根搜索算法Android虚拟机的垃圾回收采用的是根搜索算法。GC会从根节点(GC Roots)开始对heap进行遍历。到最后,部分没有直接或者间接引用到GC Roots的就是需要回收的垃圾,会被GC回收掉。根搜索算法相比引用计数法很好的解决了循环引用的问题。举个例子,Activity有View的引用,View也有Activity的引用,之前我还尝试去源代码里找Activ转载 2016-03-03 09:49:08 · 325 阅读 · 0 评论 -
Android布局优化之Merge、Include、ViewStub使用与源码分析
在开发中UI布局是我们都会遇到的问题,随着UI越来越多,布局的重复性、复杂度也会随之增长。Android官方给了几个优化的方法,但是网络上的资料基本上都是对官方资料的翻译,这些资料都特别的简单,经常会出现问题而不知其所以然。这篇文章就是对这些问题的更详细的说明,如果有什么不对的也希望高人指出。include首先用得最多的应该是include,按照官方的意思,include就是为了解转载 2016-03-03 11:56:36 · 678 阅读 · 0 评论 -
LeakCanary: 让内存泄露无所遁形
java.lang.OutOfMemoryError at android.graphics.Bitmap.nativeCreate(Bitmap.java:-2) at android.graphics.Bitmap.createBitmap(Bitmap.java:689) at com.squareup.ui.SignView.createSi转载 2016-03-07 12:39:52 · 522 阅读 · 0 评论 -
Android内存性能优化(内部资料总结)
刚入门的童鞋肯能都会有一个疑问,Java不是有虚拟机了么,内存会自动化管理,我们就不必要手动的释放资源了,反正系统会给我们完成。其实Java中没有指针的概念,但是指针的使用方式依然存在,一味的依赖系统的gc,很容易就造成了内存的浪费。Java基于垃圾回收的内存机制Java的内存管理机制会自动回收无用对象所占用的内存,减轻手工管理内存的负担 1、C/C++: 从申请、使用、转载 2016-04-01 18:47:06 · 376 阅读 · 0 评论 -
Android性能优化之AsyncTask
AsyncTask是一个很常用的API,尤其异步处理数据并将数据应用到视图的操作场合。其实AsyncTask并不是那么好,甚至有些糟糕。本文我会讲AsyncTask会引起哪些问题,如何修复这些问题,并且关于AsyncTask的一些替代方案。AsyncTask从Android API 3(1.5 Cupcake)开始,AsyncTask被引入用来帮助开发者更简单地管理线程。实际上在A转载 2016-03-03 13:14:13 · 1346 阅读 · 0 评论 -
Android应用开发性能优化完全分析
原文地址:http://blog.csdn.net/yanbober 1 背景其实有点不想写这篇文章的,但是又想写,有些矛盾。不想写的原因是随便上网一搜一堆关于性能的建议,感觉大家你一总结、我一总结的都说到了很多优化注意事项,但是看过这些文章后大多数存在一个问题就是只给出啥啥啥不能用,啥啥啥该咋用等,却很少有较为系统的进行真正性能案例分析的,大多数都是嘴上喊喊或者死记住规则而已转载 2016-03-03 12:59:16 · 1153 阅读 · 0 评论 -
Android开发之内存管理
学习了下android的SDK里对内存管理部分的描述,结合搜集的一些资料汇分享总如下:在任何软件开发环境中,RAM都是非常宝贵资源。在移动操作系统里,由于物理内存的限制,它会变得更加的宝贵。虽然Android的Dalvik虚拟机会常规的执行垃圾回收,但是开发人员仍然不能忽略什么时候、在哪里申请和释放内存资源。为了能够使垃圾回收器从应用里正常的回收内存资源,开发人员需要避免产生内存泄露,注意在合转载 2016-04-01 19:11:05 · 715 阅读 · 0 评论 -
BlockCanary — 轻松找出Android App界面卡顿元凶
BlockCanary是Android平台上的一个轻量的,非侵入式的性能监控组件,应用只需要简单地加几行,提供一些该组件需要的上下文环境就可以在使用应用的时候检测主线程上的各种卡顿问题,并通过组件提供的各种信息分析出原因并进行修复。开源代码:moduth/blockcanary背景在复杂的项目环境中,由于历史代码庞大,业务复杂,包含各种第三方库,偶尔再来个jni调用,所以在出现了卡顿的转载 2016-04-11 09:19:11 · 1548 阅读 · 0 评论 -
Android 性能典范:拯救计划
文/光源_Android(简书作者) 原文链接:http://www.jianshu.com/p/efcb36b7ce48 英文原文地址:Android Performance Patterns: Rescue tips正文现在的app到处都充斥着华丽的动画、复杂的转化还有自定义View,然而用户体验必须尽可能直观且类似。以下这些范例将会帮助你做出一个流畅的、快速响应的转载 2016-04-15 12:57:00 · 344 阅读 · 0 评论 -
Android性能优化之Activity 泄漏
随着移动互联网的发展,android app开发越发火爆。大家都知道一个app的成功与否,与app的性能体验密不可分。如果一个app打开时间长、滑动不流畅等等,那么相信不管你的产品多么棒,运营多么牛叉,也不会获得用户的青睐。因此app的开发中,提升性能尤其重要。 当然,从事android开发的童鞋应该都知道app性能提升的重要性,但难点在于如何提升android a转载 2016-03-03 12:05:29 · 635 阅读 · 0 评论 -
[Android 性能优化系列]布局篇之通过<include>复用布局
原文地址:http://developer.android.com/training/improving-layouts/reusing-layouts.html很多时候,我们都会用到类似的布局,既然如此,我们不妨将相同布局整体抽出来,单独作为一个布局文件使用,这样我们就避免了在多个文件中反复书写同样地代码,并且当我们需要修改的时候,也只需要修改一个地方就好了。虽然安卓为我们提转载 2016-03-03 11:49:17 · 481 阅读 · 0 评论 -
[Android 性能优化系列]布局篇之减少你的界面层级
原文地址:http://developer.android.com/training/improving-layouts/optimizing-layout.html复杂的布局,既会提高我们的设计难度,也会降低我们的代码效率,因此,不放多使用一下相对布局什么的。大家写布局文件的时候都会认为只要使用基本布局能够到达高效的结果,其实这是错的。你要知道你添加到你应用中的每一个控件和布转载 2016-03-03 11:47:33 · 1055 阅读 · 0 评论 -
Android内存泄漏分析及调试
尊重原创作者,转载请注明出处:http://blog.csdn.net/gemmem/article/details/13017999此文承接我的另一篇文章:Android进程的内存管理分析 首先了解一下dalvik的Garbage Collection:如上图所示,GC会选择一些它了解还存活的对象作为内存遍历的根节点(GC Ro转载 2016-03-03 09:46:38 · 466 阅读 · 0 评论 -
Android性能优化之Bitmap的内存优化
1、BitmapFactory解析Bitmap的原理BitmapFactory提供的解析Bitmap的静态工厂方法有以下五种:Bitmap decodeFile(...)Bitmap decodeResource(...)Bitmap decodeByteArray(...)Bitmap decodeStream(...)Bitmap decodeFileDescriptor(转载 2016-02-23 11:03:00 · 1059 阅读 · 0 评论 -
Activity之间使用intent传递大量数据带来问题总结
转载请注明:http://blog.csdn.net/rflyee/article/details/47441405Activity之间使用Parcel传递大量数据产生的问题。Activity之间通过intent传递大量数据,导致新Activity无法启动。Activity之间数据传递方式总结参考 这 里。比较常用的是直接利用intent传递,比如使用bundl原创 2016-03-03 10:51:19 · 576 阅读 · 0 评论 -
Android静态变量的生命周期
Android是用Java开发,其静态变量的生命周期遵守Java的设计。我们知道静态变量是在类被load的时候分配内存的,并且存在于方法区。当类被卸载的时候,静态变量被销毁。在PC机的客户端程序中,一个类被加载和卸载,可简单的等同于jvm进程的启动和结束。那么在Android中呢?用的Dalvik vm也是一样的。不过Android不太突出的进程概念,所以对静态变量的生命周期就会感觉模糊,这种转载 2016-03-03 11:07:34 · 354 阅读 · 0 评论 -
[Android 性能优化系列]内存之基础篇--Android如何管理内存
随机访问存储器(Ram) 不管在哪种软件开发环境中都是一种极其宝贵的资源,而在移动开发平台下,极其有限的物理内存则更为宝贵。因此,虽然Android的Dalvik虚拟机会执行垃圾回收,但这不代表你可以对你应用的内存分配和释放不闻不问。为了使垃圾回收期能够回收你应用中的内存,你需要避免内存泄露(通常是由于在全局变量持有某个对象引起的),以及在适当的时候释放点引用对象(比如在生命周期中)。对于转载 2016-03-03 11:35:46 · 348 阅读 · 0 评论 -
[Android 性能优化系列]内存之提升篇--应用应该如何管理内存
原文地址:http://developer.android.com/training/articles/memory.html应用应该如何管理内存在软件开发的各个阶段,你都应该时候注意你的RAM消耗(即便是在括软件的设计阶段)。这里有很多种途径,通过使用它们可以帮助你设计和写出更有效率的代码,你应该在设计和实现应用的时候采用以下的这些技术来让降低应用的内存消耗。转载 2016-03-03 11:38:34 · 461 阅读 · 0 评论 -
[Android 性能优化系列]内存之终极篇--降低你的内存消耗
原文地址:http://developer.android.com/training/articles/memory.html拒绝在 Bitmap 上浪费你的内存当你加载一张 Bitmap 的时候,你可以选择只在你的确需要在屏幕上显示的时候才将它加载到内存里,或者通过缩放原图的尺寸来减小内存占用。请记住随着 Bitmap 尺寸的增长,图片所消耗的内存会成平方量级的增长,转载 2016-03-03 11:43:47 · 2921 阅读 · 0 评论 -
[Android 性能优化系列]那些不能忽略的小细节
原文地址:http://developer.android.com/training/articles/perf-tips.html本文将主要介绍一些能够提升整个应用性能的细节优化,但是他们并不会引起太过显著的性能提升。选择正确的算法和数据结构才应该是你的首选,但这就不在本文的讨论范围之类了。你应该将本文的这些小窍门作为一种编程习惯,这样你的编程会更加有效。这里有两条最转载 2016-03-03 11:45:48 · 303 阅读 · 0 评论 -
你应该知道的那些Android小经验
原文出处: 冯建 (@冯建V) 做Android久了,就会踩很多坑,被坑的多了就有经验了,闲暇之余整理了部分,现挑选一些重要或者偏门的“小”经验做个记录。查看SQLite日志12adb shell setprop log.tag.SQLiteLog Vadb shell setprop log.tag.SQLiteStatements V转载 2016-04-15 13:00:37 · 358 阅读 · 0 评论