- 博客(131)
- 资源 (36)
- 收藏
- 关注
原创 MVVM 的理解与设计
一篇面向客户端开发者的 MVVM 入门与实战博客,系统讲解 MVVM 的设计思想、View/Model/ViewModel 的职责、数据如何传输、ViewModel 如何设计、Android Kotlin 示例、常见误区和排查方法。
2026-09-07 21:48:10
19
原创 一个场景题去理解Java的锁
系统讲解 Java 中 synchronized、ReentrantLock、ReadWriteLock、StampedLock、Atomic、volatile 的区别,解释 count + 1 为什么不是原子操作,并通过音视频实例化对象同时访问共享资源的场景题对比多种加锁实现方案及优缺点。
2026-09-07 21:43:05
35
原创 Flutter 跨端优化实战
一篇面向 Flutter 开发者的跨端优化博客,系统梳理 Flutter 项目常见问题、性能痛点、排查路径、版本升级、依赖治理、包体积优化、启动优化、渲染卡顿和线上监控。
2026-09-07 12:00:00
135
原创 微信小程序包体积优化
以实际上线的小程序主包从 1.93 MB 降到 1.31 MB 的实践为起点,系统讲解分包与异步化、按需注入、依赖治理、启动链路、setData、长列表、图片、网络、缓存、内存、监控与持续性能预算。
2026-09-06 19:50:00
255
原创 Linux 基础操作指令速查
一篇面向 Linux 初学者和开发者日常使用的命令行入门博客,覆盖目录切换、文件查看、搜索、权限、压缩、网络、进程、服务、磁盘、日志和常见风险。
2026-09-06 19:33:58
172
原创 Flutter 快速上手
一篇接在 Dart 快速上手之后的 Flutter 入门指南,聚焦 VS Code 工作流,覆盖环境检查、项目创建、Widget、布局、状态、资源、依赖、调试和常见问题。
2026-09-06 12:00:00
578
原创 Android Studio 调试与内存抖动分析
系统梳理 Android Studio 中常见调试方式,并重点讲解如何使用 Debugger、Logcat、Profiler、Memory Profiler、App Inspection、Layout Inspector 等工具观察和定位 App 内存抖动、泄漏与性能问题。
2026-09-06 10:00:00
605
原创 Kotlin 协程完全指南
从线程与协程的区别出发,深入讲解 suspend 状态机、Continuation、CoroutineContext、调度器、结构化并发、取消与异常传播,并结合 Flow、ViewModel 和测试给出可落地的 Kotlin 协程用法。
2026-09-06 07:00:00
334
原创 Android组件化指南
从代码组织、编译边界、业务边界、独立交付和运行时加载五个颗粒度,系统讲解 Android 模块化、组件化、插件化,以及如何避免为了组件化而组件化。
2026-09-05 22:45:45
154
原创 Jetpack Compose Effect 完全指南
系统讲解 SideEffect、LaunchedEffect、DisposableEffect、rememberCoroutineScope、rememberUpdatedState、produceState、derivedStateOf、snapshotFlow 及 Lifecycle Effect 的实现原理、选择方法与常见陷阱。
2026-09-05 20:00:00
261
原创 MVC、MVP、MVVM、MVI 的区别与实现原理
系统讲解 MVC、MVP、MVVM、MVI 各组成部分的职责、实现原理、数据流、优缺点、测试方式,以及它们如何与 Clean Architecture 组合
2026-09-05 19:30:00
789
原创 Dart 语言快速上手
系统讲解 SideEffect、LaunchedEffect、DisposableEffect、rememberCoroutineScope、rememberUpdatedState、produceState、derivedStateOf、snapshotFlow 及 Lifecycle Effect 的实现原理、选择方法与常见陷阱。
2026-09-05 15:45:56
361
原创 Jetpack Compose 快速上手
一篇面向 Android 开发者的 Jetpack Compose 入门教程,覆盖工程创建、布局、Modifier、状态、列表、Material 3、ViewModel、副作用和导航。
2026-09-05 15:09:56
242
原创 Java 常见数据结构与 Android 使用场景
本文整理Java常见数据结构的核心原理、伪代码及Android使用场景,涵盖数组、ArrayList、LinkedList、栈、队列等16种结构。每类均说明特点、简化实现,并列举在Android实际应用场景上
2026-09-04 17:23:59
262
原创 Kotlin 高阶工程化与 Android 深入实践
本文深入解析Kotlin在Android工程中的高阶实践,涵盖编译产物、API设计、协程调度、Flow架构、Compose状态、KSP、性能优化与测试,帮助开发者从“会写”进阶到“能设计、能排查、能优化”。
2026-09-04 17:17:27
233
原创 Kotlin 进阶语法与 Android 实战理解
本文总结了Kotlin进阶特性在Android开发中的核心应用:泛型与in/out型变提升复用和类型安全;inline、reified保留类型信息并优化性能;sealed、委托、DSL简化状态与构建;协程与Flow实现结构化并发和响应式UI。紧扣实际场景,助你写出更安全、简洁、
2026-09-04 17:15:40
248
原创 Kotlin 语法入门与快速上手
内容概括Kotlin语法入门与Android快速上手,强调快速跑通基础写法、val/var、类型推断、字符串模板、空安全、函数、if/when、类等,适合Java转Android开发。摘要需简洁。字数限制150字。输出中文。</think>本文面向Kotlin小白及Java转Android开发者,旨在快速掌握基础语法并理解其在Android项目中的应用。通过Scratch或在线Playground可立即运行代码。核心知识点包括:val/var变量声明、类型
2026-09-04 17:11:22
217
原创 Android 常用设计模式速查
文章整理了Android开发中常见技术点对应的设计模式,给出伪代码和典型使用位置,包括单例、Builder、工厂、观察者、适配器、代理、装饰器、外观、模板方法、策略、责任链、状态、命令、MVC/MVP/MVVM等。目的是帮助理解模式在Android中的实际应用。 摘要
2026-09-03 15:38:17
361
原创 Mac操作的一些坑-记录贴
⇧+⌘+。显示/隐藏文件 ,想在全局.gradle文件夹下配置全局的gradle.properties文件会用到,哪个老哥说是英文的句号,让我郁闷了小半小时,记录下Mac下快速回到桌面,三个手指往上滑动,新增个空白的桌面即可未完待续…...
2020-07-26 23:23:00
1069
原创 自定义View简介
文章目录onMeasure()实操:ScrollView + ListView 会显示不全问题onDraw()onTouch()自定义属性onMeasure()// 获取宽高的模式int widthMode = MeasureSpec.getMode(widthMeasureSpec); int heightMode = MeasureSpec.getMode(heightMeasureSpec);// 获取宽高的值 int widthSize = MeasureSpec.getSize(wi
2020-07-26 23:11:15
1324
原创 使用Mac打开mht格式文件
记录下一个坑,在win环境使用印象笔记导出格式为mht格式的文件,回到家使用Mac打开后。。。一、场景这边在使用Mac下打开保存的mht后缀格式的笔记文件时,发现支持的很不好,基本乱码,使用Chrome无法打开。尝试过下载各种印象笔记,有道云笔记,为知笔记等都无法打开,Chrome插件也尝试过,除了mhtviewer付费软件没尝试过。wps是可以打开,但是支持的非常不好。二、解决方案更改扩展名 .mht 为.eml,用邮件软件打开看是否正常一般邮件软件对该格式兼容性较强,然后点击默认会使用Mac自
2020-07-25 15:08:39
5339
原创 umeng推送客户端没收到
前言这边app组想把推送统一下,聚合推送选择了umeng,一切准备就绪,demo都正常运行,但是真正接入入app时,死活收不到推送,排查了下服务端,没问题。后续用控制台测试模式也无法接收到,基本问题定位在app端了。问题定位这个要从之前的app优化说起,自从功能越来越多后,我们的app也变成了一个多进程的应用,所以做了如下优化 /** * 判断是否是主进程 * * @return */ public boolean isAppMainProcess()
2020-06-15 22:34:59
554
2
原创 okhttp3x java.lang.nosuchmethoderror: no static method create
项目中一直使用的okhttp版本是3.x的版本,这次在某个module中使用了4.x的okhttp后,运行报错。java.lang.nosuchmethoderror: no static method create(ljava/lang/string;lokhttp3/mediatype;)lokhttp3/requestbody; in class lokhttp3/requestbody; or its super classes (declaration of ‘okhttp3.requestbo
2020-06-14 22:49:24
3377
2
原创 firebase上调试上传event
Fabric被彻底关停,好在可以直接迁移到firebase.但是firebase上的enent有点不是特别友好,所以记录下。需要自己手动添加自定义事件eventName,且有个数限制调试自己上传的event是否成功在terminal终端下输入如下指令,在调试过程中,可以看到具体的上传内容文档链接上传过程中注意eventname只不支持特殊字符(Event names can be up to 40 characters long, may only contain alphanumeric
2020-05-23 16:50:13
2000
原创 Linux常用指令
一、常用Linux指令lsof -i:9950 找到某个端口号的pid[root@root bin]# lsof -i:80-bash: lsof: command not found执行下面命令进行安装:yum install lsofkill -9 31664(pid) 结束某个pid应用程序 -9强杀rz 直接打开文件传输文件 选择文件上传sh 文件名 直接运行sh文件里面的脚本cat 文件名 编辑rm 文件名 删除 会弹出对话框 需要输入ycd …/ 返回上一层文件夹
2020-05-23 16:21:44
411
原创 Android Studio中设置代理
一、能科学上网(开启代理)后,as中的设置步骤1.设置对应的端口2.测试二、去除代理(坑)1.设置界面选择No proxy.发现去除的不是很彻底,检查项目中的gradle.properties配置文件是否有自动加入配置ip、port的代码,有则去除。2.别忘了as全局配置代码中的gradle.properties是否被加入ip、port的代码,去除后正常三、今天是3.31号,特...
2020-04-01 10:22:52
14536
原创 迁移AndroidX的坑
1.近期项目做了AndroidX的迁移,发现其中还是有些坑点的。注意,不需要提前添加任何配置这边提前吃了个螃蟹,提前加了开启配置后预编译,然后再去启动第二步的时候,发现AndroidX未被完全覆盖,需要手动修改。。。mmp#表示当前项目启用 androidxandroid.enableJetifier=true#表示迁移依赖包到androidx,如果不启用在使用依赖包中的内容时可能会出现问...
2019-10-29 19:47:35
1104
原创 Android奔溃日志行数不对应
1.项目迁移到androidx后出现了奔溃日志行数不对应的问题,在日常开发中,甚是难受,问题定位比较麻烦。一番google后发现了解决方案https://stackoverflow.com/questions/52525155/crashlitycs-reporting-wrong-line-number-after-kotlin-migration2.原因:迁移androidx必须升级grad...
2019-10-29 19:40:02
1436
原创 入职两个月的一些总结
不知不觉来这个公司要两个月了,总体的感觉就是,来对了,刚刚好。所以总结下一些自己的不足和改进,然后就是打算做的一些事情,给自己立下一些flag。
2018-10-14 21:10:49
3975
1
原创 Android面试总结
以前都是看别人写面试经验,这次我也想写一次面试总结。说起这个很是惭愧,开发android有两年多的经验了,但是总感觉后知后觉,市场不断在变化。给我的感觉就是,15-16的时候出来只要你懂activity生命周期,会绑定数据,懂listview的复用机制,handler消息机制,事件分发机制,那么基本就能找到一份不错的工作,明显有变化的是17年,开始要懂得会用一些第三方的库,懂得基本的原理,然...
2018-08-11 18:04:23
642
原创 GreenDao无法生成xxxDao
我这边遇到一个问题,就是从公司svn拷贝过来的项目,一般情况下是不提交greendao目录中的gen目录的东西的,因为会自动生成。但是运行后发现指定目录下的gen目录不会自动生成。心情down到极点,一片爆红…解决方式(曲线救国): 那么我们换种思路,也就是说我们指定的目录下无法生成这个gen文件夹目录,那么我们去掉这个默认指定的目录,是否会在默认文件夹下生成这个gen目录呢,答案是...
2018-08-03 09:35:15
4871
1
原创 解决SVN Cleanup时遇到错误信息:Cleanup failed to process the following paths的错误
svn在偶尔会遇到Cleanup failed to process the following paths的问题。这里记录下我的解决方式1、遇到的问题如图 2、然后根据提示去clean up操作 3、好吧去解决它。工具文件夹选项,查看选择显示隐藏文件、文件夹、文件驱动。看到这个.svn的文件夹 4、找到wc这个数据库。用SQLiteManager打开 5、打开wc_l...
2018-07-17 16:40:07
3783
原创 ClickableSpan的简单使用
这里记录下ClickableSpan的使用。需要的效果是如下图 废话不多说,直接上代码。1.需要复写一个ClickableSpan的方法,这里可以自己定义效果package com.jmsht.taijixian.ui.message;import android.content.Context;import android.text.TextPaint;import and...
2018-07-04 10:30:56
6632
2
原创 ViewPager设置切换动画PageTransformer
这里记录下viewpager中的切换之间的渐变以及间距的动画 1、设置间距并展示多个页面边缘 主要是这个属性android:clipChildren=”false”表示的意思是: clipChild用来定义他的子控件是否要在他应有的边界内进行绘制。 默认情况下,clipChild被设置为true。 也就是不允许进行扩展绘制。那么我们设置这个ViewPager的父布局的android:cli...
2018-06-29 23:00:47
2439
1
原创 Android全局改变字体大小(坑)
这边分享一个功能需求,全局改变字体大小。当下的情景比较蛋疼…一个祖传的项目,需要在半路添加这个需求,各种字体大小已经写明在xml里面了,dp,sp,甚至xp不等。当时内心是拒绝的,但是由于用户反馈实在要做,而且app面向的用户为老年用户居多,还是决定踩坑了。这里也善意提醒大家,凡事留一线,日后好给自己留活路。所以,我进入了漫长的百度或者是google…正确的姿势勉强将就的姿势(成功...
2018-06-28 17:37:46
17719
12
原创 android post传递数组类型数据给后台php
这里分享一个android端传递数组给后台php的方式。后台要我传递的是一个二维数组,如下图。$data['Car']=array( "2_100" => array( "c1" => '2', "c2" => 0, "i" => '100', "c" => '00', "q&
2018-05-19 22:12:42
4421
1
原创 android开发笔记汇总(二)
有一段时间没有写博客了。一直想写,但是都被自己打败了,这里分享下这段时间遇到的bug之类的东西。adapter中的sort方法。。。 会自动生成两个基本对象,前面的是后一个对象,后面的是前一个对象,进行比较。一般是返回-1 0 1三个参数。。。负整数 0 正整数 0表示等于 1表示大于 -1表示小于吧dialog show之前要判断activity是否已经销毁。因为网络请求是异步请求,...
2018-04-19 22:16:57
1244
1
原创 android开发笔记汇总(一)
1、long类型转换为int类型: 一、强制类型转换long ll = 300000; int ii = (int)ll; 二、调用intValue()方法long ll = 300000; int ii= new Long(ll).intValue(); 三、先把long转换成字符串String,然后在转行成Integerlong ll = 300000; int ii = Integ
2017-10-03 21:19:20
655
ListViewForScrollview
2015-12-07
Genymotion-ARM
2015-12-17
信鸽推送Android端(Android信鸽推送demo)
2017-03-23
SoapUI Pro 5.4.0 X64_破解版
2018-07-05
轮播设置间距透明度
2018-06-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅