- 博客(60)
- 资源 (9)
- 问答 (28)
- 收藏
- 关注
原创 Flutter 实现webview与原生组件组合滑动
前言欢迎关注我的Github和CSDN.最近在用Flutter写一个新闻客户端, 新闻详情页中的内容 需要用Flutter的本地Widget和WebView共同展示 . 比如标题/上方的视频播放器是用本地Widget展示, 新闻内容的富文本文字使用webview展示html, 这样就要求标题/视频播放器与webview可以 组合滑动.ps: 如果把新闻详情页都用html画出, 就不用考虑组合...
2019-03-26 10:54:23 7659 20
原创 RxJava2 中多种取消订阅 dispose 的方法梳理( 源码分析 )
Github 相关代码: Github地址一直感觉 RxJava2 的取消订阅有点混乱, 这样也能取消, 那样也能取消, 没能系统起来的感觉就像掉进了盘丝洞, 迷乱… 下面说说这几种情况 几种取消的情况subscribe 时返回了 disposable: subscribe 不返回 disposable, 从 observer 的 onSubscribe 中获取: ...
2018-06-01 18:57:54 21319 2
原创 java 多线程需要处理的问题/volatile/指令重排
volatilevolatile 有两种语义: 1. volatile 修饰的变量可以保证其内存可见性, 即在读写的时候都是操作主存, 而不是操作分配给各个线程的cache; 2. volatile 可以阻止指令重排. 此作用并不是因为语义1的原因. java的内存分为主内存和各个工作内存, 工作内存里存有该线程下的局部变量和从主内存里拷贝的共享变量副本. 当变量没有volatile...
2018-04-13 16:20:43 2924
原创 Git命令
前言之前一直使用AS自带的git工具, 功能确实非常强大, 使用也非常简单. 然而脱离了AS之后, 我仿佛变成了一个弱智, 想到万一哪天AS不能用了, 岂不是直接抓瞎了, 看样子还是非常有必要学习下git命令的.廖雪峰的这篇文章非常适合初学者学习, 强烈推荐, 我甚至还赞助了十块钱.此笔记参考了上述文章, 补充了很多也非常实用的命令, 记录在此以供复习查阅.经验记录在push时提示远端有提交不允许push的情况, 可以用rebase远端分支替换之前常用的pull, 避免产生merge commi
2021-09-26 19:40:54 408
原创 如何编译FFmpeg源码(Mac环境)
按照INSTALL.md流程安装,遇到以下问题./configure失败原因是gcc命令行开发工具损坏,需要安装command line tools直接安装时提示服务器无返回,apple官网手动安装command line tools,即可成功运行configure;编译后没有ffplay没有sdl2环境导致,执行 brew install sdl2 即可。注:SDL是一套开放源代码的跨平台多媒体开发库.-preset -qp -crf 不能识别libx264不能识别问题原因在于
2021-09-26 16:54:04 4640
原创 UCallExpression.resolve分析
简介在自定义Lint检测Detector时,我们有时候会在override fun createUastHandler(context: JavaContext): UElementHandler?中创建一个自定义的UElementHandler进行后续的检测,它内部定义了非常多的visitXX接口用于访问不同的Element(访问者模式)。其中,override fun visitCallExpression(node: UCallExpression)可以用来检测所有的代码表达式,如果我们希望将no
2021-09-26 16:48:34 483
原创 Flutter自定义View以及响应式UI框架原理
前言Flutter原生框架提供了MaterialDesign和Cupertino两种风格的UI,默认支持了非常多的样式,不过想做个性化的控件仍然需要我们进行自定义。Flutter像android一样也提供了一套画图API,下面我们就自己动手做一个简单的Demo,熟悉下自定义Widget的流程,然后探究下界面绘制的原理。UI层级框架我们都知道,Flutter的UI框架有三级结构:Widget...
2019-12-05 20:02:40 909
原创 ASCII码 和 Base64编码
ASCII编码简介ASCII码(American Standard Code for Information Interchange, 美国信息互换标准代码) 是基于拉丁字母的一套电脑编码系统, 是现今最通用的单字节编码系统.对应关系我们知道在java中, 一个char可以认为是一个int值, 举例:这里的对应关系就是基于ASCII编码, 其中A-Z, a-z, 0-9的对应关系如下:...
2019-08-23 23:49:31 7510
原创 android 解决文字跑马灯与属性动画冲突的问题
前言最近在做一个跑马灯的需求, 本以为一秒就能加上, 没想到掉到坑里两天…按照以前的写法是这样的: <TextView android:id="@+id/tv_title" android:layout_width="200dp" android:layout_height="wrap_content" andro...
2019-02-12 17:02:52 1456 4
原创 记录 java 转 kotlin 踩的一个坑 : 回调方法不执行
现象前几天用AS自带工具把一个java转化为了kotlin原JAVA private SynthesizerListener mSpeakListener = new SynthesizerListener() { ... @Override public void onCompleted(SpeechError speechError) { ...
2018-12-29 09:42:58 1072 1
原创 android 关于activity跳转动画配置属性的解释
转载请标明出处.我的github, 里面写了一些比较新的小技术: https://github.com/YouCii/LearnApp总结看网上说的都不太明白, 自己再记录一下.activity动画常用的设置方式有两种:给activity设置style: 一般用于该activity在所有位置都需要自定义动画的情况;在startActivity或者finish时(之后立即调用)使用ov...
2018-12-21 11:26:06 720
原创 React Native 实现热更新方案CodePush过程中遇到的问题 ( 搭建自己的CodePush服务器 )
前言CodePush官方:https://github.com/Microsoft/react-native-code-push自搭建CodePushServer:https://github.com/lisong/code-push-server参考文章:https://www.jianshu.com/p/417a165ca9d7https://github.com/crazyco...
2018-12-05 17:37:07 2418 2
转载 JAVA锁的优化(自旋锁, 锁膨胀, 锁消除)
转自: https://www.cnblogs.com/dsj2016/p/5714921.html首先说一下锁的优化策略。1,自旋锁自选锁其实就是在拿锁时发现已经有线程拿了锁,自己如果去拿会阻塞自己,这个时候会选择进行一次忙循环尝试。也就是不停循环看是否能等到上个线程自己释放锁。这个问题是基于一个现实考量的:很多拿了锁的线程会很快释放锁。因为一般敏感的操作不会很多。当然这个是一个不能完全...
2018-11-30 13:45:41 1174
原创 android 带有缩放动画的露边ViewPager
前言这标题想了半天, 也不知道描述得清不清楚, 还是放张图吧完整代码可以看下我的github: https://github.com/YouCii/LearnApp/blob/master/app/src/main/java/com/youcii/mvplearn/widget/ZoomViewPager.kt转载请标明出处, 谢谢.核心代码其实代码很简单, 其核心是ViewPage...
2018-11-20 16:01:22 1313
原创 android 使用Drawable实现加载动画效果的按钮
前言最近项目有个需求, 需要一个展示下载状态的按钮, 类似这样:这个效果有多种方法都可以实现, 最初的思路是在自定义view里封装一个ProgressBar/Button, 然后根据状态设置两个控件Visibility, 后来想了想还是放弃了ProgressBar, 直接使用了ClipDrawable 作为 BackgroundDrawable 实现的, 感觉更方便一些.Github 上存...
2018-11-12 17:00:44 2638
原创 ReactNative 的几个小Tips
自定义控件内部的Component的刷新时可以这样实现: this.refs.viewInFather.refs.viewInChild.setState(...), 类似于android里的 findViewById 获取到 FatherView, 然后 fatherView.findViewById获取到ChildView; 可以这样理解: Component 就是 android 里面的 ...
2018-09-10 14:44:11 329
原创 JVM 垃圾回收的一些知识( 新生代老年代 / MinorGC和MajorGC / 可达分析与回收算法 )
前言JVM的自动垃圾回收处理的是不再使用的对象/数组, 这些对象/数组都是存储在堆内存中新生代/老年代MinorGC和FullGC7个垃圾收集器
2018-08-31 16:42:58 3965 1
原创 JVM 运行时数据区详解( 总结修订了其他博客, 侵删 )
总览JVM 运行时数据区主要有以下几类JVM栈 (Java Virtual Machine Stacks) 堆内存 (Heap Memory) 方法区 (Method Area) 本地方法栈 (Native Method Stacks) 程序计数器 (Program Counter (PC) Register)引用https://blog.csdn.net/zhangqil...
2018-08-28 18:00:03 556
原创 HTTP请求时POST参数到底应该怎么传?
前言接口请求现在基本上是应用必备了, 各个请求库用了这么多年从来没出什么岔子. 不过最近却产生了一点疑惑, 为什么之前用的好好的POST方法访问新接口时提示传递参数为空呢? 为什么网络上的接口请求测试工具中有两种参数形式呢?这是因为 http 请求头内的 content-type 不一样导致的 (used with POST and PUT requests) HTTP 请求头...
2018-08-24 14:13:46 166178 15
原创 从源码看Android常用的数据结构 ( SDK23版本 ) ( 六, ConcurrentHashMap )
前言由于从源码看Android常用的数据结构 ( 五, Map篇 ) 篇幅已经很长了, ConcurrentHashMap 要看的又比较多, 所以单独放在这里.ConcurrentHashMap 类声明如下: public class ConcurrentHashMap&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;K, V&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;a
2018-08-17 17:38:59 526
原创 ReactNative 如何实现页面返回监听
前言Demo: https://github.com/YouCii/RNDemo有时我们在返回某页面时, 希望能重新取数据刷新下界面, 如果是在android中可以在onResume中处理, 那在RN中应该怎么做呢?尝试componentWillMount() / componentDidMount(): 事实证明这些方法只会执行一遍, 类似于 onCreate, 从其他界面...
2018-08-17 10:37:26 10410
原创 ReactNative 封装控件的一点经验
Demo请见我的github: https://github.com/YouCii/RNDemo/tree/master/src/js/component经常使用的布局封装成一个单独的控件是很常见的需求, 基本步骤如下:创建控件(类似于一个Screen)import React, {Component} from 'react'...export default class ...
2018-08-15 09:41:59 1025
原创 ReactNative setTimeout无效的问题
网上都在说是语法的问题, 要写成这样才行setTimeout(() =&gt; reject(new Error('请求超时')), timeOut) 然而我已经是这么写了, 还是有问题.后来发现是因为开启调试的原因, 直接运行就没有问题 (/ □ \)...
2018-08-06 17:05:00 2740
原创 从源码看Android常用的数据结构 ( SDK23版本 ) ( 五, Map篇 )
总览Map 的地位相当重要, 所以放在了 List 后面, 就让同属于 Collection 家族的 Set/Queue与 List 暂时分开吧. A {@code Map} is a data structure consisting of a set of keys and valuesin which each key is mapped to a single value. T...
2018-07-31 18:04:47 575
原创 ReactNative 封装 fetch 网络请求 (附 Base64加解密 和 Json解析 工具类)
Demo: https://github.com/YouCii/RNDemo转到 RN 之后还是不自主地按照 android 的方式搭框架, 今天把 fetch 封装到了 HttpUtils 里.import JsonUtils from "./JsonUtils";import EncodeUtils from "./EncodeUtils";export default clas...
2018-07-31 15:04:29 2001
原创 ReactNative 如何使用createBottomTabNavigator并实现界面传值/默认界面初始值 ( 附代码 )
废话前言createBottomTabNavigator 是用来创建底部导航栏的组件, 类似于Android的TabLayout+ViewPager的样式. 另外还有一个 createMaterialBottomTabNavigator 也可以实现此功能, 它提供了更好看的UI, 不过我自己试验后发现其切换tab时有两个问题: 一个是界面闪烁, 另一个是tabBar背景颜色变化动画会有卡顿...
2018-07-26 15:06:47 8795 2
原创 ReactNative使用精美图标库react-native-vector-icons(具体使用方法)
具体集成过程请看下面的文章, 感谢分享 https://blog.csdn.net/f409031mn/article/details/79522129我自己配置时执行了安装/关联两句命令就可以执行了, 没有其他的错误npm install --save react-native-vector-icons // 下载库react-native link react-native-vec...
2018-07-25 16:43:34 18236 7
原创 ReactNative踩坑之旅: Unable to resolve module 和 Error: Plugin
具体流程请看这个, 感谢分享: https://blog.csdn.net/qiyei2009/article/details/78820207在搭建的过程中碰见了很多问题, 大多数简单的搜索就可以解决, 但有两个较难排查, 现在记录于下 ps. 建议别用windows自带的命令行, 出现问题后报错信息不能复制是个坑, 建议用WebStorm自带的Terminal, 自动转入项目路径, ...
2018-07-13 11:06:54 51901 9
原创 DiskLruCache 的适用场景和使用方法
前言DiskLruCache 是一个得到官方推荐的第三方缓存工具, 它将数据缓存到了文件系统即磁盘中, 一般会用于缓存图片/视频等比较大的文件等. 下面分析下官方注释A cache that uses a bounded amount of space on a filesystem. Each cacheentry has a string key and a fixed numbe...
2018-07-11 13:48:23 2807
原创 从源码看Android常用的数据结构 ( SDK23版本 ) ( 四, Set篇 )
Set 比较简单, 可以理解为: 不允许元素重复的List. 接口方法也是全部继承自 Collection Set主要实现类有: ArraySet, HashSet和LinkedHashSet, TreeSet, CopyOnWriteArraySet 等ArraySet相比 HashSet 更节省内存, 大数据量时性能较差, 使用时间换空间的设计思想.ArraySet ...
2018-07-06 16:38:52 413
原创 并发编程的悲观锁和乐观锁
悲观锁和乐观锁 是并发情境下的两种设计思想, 它们的主要区别在于:悲观锁则认为肯定会发生并发问题, 要么我等着, 要么就让别人等; 乐观锁认为当前发生并发的可能性不大, 我先试试, 不行的话再说.一般只有在高并发下使用悲观锁才比较合适, 并发不是很严重的情况下使用乐观锁会有更高的效率.Java里的悲观锁和乐观锁在Java中, Synchronized 和 Lock 是悲观锁,...
2018-07-05 18:06:40 855
原创 从源码看Android常用的数据结构 ( SDK23版本 ) ( 三 , Queue篇)
总览A collection designed for holding elements prior to processing.Besides basic {@link java.util.Collection Collection} operations,queues provide additional insertion, extraction, and inspectionop...
2018-07-04 17:58:39 2565
原创 ArrayBlockingQueue 中使用的 ReentrantLock.newCondition()
在 ArrayBlockingQueue 的源码中, 可以看到两个Condition对象ReentrantLock lock = new ReentrantLock(fair);Condition notEmpty = lock.newCondition();Condition notFull = lock.newCondition();这两个condition是做什么的呢? ...
2018-07-04 11:21:51 2040
原创 从源码看Android常用的数据结构 ( SDK23版本 ) ( 二, List篇 )
总览List 接口的官方注释A {@code List} is a collection which maintains an ordering for its elements. Everyelement in the {@code List} has an index. Each element can thus be accessed by itsindex, with the ...
2018-06-26 10:53:54 770
转载 Java并发编程之happens-before
此篇文章转自: https://www.cnblogs.com/senlinyang/p/7875458.html 感谢分享happens-before是JMM最核心的概念,理解happens-before是理解JMM的关键。一.JMM的设计 首先,让我们先分析一下JMM的设计意图。从JMM的设计者的角度,在设计JMM的时候要考虑一下两个关键因素: 1. 程序员对内存模型的...
2018-06-22 15:24:03 358 2
原创 AndroidStudio下使用 AIDL 构建跨进程 Service( 详细代码贴图 ), 填补网上的大多数坑
现在百度一下的 AIDL、跨进程 Service, 文章一大堆, 然而自己做起来还是有各种各样的不顺. 先说下实现流程AIDL最简单实现流程先写服务端新建AIDL文件 新建完成后会在src/main下生成aidl目录, 修改生成的aidl文件, 写入自己的接口方法 编译程序, AS 会在 build 目录中自动生成 aidl 对应的 java 实现 写好远程服务...
2018-06-07 15:57:44 4140 2
原创 搞懂Android内Binder的前因后果
为什么Android要使用BinderBinder 作为一种 IPC 机制, 在 Linux 有很多的前辈, 为什么 google 会创建这么一种新的方式呢?Linux 现有 IPC 方式有这几类: 管道:在创建时分配一个page大小的内存,缓存区大小比较有限;消息队列:信息复制两次,额外的CPU消耗;不合适频繁或信息量大的通信;共享内存:无须复制,共享缓冲区直接付附加到进程虚拟...
2018-06-06 18:40:52 867
原创 android 各个存储路径及获取方法总结
各个路径最长用到的就这三个位置/data/data/包名//sdcard/Android/data/包名/ /sdcard/xxx前两个是应用内部存储, 会随着app的卸载而自动删除, sdcard中其他的文件夹不会自动删除, 除非用户手动删除, 否则会一直存在, 换句话说就是垃圾. Google官方建议把数据存储在 /sdcard/Android/data/包名/ 下....
2018-05-23 17:39:18 16240 1
原创 1.2.31版本kotlin中引用java中public static final变量出现错误的问题
现象java中private static fianal IS_RELEASE = true;public static fianal BASE_URL = IS_RELEASE ? &quot;A&quot; : &quot;B&quot;;kotlin中Log.i(&quot;a&quot;, BASE_URL)第一次运行, 显示A; 然后把 IS_RELEASE 改成 fa
2018-05-14 15:57:29 1578
AndroidStudio3.0.1 修改完代码后, 必须运行两次才会生效
2017-12-13
Fragment中嵌套ViewPager导致内部fragment不初始化的问题
2017-11-13
android 修改TextView内超链接的点击监听
2017-09-04
AndroidStudio2.3编译可以通过,2.2 preview报错
2017-04-15
AndroidStudio导入Eclipse项目后看不到layout的preview
2017-04-13
android 界面卡死,点击屏幕后退出
2017-01-11
android socket连接成功后不能进行http连接的问题
2016-12-01
android 长时间保持在某界面卡死
2016-11-02
android使用litepal出现的两个错误
2016-09-22
AndroidStudio 部署app失败
2016-09-21
求教css中关于float浮动的问题
2016-09-09
AndroidStudio 导包问题
2016-08-25
recyclerView上滑的时候取消隐藏toobar效果
2016-08-16
android activity跳转问题
2016-07-08
WebView 加载有时白屏
2016-06-13
androidstudio 错误 Protocol family unavailable
2016-04-18
web前端调试时 浏览器报错 type:Status report
2016-03-04
iReport柱状图怎样实现 X轴标签 的 完全显示?
2016-02-26
navicat for mysql 创建 带有IN参数 的过程时 保存报错
2016-02-01
mysql数据库如何设置一个字段不重复,一个字段自增?
2015-11-21
ScrollerNumberPicker 默认显示时 两条均被选中
2015-10-13
android如何实现 软件完全退出后仍能动作的闹铃功能?
2015-09-17
convertView.setSelected(true) 不起作用
2015-08-17
Android 屏蔽菜单键 无效
2015-07-07
Android ActionBar中Action按钮怎么设置长按监听?
2015-07-04
Android 中 TabHost 的 TabWidget 显示问题
2015-06-27
android 用selector设置edittext图片问题
2015-06-26
ListView 点击时 出现未更新崩溃
2015-05-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人