目录前沿效果图相关知识点1. Flutter Packages2. Package类别3. 原生插件开发步骤HmsScan插件的实现1. 定义 package API:2. Android代码实现:3. ios部分的实现4. 需要注意的点总结前沿从事Flutter开发以来,一直都是使用已有的插件,没有自己开发过。最近同事推荐让我使用华为的扫码SDK(hms_ ......
182
0
0
2023-06-24
目录前沿演示效果对角棋规则实现思路具体实现1. 绘制棋盘2. 绘制棋子3. 手势处理4. 游戏规则优化总结前沿关于对角棋相信大家都不陌生,其凭借着规则简单又灵活多变成为我们童年不可缺少的益智游戏。今天我将用Flutter来实现一个对角棋游戏,即巩固自己Flutter的绘制和手势知识,也希望这篇文章对大家有所帮助。演示效果老规矩,我们先演示下实现的最终效果:对 ......
272
0
0
2023-06-24
目录正文TrafficStats简介实现获取网速实时网速正文最近接到个需求,需要计算WebView加载网页时的网速。查询了一下,Android没有提供直接获取网速的Api,但是提供了获取流量的类TrafficStats。本文介绍如何使用Trafficstats来实现获取网速功能。TrafficStats简介TrafficStats提供了一些获取设备从本次开机 ......
217
0
0
2023-06-24
目录前言1、测量与图片的绘制2、事件的交互与计算3. 回调处理与自定义属性抽取后记前言在前面的学习中,我们基本了解了一些 Canvas 的绘制,那么这一章我们一起复习一下图片的绘制几种方式,和事件的简单交互方式。我们从易到难,作为基础的进阶控件,我们从最简单的交互开始,那就自定义一个星星评分的控件吧。一个 App 必不可少的评论系统打分的控件,可以展示评分, ......
153
0
0
2023-06-24
目录前言1、绘制静态的图形2、让两边的限制圆动起来3、动态滑动并计算当前的区间值4、计算当前值与回调处理5、实时文本显示与后续的扩展后记前言之前我们的复习中,我们已经对原生 Canvas 的绘制有了详细的了解,我们对事件的处理也有了简单的了解,这一期我们就对绘制与事件的处理做更进一步的实现。如图,我们需要做这么一个区间的选择控件,此控件也是我们常用的控件,在 ......
143
0
0
2023-06-24
目录简介项目结构代码前端后端简介我们在前面的Android教程中已经提到过这么一件事:Android在启动后会有一个主线程。它不允许任何子线程去改变主UI线程里的内容。这么做是为了妨止,万一有一个带有大事务的线程导致了渲染组件时间过长最终导致Android UI出现“闪退”、“崩溃”的保护机制。而实际我们在Android操作里的确是会有一些“耗时”的事情而采 ......
169
0
0
2023-06-23
目录1.什么是MVP?2.Google官方的MVP3.V1.1 My MVP V14.V1.2 My MVP V21.什么是MVP?Google在2016年推出了官方的Android MVP架构Demo,本文主要分析一下官方的MVP Demo,并且借由自己的一些经验,提出一些学习过程中,遇到的问题和自己的改进、封装措施。MVP架构已经推出很多年了,现在已经非 ......
130
0
0
2023-06-23
目录同步与异步Android中的多线程Android中的多线程与主线程与子线程Handler异步通信系统使用新线程计算质数同步与异步同步的执行任务:在执行程序时,如果没有收到执行结果,就一直等,不继续往下执行,直到收到执行结果,才接着往下执行。异步的执行任务:在执行程序时,如果遇到需要等待的任务,就另外开辟一个子线程去执行它,自己继续往下执行其他程序。子线程 ......
173
0
0
2023-06-23
目录Intentandroid中Intent和Bundle之间的关系IntentIntent是Android程序中个组件之间进行交互的一种重要方式,它不仅可以指明当前组件想要执行的动作,可以指定你想要启动的活动,也可以在不同组件之间传递数据。第一部分:通过intent来启动一个活动Intent 分为显示和隐式我们先来了解一下显示其中一个常用的构造方法是:In ......
238
0
0
2023-06-23
目录自定义注解使用自定义注解通过反射机制获取注解参数1. 布局文件获取2. 控件获取实现3. 控件点击响应自定义注解1) 先定义布局文件注入//注解的作用域在类上 @Target(ElementType.TYPE) //让保持性策略为运行时态,将注解编码到class文件中,让虚拟机读取 @Retention(RetentionPolicy.RUNTIM ......
159
0
0
2023-06-23
目录线程间通信的作用线程通信的方式调用Handler类调用Activity类的runOnUiThread方法调用View类中的post方法通过新建一个继承AsyncTask父类的子类来实现使用EventBus等工具总结当我们的软件启动的时候,计算机会分配进程给到我们运行的程序,在进程中包含多个线程用于提高软件运行速度。在android网络请求中,我们知道在日 ......
206
0
0
2023-06-23
目录1.onSaveInstanceState()方法2.ViewModel1.onSaveInstanceState()方法当一个Activity进入了停止状态,是有可能被系统回收的。想象以下场景:应用中有一个ActivityA,用户在ActivityA的基础上启动了ActivityB,ActivityA就进入了停止状态,这个时候由于系统内存不足,将Act ......
169
0
0
2023-06-23
目录引言依赖项创建导航图导航宿主导航到目的地传递参数NavigationUI多模块导航引言导航是指支持用户导航、进入和退出应用中不同内容片段的交互。Android Jetpack 的导航组件可实现导航,无论是简单的按钮点击,还是应用栏和抽屉式导航栏等更为复杂的模式,该组件均可应对。依赖项 def nav_version = "2.5.2" i ......
151
0
0
2023-06-23
目录一、select是什么二、select和Channel一、select是什么select——>用于选择更快的结果。基于场景理解比如客户端要查询一个商品的详情。两个服务:缓存服务,速度快但信息可能是旧的;网络服务,速度慢但信息一定是最新的。如何实现上述逻辑: runBlocking { suspend fun getCacheInfo(pr ......
170
0
0
2023-06-23
目录一、cancel()无效1.cancel()不被响应2.结构被破坏3.未正确处理 CancellationException二、try-catch不起作用三、SupervisorJob四、CoroutineExceptionHandler一、cancel()无效当协程任务被取消的时候,它的内部是会产生一个 CancellationException 的。 ......
190
0
0
2023-06-23