自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(512)
  • 资源 (77)
  • 收藏
  • 关注

原创 compose中 RememberObserver / RetainObserver 是什么

摘要: RememberObserver和RetainObserver是Jetpack Compose中用于管理状态对象生命周期的底层接口,分别通过remember和retain触发回调。它们解决了对象构造与实际使用不同步的问题(如资源泄漏风险),但官方明确反对在业务代码中直接使用。推荐通过DisposableEffect、ViewModel等高层API管理副作用。仅建议在开发基础库、强绑定资源的对象(如播放器)等少数场景中使用。项目中未出现这些接口反而是合理设计的体现,表明遵循了Compose的最佳实践。

2025-12-29 12:18:08 582

原创 compose中 remember retain rememberSaveable、rememberSerializable的区别

Jetpack Compose 提供了不同层级的状态管理API,解决状态生命周期问题。remember仅对抗重组,适合临时UI状态;retain保持实例跨配置变化,适合不可序列化的大对象;rememberSaveable基于SavedState机制,保存用户输入等状态;rememberSerializable使用kotlinx序列化保存纯数据状态。官方推荐优先级:ViewModel > rememberSaveable/rememberSerializable > retain > rem

2025-12-29 10:58:31 1013

原创 compose @stable概念和作用3

Compose重组优化本质上是规模效应而非单点效应。对于简单组件(如Counter),重组成本微乎其微(仅函数执行、字符串计算),无需过度优化。真正的性能瓶颈出现在复杂组件树(如带LazyColumn的列表)中,此时无意义重组会引发指数级成本增长(Modifier重建、布局计算等)。工程实践建议:先保证正确性,再根据性能指标针对性优化。判断标准是:不含延迟加载/动画/复杂修饰符的纯UI组件,其重组成本可忽略。成熟的Compose思维应权衡优化必要性,而非盲目追求稳定性标记。

2025-12-26 17:44:13 417

原创 compose中@Stable概念和作用2

摘要:Jetpack Compose中的父子关系由组合树决定,调用者即为父Composable。父重组会触发子重组,但参数稳定性(如@Stable注解)可阻止不必要重组。重组是自上而下传播的,普通类参数会导致子必重组,而稳定参数能截断重组链。关键点在于:父是调用你的Composable,父重组时子是否重组取决于参数稳定性。这解释了Compose的重组机制与优化原理。

2025-12-26 17:39:24 317

原创 compose中的@Stable概念和用法

摘要:@Stable注解的核心作用是告诉Compose编译器某个类的变化是可预测的,而非不可变。它通过改变参数比较策略、启用skip优化和精确推断状态依赖,显著减少不必要的重组。与@Immutable不同,@Stable允许可变但要求变化可追踪,适用于UI State等频繁参与重组判断的场景。正确使用可提升复杂界面性能,但需注意仅对受控变化的对象使用,避免误标导致UI不更新。本质上,@Stable是开发者向Compose作出的性能承诺。

2025-12-26 17:29:22 556

原创 compose Effect概念

Compose中的Effect(副作用):在UI声明之外影响外部世界的操作,如启动协程、网络请求等。由于Composable函数会被反复执行且结果可能被丢弃,副作用必须通过Effect API(如LaunchedEffect、SideEffect)管理,确保只在成功重组后执行。Effect是连接UI与外部系统的桥梁,在MVI架构中协调State与外部交互。核心原则:若代码离开Composable仍有效,就必须封装为Effect。

2025-12-26 15:48:27 656

原创 compose中的rememberSaveable

摘要:在MVI+Compose架构中,ViewModel作为主要状态容器替代了rememberSaveable的核心功能,但两者定位不同。ViewModel负责业务状态(单一数据源),rememberSaveable仅处理UI层临时状态(如输入框、Tab索引)。健康项目通常表现为:多用ViewModel和remember,少用rememberSaveable。关键区别在于ViewModel具备完整生命周期管理能力,而rememberSaveable更适合非业务UI状态恢复。工程实践中应避免将业务逻辑放入UI

2025-12-26 15:36:47 863

原创 compose中 SideEffect概念以及作用

摘要:SideEffect在Compose中的执行时机是在重组完成并提交UI变更后,而非函数最后一行执行完立刻执行。日志显示顺序执行是因为SideEffect在函数执行时被注册,实际执行发生在重组确认成功后。与LaunchedEffect不同,SideEffect是同步执行且保证不受重组打断,确保副作用在UI状态稳定后执行。这种设计避免了因UI计算回滚导致的世界状态不一致问题。

2025-12-26 14:37:21 595

原创 compose中 DisposableEffect和onDispose

本文系统讲解了Compose中DisposableEffect和onDispose的核心概念与使用模式。DisposableEffect是生命周期作用域,onDispose是其清理回调。关键点包括:1) DisposableEffect在进入组合时执行,key变化或离开组合时触发onDispose;2) 标准模式是在effect中注册资源,在onDispose中清理;3) key决定生命周期边界;4) 与LaunchedEffect的区别在于解决资源对称性问题;5) 常见反模式包括只注册不清理或在onDis

2025-12-26 14:17:44 305

原创 compose重组概念2

重组(Recomposition)是Compose在状态变化时重新执行依赖该状态的Composable函数,生成新的UI描述树并进行差异更新。关键点:1)只有特定状态变化才会触发;2)仅更新变化的UI节点;3)自动执行最小范围重组。重组不等于重新绘制,而是重新计算UI。开发者应避免在重组中执行不必要操作,而非害怕重组本身。Compose通过智能重组机制实现高效UI更新。

2025-12-26 13:45:46 316

原创 Compose重组的概念1

重组(Recomposition)是 Compose 的核心机制,指当状态变化时重新执行受影响的 Composable 函数生成新 UI 描述,而非重新绘制整个界面。重组是声明式 UI(UI=f(State))的必然结果,其关键在于: 本质:仅重新计算受状态变化影响的函数,通过 Diff 算法局部更新 成功重组:需完成 UI Tree 计算且未被中断,此时才会触发 SideEffect(用于同步外部状态) 性能优化:应关注重组范围控制(如使用 derivedStateOf)而非避免重组 SideEffect

2025-12-26 13:43:07 846

原创 Compose 重组机制详解文档

Compose 重组机制通过智能局部刷新优化性能,关键点包括: remember 保留状态避免重复创建,无 remember 时状态会在每次重组时重置 重组会重新执行整个函数,但通过差异对比只更新实际变化的部分 最小重组粒度是 Composable 函数,但通过内容对比实现局部刷新 优化策略包括合理使用 remember、传递最小参数、跳过不变子树 状态变化触发函数重组,但未变化的 UI 元素会被跳过绘制 该机制在保持声明式编程的同时实现了高效渲染。

2025-12-26 10:40:26 837

原创 Compose 快速参考卡片

Jetpack Compose 快速参考摘要 常用代码模板: Screen标准模板包含状态观察、初始化和UI渲染三部分 使用collectAsStateWithLifecycle()观察ViewModel状态 通过LaunchedEffect处理副作用和初始化 状态管理: 组件内状态使用remember + mutableStateOf 可保存状态用rememberSaveable ViewModel状态通过StateFlow管理 布局组件: Column/Row/Box三大基础布局 LazyColumn实

2025-12-25 13:32:02 308

原创 compose中的Modifier

Jetpack Compose 中的 Modifier 是用于修饰和配置组件的核心工具,可替代 XML 布局中的多种属性。它具有无侵入性、顺序敏感和可组合的特点,支持链式调用。常用 Modifier 分为布局(如 size、padding)、样式(如 background、clip)、交互(如 clickable)等功能。与 XML 相比,Modifier 执行顺序会影响效果(如 padding 和 background 的顺序),且不可变。开发者还可自定义 Modifier 扩展功能,实现更灵活的 UI

2025-12-25 13:24:35 361

原创 Compose基础入门

Jetpack Compose基础入门摘要 Jetpack Compose是Android的现代UI工具包,采用声明式Kotlin代码替代传统XML布局。核心特点包括: 使用@Composable注解标记UI函数 通过Modifier控制组件样式和布局 状态驱动UI,自动响应数据变化 提供Box(层叠)、Column(垂直)等基础布局 条件渲染使用when表达式实现不同状态UI 典型结构示例: @Composable fun MyScreen() { Box(modifier = Modifier.fill

2025-12-25 13:22:09 784

原创 Compose 中内外padding

摘要:Jetpack Compose中padding和background的顺序决定了内外边距效果。在Modifier中,先写的padding会形成外边距(类似margin),后写的padding则成为内边距(类似padding)。示例代码展示了Text被层层包裹的过程:最内层padding(10.dp)形成内容内边距,background(Color.Blue)包裹该区域,最外层padding(20.dp)形成外边距。与XML布局对比,Compose通过调整Modifier顺序实现margin效果。记忆口

2025-12-25 13:15:34 243

原创 Compose 实战练习

Compose 实战练习摘要 本文档提供了一套递进式Compose开发练习,分3个难度级别: 1️⃣ 基础理解(30分钟/练习) 添加日志打印:理解MVI数据流 修改UI文本:学习简单UI调整 改变组件颜色:掌握主题颜色应用 2️⃣ 组件理解(1小时内) 添加搜索框:实践新组件集成 调整列表高度:学习布局微调 3️⃣ 状态管理(45分钟) 实现删除功能:完整MVI流程实践 新增Intent ViewModel处理 UI交互实现 每个练习包含: 明确目标 具体代码位置 修改建议 验证方法 关键知识点 难度标记

2025-12-25 12:02:16 865

原创 Compose 快速参考卡片(速查表)

Jetpack Compose 快速参考卡片提供了MVI架构的核心概念和常用代码片段。主要包含: MVI数据流模型:State←Intent→UI更新的单向数据流 三大核心概念:State(状态)、Intent(意图)、Effect(副作用) 常用代码模板:包括Composable结构、状态更新、Intent处理等 Modifier速查:布局、间距、背景、点击等常用修饰符组合 布局容器对比:Column/Row/Box/Lazy系列等适用场景 状态管理:包括加载状态和对话框状态的枚举处理 副作用处理:使用L

2025-12-25 11:55:52 572

原创 compose中 关于 size、width 和 height 的关系

摘要:本文解析了Compose布局中size、width和height的关系与区别。size()会同时设置宽高为相同值,而width()和height()可单独控制不同维度。重点说明了修饰符的执行顺序(从前往后)及覆盖规则,指出后面的修饰符会覆盖前面的同类型设置。通过示例展示了size(100.dp)、width(200.dp)和height(100.dp)组合使用时最终形成的200dp×100dp尺寸效果,强调了这些修饰符在实际应用中的叠加特性。

2025-12-25 11:11:42 171

原创 Compose 核心组件学习指南

Compose 核心组件指南 📐 Modifier - UI修饰工具链 控制大小、边距、背景、边框等样式 支持链式组合:fillMaxWidth().padding(16.dp).background(Color.LightGray) 🎛️ 布局容器 Box:堆叠布局(图片+文字) Column/Row:线性排列 LazyColumn:高性能列表(带滚动记忆) 📝 基础组件 Text:支持字体样式、对齐、溢出处理 Image/Icon:图片显示与图标 Button:可自定义颜色/圆角的交互控件 💡

2025-12-25 11:01:14 327

原创 android内存泄露_什么是内存泄露

摘要:Android内存泄漏是指无用对象因被错误引用导致无法回收的现象,会引发卡顿、OOM等问题。常见原因包括:长生命周期对象持有短生命周期对象引用(如静态变量引用Activity)、未注销监听器/回调、资源未关闭、集合未清理等。检测工具推荐Android Profiler、LeakCanary和MAT。避免方法包括:使用弱引用、及时注销监听器、关闭资源、优先用Application Context等。核心解决思路是规范生命周期管理并合理处理对象引用。

2025-11-19 10:51:39 609

原创 android内存泄露_LeakCanary

LeakCanary通过自动化检测和分析内存泄漏,显著简化了Android开发中的内存管理难题。它首先监控Activity/Fragment的生命周期,在销毁时创建弱引用和引用队列,随后手动触发GC进行检测。若对象未被回收,则生成HPROF堆转储文件,使用Shark分析库解析引用链,找出从GC Root到泄漏对象的路径。最终提供直观的报告,包括泄漏对象、引用链及修复建议,帮助开发者快速定位静态变量持有等常见问题。整个过程将复杂的手动分析自动化,极大提升了内存泄漏排查效率。

2025-11-19 10:22:05 434

原创 扩展函数的特点

Kotlin扩展函数是一种在不修改原类源码的情况下为其"添加"新方法的语法特性,底层通过静态方法实现。相比Java需要通过继承、工具类或包装类等方式扩展功能,Kotlin扩展函数具有更直观的调用方式(对象.方法())和更好的代码组织性。Java没有原生支持扩展函数主要是缺乏语法层面的支持,而非技术限制。Kotlin通过语法糖优化了这一功能体验,使其成为解决类扩展问题的优雅方案。

2025-11-17 15:39:34 906

原创 android RecycledViewPool的作用

频繁创建ViewHolder的原因:高频出现的viewType对应的缓存池容量不足(默认 5 个),导致滑出屏幕的ViewHolder被销毁,再次需要时只能重新创建。默认容量:每种viewType最多缓存 5 个ViewHolder。与viewType的关系:缓存池按viewType隔离,不同类型的ViewHolder不能复用,因此高频类型需要更大的缓存容量。通过为高频viewType增大缓存池容量,能提升复用率,减少ViewHolder创建次数,优化列表滑动性能。

2025-11-13 13:00:15 936

原创 android recyclerview缓存_缓存问题解决办法

缓存导致的异常,本质是“缓存复用的ViewHolder状态”与“当前数据状态”不匹配。规范复用流程:在中全面重置状态,确保缓存的ViewHolder与新数据完全同步。优化缓存配置:合理定义viewType、调整缓存池容量、启用稳定 ID 等,提升缓存命中率。清理残留状态:通过或任务校验,避免异步操作干扰复用后的ViewHolder。理解这些策略不仅能解决具体问题,更能体现对缓存机制的深度掌握,在面试中也是加分项。

2025-11-13 12:55:22 874

原创 android recyclerview缓存2_四级缓存机制

RecyclerView采用精妙的四级缓存机制保证流畅滑动:1)Scrap缓存暂存屏幕内临时移除项;2)CachedViews保存最近2个离屏项;3)可选的ViewCacheExtension支持自定义缓存;4)RecycledViewPool实现全局viewType分类复用。查找顺序严格按1→4级进行,未命中才创建新ViewHolder。RecycledViewPool支持多列表共享复用,显著减少创建开销。该机制通过优先复用、按需创建的设计,在内存占用和性能间取得平衡,有效避免了频繁的onCreateVi

2025-11-13 11:22:13 742

原创 android recyclerview缓存1_概念和常见问题

的缓存机制通过四级缓存实现了ViewHolder的高效复用,核心目标是减少 View 创建和数据绑定的开销。理解其工作流程后,能更清晰地定位数据错乱、卡顿等问题——本质都是缓存复用与数据更新不同步导致的。面试中,除了阐述缓存层级,还需结合实际问题(如数据错乱的解决)说明对原理的理解,体现实战能力。开发中,需根据列表特点(如是否固定宽高、数据是否动态变化)合理配置缓存参数,才能充分发挥的性能优势。

2025-11-13 11:00:30 679

原创 android RecyclerView 解决列表页面闪烁问题

setHasFixedSize(true)优化RecyclerView性能,通过固定Item宽高避免数据更新时重新计算布局导致的闪烁。适用于Item尺寸固定的列表,配合DiffUtil和局部刷新效果更佳。原理是跳过全局布局计算,保持列表稳定性。需注意不适用于动态调整高度的场景。代码示例展示了简单实现方式,是列表优化的重要手段。

2025-11-13 10:32:27 182

原创 android RecyclerView多item写法

在RecyclerView中实现多类型Item的核心是通过ViewType区分不同数据模型和布局。主要步骤包括:定义不同数据类并实现统一接口,为每个类型创建独立布局和ViewHolder,在Adapter中根据ViewType返回对应布局并绑定数据。代码示例展示了如何通过getItemViewType()判断数据类型,在onCreateViewHolder()中加载不同布局,并在onBindViewHolder()中调用对应ViewHolder的绑定方法。这种方法使RecyclerView能够灵活展示多种样

2025-11-13 10:30:53 475

原创 kotlin 协程的用法

本文从原理到实践解析了Kotlin协程在Android开发中的应用。协程是轻量级的线程任务调度单元,通过挂起机制实现异步代码同步化写法,相比线程具有创建成本低、切换轻量等优势。在Android中,通过不同作用域管理协程生命周期:Activity/Fragment使用lifecycleScope自动绑定,ViewModel使用viewModelScope,数据层则采用挂起函数配合IO调度器。文章还介绍了协程的关键语法如launch/async/withContext,以及异常处理和取消机制,为开发者提供了协程

2025-11-10 13:50:44 806

原创 kotlin lambda表达式和高阶函数

本文介绍了Kotlin中的Lambda表达式和高阶函数。Lambda表达式是匿名函数,可像对象一样传递和存储,语法为{参数->函数体}。高阶函数是以函数为参数或返回值的函数,支持两种形式:函数参数和函数返回值。文章通过多个示例展示了高阶函数的应用,包括标准库函数forEach、map、filter,以及Android中的点击监听和协程使用。最后总结指出,高阶函数配合Lambda能使代码更简洁灵活,并对比了Lambda、高阶函数和闭包的特点。

2025-11-10 13:49:48 401

原创 kotlin lambda表达式和高阶函数

本文介绍了Kotlin中的Lambda表达式和高阶函数。Lambda表达式是匿名函数,可像对象一样传递和存储,语法为{参数->函数体}。高阶函数是以函数为参数或返回值的函数,支持两种形式:函数参数和函数返回值。文章通过多个示例展示了高阶函数的应用,包括标准库函数forEach、map、filter,以及Android中的点击监听和协程使用。最后总结指出,高阶函数配合Lambda能使代码更简洁灵活,并对比了Lambda、高阶函数和闭包的特点。

2025-11-10 13:46:47 442

原创 android事件分发机制

Android View事件分发机制的核心流程是:触摸事件从Activity开始,经由Window和DecorView,层层传递给根ViewGroup。ViewGroup通过dispatchTouchEvent()分发事件,用onInterceptTouchEvent()决定是否拦截,若不拦截则传递给子View。子View通过onTouchEvent()处理事件,返回true则消费事件,false则回溯给父容器。整个过程遵循"谁返回true谁消费事件"的规则,最终决定事件的流向和处理。

2025-11-10 13:36:04 834

原创 android Fragment hide,show,replace等用法

摘要:本文系统解析了Android Fragment管理中add/hide/show和replace/remove的核心区别与使用场景。add/hide/show方案适合频繁切换的Tab页面(如底部导航),保持Fragment实例避免重复创建;而replace适合临时跳转场景,会销毁旧实例释放内存。文章通过对比表格、生命周期流程和典型示例,给出选择建议:多页面共存用hide/show,单页面流转用replace,并强调关键差异在于性能优化与内存管理的权衡。(149字)

2025-11-10 13:11:57 384

原创 android启动模式使用场景具体说明

摘要: Android 的 singleTop、singleTask 和 singleInstance 是 Activity 的启动模式,用于优化任务栈管理和实例复用。singleTop 复用栈顶实例,适用于通知跳转(如搜索页);singleTask 确保栈内单例并清理上方 Activity,适合主页面(如微信首页);singleInstance 独占独立栈,用于全局唯一功能(如来电界面)。登录页和设置页不建议设为 singleTask,可能破坏操作连贯性,建议使用 standard 或 singleTop

2025-11-10 12:49:26 785

原创 android日志-问题定位

本文摘要了Android应用问题定位的关键方法:1)ANR日志通过"ANR in"和"Reason"字段快速定位;2)闪退问题重点关注"exception"和"caused by"关键字,建议从日志尾部逆向查找错误;3)针对不同层级的闪退,应用层关注"FATAL EXCEPTION"和调用堆栈,系统层注意"E"级错误日志模式。日志分析时应优先检查报错行前3-4行的上下文,以提高问题定位效率

2025-11-10 11:30:53 250 2

原创 Android Hilt 入门教程_传统写法和Hilt写法的比较

Hilt 之所以是对象工厂和生命周期管家,是因为它能够自动创建并管理依赖对象,并且可以自动适配依赖对象的生命周期,避免手动管理带来的复杂性和潜在的内存泄漏。🎭 1. Hilt 是对象工厂(自动创建并管理依赖对象)private val apiService = ApiService() // 直接创建实例。

2025-11-08 14:52:06 884

原创 Android Hilt 入门教程_注解汇总

Hilt依赖注入核心注解解析 @Inject是Hilt的核心注解,主要提供两种注入方式: 构造函数注入 - 通过@Inject constructor()自动创建类实例,适用于无状态类 字段注入 - 使用@Inject lateinit var在Activity/Fragment中自动注入依赖 其他关键Hilt注解包括: @HiltAndroidApp:标记Application类,初始化Hilt @AndroidEntryPoint:使Activity/Fragment支持依赖注入 @Module + @

2025-11-08 14:50:17 1019

原创 Android Hilt 入门教程_Hilt原理

Hilt是基于Dagger的依赖注入框架,通过编译时代码生成自动管理对象的创建、注入和生命周期。其核心原理包括:1)通过@Inject和@Module/@Providers定义依赖关系图;2)利用作用域注解(@Singleton等)将对象与Android组件生命周期绑定;3)支持测试环境下依赖替换;4)实现代码解耦,使业务逻辑仅依赖抽象接口。Hilt通过分层组件结构(SingletonComponent、ActivityComponent等)实现作用域管理,让依赖项随组件生命周期自动释放,显著提高代码可维护

2025-11-08 14:48:46 710

原创 Android Hilt 入门教程_实战

Android Hilt 依赖注入框架入门教程 Hilt 是 Android 官方推荐的依赖注入框架,基于 Dagger 但更简单易用。本文介绍 Hilt 的基本使用方法和优势,帮助开发者快速上手。 主要特点: 自动管理依赖对象创建 无缝集成 ViewModel 提供作用域管理(Singleton、ActivityScoped等) 简化 Dagger 的复杂配置 核心使用步骤: 添加 Hilt 依赖和注解处理器 使用 @HiltAndroidApp 初始化应用 在 Activity/Fragment 使用

2025-11-08 14:45:28 872

Android app缓存清理实现

Android app缓存清理,封装了一个获取和清理缓存的工具类,可以直接使用,简化了开发的麻烦。

2018-02-08

Office2010安装需要的MSXML文件

Office2010安装需要MSXML版本6.10.1129.0,这个错误是缺少msxml文件,上面是下载连接。安装教程 https://jingyan.baidu.com/article/a948d6517babeb0a2ccd2e71.html

2018-02-10

手机图像转pdf文件

利用iText第三方开源库,实现Android手机 拍照以及从相册选取把图像转化为pdf文件

2018-03-01

android 自定义view比较综合的例子

android 自定义view比较综合的例子,涉及到一些复杂的实现效果,有一些基础的人可以参考下。

2018-04-01

反编译工具apktool dex2jar jd-gui

反编译工具apktool dex2jar jd-gui,这个是我经过测试有效而放上来的。

2018-04-19

imageToPdf

通过itext框架把图片转化为pdf格式,即jpg或者png格式转化为pdf格式的文件

2018-02-22

Android大屏幕适配demo

Android大屏幕适配demo,这个是仿照郭林文章中的例子,他的例子是用eclipse写的,直接运行会不兼容最新的sdk,我改成了AndroidStudio可以直接运行的demo.郭林此代码文章的连接 http://blog.csdn.net/guolin_blog/article/details/8744943

2018-02-02

retrofit2与rxjava结合的demo

文章地址 http://blog.csdn.net/qq_26296197/article/details/79372460。

2018-03-01

VolleyDemo

这个是参考网上的资料,结合google官方的文档写的一个volley的简单demo,并做了简单的封装,想更加系统的学习volley可以参考google官方文档以及郭林的博客

2018-01-19

自定义view学习一

这个代码是自定义view练习demo,对应的文章地址是https://blog.csdn.net/qq_26296197/article/details/79729892。

2018-03-31

自定义view-google文档代码整理

代码是google官方文档的代码,把代码放入到项目中,加入了一些注释。文章链接 https://blog.csdn.net/qq_26296197/article/details/79775388

2018-04-01

python基础教程第二版

python基础教程第二版,高清pdf书籍(180M)和随书源代码

2018-01-26

Android MVPDemo

这个demo是学习Android mvp和retrofit的,retrofit文章链接地址 http://blog.csdn.net/qq_26296197/article/details/78011188

2018-02-27

rxjava学习代码

学习 《这可能是最好的RxJava 2.x 入门教程》而写的代码,代码有非常详细的注释,和我的个人笔记,非常适合学习java2.x的新手,就算是原作者,注释也没有这样详细

2018-02-13

Android 屏幕适配总结

Android 屏幕适配思维导图,花了两天的时间总结出来的,看思维导图会以一个整体的印象,有利于快速理解Android 屏幕适配的问题。

2018-02-12

android 屏幕适配思维导图

汇总Android 屏幕适配比较优秀的文章加上本人的理解,制作出一张思维导图,方便大家学习和理解

2018-02-01

Android drawerLayout

android 抽屉布局,使用了drawLayout布局,并配合toolbar一起展现。例子中还有两个google官方的例子,我做了少许的修改。

2018-01-19

volley.jar文件

使用说明 Android Volley Jar,Android Volley框架是Android开发中不可或缺的一个重要框架,想使用Android开发更加便捷的途径就是使用Volley框架了。

2018-01-11

android fragment生命周期测试

测试了下fragment生命周期,之前一直看别人的文章知道生命周期,但是过后就忘了,现在实际操作了一遍fragment生命周期还是很有意义的,加深了印象解决了自己概念模糊不清的地方。

2018-04-24

Android photoWallDemo

仿照郭林博客http://blog.csdn.net/guolin_blog/article/details/34093441写的demo,androidStudio版本,他下载的链接是eclipse的代码,在高版本的AndroidStudio运行会不方便

2018-02-05

手指触摸红点,让其消失

代码: android 功能: 手指触摸红点,让其消失。2支持四个边和对角线显示红点。

2024-08-17

Recyclerview单选和多选实现

Recyclerview单选和多选实现,通过简单的demo来展示单选和多选状态,最后写了一个综合的实用demo.

2018-12-10

RNRedux.zip

RNRedux学习实用demo,redux可以实现数据共享,处理数据。 1 redux包含 store 保存数据,传入action给reducer action 触发动作 reducer 改变数据的值 provider 把数据传给子组件

2020-07-23

android 快速点击demo

android 快速点击demo,分析快速点击原因,次数,时间间隔,对快速点击做了两种方法的封装

2018-12-09

跑马灯效果

真正的跑马灯效果,实现原理就是设置textView为singleLine,android :ellipsize =marquee,同时新建一个自定义TextVIew让textView获得焦点

2018-04-24

ContactBackupStudy.zip

android 通讯录备份和还原,经过测试调试可行,500多条数据备份只要2秒钟,网上的代码大多要15秒到24秒.通讯录还原在10s内

2019-11-13

gradle-3.4-all和gradle3.5-all

androidStudio下载会很慢,这是下载好的gradle包,放在C:\Users\Administrator\.gradle\wrapper\dists路径下解压后可以直接用,不需要下载。

2018-05-09

ExpandableListView.zip

expandableListView demo

2021-10-26

app-debug.apk

实现js 调用安卓原生方法.具体例子为调用百度网址,获取百度标题显示在界面上....经过验证有效,项目中可以直接拿来用.如果需要清理缓存可以使用 webview.clearCache(true);就可清除webview缓存

2020-01-15

TablayoutStudy.zip

tablayout+viewpager丰富的例子,适合快速上手用与项目中。

2021-08-09

MarkdownPad2.5安装文件和注册码

MarkdownPad2.5文件和 注册码 Soar360@live.com ;GBPduHjWfJU1mZqcPM3BikjYKF6xKhlKIys3i1MU2eJHqWGImDHzWdD6xhMNLGVpbP2M5SN6bnxn2kSE8qHqNY5QaaRxmO3YSMHxlv2EYpjdwLcPwfeTG7kUdnhKE0vVy4RidP6Y2wZ0q74f47fzsZo45JE2hfQBFi2O9Jldjp1mW8HUpTtLA2a5/sQytXJUQl/QKO0jUQY4pa5CCx20sV1ClOTZtAGngSOJtIOFXK599sBr5aIEFyH0K7H4BoNMiiDMnxt1rD8Vb/ikJdhGMMQr0R4B+L3nWU97eaVPTRKfWGDE8/eAgKzpGwrQQoDh+nzX1xoVQ8NAuH+s4UcSeQ==

2018-06-04

android-sdk_r24.4.1-windows

资源名称:android-sdk_r24.4.1-windows,Android下载sdk的时候打开SDK Managerhi闪退,把这个解压缩之后覆盖sdk根目录的文件,就可以解决

2018-11-06

loading.png

Android 自定义图片旋转资源,博客文章对应的图片资源.不能省略掉.不能省略掉.不能省略掉.不能省略掉

2019-11-22

AwesomeProject.zip

react-native 安卓初始化项目,以及安卓原生与react-native交互,含有三种常见的交互方式,丰富的代码示例.极大的方便新手入门学习.

2020-02-15

source_insight4.0破解版

1.首先安装sourceinsight4087-setup.exe 2.使用下载好的sourceinsight4.exe替换已安装好的sourceinsight4.exe (我自己使用的时候,第二步就显示了激活) 3.启动sourceinsight,导入下载好的si4.pediy.lic

2018-07-09

android 传值

android intent(传递对象) 广播 eventbus传值,另外还有文件存储实现。

2018-12-31

gradle-4.7-all和gradle-4.7-bin

androidStudio下载会很慢,这是下载好的gradle包,放在C:\Users\Administrator\.gradle\wrapper\dists路径下解压后可以直接用,不需要下载。

2018-05-09

sourceInsight4

压缩包里面有两个sourceInsight 4.0版本,都是可以直接激活使用,而且还有我使用习惯的配置文件,适合新手、懒人。也可以直接下载官方最新版本,查看里面的文档激活。

2018-10-16

google浏览器字节码转换扩展程序

google浏览器字节码转换扩展程序,从google官网上下载的,现在发出来给不需要就可以得到,使用方式:在扩展程序中选择本地扩展程序就可以安装成功。

2018-05-26

gradle.rar

gradle-4.10.1-all,gradle-4.10.3-all,gradle-5.1.1-all实现

2019-06-04

空空如也

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

TA关注的人

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