2019-10-30发表Android9 分钟读完 (大约1359个字)Android App 卡顿原因01.Android卡顿原理 通过对Android绘制机制的了解,我们知道造成应用卡顿的根源就在于16ms内不能完成绘制渲染合成过程,因为Android平台的硬件刷新率为60HZ,大概就是16ms刷新一次。如果没能在16ms内完成这个过程,就会使屏幕重复显示上一帧的内容,即造成了卡顿。在这16ms内,需要完成视图树的所有测量、布局、绘制渲染及合成。而我们的优化工作主要就是针对这个过程的。 02.复杂的视图树 阅读更多
2019-10-29发表Android7 分钟读完 (大约996个字)Android APP 瘦身优化1.APK组成1.1 APK组成部分 如下所示 res:包含未编译到的资源 resources.arsc,主要有图片资源文件; classes.dex:包含以Dalvik / ART虚拟机可理解的DEX文件格式编译的类; assets:包含应用可以使用AssetManager对象检索的应用资源; 阅读更多
2019-10-28发表Android5 分钟读完 (大约823个字)Android 静态变量优化01.为啥不要用静态变量保存核心数据 尽量不使用静态变量保存核心数据。这是为什么呢? 这是因为android的进程并不是安全的,包括application对象以及静态变量在内的进程级别变量并不会一直呆着内存里面,因为它很有会被kill掉。 当被kill掉之后,实际上app不会重新开始启动。Android系统会创建一个新的Application对象,然后启动上次用户离开时的activity以造成这个app从来没有被kill掉的假象。而这时候静态变量等数据由于进程已经被杀死而被初始化,所以就有了不推荐在静态变量(包括Application中保存全局数据静态数据)的观点。 阅读更多
2019-10-28发表Android3 分钟读完 (大约463个字)Android 图片优化01.bitmap优化 加载图片所占的内存大小计算方式 加载网络图片:bitmap内存大小 = 图片长度 x 图片宽度 x 单位像素占用的字节数【看到网上很多都是这样写的,但是不全面】 加载本地图片:bitmap内存大小 = width * height * nTargetDensity/inDensity 一个像素所占的内存。注意不要忽略了一个影响项:Density 第一种加载图片优化处理:压缩图片 阅读更多
2019-10-27发表Android10 分钟读完 (大约1551个字)Android App 启动页优化01.存在白屏问题1.1 问题描述 出现问题描述 android app启动页面黑屏的问题,android开发app启动时若没有做特殊处理的话,会出现一瞬间的白屏现象。 即使你启动页界面就加载一个布局,不做其他耗时处理,貌似也会出现一瞬间的白屏问题。注意,有些地方也称黑屏,主要是看你给app设置的style样式。 阅读更多
2019-10-26发表Android3 分钟读完 (大约422个字)Android App 线程优化01.创建Thread弊端 直接创建Thread实现runnable方法的弊端 大量的线程的创建和销毁很容易导致GC频繁的执行,从而发生内存抖动现象,而发生了内存抖动,对于移动端来说,最大的影响就是造成界面卡顿 线程的创建和销毁都需要时间,当有大量的线程创建和销毁时,那么这些时间的消耗则比较明显,将导致性能上的缺失 02.为何要用线程池 阅读更多
2019-10-26发表Android11 分钟读完 (大约1592个字)Android 代码优化01.代码优化有哪些 都是一些微优化,在性能方面看不出有什么显著的提升的。使用合适的算法和数据结构是优化程序性能的最主要手段。 02.lint检查去除无效代码 lint去除无效资源和代码 如何检测哪些图片未被使用 点击菜单栏 Analyze -> Run Inspection by Name -> unused resources -> Moudule ‘app’ -> OK,这样会搜出来哪些未被使用到未使用到xml和图片,如下: 阅读更多
2019-10-25发表Android12 分钟读完 (大约1821个字)Android 懒加载优化1.什么是懒加载 1.1 什么是预加载 ViewPager+Fragment的搭配在日常开发中也比较常见,可用于切换展示不同类别的页面,我们日常所见的咨询、购物、金融、社交等类型的APP都有机会用到这种控件组合 ViewPager控件有个特有的预加载机制,即默认情况下当前页面左右两侧的1个页面会被加载,以方便用户滑动切换到相邻的界面时,可以更加顺畅的显示出来。 通过ViewPager的setOffscreenPageLimit(int limit)可以设置预加载页面数量,当前页面相邻的limit个页面会被预加载进内存 阅读更多
2019-10-24发表Android8 分钟读完 (大约1197个字)Android 布局优化01.常见布局优化方法 布局优化的核心就是尽量减少布局文件的层级,常见的方式有: 多嵌套情况下可使用RelativeLayout减少嵌套。 布局层级相同的情况下使用LinearLayout,它比RelativeLayout更高效。 使用标签重用布局、标签减少层级、标签懒加载。 当有多个组件有相似的属性时,可以使用styles,复用样式定义; 通过定义drawable来替代图片资源的使用,降低内存消耗; 阅读更多
2019-10-24发表Android5 分钟读完 (大约776个字)Android 网络优化01.图片分类优化 图片网络优化 比如我之前看到豆瓣接口,提供一种加载图片方式特别好。接口返回图片的数据有三种,一种是高清大图,一种是正常图片,一种是缩略小图。当用户处于wifi下给控件设置高清大图,当4g或者3g模式下加载正常图片,当弱网条件下加载缩略图【也称与加载图】。 简单来说根据用户的当前的网络质量来判断下载什么质量的图片(电商用的比较多)。豆瓣开源接口可以参考一下! 02.获取网络数据优化 阅读更多