性能优化
文章平均质量分 91
Android性能与优化
清霜辰
安卓架构师,精通安卓应用和系统开发、音视频编码、性能优化。
展开
-
Android 性能优化--APK加固(2)加密
字符串加密图片加密如何避免应用被重新签名分发APK 加壳的方案简析DEX加密原理及实现原创 2024-03-07 09:21:59 · 1338 阅读 · 0 评论 -
[译]Android性能优化-Kotlin优化isBlank
最近在优化 Jetpack Compose 运行时的部分时,偶然发现了一个看似无害的 API isBlank() 。如果调用的字符串为空或仅由空格字符组成,则此 API 将返回 true 。但它真的无害吗?让我们看一下 JVM 实现,以更好地了解它的作用翻译 2024-02-23 10:55:53 · 158 阅读 · 0 评论 -
Android性能优化--Perfetto用SQL性能分析
Perfetto SQL 基础Perfetto SQL 性能分析原创 2023-11-04 21:02:39 · 1699 阅读 · 0 评论 -
Android 性能优化–Gradle 编译速度优化
编译速度优化1. 保持工具最新2. 使用 KSP 代替 kapt3. 避免编译不必要的资源4. 优化 repositories maven 排序5. 在调试构建中使用静态构建配置值6. 使用静态依赖版本7. 创建库模块8. 为自定义构建逻辑创建任务9. 将图像转换为 WebP10. 禁用 PNG 处理11. 挑选 JVM 垃圾收集器12. 增加 JVM 堆大小13. 使用非传递 R 类14. 使用非常量 R 类15. 禁用 Jetifier 标志16. 使用配置缓存原创 2023-08-16 07:00:00 · 1287 阅读 · 0 评论 -
Android性能优化--Perfetto抓取trace
开启Android的trace跟踪服务;使用 adb 抓取;通过 perfetto 网页抓取;直接在手机上抓取;使用 record_android_trace 抓取;熟悉 perfetto 快捷键,会有事半功倍效果;原创 2023-04-17 13:00:15 · 2683 阅读 · 1 评论 -
Android性能优化--Perfetto分析native内存泄露
本文示例是windows,这里使用了python工具,在Linux和mac同样适用。这里只能抓到一次内存的快照,如果想连续记录多次内存的数据需要能Root手机。抓取一次某个应用的内存命令如下,注意提前关闭其它adb程序,如AS。可以看到第一个大块有内存一直上升,结合其中的栈堆,分析并解决即可。是解决问题后,抓取的tarce,可以看到问题已解决。这里我上传了一份自己抓的数据,下载地址。通过点击 方块,对比不用时刻的内存。下载 perfetto ,地址在。每执行一次,上一步会记录一次。连续抓取多次内存快照。原创 2022-12-21 20:38:16 · 3265 阅读 · 2 评论 -
Android 性能优化--APK加固(1)混淆
为什么要开启混淆如何开启代码混淆如何开启资源压缩代码混淆配置代码混淆后,Crash 问题定位原创 2024-02-29 13:25:57 · 1238 阅读 · 2 评论 -
Android 性能优化 --内存优化、电量优化
Android 性能优化 --内存优化原创 2020-11-13 10:58:54 · 330 阅读 · 0 评论 -
Android 性能优化 -- 网络优化
避免频繁网络请求使用线程池图片必须缓存,最好一句机型做图片适配所有http请求必须添加http timeouthttp 开启gzip压缩选择合适的数据格式传输,比如json、protocol依据http头信息中cache-contrl及expires确定是否缓存请求结果确定请求的connection是否keep-alive减少请求次数,适当做请求合并减少重定向次数不是用域名,用IP直连服务器分布式部署连接复用,请求合并CDN缓存静态资源对post请求的body做gzip压缩,如.原创 2020-06-10 17:42:05 · 411 阅读 · 0 评论 -
Android 性能优化--APP启动、UI优化
安卓系统启动流程Activity启动流程优化启动的ActivityActivity的Theme优化Activity的布局优化Button(View)的显示过程布局优化方案常用优化工具Activity的代码优化优化Application初始化Java代码性能分析方法logcat查看启动时间Profiler查看启动时间原创 2020-06-16 15:53:09 · 518 阅读 · 0 评论 -
Android 性能优化 -- MMKV使用与原理
一. 集成与测试依赖注入初始化获取实例CURDSP 的迁移数据测试二. 初始化目录的创建三. 实例化一) 文件映射到内存二) 数据的载入三) 回顾四. encode一) 数据的编码二) 键值对的更新数据的重整与扩容三) 回顾五. decode思考六. 进程读写的同步一) 文件共享锁二) 文件排它锁三) 读写效率表现总结参考文献转载 2020-05-25 22:53:52 · 2390 阅读 · 0 评论 -
Android 高性能编程 概要导航
1. 尽量少的声明全局变量2. 声明全局静态变量,一定要加final声明3. 声明非静态的全局变量,最好不要初始化任何值,在使用到的地方,在进行初始化4. 函数中若干次使用全局变量,应该将全局变量赋值给本地变量,然后直接使用本地变量5. 能用Int,不要使用浮点数6. 能用乘法不用除法7. 尽量避免使用geter和setter方法8. 在Activity的onCreate函数中,尽量做少的事。。。合理管理内存分析内存的使用情况高性能编码优化布局优化技巧原创 2015-02-11 14:26:19 · 771 阅读 · 0 评论 -
Android 性能优化--进程保活(11种方案总结)
什么是LMKDService保活方案1. Activity提权2. Service机制(Sticky)拉活3. Native拉活4. “全家桶”拉活5. 广播拉活6. Service提权7. 推送拉活8. JobScheduler拉活9. 账户同步拉活10. 双进程守护11. 手机设置白名单、自启动等总结原创 2020-04-07 22:11:51 · 2859 阅读 · 1 评论 -
Android 性能优化--Protobuf使用及原理
1. 什么是Protobuf? 优点 缺点 应用场景 使用2.1.1 ubuntu 安装 protoc2.1.2 windows安装 protoc2.2 使用Android的Gradle插件编译3. Protobuf序列化、反序列化的性能对比4. Protobuf 原理4.1 protobuf 数据结构4.2 protobuf 编码方式4.3 TAG 编码过程4.4 Varint 编码过程4.5 Varint 解码过程4.6 Zigzag 编码过程原创 2016-02-15 18:05:11 · 8564 阅读 · 0 评论 -
Android性能优化
Android优化I. 基础相关1. 老生常谈的数据结构2. 编码习惯II. 数据库相关1. 无法使用索引的情况2. 不推荐3. 推荐III. 网络调优策略层面优化数据结构层面其他层面优化IV. 多进程抉择V. UI层面VI. 内存1. 内存管理2. 避免内存泄漏相关3. 图片VII. 线程VIII. 编译与发布IX. 工具X. 其他转载 2020-05-20 13:38:48 · 979 阅读 · 0 评论