Android原理及性能优化
文章平均质量分 87
Android 性能优化
贺兰猪
这个作者很懒,什么都没留下…
展开
-
APK瘦身
知道了APK打包流程后想要瘦身,其实无非就是把整个APK的一些文件进行一个瘦身。看下apk的这个文件。包括class、资源,资源生成arsc(资源映射表),manifest清单,再就是meta。对这些文件如果能缩小的话,就能达到缩小apk的目的。原创 2023-04-09 17:52:36 · 540 阅读 · 1 评论 -
APK打包流程
Dex工具会把class文件,还有我们的第三方的这样的依赖库和.class文件,进行编译生成.dex文件,.dex主要是用来在我们的虚拟机运行,当然这个过程也会去消除一些冗余信息、压缩常量值等等做这样的一些简单的处理,相当于简单的优化一下。首先,安卓APP的资源这一块,会通过aapt进行一个编译,这个工具编译的时候,会首先会把我们的这个xml文件生成这一个R.java,然后再就是像manifest清单文件,它会通过编译把生成一个二进制文件,资源文件,他会去生成一个。zipalign(release模式)原创 2023-04-09 07:29:30 · 480 阅读 · 0 评论 -
线程池详解
拒绝策略提供顶级接口 RejectedExecutionHandler ,其中方法 rejectedExecution 即定制具体的拒绝策略的执行逻辑。转载 2023-02-09 19:54:48 · 670 阅读 · 0 评论 -
线程池核心数与最大线程数问题
线程池核心数与最大线程数问题原创 2023-01-29 11:33:49 · 2099 阅读 · 0 评论 -
VSYNC+三重缓存机制+Choreographer
在一个典型的显示系统中,一般包括CPU、GPU、Display三个部分, CPU负责计算帧数据,把计算好的数据交给GPU,GPU会对图形数据进行渲染,渲染好后放到buffer(图像缓冲区)里存起来,然后Display(屏幕或显示器)负责把buffer里的数据呈现到屏幕上。屏幕刷新频率 一秒内屏幕刷新的次数,如常见的 60 Hz。刷新频率取决于硬件的固定参数(不会变的)。逐行扫描 显示器并不是一次性将画面显示到屏幕上,而是从左到右边,从上到下逐行扫描,顺序显示整屏的一个个像素点,不过这一过程快到人眼无法察原创 2022-06-08 16:26:53 · 1530 阅读 · 0 评论 -
深入理解Android内核——Android启动分析
android设备的启动分为三个阶段:Boot Loader,Linux Kernel,Android 系统服务。Android系统实际上是运行在Linux Kernel之上的一系列系统服务进程。首先,给出一张图,图片来自这里,帮助大家理解和分析,里面还有一些步骤节点介绍。第一阶段:Android设备打开电源后,首先会从处理器片上ROM的启动引导代码开始执行,寻找Bootloader代码,并加载到内存。(这一步由“芯片厂商”负责设计和实现) 第二阶段:Bootloader开始执行,首先负责完.原创 2020-12-21 20:19:29 · 1448 阅读 · 0 评论 -
Android Binder 进程间通讯机制
概述最近在学习Binder机制,在网上查阅了大量的资料,也看了老罗的Binder系列的博客和Innost的深入理解Binder系列的博客,都是从底层开始讲的,全是C代码,虽然之前学过C和C++,然而各种函数之间花式跳转,看的我都怀疑人生。毫不夸张的讲每看一遍都是新的内容,跟没看过一样。后来又看到了Gityuan的博客看到了一些图解仿佛发现了新大陆。下面就以图解的方式介绍下Binder机制,相信你看这篇文章,一定有所收获。什么是 Binder?Binder是Android系统中进程间通讯(IP转载 2020-12-22 10:04:26 · 311 阅读 · 0 评论 -
Android 操作系统架构开篇
转自http://gityuan.com/android/为便于日常查阅本博客,可通过Gityuan博客导航方便检索文章一、引言众所周知,Android是谷歌开发的一款基于Linux的开源操作系统,从诞生至今已有10余年,这一路走来Android遇到哪些问题?大版本升级朝着什么方向演进?Android的未来如何?我的公号《Android 技术架构演进与未来》讲解了Android一路走来,在用户体验、性能、功耗、安全、隐私等方面取得的很大进步,以及未来可能的方向。本文作为Android系...转载 2020-12-21 22:48:02 · 516 阅读 · 0 评论 -
安卓系统架构分层级特点
Android的系统架构采用了分层架构的思想,下图所示。从上往下共包括四层,分别是应用程序程序层、应用框架层、系统库和Android运行时和Linux内核。根据Android的软件框图,其软件层次结构自下而上分为以下几个层次:第一、操作系统层(OS)第二、各种库(Libraries)和Android 运行环境(RunTime)第三、应用程序框架(Application Framework)第四、应用程序(Application)以下分别介绍Andoid各个层次的软件的重点及其相关技术:转载 2020-12-15 14:30:52 · 7326 阅读 · 0 评论 -
Android 图片优化
为什么要进行图片优化?1、减少内存消耗 (容易造成OOM) 2、App流畅度好 3、减少流量损耗 4、减少APK包大小 5、提高用户体验什么是OOM?简单的讲就是内存耗尽了。Android系统的进程(APP级别)有最大内存限制,超过这个限制系统就会抛出OOM错误。图片OOM问题产生原因:一个页面一次加载过多图片加载大图片没有进行压缩(尺寸、质量)Android列表加载...原创 2019-10-14 10:38:12 · 363 阅读 · 0 评论 -
Android 电量优化
为什么要做电量优化?移动设备,不能一直使用电源供电,且电池容量有限 对于用户来说, 实际上App的电量损耗也是用户体验的一个方面。 特别是当今人们对移动设备的依赖度越来越高如何理解电池消耗?电量消耗的计算与统计是一件麻烦而且矛盾的事情,记录电量消耗本身也是一个费电量的事情(所以很多设备都把这个监测电量的功能河蟹掉了)。唯一可行的方案是使用第三方监测电量的设备,这样才能够获取到真实的电量...原创 2019-10-03 20:36:29 · 411 阅读 · 0 评论 -
Android UI优化技巧
查找OverdrawOverdraw(过度绘制)描述的是屏幕上的某个像素在同一帧的时间内被绘制了多次。在重叠的UI布局中,如果不可见的UI也在做绘制的操作或者后一个控件将前一个控件遮挡,会导致某些像素区域被绘制了多次,从而增加了CPU,GPU的压力。按照以下步骤打开Show GPU Overrdraw的选项:设置 -> 开发者选项 -> 调试GPU过度绘制 -> 显示GP...原创 2019-09-29 15:34:53 · 441 阅读 · 0 评论 -
Android UI卡顿分析
Android渲染刷新机制渲染操作通常依赖于两个核心组件:CPU与GPU。CPU负责包括Measure,Layout等计算操作,GPU负责Rasterization(栅格化)操作(所谓栅格化就是将矢量图形转换为位图的过程,手机上显示是按照一个个像素来显示的,栅格化再普通一些的说法就是将一个Button,TextView等组件拆分到一个个像素上去显示)。Android系统每隔16ms发出VS...原创 2019-09-28 16:09:08 · 636 阅读 · 0 评论 -
Android如何执行代码
Android开发者使用Java,不过Android平台不用Java虚拟机(VM)来执行代码。而是把应用编译成Dalvik字节码(5.0以后Dalvik被ART取代),使用Dalvik虚拟机来执行。Java代码仍然编译成Java字节码,但随后Java字节码会被dex编译器(dx,SDK工具)编译成Dalvik字节码。最终,应用包只包含Dalvik字节码,而不是java字节码。Android...原创 2019-08-23 15:19:56 · 3071 阅读 · 0 评论