Android知识
文章平均质量分 80
叽哩叽哩鸡
欢迎关注我的github, 提供Android/ReactNative各类技术的demo.
https://github.com/YouCii/
展开
-
从源码看Android常用的数据结构 ( SDK23版本 ) ( 一 , 总述 )
掌握知识点的最好办法就是看官方注释 /官方示例原创 2018-06-12 17:54:14 · 783 阅读 · 0 评论 -
记录 java 转 kotlin 踩的一个坑 : 回调方法不执行
现象前几天用AS自带工具把一个java转化为了kotlin原JAVA private SynthesizerListener mSpeakListener = new SynthesizerListener() { ... @Override public void onCompleted(SpeechError speechError) { ...原创 2018-12-29 09:42:58 · 1015 阅读 · 1 评论 -
android 关于activity跳转动画配置属性的解释
转载请标明出处.我的github, 里面写了一些比较新的小技术: https://github.com/YouCii/LearnApp总结看网上说的都不太明白, 自己再记录一下.activity动画常用的设置方式有两种:给activity设置style: 一般用于该activity在所有位置都需要自定义动画的情况;在startActivity或者finish时(之后立即调用)使用ov...原创 2018-12-21 11:26:06 · 685 阅读 · 0 评论 -
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 · 1260 阅读 · 0 评论 -
android 使用Drawable实现加载动画效果的按钮
前言最近项目有个需求, 需要一个展示下载状态的按钮, 类似这样:这个效果有多种方法都可以实现, 最初的思路是在自定义view里封装一个ProgressBar/Button, 然后根据状态设置两个控件Visibility, 后来想了想还是放弃了ProgressBar, 直接使用了ClipDrawable 作为 BackgroundDrawable 实现的, 感觉更方便一些.Github 上存...原创 2018-11-12 17:00:44 · 2555 阅读 · 0 评论 -
从源码看Android常用的数据结构 ( SDK23版本 ) ( 六, ConcurrentHashMap )
前言由于从源码看Android常用的数据结构 ( 五, Map篇 ) 篇幅已经很长了, ConcurrentHashMap 要看的又比较多, 所以单独放在这里.ConcurrentHashMap 类声明如下: public class ConcurrentHashMap<K, V&a原创 2018-08-17 17:38:59 · 461 阅读 · 0 评论 -
从源码看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 · 529 阅读 · 0 评论 -
从源码看Android常用的数据结构 ( SDK23版本 ) ( 四, Set篇 )
Set 比较简单, 可以理解为: 不允许元素重复的List. 接口方法也是全部继承自 Collection Set主要实现类有: ArraySet, HashSet和LinkedHashSet, TreeSet, CopyOnWriteArraySet 等ArraySet相比 HashSet 更节省内存, 大数据量时性能较差, 使用时间换空间的设计思想.ArraySet ...原创 2018-07-06 16:38:52 · 381 阅读 · 0 评论 -
从源码看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 · 2480 阅读 · 0 评论 -
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 · 2742 阅读 · 0 评论 -
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 · 1981 阅读 · 0 评论 -
从源码看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 · 743 阅读 · 0 评论 -
更完整的单例模式(java, kotlin)
前言java 常见的单例模式有三种: 懒汉: getInstance的时候实例化;饿汉: 引用AA类的时候实例化, 例如 AA.fun() 或者 AA.getInstance();静态内部类: getInstance的时候实例化, 写法比懒汉要简单;个人理解: 如果没有除了getInstance 方法之外的 public static fun 的话, 以上三种单例模式...原创 2017-12-06 15:47:18 · 1396 阅读 · 0 评论 -
Handler / MessageQueue / Looper 的个人理解( 源码分析 )
handler设计的目的是为了处理多线程下的消息执行顺序, 一般情况下用来防止多线程更新UI出现乱序/并发等混乱现象. Handler 的作用是 发送消息和处理消息, 只是一个工具, 并不是使用 Thread 所必须的.具体机制是: Handler 在初始化时会获取当前 Thread 的 Looper, 其中 android 主线程会自动初始化一个 Looper, 而自己创建的线程则需...原创 2018-04-25 15:34:37 · 187 阅读 · 0 评论 -
RxJava2 中多种取消订阅 dispose 的方法梳理( 源码分析 )
Github 相关代码: Github地址一直感觉 RxJava2 的取消订阅有点混乱, 这样也能取消, 那样也能取消, 没能系统起来的感觉就像掉进了盘丝洞, 迷乱… 下面说说这几种情况 几种取消的情况subscribe 时返回了 disposable: subscribe 不返回 disposable, 从 observer 的 onSubscribe 中获取: ...原创 2018-06-01 18:57:54 · 21089 阅读 · 2 评论 -
搞懂Android内Binder的前因后果
为什么Android要使用BinderBinder 作为一种 IPC 机制, 在 Linux 有很多的前辈, 为什么 google 会创建这么一种新的方式呢?Linux 现有 IPC 方式有这几类: 管道:在创建时分配一个page大小的内存,缓存区大小比较有限;消息队列:信息复制两次,额外的CPU消耗;不合适频繁或信息量大的通信;共享内存:无须复制,共享缓冲区直接付附加到进程虚拟...原创 2018-06-06 18:40:52 · 836 阅读 · 0 评论 -
AndroidStudio下使用 AIDL 构建跨进程 Service( 详细代码贴图 ), 填补网上的大多数坑
现在百度一下的 AIDL、跨进程 Service, 文章一大堆, 然而自己做起来还是有各种各样的不顺. 先说下实现流程AIDL最简单实现流程先写服务端新建AIDL文件 新建完成后会在src/main下生成aidl目录, 修改生成的aidl文件, 写入自己的接口方法 编译程序, AS 会在 build 目录中自动生成 aidl 对应的 java 实现 写好远程服务...原创 2018-06-07 15:57:44 · 4057 阅读 · 2 评论 -
android 解决文字跑马灯与属性动画冲突的问题
前言最近在做一个跑马灯的需求, 本以为一秒就能加上, 没想到掉到坑里两天…按照以前的写法是这样的: <TextView android:id="@+id/tv_title" android:layout_width="200dp" android:layout_height="wrap_content" andro...原创 2019-02-12 17:02:52 · 1402 阅读 · 4 评论