排序
你可能一直在kt文件中写Java代码
我正在参加「掘金·启航计划」 关注 Koltin 的大多数开发中可能都是 Android 开发者吧,大家基本也都是慢慢从 Java 逐步迁移到 Koltin。 得益于 Kotlin 与 Java 之间良好的互通性,有的时候可能...
「码上开学——hencoder」Kotlin笔记(这玩意真的有用吗?对,是的!Kotlin 的 Nothing 详解)
Kotlin的Nothing类,无法创建出任何示例: public class Nothing private constructor() 所以所有Nothing类型的变量或者函数,都找不到可用的值。 val nothing: Nothing = ??? fun nothing(): N...
kotlin-协程(九)协程的异常处理
在 Kotlin 协程当中,我们通常把异常分为两大类,一类是取消异常(CancellationException),另一类是其他异常。之所以要这么分类,是因为在 Kotlin 协程当中,这两种异常的处理方式是不一样的...
Android-装饰器模式 vs 代理模式 vs 适配器模式:结构型模式三表兄
前言: 在软件开发中,设计模式是解决常见问题的可复用方案。装饰器模式、代理模式和适配器模式是常用的结构型设计模式,它们在不同的场景中发挥着重要作用。本文将以幽默风趣的方式,详细讲解...
Flutter 仿京东商品详情底部操作栏
前言 不知道大家有没有留意京东 App的商品详情页,在底部有5个操作按钮,分成了3组,然后每一组占了1/3的宽度。这种布局,简单直接的方法是写死每一组宽度为屏幕宽度的1/3。能用,但是不太优雅...
OpenglES之分屏滤镜
本文正在参加「金石计划」 还记得我们在 Opengl ES之纹理贴图 一文中提到的分屏滤镜吗?当时我们的实现方式是通过GL_REPEAT的方式实现的, 今天我们再来系统地讲下在Opengl ES中实现分屏滤镜的...
Opengl ES之LUT滤镜(下)-3DLUT
本文正在参加「金石计划」 在上一篇文章 Opengl ES之LUT滤镜(上) 中我们详细介绍了基于图片纹理的2D LUT滤镜的使用, 这种方式也是目前大部分SDK在移动端的实现方式,既然有2D LUT滤镜那就有3D ...
AVFormatContext、AVIOContext与AVStream(一)
一、简介 在音视频文件编解码中有三个重要的阶段,对于解码:先将文件读取到内存中,再解封装,再解码;对于编码过程也是一样的,这里边涉及三个结构体: AVIOContext主要是定义如何读取文件(...
ASM Core Api学习系列1:Class的使用
asm是一款字节码操作框架,许多在java代码中难以实现的功能,借助字节码修改技术能够轻松实现,比如app中进行隐私接口调用检测,如果在java代码中进行hook不仅实现困难,其通用性也差,而在编译...
Android启动流程相关
Android的启动流程 1、按下电源键之后,会引导芯片代码从预定义的地方(固化在rom了)开始执行,加载引导程序BootLoader加载到RAM,然后执行。Bootloader是一段小型的程序,主要功能是将内核映像...
Android Binder 驱动情景分析之服务获取与使用过程
本文系统源码版本: AOSP 分支:android-10.0.0_r41 Kernel 分支:android-goldfish-4.14-gchips 本文依托于Binder 程序示例之 C 语言篇中介绍的应用层示例程序来对驱动的实现做情景化分析。 服...
Android 指引流程使用PorterDuffXfermode实现
1. 前言 写这篇文章也是一个机缘巧合。以前在学习自定义View的时候有了解过PorterDuffXfermode,但是也就只知道个大概,并没有在实战中运用到。 直到前段时间有个需求是做个指引流程的显示,我...
框架解读 | Retrofit设计剖析
Retrofit是一个类型安全的HTTP客户端,可以通过注解将HTTP API转换为Java接口,并使用动态代理,CallAdapter和Converter来发起请求和解析响应。 本文 着重于 Retrofit的架构设计,对于其注解解...
【FlutterUtilCode】Flutter工具篇之DeviceUtils
前言 FlutterUtilCode 是一个 Flutter 工具类集合插件,封装了常用的工具类和函数,方便开发者调用。 本篇是 Flutter工具篇之DeviceUtils,系列文章内容主要介绍插件中工具类的功能、用法和代码...
【Android探索】用Compose做一个Markdown文本块编辑器
前言 Jetpack Compose是一种声明式UI,它可以随着数据的变化而自动更新UI。它对于列表的变化和内容的更新非常敏感,也方便易用。因此我在想,用它来制作一个类似于Notion的块式文本编辑器,是否...
如何通过Side Effects来使得你使用Compose变的得心应手?
虽然我使用Compose已经有了一段时间的, 但我还是觉得使用起来束手束脚的. 究其原因, 大概是coding时的思路还没有完全转换过来, 还没有沉浸在'Compose is Function'之中. 和我们熟悉的View不同, ...
第三方App访问SystemProperty遇到的一些坑
需求背景 之前介绍了App访问驱动节点所需要解决的权限问题,但只是针对某个项目,如果换一个项目,App和framework里面的节点路径都需要修改。现在需要优化一下,定义一个SystemProperty,将节点...
okhttp3源码解析(8)-DiskLruCache、Cache
okhttp3源码解析(8)-DiskLruCache、Cache 前言 上一篇文章写到了CacheStrategy和Cache的部分内容,其中Cache里面DiskLruCache涉及的东西很多,也只看了其中对InternalCache修饰的几个方法,接下...
Android启动速度优化
1,android启动流程 1,点击桌面App图标,Launcher进程采用Binder向system\_server进程发送startActivity进程间通信 2,System\_server进程中的AMS服务获取到startActivity请求后,通过Socket发送...
[Kotlin Tutorials 22] 协程中的异常处理
协程中的异常处理 Parent-Child关系 如果一个coroutine抛出了异常, 它将会把这个exception向上抛给它的parent, 它的parent会做以下三件事情: 取消其他所有的children. 取消自己. 把exception继...