
性能优化
wd_113634687
这个作者很懒,什么都没留下…
展开
-
安卓app开发原则及性能优化,个人理念
虽然是开发人员但是也对app设计开发UI等有自己的一定见解:追求的理念;apk包大小越小越好app打开耗费资源少UI图不是越炫酷越好 还要考虑性能 及对app的影响如 以前加了个功能 打开pdf 加了个控件 apk直接加大了6M(上一版本12M,增加50% 相当于一个app,对用户什么感觉 直接就不下载了)一个提示可以解决的 就别整个弹框(开发写出来就分分钟的事),但是代码...原创 2018-12-28 09:59:10 · 825 阅读 · 0 评论 -
性能优化:内存泄漏2
---------------内存泄露例子----------------单例模式导致内存对象无法释放而导致内存泄露MainActivity在内存当中泄露了。这个故事告诉我们能用Application的context就用Application的CommonUtil生命周期跟MainActivity不一致,而是跟Application进程同生同死。旋转3次:会在内存里面开辟三个MainAc...原创 2019-01-14 17:45:53 · 141 阅读 · 0 评论 -
性能优化: 内存泄漏3
===========================================往往做项目的时候情况非常复杂,或者项目做得差不多了想起来要性能优化检查下内存泄露。如何找到项目中存在的内存泄露的这些地方呢?1.确定是否存在内存泄露1)Android Monitors的内存分析最直观的看内存增长情况,知道该动作是否发生内存泄露。动作发生之前:GC完后内存1.4M; 动作发生之后:GC...原创 2019-01-15 09:01:40 · 146 阅读 · 0 评论 -
性能优化的帮助工具
性能优化的帮助工具:MAT,Memory Monitor(属于AndroidMonitor中一个模块),HeapTool(查看堆信息),Allaction Tracking,LeakCanaryLint工具1.Allaction Tracking追踪内存分配信息。可以很直观地看到某个操作的内存是如何进行一步一步地分配的。2.LeakCanarySquare公司可以直接在手机端...原创 2019-01-15 09:58:25 · 175 阅读 · 0 评论 -
LeakCanary工具使用
LeakCanary工具使用添加LeakCanary依赖包https://github.com/square/leakcanary在主模块app下的build.gradle下添加如下依赖:debugCompile ‘com.squareup.leakcanary:leakcanary-android:1.3.1’releaseCompile ‘com.squareup.leakcanar...原创 2019-01-15 10:00:56 · 1293 阅读 · 0 评论 -
安卓电量消耗的全过程分析
安卓电量消耗的全过程分析设备忙着执行各种任务和各种复杂计算,秀自拍上传朋友圈图片、秀直播,设备硬件正在快速消耗电池电量来完成这些任务。很明显,你的任务处理的越复杂,电量就会消耗的越多和越快,一眨眼的功夫电量就消耗完了,用户的手机顿时变成个累赘的砖头了,这时候用户就会怀疑谁(哪个app)这么耗电,把它卸了!写出耗电量低的应用的关键是要透彻理解它的全部过程。在电子编程世界,这种硬件消耗电量 来...原创 2019-01-15 11:22:43 · 970 阅读 · 4 评论 -
battery-historian工具使用(安卓耗电分析)
battery-historian使用数据准备battery-historian工具需要使用bugreport中的Battery History先断开adb服务,然后开启adb服务adb kill-server 这一步很重要,因为当我们开发时做电量记录时会打开很多可能造成冲突的东西。为了保险起见我们重启adb。adb devices就会自动连接查找手机。当然也可以adb start-...原创 2019-01-15 15:22:44 · 4900 阅读 · 0 评论 -
(安卓耗电问题)电量优化
电量优化使用时出现的错误:1.json: unsupported value: NaN有人用了描述:the problem started when reset the battery stats and enabled full-wake-history解决:重启手机再试就好了。2.打开生成的HTML显示错误如下:WARNING: Visualizer disabled. If y...原创 2019-01-15 17:07:55 · 888 阅读 · 1 评论 -
安卓布局的优化
布局的优化优化布局层次。不要不断的嵌套LinearLayout ,多使用RelativeLayout 尽可能的减少布局的层次。如:左边是图片,右边是文字的,可以就使用一个TextView来完成。drawableLeft。ViewStub、include(提取一个basePager.xml)UI优化:::在一个应用程序中,一般都会存在多个Activity,每个Activity对应着一个UI...原创 2019-01-25 17:32:00 · 144 阅读 · 0 评论 -
MAT使用(Memory Analyzer Tool)堆内存分析
MAT使用下载:http://eclipse.org/mat/downloads.phpMAT工具全称为Memory Analyzer Tool,一款详细分析Java堆内存的工具,该工具非常强大,为了使用该工具,我们需要hprof文件。但是该文件不能直接被MAT使用,需要进行一步转化,可以使用hprof-conv命令来转化,但是Android Studio可以直接转化,转化方法如下:1.选择...原创 2019-01-13 20:42:58 · 1910 阅读 · 0 评论 -
Heap Viewer工具
Heap Viewer工具Heap Viewer能做什么?• 实时查看App分配的内存大小和空闲内存大小• 发现Memory LeaksHeap Viewer使用条件• 5.0以上的系统,包括5.0• 开发者选项可用Heap Viewer启动可以直接在Android studio工具栏中直接点击小机器人启动:还可以在Android studio的菜单栏中Tools也可以:如...原创 2019-01-13 20:42:36 · 463 阅读 · 0 评论 -
安卓电量优化2
电量优化提问:拍照和图片处理他们可以放在链接充电线后再处理?答案:图片处理。像这些不需要及时地和用户交互的操作可以放到后面处理。比如:360手机助手,当充上电的时候,才会自动清理手机垃圾,自动备份上传图片、联系人等到云端。通过监控电量状态来进行电量管理。我们可以通过下面的代码来获取手机的当前充电状态:// It is very easy to subscribe to changes...原创 2019-01-17 13:12:04 · 605 阅读 · 0 评论 -
wake_lock
wake_lock锁主要是相对系统的休眠而言的,意思就是我的程序给CPU加了这个锁那系统就不会休眠了,这样做的目的是为了全力配合我们程序的运行。有的情况如果不这么做就会出现一些问题,比如微信等及时通讯的心跳包会在熄屏不久后停止网络访问等问题。所以微信里面是有大量使用到了wake_lock锁。wake_lock:两种锁,一种计数锁;非计数锁(锁了很多次,只需要release一次就可以解除了)...原创 2019-01-17 13:15:06 · 426 阅读 · 0 评论 -
(wake_lock)后台任务 - 保持设备唤醒状态
(wake_lock)后台任务 - 保持设备唤醒状态当Android设备空闲时,屏幕会变暗,然后关闭屏幕,最后会停止CPU的运行,这样可以防止电池电量掉的快。在休眠过程中自定义的Timer、Handler、Thread、Service等都会暂停。但有些时候我们需要改变Android系统默认的这种状态:比如玩游戏时我们需要保持屏幕常亮,比如一些下载操作不需要屏幕常亮但需要CPU一直运行直到任务完成...原创 2019-01-17 13:21:35 · 1404 阅读 · 0 评论 -
后台任务 - 保持设备唤醒状态
代码中应用package com.dn.ricky.performance.wake_lock;import android.app.Activity;import android.app.AlarmManager;import android.app.PendingIntent;import android.app.Service;import android.app.job.Jo...原创 2019-01-17 13:27:46 · 692 阅读 · 1 评论 -
性能优化:内存泄漏1
性能优化主要是经验—车技。1.如何去优化自己现有的项目,运行更加流畅。app进程 16M,32M,64M。 8M2.以后开发项目的时候就要从一开始就摆好发车车技。-----------------------内存泄漏----------------------------C/C++ 自己去分配内存和释放内存–手动管理malloc free什么是内存泄露:内存不在GC掌控之内了。...原创 2019-01-13 20:36:59 · 313 阅读 · 0 评论 -
内存与垃圾回收期((如何追踪)泄漏,抖动)
内存与垃圾回收器不是所有指令都执行得又快又好,下面介绍内存及它如何影响系统运行。普遍认为,多数程序语言接近硬件或高性能,如C、C++和Fortran,通常程序员会自己管理内存,高手工程师对内存的分配,会慎重处理,并在未来结束使用时再次分配,一旦确认何时及怎样分配内存,内存管理的品质就依赖于工程师的技能跟效率。实际情况是工程师们,不都会去追踪那零碎的内存碎片。程序开发是个混乱又疯狂的过程,内存通常...原创 2019-01-13 20:41:37 · 349 阅读 · 0 评论 -
安卓性能优化框架图(从内存,电量,网络,view等方面)
原创 2019-01-13 20:41:56 · 403 阅读 · 0 评论 -
Heap Snapshot工具(基于AndroidStudio)
Heap Snapshot工具(基于AndroidStudio)Heap Snapshot能做什么?获取Java堆内存详细信息,可以分析出内存泄漏的问题Heap Dump启动在内存面包中,点击图中红色标注的按钮,就会显示我们的Heap Snapshot面板Heap Snapshot面板Heap Snapshot详细信息面板该面板里的信息可以有三种类型:app heap/imag...原创 2019-01-13 20:42:18 · 1193 阅读 · 0 评论 -
图片引起的内存溢出,如何解决的
如何解决内存溢出:(内存为什么会溢出呢)内存缓存, 速度快, 而且不消耗流量, 最优先读取内存缓存本地缓存, 速度较快, 也不消耗流量, 其次从本地读缓存网络缓存, 速度慢, 消耗流量, 最后才从网络下载一般是(80%)因为加载了很多图片,(20% 代码垃圾)可以用三级缓存的方式来解决;先是内存缓存(速度快, 而且不消耗流量,最优先读取内存缓存),再是本地缓存(速度较快, 也不消耗流...原创 2019-01-26 10:25:34 · 2977 阅读 · 0 评论