Android之性能优化性能监控框架
[TOC]
文章参考:https://juejin.cn/post/6844903586401353735
概述
Android之性能优化性能监控框架
[TOC]
RxJava2学习之Disposable对象
[TOC]
概述Disposable类
dispose():主动解除订阅
isDisposed():查询是否解除订阅 true 代表 已经解除订阅
rxjava虽然好用,但是总所周知,容易遭层内存泄漏。也就说在订阅了事件后没有及时取阅,导致在activity或者fragment销毁后仍然占用着内存,无法释放。而disposable便是这个订阅事件,可以用来取消订阅。但是在什么时候取消订阅呢?我知道有两种方式:
使用CompositeDisposable看源码,CompositeDisposable的介绍很简单
1A disposable container that can hold onto multiple other disposables and offers O(1) add and removal complexity.
一个disposable的容器,可以容纳多个disposable,添加和去除的复杂度为O(1)。
也就是说,如果这个CompositeDisposable容器已经是处于dispose的状态,那么所有加进来的disposable都会被自动切断。
所以说 ...
Android之安装包体积优化基础
文章参考:https://mp.weixin.qq.com/s/TyGFnSkewqyHZoqFrPf2rQ
文章参考:https://juejin.cn/post/7016225898768629773
概述实际开发应用时,包体积优化是必不可少的。毕竟手机内存有限,如果包体积过大很多用户会直接放弃(以前手机内存很小的时候,这个真的很重要),现在由于手机内存大了(512G已经挡不住了),现在的用户更关注流畅度和美观作为参考,但是该有的优化还是要优化的。
APK结构解析了解应用程序APK的结构对于我们来说很有帮助。APK文件由一个ZIP存档组成,其中包含组成应用程序的所有文件。这些文件包括Java类文件,资源文件和包含编译资源的文件。
APK包含以下目录:
META-INF/:包含CERT.SF和 CERT.RSA签名文件以及MANIFEST.MF 清单文件。
assets/:包含应用可以使用AssetManager对象检索的应用资源。
res/:包含未编译到的资源 resources.arsc。
lib/:包含特定于处理器软件层的编译代码 ...
01.Android之Antations
[TOC]
文章参考:https://developer.android.com/jetpack/androidx/releases/annotation
WorkManager调度任务入门
[TOC]
概述WorkManager 是一个 API,可供您轻松调度那些即使在退出应用或重启设备后仍应运行的可延期异步任务。WorkManager API 是一个适合用来替换先前的 Android 后台调度 API(包括 FirebaseJobDispatcher、GcmNetworkManager 和 JobScheduler)的组件,我们也建议您这样做。WorkManager 在其现代、一致的 API 中整合了其前身的功能,该 API 支持 API 级别 14,在开发时即考虑到了对电池续航的影响。
在后台,WorkManager 根据以下条件使用底层作业来调度服务:
注意:如果您的应用以 Android 10(API 级别 29)或更高版本为目标平台,那么您对 FirebaseJobDispatcher 和 GcmNetworkManager API 的调用在搭载 Android Marshmallow (6.0) 及更高版本的设备上将无法正常工作。如需迁移指导,请参阅 FirebaseJobDispatcher 和 GcmNetworkManager 迁移指南。此外,请 ...
Android之Hilt框架基础学习
[TOC]
文章参考:https://developer.android.com/training/dependency-injection?hl=zh-cn
概述我们学习一个框架,最好的学习方法就是学习官网教程。上面就是Android的依赖注入框架的Hilt的学习的官网地址
什么是依赖注入依赖项注入 (DI) 是一种广泛用于编程的技术,非常适用于 Android 开发。遵循 DI 的原则可以为良好的应用架构奠定基础。其实,说白了。就是一个类里面有一个变量,这个变量就是这个类的依赖。然后通过外部注入对这个变量进行赋值,这种就叫做依赖注入。
官网中详细讲解了依赖注入的含义。大家具体可以参见:https://developer.android.com/training/dependency-injection?hl=zh-cn
依赖注入的优点实现依赖项注入可为您带来以下优势:
重用代码
易于重构
易于测试
说白了,依赖注入可以更好的帮你减少创建依赖对象的模板代码。更大范围的让这些模板代码通过注解的形式完成。
什么是HiltHilt 是推荐用于在 Android 中实现依赖项注入的 ...
OpenGLES3.0基础介绍
[TOC]
文章参考:https://developer.android.com/guide/topics/graphics/opengl?hl=zh-cn
概述Android 可通过开放图形库 (OpenGL®)(特别是 OpenGL ES API)来支持高性能 2D 和 3D 图形。OpenGL 是一种跨平台的图形 API,用于为 3D 图形处理硬件指定标准的软件接口。OpenGL ES 是 OpenGL 规范的一种形式,适用于嵌入式设备。Android 支持多版 OpenGL ES API:
OpenGL ES 1.0 和 1.1 - 此 API 规范受 Android 1.0 及更高版本的支持。
OpenGL ES 2.0 - 此 API 规范受 Android 2.2(API 级别 8)及更高版本的支持。
OpenGL ES 3.0 - 此 API 规范受 Android 4.3(API 级别 18)及更高版本的支持。
OpenGL ES 3.1 - 此 API 规范受 Android 5.0(API 级别 21)及更高版本的支持。
OpenGL ES绘制三角形
[TOC]
文章参考:https://blog.csdn.net/Kennethdroid/article/details/95622391
概述OpenGLES 全称 OpenGL for Embedded Systems ,是三维图形应用程序接口 OpenGL 的子集,本质上是一个跨编程语言、跨平台的编程接口规范,主要应用于嵌入式设备,如手机、平板等。由科纳斯(Khronos)组织定义和推广,科纳斯是一个图形软硬件行业协会,该协会主要关注图形和多媒体方面的开放标准。
OpenGLES 3.0 的特点OpenGLES 3.0 实际上是 OpenGLES 2.0 的扩展版本,向下兼容 OpenGLES 2.0 ,但不兼容 OpenGLES 1.0
OpenGLES 3.0 主要新特性纹理
sRGB 纹理和帧缓冲区——允许应用程序执行伽马校正渲染。
2D 纹理数组——保存一组 2D 纹理的纹理目标。
3D 纹理。一些 OpenGL ES 2.0 实现通过扩展支持3D纹理,而 OpenGL ES3.0 将此作为强制的功能。
深度纹理和阴影比较——启用存储在纹理中的深度缓冲区。
无缝 ...
OpenGLES3.0开发-纹理映射
[TOC]
文章转自:https://blog.csdn.net/Kennethdroid/article/details/96887637
概述现实生活中,纹理(Texture)最通常的作用是装饰 3D 物体,它就像是贴纸一样贴在物体表面,丰富物体的表面和细节。 在 OpenGLES 开发中,纹理除了用于装饰物体表面,还可以用来作为存储数据的容器。
那么在 OpenGL 中,纹理实际上是一个可以被采样的复杂数据集合,是 GPU 使用的图像数据结构,纹理分为 2D 纹理、 立方图纹理和 3D 纹理。
2D 纹理是 OpenGLES 中最常用和最常见的纹理形式,是一个图像数据的二维数组。纹理中的一个单独数据元素称为纹素或纹理像素。
立方图纹理是一个由 6 个单独的纹理面组成的纹理。立方图纹理像素的读取通过使用一个三维坐标(s,t,r)作为纹理坐标。
3D 纹理可以看作 2D 纹理作为切面的一个数组,类似于立方图纹理,使用三维坐标对其进行访问。
什么是纹理映射在 OpenGLES 中,纹理映射就是通过为图元的顶点坐标指定恰当的纹理坐标,通过纹理坐标在纹理图中选定特定的纹理区域,最后通过纹理 ...