自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 RxJava 操作符的原理

Rxjava的操作符如just、crate是如何创建数据源的,创建数据源后使用Observable的filter、map等操作符进行转换,在转换的过程做了哪些处理,filter和map这样的操作符逻辑实现在哪里进行,他们之间有什么联系?

2024-02-28 17:39:53 766

原创 RxLifecycle源码解读—如何绑定生命周期

Rxjava在使用过程可能会造成内存泄漏,因此我们在开发中可能使用到Rxjava来绑定生命周期来及时释放Rxjava的流,RxFrament中的bindToLifecycle 方法如何实现和Fragment的生命周期绑定的?

2024-02-27 16:20:26 975

原创 Gradle编译的那些事——从Groovy到Gradle插件开发

1.Android项目中的一些build.gradle分析apply plugin: 'com.android.application'apply from: 'test.gradle' allprojects { repositories { google() jcenter() }}最初的疑问:想这几句gradle的设置是什么含义?其中apply是什么,做了什么?allprojects、repositories这些语句设置了什么,

2021-11-09 12:02:28 2882

原创 Git的使用

Git作为开发人员的管理工具,使用的最为广泛。从仓库的创建,到分支的创建提交,代码的拉取、合并、rebase,commit压缩简化,前前后后有若干命令,经常使用完毕就忘记,这里将最近常用的命令做一整理以供参考和记忆。主要包含:git暂存区介绍git分支的创建、远程分支服务添加,多个远程服务代码管理;git 代码拉取、合并,commit合并,rebase命令使用等

2021-07-12 21:55:46 3443

原创 Databinding源码如何实现数据绑定更新?看这篇就够了

DataBinding的使用简化了我们的代码,降低了代码的耦合性。DataBinding通过布局的设置就实现了绑定的过程。那么它是如何实现数据的绑定的?内部做了什么操作,我们在使用BaseObservable实现可观察数据对象的时候,databinding又做了什么,本文我们从源码的角度来理解这个过程。

2021-06-13 22:30:54 804

原创 Content是什么?Android中的Content、Activity、Application 有什么区别?

什么是Content?Android中的Content、Activity、Application 有什么区别?Context是什么?根据个人理解Context这个“上下文”是Android 系统的一个应用信息的描述类,也是对一些基础操作的抽象类。包含了比如StartActivity、StartService、registerReceiver等操作的抽象,同时提供了一些系统的配置信息,常量信息。Context本身不做任何操作,通过阅读源码我们知道,Context它有两个直接子类一个ContextImp

2021-03-25 17:40:29 2711

原创 Java值传递和引用传递

Java相关的面试经常会遇见这样的题目: private void function(int a) { a = 2; } @Test public void test() { int a = 1; function(a); System.out.println(a);// result == ...

2019-11-25 12:47:41 93

原创 数组—对角线遍历数组

数组问题:给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示。示例:[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]输出: [1,2,4,7,5,3,6,8,9]说明:给定矩阵中的元素总数不会超过 100000 。思路:对于对角线上的元素,仔细观察可以发现规...

2019-11-22 15:16:16 2014

原创 链表-合并两个有序链表

将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4对于给出的两个有序链表,采用一种方式合并两个链表,依然是有序的。思路:判断链表第一个节点的value值大小,按顺序排列,值小的就是新链表的head;然后...

2019-11-20 11:10:20 415

原创 setSupportActionBar添加Toolbar后系统之后如何创建Menu

在正常的开发中我们会使用 setSupportActionBar(Toolbar toolbar)方法设置Toolbar,通过Toolbar我们可以添加Menu等菜单操作。那么setSupportActionBar方法到底是如何设置了ToolBar并且关联到Menu的?首先从setSupportActionBar(mToolbar)看起。首先这个方法调用到了this.getDelegate()...

2019-08-05 16:47:33 943

原创 Handler到底是如何完成线程切换的?

Handler到底是如何完成线程切换的?这个问题要从Handler最初的用法和原理讲起。首先我们列出正常情况下一个Handler使用的步骤然后讲解分析如何实现,这里不对一些基础的概念做解释,具体的请查阅源码。Handler的使用步骤:1.调用Looper.prepare();2.创建Handler对象;3.调用Looper.Loop()方法。4.线程中发送消息。这样我们...

2019-05-09 18:01:48 3560 2

原创 7.0系统中FileProvider使用和源码解析

Android 7.0强制启用了被称作 StrictMode的策略,带来的影响就是你的App对外无法暴露file://类型的URI了。如果你使用Intent携带这样的URI去打开外部App(比如:打开系统相机拍照),那么会抛出FileUriExposedException异常Android7.0系统中添加了一个新的设置,采用新的方式FileProvider访问文件系统。下面结合源码对Fil...

2019-04-26 15:18:44 1358

原创 Android 代码设置启动模式

今天一个朋友问道了这个问题,从A activity启动一个B activity,B启动一个C,C启动一个D,A、B、C、D四个都是默认的启动模式。现象需要D直接回到A activity,但是不能重新创建一个新的Activity。怎么给D的Activity 设置一个Intent的参数能实现这个需求。其实我们之前写过启动模式是SingleTop,或者SingleTask的就知道,当一个activi

2018-01-09 21:36:36 7136

原创 完成一个进度条的定义

自定义View绘制图形,绘制文字基础实现。 2.创建一个类创建一个类,继承View 开始重写构造方法。写出需要的变量,在构造方法中获取将来属性中传递的

2017-11-28 17:25:38 646

原创 Android中的属性动画理解

属性动画中常用到类ValueAnimator,ObjectAnimator,属性动画就是通过改变对象的属性实现动画,这两个类完成了对象的属性从初始值到结束的值的变化。属性动高级使用,自定义估值器,自定义插值器。

2017-11-22 15:22:33 383

原创 Java 中的三角函数

java三角函数使用了解。

2017-11-21 11:30:23 31239

原创 RecyclerView 多布局使用

RecyclerView 的多布局使用,setSpanSizeLookup()方法设置占位比。

2017-08-31 12:38:48 2250

原创 门面模式的理解

门面模式的学习理解,门面模式是一个很好的分装的过程,可以简化代码的调用

2017-08-28 13:21:46 750

原创 Retrofit2 简单的使用

Retrofit2 很火的网络框架,前段时间了解了一些概念,最近又练了一下基本的用法,把一些东西记录下来,逐步一点点的学习使用。

2017-07-31 17:15:04 351

原创 Android版本控制设置忽略文件

在使用版本控制的时候有哪些文件需要我们过滤不加入版本控制,这里通过一个简单的实例说明版本控制的操作。

2017-07-26 14:50:55 741

原创 JDBC 简介和基本使用

最近复习javaWeb相关的一些东西,今天看JDBC连接数据库的一些操作,现在回头复习一下相关的东西,对于JDBC 的原理做一些了解。

2017-07-06 22:00:51 272

原创 Retrofit 入门概念

Retrofit 这个东西火了很久了,之前项目一直用别的网络框架没用到。现在也出来学学这个新东西,现在一起看看官网的一些介绍。

2017-07-06 16:40:41 336

原创 MVP架构入门梳理

MVP已经算是一个很常见的架构了,网上一搜一堆相关的内容。但是貌似实际的项目中使用的还不是很多,周围的朋友有个别的公司项目架构用到了。自己也常常听说相关的概念。虽然没有使用到,但还是动手操作,梳理一下,有一个更深刻的认识,这里对Google的demo和比较有名的demo梳理学习其架构的思路。

2017-07-04 16:34:12 314

原创 真的了解Servlet嘛

JavaWeb开发中有几个重要的东西,俗称javaWeb的三大组件:Servlet、Filter、和Listener。其中Servlet是javaWeb中最重要的一个组件。一起再来学一次这个重要的javaWeb重要的组件。

2017-06-29 22:32:45 451 1

原创 Android开发架构的一些思考

App架构的一些思考做了很长时间的的andrroid,也学了不少的技术,知识点,但是知道自己对于Android架构和面向对象的思想还是很缺少。之前学过一些JavaEE开发的东西,学习过程大牛们总是对于开发的架构分的很细很有层次。Dao,Service,Servlet 不同的层负责不同的功能。代码结构清晰,明白。我们在大学初期学习javaWeb,自己做项目的时候就是代码全部写在Servlet中,

2017-06-24 17:58:30 361

原创 android适配和设计问题一

做了很长时间的android了,对于UI层面的这个东西一直理解不是很清楚,最近从学UI网看到了一些资料,对于android UI设计,适配,页面关系等有了一个新的认识和理解,在此做一个记录。

2017-06-12 17:09:50 358

原创 Android 选择图片拍照裁剪压缩整理

一般项目中如头像这样的一些图片选择我们都直接调用系统的相机和图片库来操作,所以从这个调用到剪裁一起在捋一捋。调用选择图库:调用拍照,图片裁剪,图片压缩,图片旋转

2017-05-13 11:31:11 709

转载 翻译的很好的一篇Android mediaplayer

android MediaPlayer 播放音频,视频流程分析。

2017-05-06 11:18:52 245

转载 android多媒体数据库三

虽然今天来看,有关数据库,图库操作的库已经很多了,个人还是觉得要学一下基本的原理。前面学习了两篇大牛的多媒体数据库分析,觉得这里应该添加上一些基本操作方式,以前自己学习使用的时候没有做一个记录,这里为了让成一个系统,找到一篇相关文章,予以记录。数据库的基本操作方式分析:MediaStore这个类是android系统提供的一个多媒体数据库,android中多媒体信息都可以从这里提取。这个Me

2017-05-06 10:57:07 558

转载 android 多媒体数据库二

android多媒体数据库表分析,深入学习android数据库。

2017-05-06 10:34:37 3546

转载 Android 多媒体数据库一

android 多媒体数据库,对数据库表,存储做一个分析。

2017-05-06 10:26:16 510

原创 java 子类,父类静态代码块

今天突然想起以前做的一个试题,有关子类和父类静态代码块中执行顺序的问题,在代码中子类父类的静态代码块是怎么执行的,有覆盖吗,是继承的还是怎么样的?对此做了一个小的测试:一个People父类:public abstract class People { private static final String TAG = "People"; static {

2017-05-05 16:25:10 990

转载 Diffutils打造不一样的recyclerview

DiffUtil是recyclerview support library v7 24.2.0版本中新增的类,根据Google官方文档的介绍,DiffUtil的作用是比较两个数据列表并能计算出一系列将旧数据表转换成新数据表的操作.使用这个类可以优化如RecyclerView的刷新效果,提高效率。

2017-05-05 10:05:21 1228

原创 Android Studio 快捷键操作

最近准备切换使用mac 试试开发Android,结果一上手就傻眼了,完全不是想要的结果。什么都不会的感觉,鼓捣了半天终于把环境都安装好了,结果Win版本和Max版本的studio差异还是很大的,不过主要还是快捷键差异,需要好好记一下。随便百度了一下,发现没有一个比较全的快捷键说明,最后去官网查了一下。这里拿出来给不能上官网的同学们查阅。说明window/linuxMac

2017-04-22 17:39:42 345

原创 Android 中的“64k”问题和分包

前段时间做项目,因为项目应用了太多的第三方库和包,也出现了著名了“64K”问题。就是说代码中的一些东西超出了Android本身架构的极限。当时太着急,找到了解决的办法就搁置了。今天在看Android官方文档时发现,Android对这个问题早就做了处理。所以今天在此粘贴复制,做一个记录。随着 Android 平台的持续成长,Android 应用的大小也在增加。当我们的应用及其引用的库达到特定大小

2017-04-06 11:28:29 562

原创 DatePicker隐藏“天”选择

最近使用了DatePicker 这个控件,采用的是往上又一次分装的这种,就是两个卡片切换选择年月日和时间。有一个需求时这个选择器不显示出来“天”的这个选项。查资料发现,有人做了实现,具体代码还没弄清楚,这里做一个记录,方便后续使用。创建对象是调用方法: /** * 隐藏“天” * @param mDatePicker */ private void

2017-04-05 15:07:35 721

原创 自定义View操作一

自定义view ,组合的方式实现自定义view作为ListView 的item,内部嵌套GridView实现默认显示3条数据点击可以展开全部的需求。

2017-03-29 10:12:59 347

原创 几个简单动画属性使用

activity 切换动画overridePendingTransition()方法,属性动画translate 的基本使用。

2017-03-25 15:55:53 285

原创 日期格式化和SimpleDateFormat问题

今天把几个有关日期格式化的通用格式记录一下,以前总是用到了才去找,太麻烦了。其实总的来说,我们可能遇见的也就是几种形式:1.直接显示一个格式的日期2.拿到一个格式的日期转换成另外一种。3.其他常用的方式

2017-03-21 09:39:18 970

原创 环信即时通讯集成过程

最近一直挺忙,使用了一些第三方的东西,也遇见了不少的问题,前面使用的一些还好,比如推送,分享这些第三方都比较容易集成,这次集成环信的即时通讯还是费了一些周折,刚弄完,赶紧记录一下。一.前期需要注意的地方总的来说环信的开发文档和SDK做的已经很简单了,但是毕竟是第一次集成,使用别人的东西难免有点摸不着头。这次使用环信3.0版本来集成。基本上前面的操作都可以按着文档的说明进行了,这里感觉添加s

2017-01-23 11:31:27 7365 6

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除