六木Sir

Results 92 comments of 六木Sir

# Android进程框架:进程通信的桥梁Socket **文章目录**

# Android系统应用框架篇:AIDL 在介绍AIDL的原理之前先写一个简单的Demo。 **举例** 1 定义一个AIDL文件 ```java package com.qmsggg.android.framework.demo.system.aidl; // Declare any non-default types here with import statements interface IMyAidlInterface { /** * Demonstrates some basic types that you can...

# Android应用优化:启动优化 - 启动优化官方文档:https://developer.android.com/topic/performance/launch-time.html - 启动优化视频教程:https://www.youtube.com/watch?v=Vw1G1s73DsY&index=74&list=PLWz5rJ2EKKc9CBxr3BVjPTPoDPLdPIFCE 在App优化的诸多指标中,启动速度是一项非常重要的性能指标,很难想象当你打开一个应用,它经过了一分钟还是有将首页加载出来,这是一宗多么糟糕的体验,这种 启动时间过长,很有可能导致用户不愿使用甚至卸载我们的应用。 应用按照启动场景的不同可以分为三种启动方式: - 冷启动:冷启动指应用进程还没有创建,应用从头开始启动。 - 暖启动:暖启动指的是应用进程已经创建,但是当前页面的Activity被销毁或者还未创建,需要重新创建。 - 热启动:热启动指的是应用进程已经创建,当前页面的Activity也已经创建,驻留在内存中,只需要将来重新带到前台来即可。 我们之前的文章也有分析过,当用户点击一个桌面上的图标,启动一个未经启动过的应用,其冷启动的流程如下图所示: 1. 加载和启动应用程序。 2. 启动后立即显示应用程序的空白开始窗口。 3. 创建应用程序进程。 4. 创建应用程序对象。 5. 启动主线程。 6. 创建MainActivity。 7. 加载布局文件。...

# Android应用优化:界面优化 ## 一 顿检测 我们可以利用BlockCanary去检查造成UI卡顿的地方,如下所示: BlockCanary:https://github.com/markzhai/AndroidPerformanceMonitor BlockCanary检查UI卡顿的原理如下图所示: ## 二 卡顿优化 Android界面优化主要解决界面卡顿的问题,Android系统每隔16ms就会发送一个VSYNC信号,触发UI渲染,如果绘制操作超过了16ms,就会引起掉帧,也就是会导致姐们卡顿。 导致界面卡顿的原因主要是过度绘制,绘制了多余的UI,开发者选项里有检测过度绘制的工具,如下所示: 1. 移除不必要的backgroud。 2. 自定义View的时候clipReact减少重叠区域的绘制。 3. 利用等标签减少View的层级。 4. 利用在需要的时候再去加载View。

# Android应用优化:内存优化 提到内存优化一块,最大问题就是OOM: - 无处不在的OOM。 - 明明还有剩余内存,但是应用还是因为OOM而crash了。 - 崩溃率居高不下。 - 不断扩展的业务需求。 ## 一 内存使用检测 每个App的堆内存大小是有限制的,我们可以调用系统的getMemoryInfo()来获取当前内存的使用情况,如下所示: ```java ActivityManager activityManager = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE); ActivityManager.MemoryInfo memoryInfo = new ActivityManager.MemoryInfo(); activityManager.getMemoryInfo(memoryInfo); LogUtil.d("totalMem=" + memoryInfo.totalMem...

# Android应用优化:图像优化

# Android应用优化:兼容适配实践指南 网络优化主要涉及四个方面的内容,如下所示: - 数据缓存 - 断点续传 - 流量优化 - 局部刷新

# Android应用优化:兼容适配实践指南 AsyncTask HandlerThread ThreadPool IntentService

# Android应用优化:兼容适配实践指南 ## 一 Android Studio Profiler Android Studio 3.0 提供了全新的Profiler工具来分析应用的CPU、内存和网络的使用情况,可以跟踪函数来记录代码的执行时间,采集堆栈数据,查看内存分配以及查看网络状态等,功能 十分强大。 Android Studio Profiler 官方文档:https://developer.android.com/studio/profile/android-profiler.html 它的界面构造图如下所示: CPU、内存和网络数据的展示都是通过Event时间线实时展示的,如果你想查看某个指标的详情,只需点击当前图表即可,如下所示: CPU分析器 内存分析器 网络分析器 ### 1.1 CPU分析器 > CPU分析器可以帮助我们实时的检查应用的CPU使用率,可以跟踪记录函数,帮助我们调试和优化应用代码,降低CPU使用率可以获得更加流畅的用户体验,延长电池续航,还可以 让我们的应用在一些旧设备上依然保持良好的性能。 CPU分析器界面如下所示: 我们来讲一下上述小红圈数字代表的含义: -...

# Android媒体开发:Camera实践指南 **文章目录** - 一 Camera实践指南 - 1.1 打开相机 - 1.2 关闭相机 - 1.3 开启预览 - 1.4 关闭预览 - 1.5 拍照 - 1.6 开始视频录制 - 1.7 结束视频录制 - 二 Camera2实践指南...