
Android_性能优化
bj09
你的微笑
展开
-
listview性能优化(2)
参考:http://www.cnblogs.com/xiaowenji/archive/2010/12/08/1900579.html工作原理: 1.ListView针对List中每个item,要求Adapter给其一个视图(getView) 2.一个新的视图被返回并显示如果我们有上亿个item要显示怎么办?为每个项目创建一个新视图?NO!这不可能~~~An转载 2015-03-26 13:19:21 · 650 阅读 · 0 评论 -
在Android Studio下使用Hierarchy Viewer
最近看到这篇文章《Android UI性能优化详解》,里面使用了Hierarchy Viewer来对布局进行优化。开发android这么久了,一直都有听过这个工具,但是重来都没真正去使用过,不得不说是一种失败。现在刚好趁着空闲,研究一下Hierarchy Viewer的使用方法。启动Android Device Monitor网上搜索了教程,直接在sdk>tools下面找到hierarch转载 2017-08-14 18:29:06 · 7929 阅读 · 1 评论 -
应用开发进阶必经之路之性能优化
为了方便在手机上阅读,文章也会在公众号发出,更多原创文章和优质资源请关注公众号:公众号:open_dev更多Android技术资源交流请加群“Android技术资源交流群”,第1期群分享精华已在微信公众号发出,本群的建群宗旨是分享优质的Android技术资源。群成员可以自由分享任何Android方面的技术资源和文章,并会不定期总结成文章方便大家阅读。群已满,请加群助理微信:Jf-199转载 2017-08-14 18:26:55 · 396 阅读 · 0 评论 -
Android中RelativeLayout和LinearLayout性能分析
先看一些现象吧:用eclipse或者Android studio,新建一个Activity自动生成的布局文件都是RelativeLayout,或许你会认为这是IDE的默认设置问题,其实不然,这是由 android-sdk\tools\templates\activities\BlankActivity\root\res\layout\activity_simple.xml.ftl 这个文件事先转载 2017-07-05 14:41:15 · 285 阅读 · 0 评论 -
Android性能优化之UncaughtExceptionHandler定制自己的错误日志系统
前言:每当我们app测试的时候,测试人员总是对我们说这里崩溃了,那里挂掉了!我们只能默默接受,然后尝试着重现bug,更可悲的是有时候bug很难复现,为了解决这种现状所以我们要尝试这建立一个自己的bug日志系统。实现原理:Java为我们提供了一个机制,用来捕获并处理在一个线程对象中抛出的未检测异常,以避免程序终止。我们可以通过UncaughtExceptionHandler来转载 2017-04-18 17:19:02 · 385 阅读 · 0 评论 -
Android性能优化之利用LeakCanary检测内存泄漏及解决办法
前言: 最近公司C轮融资成功了,移动团队准备扩大一下,需要招聘Android开发工程师,陆陆续续面试了几位Android应聘者,面试过程中聊到性能优化中如何避免内存泄漏问题时,很少有人全面的回答上来。所以决定抽空学习总结一下这方面的知识,以及分享一下我们是如何检测内存泄漏的。我们公司使用开源框架LeakCanary来检测内存泄漏。什么是内存泄漏? 有些对象只有有限转载 2017-04-18 17:18:15 · 707 阅读 · 0 评论 -
Android性能优化之巧用软引用与弱引用优化内存使用
前言: 从事Android开发的同学都知道移动设备的内存使用是非常敏感的话题,今天我们来看下如何使用软引用与弱引用来优化内存使用。下面来理解几个概念。1.StrongReference(强引用) 强引用是我们最最常见的一种,一般我们在代码中直接通过new出来的对象等,都是强引用,强引用只要存在没有被销毁,内存就不会被系统回收。我们以生成Bitmap为例如下:B转载 2017-04-18 17:16:41 · 373 阅读 · 0 评论 -
Android性能优化之App应用启动分析与优化
前言: 昨晚新版本终于发布了,但是还是记得有测试反馈app启动好长时间也没进入app主页,所以今天准备加个班总结一下App启动那些事!app的启动方式: 1.)冷启动 当启动应用时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用,这个启动方式就是冷启动。冷启动因为系统会重新创建一个新的进程分配给它,所以会先创建和初始化Application类,再创转载 2017-04-18 17:16:00 · 417 阅读 · 0 评论 -
SparseArray替代HashMap来提高性能
SparseArray是 Android框架独有的类,在标准的JDK中不存在这个类。它要比 HashMap 节省内存,某些情况下比HashMap性能更好,按照官方问答的解释,主要是因为SparseArray不需要对key和value进行auto- boxing(将原始类型封装为对象类型,比如把int类型封装成Integer类型),结构比HashMap简单(SparseArray内部主要使用 两转载 2015-09-04 23:01:59 · 646 阅读 · 0 评论 -
App调试内存泄露之Context篇(下)
我N年前去盛大面过一次试,当时面试官极力推荐我使用AsyncTask等系统自带类去做事情,当然无可厚非。 但是AsyncTask确实需要额外注意一下。它的泄露原理和前面Handler,Thread泄露的原理差不多,它的生命周期和Activity不一定一致。 解决方案是:在activity退出的时候,终止AsyncTask中的后台任务。 但是,问题是如何终转载 2015-07-20 10:21:42 · 746 阅读 · 0 评论 -
App调试内存泄露之Context篇(上)
Context作为最基本的上下文,承载着Activity,Service等最基本组件。当有对象引用到Activity,并不能被回收释放,必将造成大范围的对象无法被回收释放,进而造成内存泄漏。下面针对一些常用场景逐一分析。1. CallBack对象的引用 先看一段代码:?123456789@转载 2015-07-20 10:20:16 · 644 阅读 · 0 评论 -
Android最佳性能实践(三)——高性能编码优化
转载请注明出处:http://blog.youkuaiyun.com/guolin_blog/article/details/42318689在前两篇文章当中,我们主要学习了Android内存方面的相关知识,包括如何合理地使用内存,以及当发生内存泄露时如何定位出问题的原因。那么关于内存的知识就讨论到这里,今天开始我们将学习一些性能编码优化的技巧。这里先事先提醒大家一句,本篇文章中讨论的编码优化转载 2015-04-02 16:02:47 · 676 阅读 · 0 评论 -
Android最佳性能实践(一)——合理管理内存
转载请注明出处:http://blog.youkuaiyun.com/guolin_blog/article/details/42238627有不少朋友都问过我,怎样才能写出高性能的应用程序,如何避免程序出现OOM,或者当程序内存占用过高的时候该怎么样去排查。确实,一个优秀的应用程序,不仅仅要功能完成得好,性能问题也应该处理得恰到好处。为此,我也是阅读了不少Android官方给出的高性能编程建议,转载 2015-04-02 15:08:54 · 613 阅读 · 0 评论 -
listview性能优化(1)
在ListView的使用中,有时候还需要在里面加入按钮等控件,实现单独的操作。也就是说,这个ListView不再只是展示数据,也不仅仅是这一行要来处理用户的操作,而是里面的控件要获得用户的焦点。读者可以试试用SimpleAdapter添加一个按钮到ListView的条目中,会发现可以添加,但是却无法获得焦点,点击操作被ListView的Item所覆盖。这时候最方便的方法就是使用灵活的适配器转载 2015-03-26 13:08:16 · 727 阅读 · 0 评论 -
Android最佳性能实践(四)——布局优化技巧
在前面几篇文章当中,我们学习了如何通过合理管理内存,以及高性能编码技巧的方式来提升应用程序的性能。然而实际上界面布局也会对应用程序的性能产生比较大的影响,如果布局写得糟糕的话,那么程序加载UI的速度就会非常慢,从而造成不好的用户体验。那么本篇文章我们就来学习一下,如何通过优化布局来提供应用程序的性能。还没有看过前面前面一篇文章的朋友建议可以先去阅读Android最佳性能实践(三)—转载 2015-03-26 09:18:09 · 572 阅读 · 0 评论 -
Android Studio-Memory Monitor
一、Android Studio-Memory Monitor使用方法run起你的项目,找到Memory Monitor窗口,选择Memory[转]内存变化波形图另外,还可选择查看CPU和GPU还有NetWork的使用情况。网络使用波形图.png其中NetWork的频繁使用是造成应用耗电的关键,70%左右的电量是被上报数据,检查位置信息,定时转载 2017-08-14 18:30:00 · 882 阅读 · 0 评论