- 博客(70)
- 资源 (2)
- 收藏
- 关注
原创 鸿蒙开发笔记--TaskDispatcher
1.TaskDispatcher是HarmonyOS中的多线程管理框架,通过适用它可以快速实现多任务耗时操作,而无需自己创建线程。2.EventHandler是HarmonyOS中用于线程间通信的一种机制,类似于Android中的Handler。一个EventHandler只能和一个Eventrunner绑定,而一个EventRunner可以和多个EventHandler进行绑定,且主线程默认有一个EventRunner。
2023-10-27 16:49:13
662
原创 多进程操作数据库异常问题
ContentProvider的applyBatch方法并不能保证原子性,可以重写applyBatch方法加上事务逻辑来保证数据库批处理的原子性。
2023-09-22 11:03:23
440
原创 Flutter开发——图片加载与缓存源码解析
Image下面是Image从它的构造方法可以看出Image组件有个必传参数image,它是ImageProvider类型。ImageProvider是个抽象类,定义了图片数据获取和加载的相关接口。
2023-06-23 16:15:36
2092
原创 Flutter开发——动画【总结篇】
可以将AnimatedWidget理解为Animation的助手,使用它可以简化对动画的使用,在不使用AnimatedWidget的情况下需要手动调用动画的addListener()并在回调中添加setState才能看到动画的效果,AnimatedWidget简化了这一操作。Flutter中Animation对象是一个在一段时间内依次生成一个区间之间值的类输出的值可以是线性的、曲线的或者一个任意函数。对象,在屏幕刷新的每一帧,就会生成一个新的值。在给定的时间段会线性的生成0.0到1.0的数字。
2023-06-10 19:33:05
1503
原创 Flutter架构——线程模型
Platform Task Runner 是 Flutter引擎的主Task Runner,因为平台的API只能在主线程中被调用,所以它对应Android上的主线程。在Flutter开发中,当UI Task Runner和GPU Task Runner都出现过载时,就需要使用IO Task Runner执行一些预处理的读取操作,再上报给GPU Task Runner。GPU Task Runner运行的线程对应平台的子线程,并且和UI Task Runner运行在不同的线程上。
2023-05-31 15:03:17
1213
原创 Flutter异步编程isolate
对于一些需要多次返回的场景,比如我们socket长链接与后台通信,这时候如果使用compute函数就不能满足需求了,所以对于这类场景只能使用isolate来实现。
2023-05-30 10:56:18
467
原创 Flutter报错:type ‘_Map<String, dynamic>‘ is not a subtype of type ‘Map<String, String>‘ in type cast
需要将Map<String,dynamic>转化成Map<String,String>, 使用as强转编译不会报错,但是运行会抛异常。使用Map<String, String>.from解决了问题
2023-05-22 09:32:59
3635
原创 编译报错:Using insecure protocols with repositories
解决方法是将Maven仓库中的URL改为使用HTTPS协议,或者允许使用不安全的协议(如HTTP)。具体的修改方式取决于你使用的Maven配置文件和构建工具。一般来说,可以查找并编辑Maven的settings.xml文件,并将相应的仓库URL改为使用HTTPS协议。如果你无法使用HTTPS协议,并希望继续使用HTTP协议,则需要添加一个选项来允许使用不安全的协议。例如,在settings.xml文件中,你可以将某个仓库的mirror元素中的protocol属性设置为"http"或"https,allowI
2023-05-09 11:11:34
453
原创 Flutter学习笔记 -- 路由管理
Flutter的路由是用于管理一组居右某种进出规制的界面组件,以便实现各个界面之间有规律的跳转,而遵循这一规制并存放路由信息的事物称为路由栈。熟悉Android开发的都知道Intent,Android中的界面跳转可以通过Intent来实现,在项目中我们通过Intent可以轻松实现自己路由管理。而在Flutter中,这个路由就是Navigator,跳转到某个界面可以用、返回上一个界面可以用。
2023-04-22 16:54:26
767
原创 开发笔记--上传aar包到maven仓库
gradle脚本代码:需要配置gradle环境变量,不然会找不到gradle指令Mac系统 command+shift+. 可以显示隐藏文件夹
2023-04-03 15:29:41
258
原创 Flutter学习笔记 --异步编程Future、async和await
Flutter学习笔记 --异步编程Future、async和await
2022-08-11 23:35:37
762
转载 Android绘图技巧(Primary:Canvas & Layer, 附demo-仪表盘、圆形头像、裁剪动画绘制)
https://www.jianshu.com/p/ba6b74c5c307
2020-08-19 11:53:13
253
原创 Android Fragment复用
Android Fragment复用概述为什么要复用Fragment为何避免使用 FM.getFragmentsFragmentManager.findFragmentById 的使用FragmentManager.findFragmentByTag 的使用ViewPager 复用之 FragmentManager.getFragment 的使用一、 为什么要复用Fragment根本原因只有一个:Activity 在重建的时候会恢复其包含的 FragmentManager ,Fragme
2020-07-15 16:26:04
1543
原创 ORMLite的集成和使用
Android中最常用的数据库框架有ORMLite和GreenDao,ORMLite相比GreenDao来说更加轻量,并且学习成本也较低。由于ORMLite是基于反射机制工作的,所以相比GreenDao来说效率较低。在module的build.gradle中添加依赖: compile 'com.j256.ormlite:ormlite-android:5.0' compile '...
2019-04-09 12:01:54
313
原创 GreenDao集成与使用
GreenDao是一款开源的轻便快捷的数据库框架,无需编写复杂的SQL语句,在性能方面,GreenDao针对 Android 进行了高度优化, 最小的内存开销 、依赖体积小 同时还是支持数据库加密。一、GreenDao集成首先在项目的build.gradle中添加:dependencies { classpath 'org.greenrobot:greendao...
2019-04-08 17:40:35
314
原创 Android IPC机制—Binder的工作机制
Binder是一种进程间通信机制Binder架构Binder通信机制采用C/S架构Binder框架中主要涉及到4个角色Client、Server、Service Manager及Binder驱动,其中Client、Server、Service Manager运行在用户空间,Binder驱动运行在内核空间Client代表客户端进程,Server代表客户端进程提供各种服务...
2019-04-07 21:45:13
642
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人