- 博客(57)
- 资源 (14)
- 收藏
- 关注
原创 flutter 路由 生成给 native 使用
发现问题:发现-> 目前使用flutter 开发 大部分应该是混合工程,一般会把 flutter 打包成为 aar,native 依赖使用,通过路由进行原生启动flutter 页面.问题-> flutter 端这边注册 register(‘main/login’,xxxMoudule()), 打成 aar,原生这边依赖 启动 flutter 页面 navigator.push(‘main/login’). 这样的情况写起来也麻烦,也要不断确认 增加了bug的风险.解决->
2021-06-22 16:36:37
346
1
原创 kotlin -> 协程 FunctionX 理解
kotlin suspend 对 反编译 java Function 部分进行分析是为为什么?demo.ktclass MyCoroutine() : Continuation<String> { override fun resumeWith(result: Result<String>) { println("MyCoroutine 回调resumeWith 返回的结果 " + result.getOrNull()) } over
2021-04-18 21:36:54
320
原创 JVM - 基础逻辑
该篇博客是 对于我理解JVM 的线索,并未达到供读者观看程度。下面图片 之前是我画图做的,这次迁移过来,方便自己阅读。1.GC堆java 虚拟机所管理的内存中最大的一块。java 堆是被所有线程共享的一块内存区域 唯一目的:存放内存实例对象,几乎所有的对象实例都在这里分配。tips:所有的对象分配在堆上面 并不是很绝对。1.jit 编译器2.逃逸分析3.栈上分配4 标量替换...
2020-04-28 17:40:23
262
原创 JAVA 之 疑问 - JVM顺序问题
// 情况一public class Test1 { // 3 count1 == 0 count2 == 0 private static Test1 test1 = new Test1(); public static int count1=1; public static int count2 = 5; private Test1...
2020-03-09 20:41:26
219
原创 JAVA基础 - 锁
1. 锁的分析悲观锁乐观锁synchronize 锁升级无锁偏向锁轻量级锁1.悲观锁 (ReentrantLock synchronized 等)描述: 总是假设最坏的情况,每次去拿数据的时候都任务别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞,因为synchronized我们也成为悲观锁。2.乐观锁描述:总是假设最好的情况,每次去拿...
2020-03-07 21:46:08
343
原创 JAVA基础 - volatile
目录:不可见性是什么?volatile 可以保证原子性吗?. 重排的示例和作用?Happends - before 是什么?volatile与synchronized 区别?参考1.不可见性是什么?1.1不可见性案例/** * 多线程修改变量 会出现 修改值之后不可见性 */public class VisibilityDemo1 { public static...
2020-03-01 16:04:48
272
原创 JAVA基础 - ArrayMap
ArrayMapmIdentityHashCode优势:1. 相比 hashMap 不会重建 hash映射,不会创建额外的对象。2. 删除时 缩小存储当前数组劣势:1. 不合适大量数据,效率比hashmap 低。...
2020-02-17 15:01:01
1695
原创 JAVA基础 - SparseArray
SparseArray关键点:二分法 - ContainerHelpers.binarySearch位非运算符(~)插入新的数据,如果没有增加数组大小 GrowingArrayUtils.insert插入新的数据,如果没有增加数组大小 GrowingArrayUtils.append用到 remove delete 才会 mGarbage = trueSparseArray...
2020-02-14 15:32:23
328
原创 kotlin 疑问和理解
kotlin 疑问和理解apply also run let 区别用法 var str :StringBuilder= StringBuilder(); var str1 = str.apply { append("aaaaa") 22222 } println(str1) var str2= str.also { ...
2020-01-10 16:13:09
354
原创 JAVA基础 - hashMap(JDK1.7)
这些问题你都知道了吗?hashMap 存储的和遍历 出来的 值 顺序是否一致?key == null 怎么存储。每次容量增大多少加载因子hashCode数据分布 随机性并发问题死链问题数据丢失问题定义的常亮或变量 /** * The default initial capacity - MUST be a power of two. * 必...
2019-11-17 20:29:04
317
原创 Android - ViewModel 理解的历程
为什么要对 ViewModel 进行理解。一切都是因为一个bug 而起。开发模式( 一个Activity + 多个fragment 组合的回退栈模式 )过程描述:第一步: 当用户点击 新闻列表第二步: 然后点击详情 进入详情界面第三步: 看见在详情界面有不喜欢一栏。第四步: 点击不喜欢 回到上一个界面 列表数据会自动 删除掉。看样子 合理来说是正常的对吧。可以删除。错...
2019-11-07 00:32:08
403
原创 JAVA - 多线程 - 线程池开篇
创作的心路历程:一直都想对多线程进行一个全面的了解,但是内部分享直接对着代码进行分享不太有好。所以就寻找一个切入点 就找到了 线程池。线程池都了解或使用过包含 重量级锁 轻量级 类似自旋锁多线程路上的基石正文带着问题 进行分析容易迷失代码中。准备基础知识各类线程启动方式区别?线程池必备的基础知识点。线程池中的线程 什么时候开始 run?线程池中的线程 如何...
2019-08-29 00:08:11
227
原创 JAVA - 线程池- 辅助理解
- 常用的创建线程 (常用的)继承Thread,再通过Thread的start() (不推荐,不便于管理)实现Runnable,再通过new Thread(runnable)包装后,start()扩展Thread类与实现Runnable接口的比较实现Runnable方式可以避免扩展hread方式由于Java单继承特性的缺点实现Runnable的代码可以被多个线程共享,适合多个线程处...
2019-08-27 23:07:35
214
原创 android - retrofit 源码分析
好记性不如写博客。进入自问自答环节:Retrofit 有什么东西呢?动态代理模式工厂模式建造者模式注解反射Retrofit 那些类是必须要说的?RetrofitrequestFactoryParameterHandlerHttpServiceMethodConverterCallAdapter思考问题?请求加密 响应解密 该如何做?返回体加入特殊字段怎么做...
2019-06-12 23:19:39
229
原创 Android - adapter 对 刷新控件扩展。
我们在使用上拉加载,下拉刷新的时候。有同学会出现以下情况: 在activity 中对page 进行操作。 在每一个adapter对page 进行操作。如果是这样的话,你们可能需要一点点抽象思维因为page 操作是可以抽象出来的。作者写法优势减少了 重复代码时间,减少对page 操作错误率。我就直接上代码了,一看便懂。BaseRecyclerAdapt...
2018-08-23 12:10:37
499
原创 微服务-想法
对微服务想法:一年中我们不断对微服务项目进行改造,有一点点自己经验,分享一下。为什么我们使用微服务1.是因为微服务带给我们更容易上线,出现问题影响范围不大。 2.基础模块不断完善,可以提高很好效率。 3.完善自动化部署,更简易。 4.日志收集定位更方便。 5.业务按照不同纬度进行拆分,更便于理解。 6.处理问题效率更快。服务拆分原则横向拆分: 按照不...
2018-08-09 17:53:38
237
原创 jenkins gitlab php laravel 自动化搭建
git branch : 1:master(正式) 2:beta_projectName(公测) 3:dev_projectName(开发)以后补充。
2018-06-06 10:56:17
2559
原创 laravel-项目架构设计
这里我先贴一个项目:有时间在写我为什么这样做。项目架构 1 :Route 模块化 appApi(Android ios) userRoute DescRoute webApp(小程序) userRoute DescRoute w...
2018-05-25 18:32:27
1489
原创 数据库_水平分区_原理讲解
水平拆分注意:文章是结合自己项目场景,已经所看到书籍参考而成,供大家参考。1.为什么水平拆分?2.怎么水平拆分3.水平拆分利与弊为什么水平拆分?描述:垂直拆分过之后,当mysql 单表数据超过3kw 被频繁访问或者数据更多的时候,会出现性能下降比例较大情况,这个时候就需要水平拆分解决性能问题。怎么水平拆分?水平拆分(就自己来看)不需要特别使用技术,更多是一种逻辑...
2018-04-08 22:30:39
1160
原创 数据库_垂直拆分_原理讲解
垂直拆分注意:文章是结合自己项目场景,已经所看到数据参考而成,供大家参考。1.为什么垂直拆分?2.垂直拆分利与弊为什么垂直拆分?描述:当业务剧增时,特别是写操作非常频繁。 此时脑子中会灵光一闪 : 主从复制,读写分离其实是可以暂时解决一部分问题,把一小部分读操作交给从服务器了。 但是效果可能并不明显。Why?此时如果写操...
2018-03-29 14:59:21
426
原创 andorid 分片上传思路
看了七牛 Android SDK 分片上传模块功能先记录一下思考过的想法(不断完善): 文件读取形式: RandomAccessFileFile 文件FileSize 文件大小uploadSize 上传块大小modifyTime 修改时间offset(uploadSize + offset(上一个大小)) // 上传大小位置 位移回调 上传下一个。 // MaxRetri
2017-09-27 17:56:10
727
原创 Okhttp WebSocket 优化总结
开场白:squareup大法好啊。简述:关于一些推送和IM 功能,可能大家都采用的是第三方(环信,融云 极光等) 但是我们由于这一块的业务目前还是特别大,就自己搭建了聊天和推送系统。利与弊:利:第三方 集成简单,方便使用,持续有团队优化。自己搭建 扩展性高,数据 安全性比较高(提升到https)弊:第三方数据相比自己搭建安全性差一些,所有数据都经过第三方。自己搭建开发周期时间长
2017-07-24 12:25:53
3696
原创 java____设计模式之动态代理模式
参考:http://www.infoq.com/cn/articles/cf-java-reflection-dynamic-proxy每次学习到设计模式都是从源码中get到的新东西。很早之前看过书,当时感觉设计模式好完美,开阔了我的视野。当我深入理解了我就是想说:卧槽,好牛逼。上面都是扯淡,那我们就开始咯。我们记住一些话:(重要) 1.代理对象和被代理对象一般实现相同的接口,调用者与代理对象进
2016-09-05 17:11:43
657
原创 Rtrofit 2.0 封装 借鉴和思考。
我这里借鉴了许多博客。 在这里谢谢各位博主,但是我真的是不好找你们的链接。如果下次遇上了,在添加进来。希望你们不要见怪。0.怎么封装比较好 0.1 怎么封装Heads Token,自定义参数。 0.2 怎么集中处理错误提示,以及网络Dialog, 0.3 怎么对返回Json 自动转换Bean。(感觉这个东西的做法,万变都一样。) 0.4 怎么集中输出后台的Json数据。0
2016-08-18 15:15:27
1170
原创 EventBus3 源码解析(个人理解) 之二。
如果还没有看过EventBus3 源码解析(个人理解) 之一 建议先看前面的。这一篇主要是为了解决以下这两问题?5.为什么听别人说eventbus3的运行效率貌似比原来的快了许多倍?6. Eventbus 有哪些很好的设计?对于第五个疑问解答之前,我想问下大家在用Eventbus 3的时候有没有听说过注解,编译时注解? 如果没有弄懂的话,可以先搜索一下网络上面的知识,弄清楚概念在继续。Eve
2016-06-12 22:45:18
1011
原创 EventBus3 源码解析(个人理解) 之一
前言: 还记得我曾经在知乎上面提问:说怎么看源码,什么样的姿势比较好? 但是也很少人回答我。但是也没有关系。原来我不知道怎么回答,现在 估计能回答一点点了。姿势_1: 就拿EventBus框架来说吧!我们首先应该会用是吧.基本功能: 注册: EventBus.getDefault().
2016-06-03 20:08:48
5440
1
原创 android__编译时注解的尝试。
尝试一下 编译时注解的方法。hongyang运行时注解为什么要写这一篇博客啦? 因为我们项目中用到了EvenBus 这个框架了。 EvenBus 在3.0的时候已经采用编译时注解了,从那一点可以看出来啦 那我们就看图说话吧。 当我们android studio 编译的时候就会把注解获取到,从而进行处理。 当然啦,我们这一篇不说Eventbus。需求: 获取对象
2016-05-28 18:17:01
1514
原创 ThreadLocal 工作原理。
看到ThreadLocal 有没有想起来 Thread 这个类?那么就来说说ThreadLocal 是干嘛的吧!作用: ThreadLocal是一个线程内部的数据存储类。通过它可以在指定线程中存储数据,并获取到指定线程中的数据。那么就跟着我一步步来解开疑惑吧~~step1: 先实例化一个对象。 private ThreadLocal<Boolean> mBooleanThreadLocal =
2016-05-23 22:27:48
945
原创 解决 activity 和 fragment 传递数据方法。
最近项目中使用到了EventBus 这个库。感觉真是棒极了。应用场景: 场景一: Activity 与 Fragment 进行数据传递的时候,怎么办? 1:定义静态变量全局控制 2:使用回调接口。 3:传递handler 在fragment 直接调用。代码赶脚耦合度高吗?而且不宜于扩展,是不是还看不出来哪里耦合度高了是吧? 在接着看第二个场景:。
2016-05-19 23:55:19
943
原创 java设计模式_________Builder模式
开发android有一年多的时间了,不经意间其实用到了许多设计模式,不得不说设计模式真的给力—–我服。下面进入正题来讲讲Builder模式的正确使用姿势。目录走起来:Builder模式介绍。Builder模式定义。Builder模式使用场景。Builder模式实战讲解。Builder模式不足。 1. Builder模式介绍。Bulider 模式是一步步来创建一个复杂对象。它允许用户在不知
2016-05-16 00:13:15
923
原创 android 加入广告页的思路以及实现。
今天把实现的Demo上传了。估计大家有看到许多app,都有广告启动页是吧,但是大家有没有好奇是怎么做出来的啦?参考:当当app我们可以观察到已开始显示自己的logo页。然后在把广告也覆盖在logo上面,同时显示跳过广告页的友好提示。还有什么啦?(如果在第一次下载的时候怎么办了?显示广告还是引导页?为什么它的会白屏一会了?多长广告页可以定时更换。其实有时候观察也就能出现答案哦我们先看下最后
2016-05-09 23:16:23
7993
原创 接口与抽象类的区别
在项目中有什么地方有使用到了 接口 和抽象类。但是只会用,不能说这怎么能行啦。1.抽象类 2.接口 3. 抽象类和接口的区别1. 抽象类1.1 抽象类的定义: 1.2抽象方法: 1.3 抽象类的属性:1.1抽象类的定义: 抽象类必须用 public abstract 修饰的(也可以不用写public 因为默认就是) 如果用 private 或者 p
2016-04-20 23:56:38
739
原创 自定义View______绘制圆盘
先说点废话哦。 我突然喜欢上了工作,不是为了别的,只是因为工作让我感觉到有趣。 为什么要做这个圆盘啦,是因为我们项目需要加入大转盘的功能, 但是需求变化了,现在大转盘的优先级不是最高。我在此记录一下, 如果项目需要我将补全完整。效果图准备: 现在已经有的功能: 1.背景的颜色根据动态加载的View变化而变化。 2.根据View个数,以及初始角度变化而旋转
2016-04-09 01:18:33
3796
2
原创 自定义View______商品详情界面效果(纪录片)
开头:每天记录一下自己学习到了什么,在此记录一下,这样才不会忘记。1.思路是这样的。 1.1 自定义一个ViewGroup,里面嵌套两个ScollerView实现商品详情模仿图。 1.2 当第一个ScollerView 下拉到最底部的时候在向上滑动,就滑动到第二页,当第二页滑动到最顶部的时候,在滑动就滑动到第一页。说了这么多的滑动那就不可能是生硬的滚动,而是很循环渐进的效果。 在这
2016-03-31 00:23:10
593
原创 三星手机拍照,上传照片或者下载导致图片旋转90°的解决办法。
项目需求。 因为项目中需要对拍照之后的图片进行上传。 (这也是一个简单的问题) 但是就是三星手机(三星note3),出现拍照之后照片旋转了九十度。 然后我们上传上去,然后通过其他手机请求url在此显示还是旋转过的。说说我们解决问题的路径。 1. 起初以为我们上传照片的时候就是旋转过了的,但是查看图片所在的位置,结果发现图片是正的。 那么是为什么再次下载图片还是旋转的,我们就
2016-03-17 16:23:50
6938
原创 android_________测绘流程
本片文章记录我对view 测绘事件的理解,便于我对以后知识的回顾。 (谢谢艺术探索这本书籍让我对android理解更深。)目录: —————————————————我是分割线—————————————————————— 1.大体view 测绘流程。 ——— SpecMode 2.MeasureSpec
2016-03-12 22:41:53
717
原创 android studio 查看 /data/data/ 目录资源
主要是为了记录: 在研究Glide缓存策略的时候,遇到了没有root的手机不能查看/data/data/ 目录的情况。特此记录 我下用android studio 虚拟手机查看的(应该是自带root功能了吧) step1: 打开虚拟手机。 step:2 运
2016-03-05 14:18:54
19331
1
原创 自定义view____通讯录字母特效
android 通讯录 字母特效! 本来想用到项目中的,结果老大说ui界面大变动。就没有用到项目中, 以下提供一个思路,剩下的交给各位朋友了。如果项目中,运用上了继续修改。先记录一下。图片: demo下载地址
2016-03-04 20:41:41
480
原创 adnroid 使用service。 更新apk
项目中要使用到版本更新的功能,参考了开源中国源码,也遇到一些问题,再次记录一下:遇到的问题: 1. 1.notifacation.bulider怎么使用? 2. notifacation和notifacation.bulider有什么区别? 3. 文件创建遇到的坑。 4. bind和service传值。 5. 退出时要注意的事项。step1: 开始需要比对服务器
2016-03-03 20:00:10
822
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人