优化工具使用 内存泄漏12adb shell dumpsys meminfo com.esread.sunflowerstudent -dadb shell dumpsys meminfo \[PackageName\],可以打印出指定包名的应用内存信息 目前栈中所有的Activity的实例,如果数量大于1,说明有内存泄漏的界面。 静态工具检查 LeakCanaryApp植入LeakCanary之后, 在检测 2024-04-06 Android > 优化
android编译优化 AAR首次运行时间:485.0s android gradle 7.2升级Android Gradle plugin supports Configuration cache from 7.0.0. Current version is 4.0.1.Start AGP Upgrade Assistant 迁移KTS小伙快把你的Gradle从Groovy迁移到KTS - 掘金Kotlin DSL 实 2024-04-06 Android > 优化
Android内存优化 在实践操作当中,可以从三个方面着手减小内存使用,首先是减小对象的内存占用,其次是内存对象的重复利用,最后是避免对象的内存泄露。也可以从从设备分级、Bitmap 优化和内存泄露这三个方面入手。 内存错误如果发生了 OutOfMemoryError 异常,可以首先创建一个内存容量较低的模拟器。 AVD 管理器设置,可以通过这些设置控制设备的内存容量。[[优化工具使用|工具排查]] 减小内存占用 资源和 2024-04-06 Android > 优化
Android其他优化 WebView 性能优化[[WebView 缓存池]] 在客户端刚启动时,就初始化一个全局的 WebView 待用,并隐藏;当用户访问了 WebView 时,直接使用这个 WebView 加载对应网页,并展示。这种方法可以比较有效的减少初始化 WebView 的时间。 主要的还是 h5那边的优化 Android 版本不同,采用了不同的内核,兼容性 crash oom:WebView 动态加载。就 2024-04-06 Android > 优化
自定义View总结 [[自写动画自定义View]] 基本流程 明确需求,确定你想实现的效果。 确定是使用组合控件的形式还是全新自定义的形式,组合控件即使用多个系统控件来合成一个新控件,你比如 titilebar,这种形式相对简单。 如果是完全自定义一个 view 的话,你首先需要考虑继承哪个类,是 View 呢,还是 ImageView 等子类。 根据需要去复写 View 的 onDraw 、onMeasure 、o 2024-04-06 Android > view
约束布局ConstraintLayout ConstraintLayout好处用 RelativeLayout 可以解决问题,为什么还要使用 ConstraintLayout 呢?因为 ConstraintLayout 使用起来比 RelativeLayout 更灵活,性能更出色!还有一点就是 ConstraintLayout 可以按照比例约束控件位置和尺寸,能够更好地适配屏幕大小不同的机型。可以角度、距离定位 拖动写UI 使用场景 注意 2024-04-06 Android
垂直同步vsync Surface在 WMS 中会为这个 Window 分配 Surface,并确定显示层级,可见负责显示界面的是画布 Surface,而不是窗口本身,WMS 将他管理的 Surface 交由 SurfaceFlinger 处理,SurfaceFlinger 将这些 Surface 合并后放入到 buffer 中,屏幕会定时从 buffer 中获取显示数据,显示到屏幕上。 刷新率在 Android 系 2024-04-06 Android
协调布局CoordinatorLayout CoordinatorLayoutactivity_answer_detail.xml 自定义Behavior https://www.jianshu.com/p/b987fad8fcb4CoordinatorLayout介绍 https://www.jianshu.com/p/1edeff139de5BottomSheetBehavior https://www.jianshu.com/p/04 2024-04-06 Android > view
SurfaceView和视频 SurfaceView一篇文章看明白 Android 图形系统 Surface 与 SurfaceFlinger 之间的关系_android sufaceflinger 怎么和surface 交互的-CSDN博客 SurfaceView 和View的区别view必须在UI的主线程中更新画面。如果更新时间过长,就会被你正在画的函数阻塞,那么将无法响应按键、触屏等消息。当使用SurfaceView由于 2024-04-06 Android > view
RecycleView_ ListView原理 ListView 原理ListView 实现成百上千条数据都不会 OOM 的原因因为 getview 的第二个参数 convertView 就是之前用过的 VIew 对象,当 view 对象完全移除屏幕后,会存入 RecycleBin 对象里,当 listview 的屏幕外下面的 view 滑出来的时候,会从 RecycleBin 里取出复用。ListView 中的子 View 其实来来回回就那么 2024-04-06 源码