Android共406篇 第19页
Android
AVFormatContext、AVIOContext与AVStream(一)-五八三

AVFormatContext、AVIOContext与AVStream(一)

一、简介 在音视频文件编解码中有三个重要的阶段,对于解码:先将文件读取到内存中,再解封装,再解码;对于编码过程也是一样的,这里边涉及三个结构体: AVIOContext主要是定义如何读取文件(...
admin的头像-五八三admin2年前
090

框架解读 | Retrofit设计剖析

Retrofit是一个类型安全的HTTP客户端,可以通过注解将HTTP API转换为Java接口,并使用动态代理,CallAdapter和Converter来发起请求和解析响应。 本文 着重于 Retrofit的架构设计,对于其注解解...
【FlutterUtilCode】Flutter工具篇之DeviceUtils-五八三

【FlutterUtilCode】Flutter工具篇之DeviceUtils

前言 FlutterUtilCode 是一个 Flutter 工具类集合插件,封装了常用的工具类和函数,方便开发者调用。 本篇是 Flutter工具篇之DeviceUtils,系列文章内容主要介绍插件中工具类的功能、用法和代码...
Flutter 仿京东商品详情底部操作栏-五八三

Flutter 仿京东商品详情底部操作栏

前言 不知道大家有没有留意京东 App的商品详情页,在底部有5个操作按钮,分成了3组,然后每一组占了1/3的宽度。这种布局,简单直接的方法是写死每一组宽度为屏幕宽度的1/3。能用,但是不太优雅...
问个问题,请描述下Android系统的启动流程-五八三

问个问题,请描述下Android系统的启动流程

Android启动流程 前言 什么是Android启动流程呢?其实指的就是我们Android系统从按下电源到显示界面的整个过程。当我们把手机充好电,按下电源,手机会弹出相应启动界面,在等了一段时间之后,...
admin的头像-五八三admin2年前
0160
从近期开发的Compose DeskTop项目中收获的四个知识点-五八三

从近期开发的Compose DeskTop项目中收获的四个知识点

Compose可以跨平台相信已经不是什么新鲜事情了,相信只要会点Compose的小伙伴都已经多多少少开始上手Compose的跨平台开发,在Compose能跨的平台里面,除了Android之外,“跨”的最完善的应该就...
findViewById不香吗?为什么要把简单的问题复杂化?为什么要用DataBinding?-五八三

findViewById不香吗?为什么要把简单的问题复杂化?为什么要用DataBinding?

Android-MVVM-Databinding的原理、用法与封装 前言 说起 DataBinding/ViewBinding 的历史,可谓是一波三折,甚至是比 Dagger/Hilt 还要传奇。 说起依赖注入框架 Dagger2/Hilt ,也是比较传奇,...
Kotlin开发实战实战:现代化应用构建的技术探索与最佳实践-五八三

Kotlin开发实战实战:现代化应用构建的技术探索与最佳实践

Kotlin作为一种现代化、表达力强的编程语言,正在逐渐成为Android开发和跨平台应用开发的首选语言。本文将通过多个实战示例和代码深度探索,展示Kotlin的强大功能和实用性,帮助读者更好地理解...
admin的头像-五八三admin2年前
060
框架解读 | OkHttp设计剖析-五八三

框架解读 | OkHttp设计剖析

概述 OKHttp是一个基于HTTP协议的网络请求框架,它支持HTTP/2协议,连接复用和连接池,缓存策略等功能。它的核心设计是拦截器(Interceptor),它将请求的复杂逻辑切分成多个独立的模块,并通过...
Gradle深入解析 - Task原理(Graph篇)-五八三

Gradle深入解析 – Task原理(Graph篇)

你是否对gradle如何处理task间的依赖感到好奇,创建task的方式有很多种,建立依赖的方式也很多,gradle是如何确定最终task的执行顺序的,下面我们就来探究一下 先用一张图来展示task相关的概念 ...
admin的头像-五八三admin2年前
0170
Gradle深入解析 - Task原理(并行篇)-五八三

Gradle深入解析 – Task原理(并行篇)

上一篇文章讲了Task Graph的处理,在Task的顺序确定之后,真正被执行前,还涉及到Task的并行调度问题,我们知道gradle是有并行机制的,没有依赖关系的Task可以并行执行,以减少构建耗时 除了线...
admin的头像-五八三admin2年前
070
Gradle深入解析 - Task原理(执行篇)-五八三

Gradle深入解析 – Task原理(执行篇)

前2篇文章探究了gradle是如何处理Task Graph和Task调度的,至此Task的前期工作就已经完成了 下面就该执行Task了,如果观察过Task执行的话,会留意到console输出中Task后面有的带有执行结果的标...
admin的头像-五八三admin2年前
0110
Android启动速度优化-五八三

Android启动速度优化

1,android启动流程 1,点击桌面App图标,Launcher进程采用Binder向system\_server进程发送startActivity进程间通信 2,System\_server进程中的AMS服务获取到startActivity请求后,通过Socket发送...
admin的头像-五八三admin2年前
0180

okhttp3源码解析(8)-DiskLruCache、Cache

okhttp3源码解析(8)-DiskLruCache、Cache 前言 上一篇文章写到了CacheStrategy和Cache的部分内容,其中Cache里面DiskLruCache涉及的东西很多,也只看了其中对InternalCache修饰的几个方法,接下...
admin的头像-五八三admin2年前
060
第三方App访问SystemProperty遇到的一些坑-五八三

第三方App访问SystemProperty遇到的一些坑

需求背景 之前介绍了App访问驱动节点所需要解决的权限问题,但只是针对某个项目,如果换一个项目,App和framework里面的节点路径都需要修改。现在需要优化一下,定义一个SystemProperty,将节点...
admin的头像-五八三admin2年前
060
如何通过Side Effects来使得你使用Compose变的得心应手?-五八三

如何通过Side Effects来使得你使用Compose变的得心应手?

虽然我使用Compose已经有了一段时间的, 但我还是觉得使用起来束手束脚的. 究其原因, 大概是coding时的思路还没有完全转换过来, 还没有沉浸在'Compose is Function'之中. 和我们熟悉的View不同, ...
【Android探索】用Compose做一个Markdown文本块编辑器-五八三

【Android探索】用Compose做一个Markdown文本块编辑器

前言 Jetpack Compose是一种声明式UI,它可以随着数据的变化而自动更新UI。它对于列表的变化和内容的更新非常敏感,也方便易用。因此我在想,用它来制作一个类似于Notion的块式文本编辑器,是否...
Android 指引流程使用PorterDuffXfermode实现-五八三

Android 指引流程使用PorterDuffXfermode实现

1. 前言 写这篇文章也是一个机缘巧合。以前在学习自定义View的时候有了解过PorterDuffXfermode,但是也就只知道个大概,并没有在实战中运用到。 直到前段时间有个需求是做个指引流程的显示,我...
Android Binder 驱动情景分析之服务获取与使用过程-五八三

Android Binder 驱动情景分析之服务获取与使用过程

本文系统源码版本: AOSP 分支:android-10.0.0_r41 Kernel 分支:android-goldfish-4.14-gchips 本文依托于Binder 程序示例之 C 语言篇中介绍的应用层示例程序来对驱动的实现做情景化分析。 服...
admin的头像-五八三admin2年前
050
Opengl ES之LUT滤镜(下)-3DLUT-五八三

Opengl ES之LUT滤镜(下)-3DLUT

本文正在参加「金石计划」 在上一篇文章 Opengl ES之LUT滤镜(上) 中我们详细介绍了基于图片纹理的2D LUT滤镜的使用, 这种方式也是目前大部分SDK在移动端的实现方式,既然有2D LUT滤镜那就有3D ...