自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小一的专栏

坚持、努力、谦逊

  • 博客(628)
  • 资源 (8)
  • 收藏
  • 关注

原创 一文读懂单腿期权:最纯粹、也最危险的衍生品入门

所谓“单腿期权(Single-leg Option)”,就是只持有一个期权合约(Call 或 Put),不与其他期权组合成交的最基础形态。类型中文含义盈利条件Call认购期权看涨标的价格 > 行权价Put认沽期权看跌标的价格 < 行权价单腿期权的魅力在于它“简单而纯粹”,它让我们第一次用极小的资金参与极大的波动,但也让我们第一次感受到:市场不是非黑即白,而是“时间 × 波动 × 方向”的三维棋局。本文仅作学习与记录用途,不构成投资建议。期权交易风险极高,请量力而行。

2025-10-31 18:06:11 265

原创 鸿蒙开发语言 ArkTS:给 Android 工程师的快速上手指南

ArkTS是鸿蒙系统的主力开发语言,基于TypeScript但强化静态类型。本文为Android/Kotlin开发者提供快速上手指南:对比ArkTS与Kotlin在变量类型、函数、类继承等核心语法差异,重点解析联合类型、空值安全等特性。通过Kotlin对照示例,帮助开发者理解ArkTS的静态类型体系、模块化设计及异步编程模型,实现从Android到鸿蒙生态的平滑过渡。

2025-10-23 11:52:21 338

原创 KuiklyUI 科普:UI 如何映射到 Android View 并完成渲染

KuiklyUI 采用声明式 DSL 设计,通过组件映射机制将 UI 元素转换为 Android 原生视图。核心流程包括: 组件映射:Text→KRRichTextView、Image→KRImageView等,通过注册机制建立对应关系 属性处理:样式属性在渲染层转换为原生View参数 事件绑定:手势事件通过适配层桥接到DSL回调 渲染管线:DSL→VNode→Android View树,由KuiklyRenderActivity和Delegator管理生命周期 系统通过模块注册机制(如图片适配器、字体适配

2025-10-20 16:22:51 694

原创 从基金入门到长期主义:我如何建立自己的投资认知体系

基金入门,从0到1

2025-10-14 14:56:46 777

原创 CocoaPods 是什么?为什么 M1/M2 Mac 总报错?一文搞懂安装原理与最佳实践

CocoaPods是iOS平台的依赖管理工具,用于管理第三方库和配置Xcode工程。M1/M2芯片的Mac常见报错是由于系统Ruby权限受限导致的。推荐通过Homebrew安装用户级Ruby,再安装CocoaPods,避免权限问题。关键步骤包括:配置Ruby环境变量、使用国内镜像源加速、验证安装路径。本文还提供了常见问题解决方案和自动化安装脚本,帮助开发者快速搭建稳定的iOS开发环境。

2025-10-13 21:33:34 455

原创 Kuikly 小白拆解系列 · 第1篇|两棵树直调(Kotlin 构建与原生承载)

Kuikly跨平台渲染框架采用"原生渲染(NA)"模式,通过Kotlin DSL统一构建UI树,直接映射到各平台原生组件。文章以"Hello Kuikly"示例展示了三端(Android/iOS/鸿蒙)的最小实现:Kotlin层定义通用页面结构,通过attr块声明组件属性;平台侧通过桥接将属性映射到原生控件,实现跨端一致渲染。重点解析了Kuikly的两棵树直调机制——跨平台层处理复杂逻辑,平台层专注绘制与属性映射,相比自绘方案具有更好的性能与原生兼容性。最后对比了原生

2025-10-13 15:48:54 1146

原创 LRU缓存科普与实现(Kotlin 与 Swift)

LRU缓存:原理与实现 LRU(Least Recently Used)是一种常用的缓存淘汰策略,核心思想是优先保留最近使用过的数据,淘汰最久未使用的数据。其典型实现采用哈希表+双向链表结构,保证O(1)时间复杂度的get/put操作。 主要特点: 使用哈希表快速定位节点 双向链表维护访问顺序(头节点最近使用,尾节点最久未用) 容量满时自动淘汰尾节点 应用场景包括图片缓存、数据库查询缓存等内存受限场景。Kotlin实现中需注意节点移动、容量检查等边界条件,Swift实现则需关注哈希键约束和可选类型处理。相比

2025-10-09 17:05:04 1020

原创 iPhone美区账号登录指南:轻松下载ChatGPT应用

本指南详细介绍如何创建美区Apple ID下载ChatGPT应用:1)准备设备与邮箱;2)更改iPhone地区为美国;3)通过邮件应用创建美区账号,填写美国地址(推荐免税州);4)仅在App Store登录美区账号;5)搜索并下载ChatGPT官方应用。注意事项包括保护账号安全、使用免税州地址、避免在设置中登录美区账号等。同时提供常见问题解决方案,如付款方式选择、账号锁定处理等。

2025-10-02 09:14:22 1675

原创 从Android到iOS:启动监控实现的跨平台技术对比

本文对比了Android和iOS平台的启动监控实现差异。iOS的启动过程被划分为更精细的阶段(如Pre-main、Scene配置等),而Android更关注组件生命周期。在iOS实现中,使用StartupMonitor类记录各阶段时间、内存和CPU使用情况,通过recordPhase方法标记关键节点。Android采用类似的Kotlin实现,但使用SystemClock.elapsedRealtime()获取时间。iOS的监控更侧重系统层面,而Android更关注应用层面组件生命周期,这种差异反映了两个平台

2025-09-24 17:31:50 768

原创 理解 JVM 的 8 个原子操作与 `volatile` 的语义

本文介绍了JVM内存模型的8个原子操作及其与volatile关键字的关系。8个原子操作包括lock/unlock、read/load、use/assign和store/write四组,描述了线程与主内存、工作内存和执行引擎之间的数据交互。volatile通过内存屏障确保read/load和store/write操作的顺序和可见性,保证变量修改立即刷新到主内存,但无法保证复合操作的原子性。volatile主要提供可见性和有序性,如需原子性仍需CAS或锁机制。

2025-09-23 16:37:15 674

原创 双端 FPS 全景解析:Android 与 iOS 的渲染机制、监控与优化

双端 FPS 全景解析 本文深入探讨了 Android 与 iOS 平台的 FPS 性能优化,主要内容包括: FPS 与刷新率:解析硬件刷新率与软件渲染 FPS 的关系,指出高刷新率屏幕需要匹配的渲染能力才能发挥优势 渲染管线对比:建立 Android 和 iOS 渲染组件的对应关系表,揭示两平台在渲染流程上的共性 缓冲机制演进:详细分析从单缓存到三缓存的演进过程,说明各方案的优缺点及适用场景 VSync 调度机制:对比 Android 的 Choreographer 和 iOS 的 CADisplayLi

2025-09-23 16:19:20 966

原创 从零到一:Python构建企业级RAG系统完整实战指南(附完整源码)

RAG技术正处于快速发展期,从基础的文档问答到复杂的多模态智能助手,应用场景不断扩展。通过本项目的学习,你已经掌握了RAG系统的核心技术,具备了构建生产级AI应用的基础能力。🎯用户体验优先:技术服务于业务需求⚡性能与精度平衡:在速度和准确性间找到最佳点🔄持续迭代优化:基于用户反馈不断改进🛡️安全与隐私:保护用户数据和系统安全🚀立即实践:在自己的项目中应用RAG技术🤝社区参与:加入AI技术社区,分享经验📈持续学习:关注最新的RAG技术发展💡创新思考:探索RAG在新场景下的应用可能。

2025-09-16 14:17:13 607

原创 从0到1搭建KMP项目:让你的移动开发效率提升100%

KLIB(Kotlin Library) [发音: /keɪ lɪb/] 是 Kotlin Multiplatform 生态系统中的一项核心技术,它是Kotlin/Native 专用的库格式,专门为跨平台原生开发而设计。简单理解如果说 JAR 是 Java/Android 的"包装盒"那么 KLIB 就是 Kotlin Native 平台的"包装盒"它让 Kotlin 代码能够在 iOS、macOS、Linux、Windows 等原生平台上运行。

2025-09-15 15:39:09 954

原创 「2025最新」HarmonyOS 5.1 HelloWorld项目深度解析:从零到一完整开发指南

本文深入解析了HarmonyOS 5.1的HelloWorld项目结构,从工程配置到模块实现提供了完整指南。文章详细介绍了项目目录结构,包括工程级配置文件(build-profile.json5)、应用级资源目录(AppScope)和主入口模块(entry)。重点分析了build-profile.json5的签名配置、产品定义和模块组织,以及模块内的ArkTS源码目录、资源文件和测试结构。通过这份指南,开发者可以快速掌握HarmonyOS项目的基本组织方式,为应用开发奠定基础。

2025-09-14 11:04:32 998

原创 深入理解 Android targetSdkVersion:从 Google Play 政策到依赖冲突

本文深入探讨了Android开发中的targetSdkVersion概念及其重要性。文章首先区分了minSdkVersion、compileSdkVersion和targetSdkVersion的不同作用,强调targetSdkVersion是应用与系统之间的"行为约定"。然后解释了Google Play强制更新targetSdk的原因,包括推进生态系统发展、增强安全和改善用户体验。文章特别分析了当主工程和依赖库targetSdk不一致时可能引发的运行时风险,如崩溃、功能失常和安全漏洞。

2025-09-10 21:56:37 448

原创 Android到Jetpack Compose迁移实践指南-Text、Image、Layout篇

本文总结了从Android传统视图系统迁移到Jetpack Compose的实践经验,重点介绍了布局优化和组件使用。在布局迁移方面,展示了如何将ConstraintLayout转换为更简洁的Column布局,并详细对比了图片和文本组件的特性。特别是提供了Android XML属性与Compose修饰符的对照表,包括ImageView的scaleType与ContentScale的对应关系,以及宽高属性的转换方法。通过实例代码展示了两种技术栈在实现相同功能时的差异,为开发者提供了实用的迁移指南。

2025-09-10 21:53:43 467

原创 Android传统开发 vs Android Compose vs HarmonyOS ArkUI 对照表

本文对比了Android传统开发、Android Compose和HarmonyOS ArkUI三大移动开发框架在组件架构和应用组件方面的差异。传统Android采用View树形结构+XML布局,Compose使用函数式组件+状态驱动,ArkUI则采用声明式语法+响应式状态。三者在组件通信、状态管理、自定义组件实现方式上各有特点,导航组件也分别通过Intent、Navigation Compose和Router实现。代码示例展示了各框架如何实现组件通信、自定义按钮组件和页面导航功能,反映了不同框架的设计理念

2025-09-10 17:23:25 6679

原创 Android vs iOS 启动/内存/渲染 对照表

本文对比了Android和iOS应用启动机制与优化策略。在启动流程上,Android通过Application.onCreate()启动,iOS则使用application(_:didFinishLaunchingWithOptions:),两者都区分冷/热启动类型。优化方面,Android侧重MultiDex优化、布局分层,iOS关注动态库合并、Auto Layout优化。深度优化层面,字节/美团等大厂采用编译期混淆、内存预分配(Android)和符号表优化、CPU锁频(iOS)等高级技术。监控体系方面,

2025-09-09 22:39:32 677

原创 iOS 开发入门指南-HelloWorld

iOS开发入门指南对比了iOS与Android的项目结构、核心语法和开发方式。iOS采用Xcode统一环境,项目结构包含AppDelegate、SceneDelegate和ViewController等核心组件,使用Swift语言和闭包初始化UI。Android则采用XML布局和Activity/Fragment架构。iOS开发特点包括Auto Layout布局、ARC内存管理和UIKit组件系统,与Android的ConstraintLayout、GC和View系统形成对比。本指南为从Android转向i

2025-09-08 19:53:21 1138

原创 Swift 语法学习指南 - 与 Kotlin 对比

Swift 语法学习指南 (Kotlin 开发者版) 本指南为 Kotlin 开发者提供 Swift 语法的快速入门,通过对比两种语言的异同点来加速学习。主要包含以下核心内容: 基础语法对比 变量声明:Swift 使用 let/var vs Kotlin 的 val/var 类型推断:两者都支持强类型推断 空安全:Swift Optional vs Kotlin Nullable 关键特性比较 函数定义:Swift func vs Kotlin fun 类与结构体:值类型(Struct)与引用类型(Clas

2025-09-08 16:58:04 1180

原创 Agent的概念、原理与构建模式 - 代码深度解析

本项目是一个完整的ReAct智能代理实现,展示了现代AI Agent的核心架构和工作原理。通过Python代码实现了一个能够进行推理、决策和行动的智能系统,包含以下核心组件: ReActAgent类:管理工具集、模型集成和执行循环,使用字典推导式实现函数名到函数对象的映射; 提示词工程:采用XML标签格式确保结构化输出,指导模型行为; 工具系统:包含文件操作和系统命令等实用工具,具有安全特性; 技术栈:基于Python 3.12+,结合OpenAI SDK和OpenRouter API实现多模型支持。 项目

2025-09-08 13:17:53 859

原创 HarmonyOS第一课-对比Kotlin,快速入门TypeScript

在 TypeScript 和 Kotlin 中,函数的定义都包括函数名、参数列表和函数体。TypeScript 函数定义示例kotlin函数定义在 TypeScript 中,类定义包括类名、构造函数和成员变量或方法。构造函数在 TypeScript 中被命名为 constructor。greet() {${this// 输出 "Hello, my name is Alice" // 输出 "I work in Engineering"`);

2023-11-21 11:44:57 3337

原创 2021年度总结&&2022年展望

前言因为疫情关系,第一年在北京过除夕和生日,幸运的是今年的除夕和生日是有媳妇和甜宝一起陪伴的,非常开心。因为有爱我的人想让我变成更优秀的自己,所以今年的总结和规划就不拖欠了,在我生日当天进行一下21年总结和22年规划。2021年度总结21年整体是一个美好的年份,相比于20年的忙碌、19年的攀爬、18年的低谷,今年整体是平稳且幸福的。按照工作和生活分别总结一下21年工作和生活做的好的和不好的地方吧。工作上做的好的:搭建合理的人员梯队,北京和重庆两地同学齐心协力,共同支撑懂车帝的业务发展;A

2022-02-01 18:28:45 7809 4

原创 2021年6月感悟

前言说实话,去年的年终总结一直没写,不是不想写,确实是没时间已经作为Android负责人一周年了,今天还是有些想法,随手记录一下感悟研发负责人一定要对自己的决策负责,千万不能用战术上勤奋去掩盖战略上的懒惰,不然容易得不偿失;研发负责人深入一线需要把控尺度,否则容易陷入细节,难以抽身;大家习惯性抢功劳,推锅,不担当。我始终认为这是错的,Leader一定要敢于担当,承担责任,并且要把成果共享;你必须很努力,才能积攒一定的运气,让工作和生活步入正轨。但是工作和生活永远都不是一帆风顺的,因此你不能做

2021-06-16 18:26:18 3841 4

原创 10分钟带你入门NestedScrolling机制

一、从一个简单的DEMO看什么是嵌套滚动##我们先来看一下DEMO的效果,直观的感受一下什么是嵌套滚动:在解释上图涉及到哪些嵌套滑动操作之前,我先贴一下嵌套布局的xml结构:<com.wzy.nesteddetail.view.NestedWebViewRecyclerViewGroup> <com.wzy.nesteddetail.view.NestedScr...

2020-01-31 14:28:16 2859

原创 2019年度总结

2019年度总结今天春节被肺炎闹得是人心惶惶,而我也不凑巧的着凉感冒了。今天终于想起来19年年终总结还没写,赶紧补上。2019年回顾19年整体是一个从低谷向上攀爬的过程。工作上:经历了小组人员调动,公司发展重心变化等种种事情,最终还是平稳的过渡到2020了。总结一下自己在工作上做的好的和不好的地方,好的继续发扬,坏的引以为戒。好的:找准自己在团队的定位。业务上把控UGC Androi...

2020-01-26 22:40:13 1044 3

原创 Android源码解析-ViewModel

前言最近一个月主要实现了IM功能,其中UI框架使用了ViewModel和LiveData的存储和通知机制,实现后代码简洁易于维护。感慨于Android arch components控件强大同时,需要顺带分析一波其中源码实现。今天先来分析一下ViewModel的源码实现。ViewModel简介ViewModel是通过关联生命周期的方式来存储和管理跟UI相关的数据。即使configurati...

2019-09-27 16:30:52 1339

原创 Java面试题目-单链表翻转(递归+非递归实现)

前言个人在最近2年一直担任一面面试官,平时长问的题目就是单链表的翻转。发现很多面试同学只知道非递归实现,提到递归实现都是一脸懵逼。这里普及一下具体实现方案。链表数据结构我们这里就定义一个最简单的单链表:class Node { Node next; int val;}非递归public static Node reverseNode(Node head) { if (head...

2019-07-04 11:32:55 1067 2

原创 2018年终总结

前言2018年对我来说真的是跌宕起伏,难以忘怀的一年。先对2018做个总结吧。2018回顾工作:2018是我工作角色转变的一年,由一线研发工程师进化为小组leader。虽然工资没有太大变化,但是担心和顾虑的事情却成倍的增加。每个组员的状态、发展,整个业务线的情况,都需要我去关注、去了解。2018我给自己打85分,2019希望自己更加努力,带好整个团队,并且关注前沿技术,把UGC的播放器和发布...

2019-02-04 17:11:12 1205 1

转载 RecyclerView的缓存机制

原文链接原文出处:基于滑动场景解析RecyclerView的回收复用机制原理前言之前优化Feed流框架的时候,看到过一篇基于滑动场景分析RecyclerView回收复用的文章,感觉十分经典,因此转载复习之。正题RecyclerView 的回收复用机制的内部实现都是由 Recycler 内部类实现,下面就都以这样一种页面的滑动场景来讲解 RecyclerView 的回...

2018-08-10 19:58:23 10985 5

原创 Java泛型类继承实现

项目中经常会碰到泛型继承实现,这里讲解一下Java是如何实现泛型继承的。泛型父类声明泛型父类声明如下:public class Father&lt;T, M&gt; { public void test(T t, M m) { // do something with t and m ...... }}子类继承实现子类继承父类分为两种情况:...

2018-08-07 22:22:24 12586 3

原创 LeakCanary源码分析

基本使用LeakCanary是用来检测Android内存泄漏的工具。在gradlew文件中引入:dependencies { debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5.4' releaseCompile 'com.squareup.leakcanary:leakcanary-androi...

2018-08-05 17:34:36 1226

原创 今日头条内推

今日头条懂车帝招Android研发我的邮箱:wzyll1314@gmail.com,简历来来来。

2018-07-20 13:39:29 3188

原创 2017年终总结

距离2017年结束仅剩几个小时的时间了,这一年感慨万千,对照去年的目标说一下今年的进展吧。每年我都会提前给自己许下要完成的事情,2016年的目标如下:事业上,需要有更明确的奋斗目标和更具有挑战性的工作内容,且能让我的薪资足以承担起北京的房价压力。身体上,顺利的完成膝盖前叉韧带重建手术,最好能在一个半月之内恢复,不耽误以后的工作。经济上,计划下半年出手,北京的房子长远还是看涨的,希望能拿下一个合

2017-12-31 18:57:46 2080

原创 Android Intent Flag实现singleTask模式

Android Intent FlagAndroid Intent 常用的Flag有以下几种:FLAG_ACTIVITY_NEW_TASKFLAG_ACTIVITY_CLEAR_TOPFLAG_ACTIVITY_SINGLE_TOPFLAG_ACTIVITY_CLEAR_TASKFlag一般是组合使用。本文的结论需要增加一个前提,所有添加Flag启动的Activity本身的launch m

2017-10-15 14:47:34 10936 2

原创 Android查看应用方法数-65536限制

前言当一个项目快速迭代时,难免引进各种依赖,从而导致单个apk超过65k的限制。如何查询apk的方法数也是每个Android Developer必备技能。我使用的是dex-method-counts,这里跟大家分享一下它的使用。下载&&编译下载dex-method-counts到本地git clone https://github.com/mihaip/dex-method-counts.git编译

2017-07-29 10:43:09 1501

原创 PagerSlidingTabStrip源码解析

PagerSlidingTabStrip源码解析集成使用导包在Android Studio中,直接在build.gradle文件中增加如下依赖:dependencies { compile 'com.astuetz:pagerslidingtabstrip:1.0.1' }XML文件布局在XML文件中使用时,PagerSlidingTabStrip通常声明在ViewPager的上方.<c

2017-06-27 17:44:54 1117

原创 无序数组中求中位数

题目现有一些随机生成的数字要将其依次传入,请设计一个高效算法,对于每次传入一个数字后,算出当前所有传入数字的中位数。(若传入了偶数个数字则令中位数为第n/2小的数字,n为已传入数字个数)。 给定一个int数组A,为传入的数字序列,同时给定序列大小n,请返回一个int数组,代表每次传入后的中位数。保证n小于等于1000。 测试样例:[1,2,3,4,5,6],6返回:[1,1,2,2,3,3]思

2017-06-08 16:34:15 8302

原创 ThreadLocal的实现原理

ThreadLocal的实现原理ThreadLocal是线程内部的数据存储类,通过它可以指定的线程中存储数据,数据存储以后,只有在指定线程中可以获取到存储的数据,对于其他线程来说则无法获取数据. 这里基于JDK7进行ThreadLocal的源码实现分析.自定义ThreadLocal实现如何让大家去实现一个ThreadLocal,我相信很多同学第一时间会写出如下代码:public class Thr

2017-05-22 13:07:24 4790 2

原创 Vue训练营-自定义组件

项目截图GitHub地址由于这次作业比较简单,所以代码集成到上次的TodoList的项目中.主界面通过路由进行界面切换.技术点只要技术点包括:Vue自定义组件Vue组件间通信自定义组件就不多说了,直接看官网即可.Vue组件间通信方式包括:父->子,使用props传值.子->父,使用emit,emit,on发送和监听事件.兄弟组件,使用Bus(即new Vue)进行组件间通信.进阶,使用

2017-04-21 19:38:15 2968

LAMP基础学习

这是我四个月来总结的lamp的经验,非常适合初学者阅读,请大家尽情下载,支持开源

2011-10-10

apt-mirror搭建ubuntu本地仓库源

我自己总结的如何搭建ubuntu本地仓库源,非常具有参考价值,和大家共享一下

2011-08-22

Android打包boot.img工具mkbootfs

用于Android打包boot.img文件,主要是针对ramdisk

2014-07-08

ExpandableListView小项目展示

博客里讲解了自己利用ExpandableListView实现的一个Demo,大家可以下载参考。

2014-06-21

windows scoket编程

windows socket编程,两个程序,一个客户端,一个服务器端,实现了服务器端监听客户端的请求,客户端发送数据包,服务器段接收并返回。说白了,就是中国传媒大学研究生计算机网络的第7次实验

2011-11-28

ActiveAndroid-3.0-JAR包

ActiveAndroid 3.0版本的jar包.

2016-12-02

关于ntp服务器搭建

我自己总结的如何搭建ntp服务器,希望大家也能从中学到知识.

2011-08-22

空空如也

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

TA关注的人

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