- 博客(71)
- 资源 (11)
- 收藏
- 关注
原创 Cline+AI自动化编程工具安装跟使用指南
官方定义:MCP是Anthropic推出的开放标准,让AI模型能安全访问外部数据源和工具。人话:你可以让Cline直接操作数据库、发HTTP请求、读写本地文件、控制浏览器——不只是写代码。还可以自定义技能。不在这里说明了。例如,请列出我们本地的桌面的所有的文件, 这个技能是不存在的,但是我们可以自定义一个,写好对应的描述信息以及自己写的py脚本。配置好后,当你说【请列出我们本地的桌面的所有的文件】的时候会执行自己写的脚本。
2026-02-14 09:45:00
1773
原创 协程间数据传递:从Channel到Flow,构建高效的协程通信体系
看到下面的业务场景,阁下改如何面对// 一个下载任务,需要向多个模块实时传递进度// 下载逻辑...// 问题:进度怎么通知给外面?写了个静态List存Callback。我问他:为什么不用协程的Channel或Flow?这两个到底什么区别?什么时候用哪个?这个问题我见过太多次了。今天我们就来彻底搞懂——协程之间到底怎么高效、安全地传递数据。协程间数据传递,本质是并发模型的选择。不懂 Channel,不知道怎么写生产者-消费者;不懂 SharedFlow,不知道怎么做事件总线;
2026-02-14 09:30:00
1108
原创 协程数据互斥实战:从锁到Actor,彻底解决共享状态并发难题
本文深入探讨了协程并发中的互斥问题,提出了6种解决方案。核心观点包括:1)协程挂起点等同于线程切换,即使单线程也会产生并发问题;2)解决方案按场景分为:原子类(简单计数器)、Mutex(推荐,协程专用锁)、Actor(复杂状态机)、乐观锁(分布式);3)性能测试显示Mutex在通用场景表现最佳;4)大厂实践建议采用Mutex+不可变数据的组合模式。文章强调协程并发三原则:优先不可变数据、最小化锁范围、选用协程原生工具。通过系统化的方案对比,为开发者提供了清晰的协程并发处理指南。
2026-02-13 15:02:39
633
原创 重构千行Callback:Android异步回调无损迁移协程Suspend完全指南
维度回调时代协程时代代码结构嵌套7层是常态顺序书写像同步异常处理每个回调单独处理try-catch 全搞定取消支持手动维护取消标记线程切换到处写runOnUiThreadwithContext一行组合并发CountDownLatch太痛苦测试难度异步测试噩梦runTest 同步化最后送大家一句话:回调是描述“怎么做”,挂起函数是描述“做什么”。从Callback到Suspend,不仅是语法的升级,更是编程思维的跃迁。附录:快速检索表你想做什么用什么函数关键代码单次回调,无取消。
2026-02-13 14:26:44
1088
原创 Kotlin CoroutineScope解密
{// 使用SupervisorJob,一个子协程失败不影响其他// 采集加速度传感器数据// 采集陀螺仪数据job.cancelChildren() // 只取消子协程,保留Job活跃// 或者 job.cancel() 完全销毁Scopestop()这里用而不是cancel(),是为了让Scope可以继续复用。关系口诀:Scope 抱着 Context,Context 装着 Job 和 Dispatcher。
2026-02-13 11:33:08
744
原创 Kotlin CoroutineContext 详解
CoroutineContext 是一个以Key为索引、元素不可变、支持组合的“混入集合”(Mixin Collection)。每个协程在创建时都会绑定一个 CoroutineContext,它决定了这个协程在哪儿跑(调度器)、怎么管理生命周期(Job)、叫什么名字出错怎么办Dispatcher真正可以用在项目中的,自定义的调度器是非常重要的,自定义Dispatcher的本质就是决定在哪个线程、什么时候被执行!掌握了这一点,你就可以随心所欲地控制协程的执行行为,
2026-02-12 18:22:13
1016
原创 Kotlin协程启动方式详解
协程(Coroutine)是Kotlin在异步编程领域的革命性解决方案。相比传统的线程和回调,协程通过挂起(suspend)而非阻塞的方式,让我们能够以同步代码的写法实现异步任务的处理。然而,很多初学者在刚接触协程时,往往被各种启动方式搞得晕头转向:、、、...它们之间有什么区别?分别在什么场景下使用?本文将用最通俗的语言、最直观的代码对比,帮你彻底搞懂Kotlin协程的启动方式和使用场景。在开始之前,请确保项目中已经引入协程依赖:2. 协程构建器总览Kotlin协程主要通过以下几种构建器启动:下
2026-02-12 13:32:31
743
原创 Kotlin初入协程
协程是一种轻量级的、用户态管理的线程,它允许函数在执行过程中被挂起,并在稍后恢复执行。跟线程还有很大区别操作系统决定谁在CPU上跑,跑多久。线程可能在任意时刻被强制暂停(抢占),切到另一个线程。你作为厨师,是被动被拉去干活的。线程的创建、销毁、切换都需要操作系统内核参与(内核态)。这涉及到CPU从用户态切换到内核态,开销较大。就像公司要招一个新员工,必须通过人事部走一遍流程。一个线程通常占用几兆的内存,操作系统能创建的线程数量通常在几千个就算很多了。协程自己决定什么时候“让出”(Yield)执行权。
2026-02-12 11:52:21
973
1
转载 好的框架设计的文章
什么是软件架构前言:软体设计师中有一些技术水平较高、经验较为丰富的人,他们需要承担软件系统的架构设计,也就是需要设计系统的元件如何划分、元件之间如何发生相互作用,以及系统中逻辑的、物理的、系统的重要决定的作出。在很多公司中,架构师不是一个专门的和正式的职务。通常在一个开发小组中,最有经验的程序员会负责一些架构方面的工作。在一个部门中,最有经验的项目经理会负责一些架构方面的工作。但是,越来越
2017-07-13 16:49:14
7753
转载 Android添加顶部通知
Android添加顶部通知(Notification)并处于“正在进行中”(onGoing)用过Android版的QQ的都知道,QQ返回的时候在顶部通知里会出现一个企鹅,表明QQ正在运行,可以拉开通知,点击手机QQ出现主界面,继续运行。所以我想让自己的软件也出现这么一个通知,并且可以快速的打开查看。Android应用开发详解 8.3 Notification和Notificat
2015-10-26 18:18:27
3687
转载 那些NB的开源框架
一、GuavaGoogle的基于java1.6的类库集合的扩展项目,包括collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O等等. 这些高质量的API可以使你的JAVA代码更加优雅,更加简洁.功能模
2015-08-31 22:12:29
1779
转载 详解Java中的clone方法 -- 原型模式
转载地址:http://blog.youkuaiyun.com/zhangjg_blog/article/details/18369201Java中对象的创建clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象。所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象。那么在java语言中,有几种方式可以创建对象呢?1
2015-08-26 15:28:00
942
转载 类之间的关系
转载于:http://blog.youkuaiyun.com/zhengzhb/article/details/7187278在java以及其他的面向对象设计模式中,类与类之间主要有6种关系,他们分别是:依赖、关联、聚合、组合、继承、实现。他们的耦合度依次增强。1. 依赖(Dependence) 依赖关系的定义为:对于两个相对独立的对象,当一个对象负
2015-08-25 18:01:04
726
转载 android开源项目和框架
转载于:http://blog.youkuaiyun.com/stephen255/article/details/9121583看到这个是好东西特效:http://www.theultimateandroidlibrary.com/常用效果:1. https://github.com/novoda/ImageLoader 异步加载图片,缓存,生成缩略图, 基本上每个应用
2015-06-02 19:14:25
892
转载 Android系列之网络(二)----HTTP请求头与响应头
文章来源:http://www.cnblogs.com/smyhvae/p/4005034.html国庆佳节,习惯并享受着一个人独霸整个教研室的感觉。在上一篇文章中,我们学习到了如何使用HttpClient发送HTTP请求。博文链接:Android系列之网络(一)----使用HttpClient发送HTTP请求本篇文章中,将学习一下HTTP请求头与响应头的知识。一、HTTP
2015-06-02 10:19:11
2593
转载 Android系列之网络(三)----使用HttpClient发送HTTP请求(分别通过GET和POST方法发送数据)
文章来源:http://www.cnblogs.com/smyhvae/p/4006009.html【正文】在前两篇文章中,我们学习到了和HTTP相关的基础知识。文章链接如下:Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据)Android系列之网络(二)----HTTP请求头与响应头一、GET和POST的对比:在漫
2015-06-02 10:18:56
2382
转载 Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据)
转载地址:http://www.cnblogs.com/smyhvae/p/4004983.html 这个关于http的内容写的比较好一、HTTP协议初探:HTTP(Hypertext Transfer Protocol)中文 “超文本传输协议”,是一种为分布式,合作式,多媒体信息系统服务,面向应用层的协议,是Internet上目前使用最广泛的应用层协议,它基于传输层的TCP
2015-06-02 10:17:07
34620
转载 view/WindowManager.LayoutParams 下
本文参照自:http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html转载于:http://blog.youkuaiyun.com/hudashi/article/details/7061240BRIGHTNESS系列该系列主要用于设置window的brightness(screenBr
2015-04-23 16:34:28
673
转载 windowManager LayoutParams 上
本文参照自:http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html和http://blog.sina.com.cn/s/blog_4b3c1f950100qd9s.html转载于:http://blog.youkuaiyun.com/hudashi/article/details/7060882
2015-04-23 16:31:38
717
转载 Android 适配者模式
转载于:http://blog.youkuaiyun.com/beyond0525/article/details/22814129适配者模式是也是android中应用很广泛的设计模式,如我们常见用 BaseAdpter, ArrayAdapter, CursorAdapter,就是用的适配者模式,看到源码你是不是对这种设计方式很陌生,没事,下面我们通过实际的例子来取理解这种设计模式。一、作用
2015-04-10 15:34:55
872
转载 Android 工厂模式
转载地址:http://blog.youkuaiyun.com/beyond0525/article/details/22806393在android中用到了很多的工厂类,如ThreadFactory创建抽象Runnable 。下面通过简单的例子来学习工厂模式。一、作用工厂模式(Factory Method):定义一个用于创建对象的接口,让子类决定将哪一个类实例化。从而使一个类的实例化延迟到其
2015-04-10 13:55:15
1234
1
转载 Android设计的单例模式
转载地址:http://blog.youkuaiyun.com/beyond0525/article/details/22794221单例模式是设计模式中最常见也最简单的一种设计模式,保证了在程序中只有一个实例存在并且能全局的访问到。比如在android实际APP 开发中用到的 账号信息对象管理, 数据库对象(SQLiteOpenHelper)等都会用到单例模式。下面针对一些例子分析一下我们在开发过程
2015-04-10 11:51:34
857
转载 分享45个android实例源码,很好很强大.收藏吧!!!
分享45个android实例源码,很好很强大http://www.apkbus.com/android-20978-1-1.htmlandriod闹钟源代码http://www.apkbus.com/android-20974-1-1.htmlandroid源码分享之指南针程序http://www.apkbus.com/android-20973-1-1.html
2015-02-12 10:18:34
1252
2
原创 Junit 跟XML解析实例
Junit Test 就是单元测试,要自己编写代码来检测代码的正确性使用Junit Test 在AndroidManifest文件中添加如下申明: <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="
2014-12-09 15:52:31
3334
原创 prefernce的使用具体使用
package com.example.testpreference;import java.util.Iterator;import java.util.Set;import android.annotation.SuppressLint;import android.app.Dialog;import android.content.ComponentName;import a
2014-11-21 18:09:16
1904
原创 Preference的使用(3) --- 子类的使用
EditTextPreference && ListPreference && MultiSelectListPreference 都jic
2014-11-21 14:27:28
5067
原创 Preference的使用(2) --- PreferenceCategory && PreferenceScreen
上一节有讲到Preference的基本使用跟API的
2014-11-21 09:26:59
28691
原创 Preference的使用(1) --- 基础API的介绍
SharedPreference 我想大家使数据持久化的时候都使用过,但是现在jiaong
2014-11-20 11:29:37
20589
1
转载 常用数据结构 List set map
List接口对Collection进行了简单的扩充,它的具体实现类常用的有ArrayList和LinkedList。你可以将任何东西放到一个List容器中,并在需要时从中取出。ArrayList从其命名中可以看出它是一种类似数组的形式进行存储,因此它的随机访问速度极快,而LinkedList的内部实现是链表,它适合于在链表中间需要频繁进行插入和删除操作。在具体应用时可以根据需要自由选择。前面说的I
2014-11-17 14:04:28
8934
原创 探索Fragment(1)----基本使用
Android是在Android 3.0 (API level 11)开始引入Fragment的,Fragment是碎片的意思。 可以把Fragment想成Activity中的模块,这个模块有自己的布局,有自己的生命周期,单独处理自己的输入,在Activity运行的时候可以加载或者移除Fragment模块。可以把Fragment设计成可以在多个Activity中复用的模块。当开
2014-11-13 11:24:13
1492
转载 【科普】为什么WiFi自动信道选到的信道多数在1/6/11
转载于:论坛上不少朋友很困惑,为什么小极的自动信道选择选到的信道只会在1、6、11这三个信道呢?WiFi不是一共有10几个信道吗?其他信道岂不是浪费了?这个问题是个非常典型的问题,问100个人,几乎100个人不知道答案的。为了回答这个问题,我准备不少基础知识,但是,既解释原理,又让它不是那么深涩,是有难度的,所以,如果读不懂的朋友,请多看几遍,欢迎在此话题下
2014-10-31 10:21:59
19316
原创 Activity之间的动画切换
Activity在启动另外一个Activity时之间是可以加入效果的:使用代码: Intent intent = new Intent(MainActivity.this , Activity02.class); startActivity(intent); overridePendingTransition(R.anim.d
2014-10-13 14:33:55
2000
原创 Android shap的使用
shape 是形状的意思,使用它可以设置自己的shape 它的所有属性都在上面了 从简单的开始看起: 1.solid就是控件填充
2014-10-11 17:52:57
2647
原创 Android TextView加上阴影效果
废话不多说字体阴影需要四个相关参数:1. android:shadowColor:阴影的颜色2. android:shadowDx:水平方向上的偏移量3. android:shadowDy:垂直方向上的偏移量4. android:shadowRadius:阴影的范围
2014-10-11 14:13:52
82682
3
转载 Android 的color.xml
xml version="1.0" encoding="utf-8" ?>resources>color name="white">#FFFFFFcolor>白色 -->color name="ivory">#FFFFF0color>象牙色 -->color name="lightyellow">#FFFFE0color>亮黄色-->color name="yellow">#FFFF00
2014-09-26 10:50:01
678
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅