- 博客(20)
- 资源 (28)
- 收藏
- 关注
原创 Android性能优化—屏幕适配方案
像素(px)含义:通常所说的像素,就是CCD/CMOS上光电感应元件的数量,一个感光元件经过感光,光电信号转换,A/D转换等步骤以后,在输出的照片上就形成一个点,我们如果把影像放大数倍,会发现这些连续色调其实是由许多色彩相近的小方点所组成,这些小方点就是构成影像的最小单位“像素”(Pixel)。简而言之,像素就是手机屏幕的最小构成单元。单位:px(pixel),1px = 1像素点一般情况下UI设计师的设计图会以px作为统一的计量单位。绝对单位 1px 全天下所有的1px都是一样大的相对:1%.
2020-10-28 16:50:06 1249
原创 Android性能优化—apk瘦身
1.代码2.资源方面3.动态库APK的结构包含以下目录:assets/: 包含了应用的资源,这些资源能够通过AssetManager对象获得。lib/: 包含了针对处理器层面的被编译的代码。这个目录针对每个平台类型都有一个子目录,比如armeabi, armeabi-v7a, arm64-v8a, x86, x86_64和mips。res/: 包含了没被编译到resources.arsc的资源。META-INF/: 包含CERT.SF和CERT.RSA签名文件,也包含了MANIFES
2020-10-25 18:51:33 864
原创 Android性能优化—存储优化
Android 存储方式SharedPrefence,存储简单的配置数据等SQLite,存储复杂的关系型数据File,一般存储日志文件,本地文件缓存, protobuf ,7zContentProvider,跨进程数据访问,一般和SQLite结合使用,把数据提供给其他app进程使用。网络存储 , 网络存储 涉及到序列化/反序列化(protobuf,xml,json)SharedPrefenceSharedPrefence的commit和applyapply没有返回值,而commit返回b
2020-10-24 17:14:18 666 4
原创 Android性能优化—Android电量优化
手机耗电的根本原因是软件电能电能(J) = 电功率P(W) * 时间t(s)电功率P(W) = 电压U(V) * 电流I©电量Q© = 电流I(A) * 时间t(s)电池说明代表的含义是什么?mAh表示电量,Wh表示电能,即在提供稳定电压3.7V的情况下,可以提供稳定电流1700mA一个小时,即我们在测试的过程中给手机提供恒定的电压,只需获取电流值就可以量化手机的功耗如何获取电量的值测试方法通过Android API获取re
2020-10-24 16:17:24 497
原创 Android Drawable
Drawable 是开发中经常用到的一个概念,我们经常用它去设置 View 的背景,背景可以一个颜色值,也可以是一张资源图片,还可以是一个自定义的 Drawable(shape、selector和layer-list等)等等。这篇文章就简单说下 Drawable 与 View 的关系,同时结合代码,简要分析一下 Drawable 如何作用于 View。Drawable 介绍官方介绍:A Drawable is a general abstraction for “something that can
2020-10-23 21:58:58 414
原创 Android性能优化—Bitmap的内存管理与长图加载
1.如何计算Bitmap所占内存?2.Bitmap在内存中的缓存管理3.长图加载需要注意的地方Bitmap–位图如何得到 bitmap 对象?Bitmap 是 Android 系统中的图像处理中最重要类之一。Bitmap 可以获取图像文件信息,对图像进行剪切、旋转、缩放,压缩等操作,并可以以指定格式保存图像文件。有两种方法可以创建 Bitmap 对象,分别是通过 Bitmap.createBitmap() 和 BitmapFactory 的 decode 系列静态方法创建 Bitmap 对象。
2020-10-21 20:22:55 847
原创 Android性能优化—代码结构设计模式优化
一道面试题BAT招聘面试题:你能手写一个单例设计模式吗?分析一下它是怎样工作的。你能熟练使用哪些设计模式?并分析一下设计模式的重要性BAT招聘需求:Baidu:https://www.zhipin.com/job_detail/ef45ee4fcc18bca41Xx52NW1EFs~.html?ka=search_list_2阿里:https://www.zhipin.com/job_detail/c74b2b035fe446ae1Xd42t61Elo~.html?ka=search_li
2020-10-20 21:56:50 314
原创 Android性能优化—内存抖动和内存泄漏
LMK;抖动、泄漏与溢出流畅不卡内存抖动短时间内有大量对象创建销毁,它伴随着频繁的GC。比较典型的就是字符串的拼接造成内存抖动。比如:String str = "";for(int i=0; i<10; i++) { str += i;}+=操作会编译成StringBuilder,然后调用StringBuilder的append方法进行拼接。所以这里会创建10个StringBuilder对象,每执行一次+操作都会新创建一个StringBuilder对象。优化方法:Stri
2020-10-18 21:04:20 1298 2
原创 Android性能优化—数据结构优化
为什么要学习数据结构?有个人上少林寺拜师学艺。大师指点说武功重在内力,应该先炼内功,然后再练外功,然后大师让他拿一根管子对着半缸水吹气,说什么时候能把缸里的水吹到溢出来,就证明内功达到至高境界了。于是他就日复一日地刻苦练习,三年过去了,没有任何效果,但他想:既然师父那么说就一定有他的道理。于是继续修炼。就这样过了十年,还是不行。终于,他失望了,决定不再修炼准备回家。到家碰到他爹,他爹就问他,说你拜师学艺学了十年学得怎么样啊? 他觉得很没面子,遂失落地低头叹了口气,等他抬头再看——他爹不见了……什么是性
2020-10-15 13:59:04 410
原创 Android-Window机制原理之Token验证(为什么Application的Context不能show dialog)
参考:Android-Window机制原理之Token验证(为什么Application的Context不能show dialog)
2020-10-13 16:22:10 200
原创 自定义实现简易版RecyclerView
简易版RecyclerView的主要原理:RecyclerView会先去回收池中获取ViewHolder,如果没有获取获取到,则调用适配器的onCreateViewHolder()获取ViewHolder。RecyclerView会先去回收池中获取ViewHolder,获取到ViewHolder后调用适配器的onBindViewHolder()绑定数据。自定义实现RecyclerView为什么看了很多网上的源码分析还是不能很好理解RecyclerView原理,而且过了一段时间就忘?因为...
2020-10-11 15:32:59 346
原创 从四个视角理解Activity的启动模式
1、Android的软件体系结构1.2 TasksActivity代码属于Application,但是Task属于Android操作系统1.3 怎样查看Tasksadb shell dumpsys activity activities | sed -En -e ‘/Stack #/p’ -e ‘/Running activities/,/Run #0/p’每个Task保护哪些Actvity2、Activity的启动方式2.1 Task的启动方式(恢复)2.2 Task启动方.
2020-10-08 15:02:27 1920 2
原创 Android高级UI之RecyclerView回收复用机制以及自定义LayoutManager
1.RecyclerView回收复用的谁?2.RecyclerView有几级缓存?3.如何实现自定义LayoutManager?回收复用回收什么?复用什么?回收到哪里去?从哪里获得复用?什么时候回收?什么时候复用?四级缓存1.mChangeScrap与 mAttachedScrap用来缓存还在屏幕内的 ViewHolder2.mCachedViews用来缓存移除屏幕之外的 ViewHolder3.mViewCacheExtension开发给用户的自定义扩展缓存,需要用户自己 管理
2020-10-07 17:51:11 1912
WindowManagerService相关类图.eddx
2020-03-20
WindowManagerService相关类图.eddx
2020-03-20
WindowManagerService相关类图.eddx
2020-03-19
Binder.rar
2020-03-19
A Kafka-based Ordering Service for Fabric
2019-01-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人