- 博客(16)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Android Jetpack组件 - ViewModel,LiveData使用以及原理
本文涉及的源码版本如下:com.android.support:appcompat-v7:27.1.1android.arch.lifecycle:extensions:1.1.1android.arch.lifecycle:viewmodel:1.1.1android.arch.lifecycle:livedata:1.1.1什么是ViewModel, 以及工作原理ViewMo...
2019-01-18 07:57:34
763
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Android Jetpack组件之Lifecycles库详解
Android Jetpack 组件是库的集合,这些库是为了协同工作而构建的,不过也可以单独采用,接下来会一一详细地学习这些库, 下面源码版本是com.android.support:appcompat-v7:28.0.0, 以及库android.arch.lifecycle:extensions:1.1.1Lifecycles库是拿来干什么的这个库从系统框架层去管理具有生命周期的组件,例如a...
2019-01-15 08:06:25
256
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 再不用ContraintLayout就out啦
ContraintLayout 属性本文基于ContraintLayout 1.1版本, 参考ContraintLayout官方文档并结合实际的例子说明ContraintLayout 有以下作用:Relative positioning 相对位置Margin 边距Centering position 中间位置Visibility behavior 可见性行为Dimension co...
2019-01-10 23:09:56
221
原创 Android Jetpack组件之数据库Room详解(三)
本文涉及Library的版本如下:androidx.room:room-runtime:2.1.0-alpha03androidx.room:room-compiler:2.1.0-alpha03(注解编译器)Room对LiveData扩展下面先列一个room中使用livedata的例子:@Daopublic interface UserDao { @Query("SELE...
2019-04-16 12:04:52
446
原创 Android Jetpack组件之数据库Room详解(二)
本文涉及Library的版本如下:androidx.room:room-runtime:2.1.0-alpha03androidx.room:room-compiler:2.1.0-alpha03(注解编译器)回顾一下安卓的SQLiteOpenHelper相关类首先放一个关于安卓数据库的类图:SQLiteOpenHelper是一个抽象类,通常自己实现数据库,需要继承SQLiteOp...
2019-04-16 12:03:44
1034
原创 Android Jetpack组件之数据库Room详解(一)
本文涉及Library的版本如下:androidx.room:room-runtime:2.1.0-alpha03androidx.room:room-compiler:2.1.0-alpha03(注解编译器)androidx.room:room-rxjava2:2.1.0-alpha03Room的介绍Room为了SQLite提供了一个抽象层,对Android SQLite进行了封装...
2019-01-26 12:22:01
703
2
原创 Context真正的实现与Context的设计模式
说明:基于API 26的源码分析1. 类图Context: 是一个抽象类。ContextImpl: 是Context真正的实现类。ContextWrapper: 继承Context,是一个包装类,有一个mBase的成员变量,mBase是Context类型,Context抽象方法都是由mBase实现的。子类通过调用attachBaseContext方法替换mBase成员变量。Applic...
2019-01-11 09:59:26
1629
原创 理解Java浅克隆和深克隆
克隆概念Java一切皆对象,克隆就是对对象的克隆;克隆可能听起来有点高级,也可以为对象复制或者对象拷贝。 平时开发中,什么时候需要用到对象复制呢?当你有一个实体类,有很多属性,并且很多属性已经赋了值,这个时候需要对这个对象进行修改操作,但后面还会用到原来的值,这时就需要对象复制。浅克隆用代码举个栗子先:public static class C implements Cloneable{
2017-11-15 17:00:56
452
原创 从JDK里Stack源码的角度重温栈的实现
栈概念栈是元素的集合, 其中有两个原则操作: - push, 它添加到集合中 - pop 则移除最近添加的元素Push - 添加元素到栈里下面是push,pop相关的几个关键方法的源码public E push(E item) { addElement(item); return item;}public synchronized void addElement(E obj)
2017-11-13 16:46:20
200
原创 从jdk源码的角度重温链表
链表由一系列节点组成的有序集合。分为单向链表, 双向链表,循环链表单向链表: 每一个节点都有一个指针指向下一个节点,最后一个节点的指针指向null双向链表: 每一个节点都有两个指针(这里用p, n代表两个指针),p指向前一个节点,n指向下一个节点。但第一个节点的p指向null, 最后一个节点的n指向null循环链表: 每一个节点都有两个指针(这里用p, n代表两个指针), 第一个节点的p指
2017-11-08 09:44:35
222
原创 站在大神的肩膀上 - 简述Android应用启动流程
最近看了很多大神的博客,都是有关Android启动流程文章 ,看得很辛苦,似懂非懂的感觉。这篇文章是对Android启动流程的总结和自己的见解,没有复杂源码分析,只是简单总结阐述流程而已。系统进程启动流程手机开机时,先由init进程创建 Zygote进程, Zygote进程会启动虚拟机(ART:4.4以上; Dalvik虚拟机:4.4以下;两者的区别是:ART是运行本地机器码的, 比Dalvik
2017-11-03 11:17:01
419
原创 适配安卓沉浸式状态栏的新姿势
Github Demo: https://github.com/lliuguangbo/AutoSystemBar针对状态栏,官方从4.4版本开始支持,但是4.4和5.0以上API是不同的,6.0以上提供了两种状态栏图标样式 分别是白色和黑色样式。针对状态栏图标样式的修改,小米和魅族提供额外的API,在6.0以下都支持,可以参考它们的文档: - https://dev.mi.com/consol
2017-11-03 11:15:47
680
原创 关于ViewStub的所有 - 优化你的布局
ViewStub - Optimized Layout作用:用于优化布局,懒加载,运行时才会加载布局。使用场景:通常用于有些隐藏的或者特殊情况才会显示的布局。 例如:一个ListView,数据为空时,显示一个布局告诉用户在xml中是使用:<ViewStubandroid:id="@+id/stub"android:inflatedId="@+id/subTree"android:lay
2017-11-03 11:15:06
282
原创 CollapsingToolbarLayout源码分析
version: 26.1.0DemoCollapsingToolbarLayout构造器//检查当前的activity是否引用AppCompat的主题ThemeUtils.checkAppCompatTheme(context);//文字收缩的帮助类mCollapsingTextHelper = new CollapsingTextHelper(this);....// 保证调用inva
2017-11-03 11:13:47
818
原创 Android之VectorDrawable
之前官方VectorDrawable只支持api 21以上,前不久android support libriry 23.2.0出来了,VectorDrawable终于可以向下兼容了。相比之前图片来说,矢量图可以解决不同尺寸手机图片失真问题,可以不用多套图片去适配不同尺寸手机,还可以减少apk体积.官方的icon全都提供svg的版本:material design icon注意:矢量图形的初始加载可能
2016-03-13 17:38:56
771
原创 EditText切换输入法软件的enter按键,实现跳到下一个EditText或搜索等
首先,输入法软件的enter键其实是可以变的,可以变next,搜索等等 例如:实现一个登陆界面 代码如下: xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_pare
2015-03-22 00:37:38
665
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人