自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(218)
  • 资源 (9)
  • 收藏
  • 关注

原创 玩转Kotlin--彻底弄懂Lambda和高阶函数

3语法3规定Lambda表达式语法: 1 lambda 表达式总是被大括号括着; 2 其参数(如果有的话)在 -> 之前声明(参数类型可以省略); 3 函数体(如果存在的话)在 -> 后面在 Kotlin 中有一个约定,如果函数的最后一个参数是一个函数,并且你传递一个 lambda 表达式作为相应的参数,你可以在圆括号之外指定它if the last parameter of a

2017-10-16 22:48:54 16893 4

原创 GreenDao保存List<String>类型数据

**在上一章中介绍了如何简单使用GreenDao,并创建了User类来保存一些简单的数据。 但是假如在User中有一种List类型的数据也需要保存到数据库中,该如何处理呢??**答案很简单,可以转换一下思路,遍历List数据,然后将所有的String对象都append到一个StringBuilder中,然后保存在数据库中即可。 事实上,GreenDao已经为我们考虑到了这种情况,因此才有了 Pr

2017-06-21 11:12:17 11648

原创 自定义ViewGroup实现多个单页面上下滑动效果

阅读过自定义ViewGroup实现仿淘宝的商品详情页的童鞋,应该都了解了ViewGroup中onMeasure、onLayout、onTouchEvent等相关方法的使用。在介绍仿淘宝商品详情页时,我们提到过现在网上很多实现方法是使用ScrollView嵌套两个ScrollView。而我也提到过这样实现的缺陷,很难进行扩展。而使用自定义ViewGroup的话就可以根据自己的需要扩展功能了。今天我们介

2016-12-30 16:33:59 1883 6

原创 You need to use a Theme.AppCompat theme (or descendant) with this activity解决方法

当我的MainActivity继承自v7包中的ActionBarActivity或者AppCompatActivity时,如果在style.xml文件中指定MainActivity所使用的样式如下: @color/colorPrimary @color/colorPrimaryDark

2016-03-25 23:40:53 28963 5

原创 Android在ScrollView中嵌套ViewPager以及ListView的可能出现的问题以及解决方案

我们在实际开发一个款Android App时,经常会遇到如下图所示的需求:从上面gif图片可以看出,在一个页面的最上方有一个首页轮播的效果,在首页轮播的下方又会有一个ListView或者是GridView来显示我们的网络请求数据。对于上述需求,我们很容易想到先使用ViewPager的来实现首页轮播的效果,然后在下方添加一个ListView或者GridView并将数据通过自定

2016-03-17 18:14:58 9462 3

原创 自定义ViewGroup实现仿淘宝的商品详情页

最近公司在新版本上有一个需要, 要在首页添加一个滑动效果, 具体就是仿照X宝的商品详情页, 拉到页面底部时有一个粘滞效果, 如下图 X东的商品详情页,如果用户继续向上拉的话就进入商品图文描述界面:刚开始想拿来主义,直接从网上找个现成的demo来用, 但是网上无一例外的答案都特别统一: 几乎全部是ScrollView中再套两个ScrollView,或者是一个LinearLay

2015-07-23 14:28:45 32989 38

原创 搭建 Agentic RAG 实现本地知识搜索

除了集成网络 API 之,很多公司都会通过数据收集、积累等方式搭建自有数据知识库。可以看出搜索 “公办小学划片” 结果颗粒度太粗,没有精准匹配。可以看出,在TextLoader加载之后,会生成一个Document的数组类型。先将 school_info.txt 加载到内存中,需要使用 TextLoader。这篇文章就来介绍,如何基于公司内部私有知识,实现 Agentic RAG 查询。可以看出,经过切片后 docs 被分为2段 Document 结果。方法创建一个向量库实例,并传入之前创建的。

2025-07-27 19:15:47 293

原创 从搭建第一个 Agent 开始

接下来的一段时间,我将通过《LLM 应用开发专栏》这一系列文章,跟大家分享 AI Agent 开发的实战经验。并带读者一步步掌握AI应用的开发精髓,全方位提升Agent开发与调优能力,并塑造个人AI能力栈。第一篇: 调用 Qwen 平台API,通过Autogen搭建Agent,并最终在Agent中集成 Google Serper API 实现网络实时搜索能力。除了火爆程度之外,还有一点也很相似,就是入门门槛相对较低。文章系列的前几篇文章会通过实现一个简易AI产品,来快速梳理AI产品的技术栈与实践。

2025-07-06 22:43:19 294

原创 小试牛刀调整Prompt,优化Token消耗

在上一篇文章荒腔走板Mac电脑本地部署 LLM中介绍过本地部署大模型之后,可以通过定制 prompt 来实现 domain 提取等各种各样的需求。但是实际上,部署本地大模型这种方式对于个人开发者来说实在是不太友好。一方面需要投入大量资金确保设备的算力足够支撑LLM的训练和推理;另一方面本地部署的大模型的量级都不会太大,所以效果也不会太理想。对于个人开发者来说,想开发一个 AI 应用,最快的...

2025-01-22 23:39:34 1454

原创 荒腔走板Mac电脑本地部署 LLM

最近在自己电脑上尝试着部署了下大模型,仅用此篇流水账记录一下。环境准备电脑是 16寸 Mac M2 Pro,运行时内存是 16 GB。Mac 并没有独立显存,GPU 显存是和系统内存共享。 模型选择的是ChatGLM-6B ,它基本可以说是 10B 以下级别模型中性能最强之一。并且 ChatGLM-6B 有一个强点,就是在中英文切换对话方面表现突出。语言选择 Python,使用的是 3....

2025-01-06 22:28:18 1346

原创 Android APP 集成本地大模型 LLM

这篇文章介绍如何在Android项目中集成大模型LLM,并展示大模型 text-to-text 结果。主要依赖如下2项:MediaPipeGemma 2BMediaPipeGoogle 在2017年发布了 TensorFlow Lite, 它是一个用于在Mobile和IoT上进行 ML 推断的轻量级框架。主要用于将 TensorFlow 模型转换为适用于移动设备(Android、IOS)的轻量级模...

2024-12-24 22:20:05 1202

原创 运行 70B的LLM,需要多大GPU显存 ?

正如文章标题所言,你是否也曾好奇过:加载使用一个 70B 大小的 LLM,究竟需要多大的 GPU 显存呢?读完这篇文章应该会有答案。为什么是GPU,而不是CPUAI 本质上是大量的矩阵与向量运算 ,属于计算密集型运算,需要大量的内存空间来保存模型的训练参数。一般通用 CPU 运算单元都是标量,而 GPU 是一个把SIMD(单指令多数据)和SIMT(单指令多线程)运用到极致的协处理器,在体...

2024-12-14 11:02:26 2807

原创 调用通义千问大模型Function Calling实现实时天气查询

OpenAI 在它的多个版本的模型里提供了一个非常有用的功能叫 Function Calling,就是你传递一些方法的信息给到大模型,大模型根据用户的提问选择合适的方法Function,然后输出给你,你再来决定是否执行。之所以需要Function Calling,通俗来讲就是大模型不具备实时性。因为模型是基于之前的数据训练出来的。而 Function Calling 具备实时性的优势,比如调用第三...

2024-11-04 23:50:26 1297

原创 使用LangChain的Memory支持Kimi上下文聊天

在 使用LangChain创建简易聊天机器人 这篇文章中介绍了 LangChain 的简单使用,其中重点介绍了 LangChain 中 Models和Prompts 这 2 个模块的功能。这篇文章来看下 LangChain 中的 Memory 模块的作用。没有 Memory 的日子Kimi LLM 大模型上篇文章使用的是本地的大模型 Mistral,这篇文章换一种收费的模型试一下。目前国内最火的大...

2024-05-22 22:39:58 2241 2

原创 使用LangChain创建简易聊天机器人

LangChain 是什么就是一个框架或者说是一个工具,用来写 AI 应用。对,没有错!AI小白也可以,有手就行!LangChain有几个核心模块:Models、Prompts、Chains、Indexes、Memory、Agents。这篇主要介绍Models、Prompts这2个最基本的模块。配置环境开发之前需要先配置好开发环境变量,我使用Python语言,然后安装LangChain即可。这2项...

2024-05-14 23:51:10 938

原创 每每聊到线程Thread

进程和线程进程所谓计算机程序 Program,其实就是通过执行一系列指令来完成某一个任务。当你启动一个程序时,操作系统(OS)会将其加载到内存中,并在内存中申请一块固定地址的命名空间(address space),并在此命名空间内执行相关指令。聪明人应该已经听出来了,这不就是"进程 Process" 嘛。没有错,某种程度上我们确实可以将进程理解为一个程序的。线程线程就是在进程内部,一系列可执行的独...

2023-06-01 22:24:08 1235

原创 Vsync 来龙去脉

假如没有Vsync之前在Android 上屏流水账和不同视角下的Android上屏 中已经介绍过View的绘制会经过Measure、Layout、Draw这3个阶段,而这3个阶段的工作都是由CPU来负责包完成。另外CPU还会负责一些用户输入、View动画等事件,这部分工作都是在UI线程中完成。当CPU绘制完成之后,会在RederThread线程中将这部分数据提交给G...

2022-05-26 23:17:22 2195

原创 不同视角下的Android上屏

在电影《金刚川》中,导演使用了一种特殊的拍摄手法---对同一时间维度上的事情进行不同视角的重复播放。虽然有拼凑时长的嫌疑,但实际上,这一手法在艺术体系中有名有据,叫做「复调叙事」。看似是重复,实则是力度更深的铭记,希望观众们不要忘记惨烈的过去。在Android 上屏流水账这篇文章中介绍了Android View显示到屏幕上所经历的流程。这篇文章通过「复调叙事」这一手法...

2022-05-21 13:38:37 566

原创 Android使用SSL自签名证书

一般情况下公司都是通过CA机构来购买SSL证书,但是这种证书费用普遍比较贵,所以在debug环境下可以考虑使用自签名证书。这篇内容将介绍Android如何使用自签名证书,主要分为以下4个步...

2021-11-08 21:35:10 6010

原创 做个人吧,写点Testable代码,好吗!

标题所说的Testable实际上指的是Unit Testable,也就是可单元测试,或者是易书写单元测试的代码。注:不知道单元测试(Unit Test)是什么的,请自行Google需求解析...

2021-10-10 23:40:41 608

原创 Thread疾风传·螺旋丸还是须佐能乎

在上一篇的路漫漫其修远兮,吾将上下而求“锁”中,我向大侠请教了几个线程相关的题目。可是很遗憾,始终没有寻得自己想要的结果。有不少小伙伴在看了文章之后,也对文中提到的问题表现出了一定的兴...

2021-03-20 22:28:30 376

原创 路漫漫其修远兮,吾将上下而求“锁”​

日前面试一精神小伙,观其神态从容、举止自信。料其必学富五车,才高八斗。问其乐观锁、悲观锁、可重入锁、乃至读写锁,无不妙语连珠、出口成章。心生疑惑,欲以考题难之。一则辨其真伪,明足以察秋毫之...

2021-03-17 23:22:17 310

原创 工作中遇到的疑难问题--"闪退"

最近在实现一个自动化测试功能时,经常碰到"闪退"现象。这里总结下问题结果的整个过程。分析日志起初怀疑只是项目中的某段代码逻辑有问题,导致系统crash。所以只要找出cras...

2021-03-09 22:38:35 586

原创 Java的foreach有啥不同

陈述事实现象foreach循环从JDK 5开始,Java可以使用foreach对数组或者实现了Iterator的集合进行遍历。对上述代码进行反编译,可以得出如下字节码:可以看出,在编译时期...

2021-02-25 23:05:14 234

原创 OkHttp框架中Proxy的那点事儿(一)

在OkHttp框架中,已经集成好了网络请求代理Proxy的功能,我们只需要调用如下API,即可实现使用代理地址访问目标服务器:OkHttpClient.Builder builder =...

2020-12-29 23:50:00 8448 3

原创 OkHttp与HTTP协议

OkHttp,从名字也能感觉到这套框架似乎与http协议有着千丝万缕的关系。事实上也确实如此,OkHttp所做的各种操作都是建立在http协议基础之上的。因此在理解并自己手写OkHttp...

2020-12-10 23:01:30 2661 1

原创 Java中合理使用局部变量替代成员变量、静态变量

故事起因一个Java类中可以存在多种形式的变量,可以是最一般的成员变量、或静态变量、或临时变量。如下图:publicclassVariableDemo{staticin...

2020-10-11 21:50:39 994

原创 一个 int 值,只能表示一个数值吗?

正常情况下一个 int 就是代表一个数值,或者一种状态。但是Google和Oracle的工程师似乎特别喜欢用1个 int 类型来表示多种状态,源码中到处都能看到这种使用方式。线程池Thr...

2020-06-06 18:16:25 1780 1

原创 GreenDao在Android项目中的实践总结

文章目录:1 GreenDao 基本使用2 GreenDao 多表之间的关联3 GreenDao 保存List类型数据4 GreenDao 版本升级基本使用1 引入GreenDao在p...

2020-05-29 20:26:00 481

原创 作为一个32岁工程师,我已不再焦虑。你呢?

故事总得有个开头"嗡~嗡!"手机震动了两声,应该是一条短信通知,顺手拿起手机撇了一眼What ? 眼睛一闭一睁《Android进阶课程》已经更新到第18篇了!人生第326...

2020-05-25 12:03:44 1266 1

原创 阿里3轮面试都问了RecyclerView

阿里面试总共4轮,其中有3轮面试都问到了RecyclerView的问题。面试的点各不相同,有原理、嵌套问题、有缓存实现,但是最终都是殊途同归,所有的问题都汇集在如何对RecyclerV...

2020-05-16 22:01:56 1134

原创 RecyclerView.ItemAnimator实现动画效果

Item动画来源在RecyclerView的源码中,有一个ItemHolderInfo.java。其源码如下:ItemHolderInfo主要是用来表示RecyclerView中item...

2020-05-12 23:49:05 1683

原创 RecyclerView.ItemAnimator源码解析

RecyclerView动画的核心执行类ItemAnimator,当继承一个ItemAnimator时,有如下几个方法需要被实现:通过实现以上几个接口方法就能实现不同的动画效果,以上几个...

2020-05-08 23:05:17 572

原创 Java 线程池实践出真知

线程池是Java工程师实现并发编程的一大利器,能够有效限制系统中执行线程的数量,重复利用已创建线程,减少资源浪费。但是!线程池真正的难点在于实际使用阶段,主要有以下几个痛点:如何合理配置...

2020-05-05 21:48:47 641

原创 漫画Java线程池的工作机制

线程池结构图线程池是一套围绕着核心线程、非核心线程、等待队列的任务调度框架。默认情况,线程池主要结构如下:corePoolSize核心线程数当前线程池中运行的线程数量还没有达到 core...

2020-04-28 01:24:20 377

原创 Java命令行工具之 jstat

jstat 是JDK中提供的一个命令行工具,主要用来打印JVM 性能数据相关的统计数据。主要包含以下几个方面:垃圾回收(GC)方面数据编译(Compilation)相关数据类加载信息(C...

2020-04-24 17:07:26 804

原创 彻底弄懂Lambda和高阶函数

Lambda是什么简单来讲,Lambda是一种函数的表示方式(言外之意也就是说一个Lambda表达式等于一个函数)。更确切的说:Lambda是一个未声明的函数,会以表达式的形式传递。为什...

2020-04-20 23:27:35 1069

原创 不要让你的Java对象"逃逸"了!

经常会有面试官会问一个问题:Java中的对象都是在"堆"中创建吗?然后跟求职者大谈特谈"逃逸分析",说通过"逃逸分析",JVM会将实例对象...

2020-04-19 22:30:31 432

原创 Java虚拟机究竟是如何处理SoftReference的

但凡是写过几行java代码的,都知道java中的引用分为4种:强引用、软引用、弱引用、虚引用。其中广大开发者最热衷的莫过于 软引用 了。因为它能保证在内存足够时,我们创建的对象完好的存活在内存中。同时当内存不足时,则将软引用指向的对象交由GC回收。抛个砖但是Java工程师不能认为SoftReference就是万无一失的保险锁,并且肆无忌惮的使用。被 软引用 对象关联的对象会自动被垃圾回收器...

2020-04-09 18:09:21 573

原创 如何在Flutter中使用GraphQL

什么是GraphQL这篇文章主要是看一下如何在Flutter项目中使用GraphQL,如果不清楚GraphQL是什么,建议先看下官网对其介绍:https://graphql.org/ht...

2019-11-23 23:59:03 1027

Picasso实现下载图片进度提示

http://blog.csdn.net/zxm317122667/article/details/51814095

2016-07-03

Scrollview_ViewPager_ListView

Scrollview中嵌套ViewPager和ListView的问题和解决方案

2016-03-17

自定义ImageView,实现点击之后算出点击的是身体的哪个部位

自定义ImageView,实现点击之后算出点击的是身体的哪个部位

2015-08-13

优化对Private方法进行单元测试Demo

不要对private方法写UnitTest code。这说明调用这个private方法的public接口做了太多它不该做的事情

2018-09-07

自定义VIewGroup实现仿淘宝商品详情页

仿照X宝的商品详情页, 拉到页面底部时有一个粘滞效果,如果用户继续向上拉的话就进入下一页

2015-07-23

MyPopListButton

Android自定义Button结合PopupWindow和ListView实现顺序显示下拉菜单控件 http://blog.csdn.net/zxm317122667/article/details/50929798

2016-03-19

GreenDaoDemo

GreenDao的详细实用案例,包含List<String>类型的保存,已经多表之间的关联

2017-06-21

主题切换应用

http://blog.csdn.net/zxm317122667/article/details/52688882 一步一步教你实现主题切换 注意:需要先运行并安装压缩包中的BlackTheme和WhiteTheme两个应用,最后在运行安装SwitchThemeDemo

2016-09-28

MaterialPullToRefresh

自定义FrameLayout,实现下拉刷新 带水波纹的下拉刷新MaterialPullToRefresh http://blog.csdn.net/zxm317122667/article/details/52094048

2016-08-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除