☘ 主页 > 软件编程 > Android >
使用Flutter实现手写签名效果的教程
思路 需要监听用户触摸的起始点和结束点,并记录途经点,这里我使用了StreamController 将途经...Kotlin协程与挂起函数及suspend关键字深入理解
1.挂起函数 挂起函数在Kotlin协程中是一个比较重要的知识点,协程的非阻塞式、Channel、Flow等...Android自定义View实现绘制水波浪温度刻度表
之前的绘制圆环,我们了解了如何绘制想要的形状和进度的一些特点,那么此篇文章我们更近...Android硬件解码组件MediaCodec使用教程
1.MediaCodec 是什么 MediaCodec类可以访问底层媒体编解码器框架(StageFright 或 OpenMAX),即编解码组...Flow解决背压问题的方法介绍
随着时间的推移,越来越多的主流应用已经开始全面拥抱Kotlin,协程的引入,Flow的诞生,给予...Andorid开发中反射机制的介绍
在andorid开发中,经常遇见在某些工具类中没有Context上下文对象时,一些系统服务的代理对象无...Flutter加载图片的多样玩法汇总
加载本地图片 在项目目录下创建assets文件夹,再在其文件夹下创建images文件夹,后面将需要的...Kotlin的Collection与Sequence操作异同点介绍
在Android开发中,集合是我们必备的容器,Kotlin的标准库中提供了很多处理集合的方法,而且还...实现一个Kotlin函数类型方法
接口与函数类型 业务开发中,经常会有实现一个函数式接口(即接口只有一个方法需要实现)...Android10 App启动Activity源码分析
ActivityThread的main方法 让我们把目光聚焦到ActivityThread的main方法上。 ActivityThread的源码路径为...Android10客户端事务管理ClientLifecycleManager源码解析
在Android 10 App启动分析之Activity启动篇(二)一文中,简单地介绍了Activity的生命周期管理器是...Kotlin对象的懒加载方式by lazy与lateinit异同介绍
属性或对象的延时加载是我们相当常用的,一般我们都是使用 lateinit 和 by lazy 来实现。 他们两...Android类加载流程分析
本文分析的代码基于Android8.1.0源码。 流程分析 从loadClass开始,我们来看下Android中类加载的流...Android实现读写USB串口数据的代码
最近在研究USB方面的内容;先后做了关于Android读写HID、串口设备的DEMO。本文比较简单,主要介...Epoxy - 在RecyclerView中构建复杂界面
Diffing 对于复杂数据结构支持的多个视图类型展示在屏幕上, Epoxy此时是尤其有用的. 在这些场景...Android性能优化的详细介绍
性能优化是一个app很重要的一部分,一个性能优良的app从被下载到启动到使用都能给用户到来...Android进阶宝典-插件化2(Hook启动插件中四大组件)
在上一节,我们主要介绍了如果通过反射来加载插件中的类,调用类中的方法;既然插件是一...Android实现简易的闹钟功能的代码
实现效果如下: 主界面为一个简易的设置闹钟Button,点击设置闹钟弹出时间设置窗。设置成功...Android自定义View实现时钟功能
实现效果 View分析 时钟主要分为五个部分: 1、中心点: 圆心位置 2、圆盘: 以中心点为圆心,dra...Android简单实现天气预报App的教程
一、UI设计 首页UI 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 3...