- 博客(44)
- 收藏
- 关注
原创 Flutter下的一点实践
本文介绍了Flutter状态管理框架Refena在LocalSend项目中的应用。第一部分回顾了Flutter早期版本状态管理的困惑,引出当前项目采用Refena的缘由;第二部分解析Refena的核心代码和工作流程,包含状态初始化、状态变更和触发机制;第三部分详细说明LocalSend中设备扫描功能的实现,包括UDP广播扫描、传统HTTP扫描两种方式,展示了如何通过Refena管理网络设备状态。文章通过代码示例展示了Refena在真实项目中的状态管理实践。
2025-05-29 16:35:38
1144
1
原创 由application绑定失败引起的ANR
在开发过程中,项目要求进行应用的进程判断,如果应用运行在系统进程,需要退出进程(即只允许应用运行在用户进程上)。
2025-02-17 15:04:08
1196
原创 Web Service
其次也是更重要的是 .NET平台不仅延续了微软一贯的编程风格,而且还增加了许多支持Web 服务的关键性技术,使得.NET在操作的简单性和执行的稳定性,高效性上达到了一个非常好的结合。而EJB可以看做是分布式编程平台,通过容器和组件,简化了程序开发、调试和部署等它关注的是分布式组件开发,粒度小,而且EJB只属于J2EE规范的一部分。但是,通常认为Web Service是一种面向服务(SOA)的体系结构,它允许创建服务的抽象定义、提供服务的具体实现、发布和查找服务、选择服务实例以及互操作服务的使用。
2024-10-22 17:19:17
1521
原创 云计算的一些基本概念
云计算是通过互联网交付计算资源。它提供了成本节约、可扩展性、高性能、规模经济等。对于许多公司而言,云迁移与数据和 IT 现代化直接相关。云计算是指通过互联网(云)交付计算资源,包括存储、处理能力、数据库、网络、分析、人工智能和软件应用。通过外包这些资源,公司可以在需要时访问所需的计算资产,而无需购买和维护物理的本地 IT 基础架构。这提供了灵活的资源、更快的创新和规模经济。对于许多公司而言,云迁移与数据和 IT 现代化直接相关。容器是轻量级软件包,包含执行包含的软件应用所需的所有依赖关系。
2024-10-22 14:44:52
1747
原创 微服务的一些基本概念
在当今世界,应用现代化通常意味着迁移到以微服务形式构建的云原生应用。然后使用 Docker 和 Kubernetes 等容器技术进行部署。究其原因,微服务架构可以提高可扩展性、加快开发速度和服务迭代。微服务架构将应用拆分为一系列可独立部署的服务,并通过 API 进行通信。这样,每个服务都可单独部署和扩展。这种方法允许快速、频繁地交付庞大且复杂的应用。与单体式应用不同,微服务架构允许团队更快地实施新功能并进行更改,并且大部分现有代码均无需重写。
2024-10-21 17:44:05
865
原创 Java EE规范
Java EE的全称是Java Platform, Enterprise Edition。早期Java EE也被称为J2EE,即Java 2 Platform Enterprise Edition的缩写。从J2EE1.5以后,就改名成为Java EE。一般来说,企业级应用具备这些特征:1、数据量特别大;2、用户特别多;3、性能要求高;4、安全性要求高;5、生命周期长。企业级应用就要考虑数据存储和查询的问题、系统訪问快慢即性能问题、怎样使用事务保证安全的问题、怎样使系统可扩展易维护的问题。
2024-10-16 16:14:30
1291
原创 Android下MVP和MVVM模式的实践
转载注明出处:https://blog.csdn.net/skysukai1、前言MVP和MVVM诞生已经好些年头了,记得刚毕业才参加工作的时候,第一次见到了有上万行的Activity,这种巨无霸的Activity维护起来简直就是噩梦。这时候,就需要进行代码重构了。MVP和MVVM两种框架,将逻辑层、显示层、数据层分层处理,逻辑清楚。2、MVP2.1 MVP模式有关MVP的介绍网上有很多...
2024-09-23 17:55:54
1151
1
原创 ARouter报错:ARouter::There is no route match the path [ ],in group [cloud_music][ ]
项目中引用了ARouter,在多module之间实现跳转。在从Activity A跳转到Activity B时,跳转未能成功。
2024-09-19 19:16:11
1028
1
原创 我的3次软考高项通关之旅
高项的考试越来越难了,从2024年开始,高项变成了每年只能考一次,而且,各大机构押中论文的几率越来越低了。2023年上半年、下半年我的老师都是押中了论文题目的。而今年的论文,看了一圈基本没有押中的。对于我们已经参加工作的人员来说,报班学习能极大的提高复习效率。比如,2023年上半年高项教材改版、2023年下半年采用机考,老师都是反复强调过的。祝大家都能通过考试!
2024-06-26 15:11:55
806
原创 LeetCode集
该算法的基本思想是对于任意整数 x,令 x=x & (x−1),每次将该整数的最右边的一个1置为0,直到该整数变为0为止。每次将1置为0的操作都会使得该整数的二进制表示中的1的个数减少1。希尔排序的基本思想是将数组分成若干个小组,对小组内的数字进行排序得到一个基本有序的若干个小组,然后将这些基本有序的若干个小组合并成较大的小组,对较大的小组组内排序。将待排序的序列构造成大顶堆,此时,序列的根结点就是序列的最大值。如此反复,得到最终的有序序列。采用分治的思想,比基准小的放在左边,比基准大的放在右边。
2023-08-16 15:35:45
283
原创 记一次X86到arm的代码迁移实践
1、背景目前政企的软件,好多都要求进行国产化适配。项目上的代码也需要做国产化适配,主要是从X86_64+CentOS6.7系统移植到arm(鲲鹏)+银河麒麟V10系统。这次移植,踩了很多坑,也缺乏代码移植相关的经验,希望能对正在做移植的开发人员有所帮助。2、开始之前可以先搭建鲲鹏官方的代码迁移工具, 先大致分析一下代码是否有需要改动的地方以及改动的工作量。分析结果可适当参考,我的代码提示没有修改点,后面其实还是改了一些。3、三方库编译开始移植的第一步,是先确认有哪些第三方库,所需的三方库都要先在新
2021-06-18 19:22:48
10724
原创 Android编译报错Error:(246, 5) error: resource android:attr/ttcIndex not found.
这里写自定义目录标题1、场景2、解决1、场景升级了support-v4,修改如下:implementation "com.android.support:support-v4:22.+"升级为:implementation "com.android.support:support-v4:28.0.0"之后编译,报错:error: resource android:attr/ttcIndex not found.2、解决网上有很多都说是因为version 28 的android supp
2020-12-02 17:29:22
2071
原创 对apk直接签名
1、需求客户常常会将未签名发布的apk进行加固后再让我们开发进行签名。提笔记录一下签名方法,以免到时候又手忙脚乱搜索签名方法。2、直接使用命令行签名一般来说,每个公司都有自己的签名文件,直接使用现成的.keystore文件签名即可。2.1 使用jarsigner进行签名使用jarsigner进行签名也称v1签名,通常用于sdk25以下。给出命令:jarsigner -verbose -keystore [keystore文件绝对路径] -signedjar [签名以后的apk文件绝对路径] [要
2020-09-30 15:33:48
288
原创 Android中Canvas操作
1、背景最近的一个项目,需要和图像编辑打交道。而有关图像编辑知识,之前或多或少接触过,始终不成体系。这次项目正好可以系统梳理一次。先放几张UI设计稿,看看要达到的目标:图1显示当前方位、转向角度图2 擦除无效区域图3 绘制线段图4 绘制Icon除此之外,还有诸如图像刷新、缩放、缩放后平移、居中显示等功能。2、具体实现2.1 图像加载、居中显示、刷新及显示当前方位2.1.1...
2019-12-30 17:03:25
714
翻译 Dart高效编程
本文摘抄翻译自Dart官方网站“Effective Dart”部分,选取比较常用的部分翻译出来,供大家参考。原文将Dart高效编程分成了四个部分来给出建议:1、编程风格指南(Style Guide)2、文档指南(Documentation Guide)3、使用指南(Usage Guide)4、设计指南(Desig...
2019-08-09 18:15:10
1700
原创 一种Flutter加载更多的实现方法
本文介绍了一种Flutter加载更多的实现方法。可以统一封装SliverListview、SliverGridView、SliverStaggeredGrid几种控件,并提供了默认的加载动画、emptyview、errorview等。
2019-05-24 17:22:07
4243
原创 Android APP中移除framework.jar包
1、背景在之前的一篇文章里已经分享过了如何使用Android Studio + Gradle编译整机APK[https://blog.csdn.net/skysukai/article/details/86616309], 既然app已经可以脱离整机码源编译了,那是否可以走得更远些,将工程中的framework.jar给移除掉呢?答案是有可能的。为什么会使用framework.jar的API而...
2019-04-30 17:56:45
686
原创 Android在framework中新增AIDL接口
1、背景项目中遇到一个需求,要对Mdmservice进行管控。简化下来大概就是需要监听一个系统属性值,当这个属性值变为false的时候,禁止调用扬声器、听筒。跟踪代码发现这个需求里面的场景,只需要处理MediaRecorder就能达到目标。2、实现根据需求,调用扬声器、听筒之前读取一下系统属性值判断一下即可,有个场景是正在调用扬声器、听筒的过程中属性值发生变化,着重要处理的就是这个场景。2...
2019-04-30 16:43:11
2587
2
原创 由内部类引起的内存泄露
转载注明出处:https://blog.csdn.net/skysukai1、背景前面有一篇博客记录了一次由单列模式引起的内存泄露,参考[https://blog.csdn.net/skysukai/article/details/85709354].在一次例行测试中,又发现了一处内存泄露。提笔记录一下。2、场景复现在文件管理器中,点击一个分类进入,比如:图片。长按图片删除该条目后退出AP...
2019-04-15 19:45:52
665
原创 Android Studio + Gradle编译整机APK
进行Android Rom开发的时候通常会有好多系统预置apk需要进行开发维护。一般来讲,这些apk开发需要依赖系统码源进行编译,而编译一个apk又需要把它push到手机里,费时费力。有没有办法像普通APP开发一样,做到即时运行呢?这就是本篇文章要解决的问题。1、需要解决的问题要使用Gradle来编译整机apk需要解决的问题有两个:签名、framework的动态链接。2、签名Android...
2019-01-24 16:07:38
1095
原创 由单例模式引起的内存泄漏
1、背景项目中部署了leakcanary,用于检测app的内存泄漏情况,不知道leakcanary的同学可以自行百度。其中一处泄漏让人印象深刻,提笔记录一下。2、场景复现从主界面MainActivity点击进入收藏界面FavoriteFragment,按一次返回键返回主界面MainActivity后再按一次返回键退出app,leakcanary捕捉到内存泄漏。(补充说明:FavoriteFr...
2019-01-04 10:41:54
2159
原创 浅谈Android Contacts数据库phone_lookup表的设计
在Android系统中,联系人数据库是一个比较大的数据库。一次在浏览contact2.db的时候发现,phone_lookup表里的数据特别简单:data_idraw_contact_idnormalized_numbermin_matchdata表_id的外键raw_contact表_id的外键标准化的电话号码标准化电话号码的倒序看完了这个表我的心里一大堆疑...
2018-11-30 14:32:26
1721
原创 java集合类
集合类型主要有3种:set(集)、list(列表)和map(映射)。集合接口分为:Collection和Map,list、set实现了Collection接口。下图可以反应出集合类的继承关系:常用的集合类有:HashMap、HashSet、ArrayList,HashTable由于性能原因在《Thinking in java》一书中已经不推荐使用了。1、HashMap首先来说一下Has...
2018-11-26 19:59:07
170
原创 Android编译报错java.lang.UnsatisfiedLinkError: no conscrypt_openjdk_jni in java.library.path
不久前遇到一个问题,编译framework的时候出现了如下异常:Exception in thread "main" java.lang.UnsatisfiedLinkError: no conscrypt_openjdk_jni in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867) ...
2018-11-20 17:44:04
5409
原创 Java关键字Volatile
代码中经常看见这个关键字Volatile,这个关键字到底是什么意思每次都是似是非懂。在介绍这个关键字之前,先介绍有关线程的几个重要概念。1、基本概念首先说一下原子性、可见性、有序性。1、原子性原子最先在物理上表示粒子的最小不可分割单元 ,原子性在java内存模型中是指一个操作是不可中断的,最小不可分割单元。即在多个线程一起执行的时候,一个操作一旦开始,就不会被其它线程干扰。由java内存...
2018-11-14 20:27:20
189
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人