自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

享受技术带来的快乐

目标赋予我们生命的意义和目的。有了目标,我们才会把注意力集中在追求喜悦,而不是在避免痛苦上。...

转载 不是人人都懂的学习要点

http://www.cnblogs.com/watsonyin/archive/2012/10/22/2734741.html 学习是一种基础性的能力。然而,“吾生也有涯,而知也无涯。”,如果学习不注意方法,则会“以有涯随无涯,殆矣”。   一.学习也是一种能力 看到这个标题,有人会说...

2012-12-12 15:54:05 5654 9

转载 一个三流学校程序员的奋斗

文章是转载的,我不是一个毅力很强的人,总得一些激励人的文章来激励自己   我也在一个三流的学校,在找有关考研的文章的时候看到这篇文章 觉得不错,不敢独享,拿出来共勉……   看完后我又一次明白,勤能补拙,一个人的成功,往往在于坚持 没有挫折,不经历艰难的日子,就没有美好的明天…… 忘...

2012-06-08 14:47:26 8311 18

转载 HashSet中add()方法的使用

HashSet 传入对象,怎么过滤 首先,我们知道所有的Set里面都套了一个Map,使用Map的Key存值,Value存放一个固定的Object,这是适配器模式。源码如下: public class HashSet<E> extends AbstractSet<E&...

2020-06-19 12:33:21 131 0

转载 Android 原生webview传递header前端H5如何接收

开发背景 跟其他公司合作的一个项目,传递参数的方式为原生通过自定义header头参数,由前端来接收。踩坑1 原生传参 安卓原生传参的方式很简单,通过webview.loadUrl这个方法,如下: Map<String, String> map = new HashMap&...

2020-06-17 18:05:14 113 0

原创 小米净水器更换滤芯步骤和水龙头亮黄灯的解决办法

【开篇序言】 众所周知,无论何种品牌的净水器,滤芯都是有一定使用寿命的,而不是一次性安装可永久使用,如果遇到无需换滤芯这类宣布,请远离,不靠谱。换滤芯,小米净水器也不例外,小米净水器从外到内,分别为PP棉滤芯(对自来水进行一级过滤,过滤掉如泥沙、铁锈、纤维等粒径较大的颗粒物)、前置活性碳滤芯(对...

2020-06-06 18:57:07 1058 0

转载 Android 巧用 flexboxLayout 布局

FlexBoxlayout是Google推出的开源的可伸缩性布局,在项目中也会经场使用,大大提高了用户的体验。 compile 'com.google.android:flexbox:1.0.0' 有前端基础的同学估计都知道 CSS 中这个布局,用来为盒状模型提供最大的灵...

2020-06-01 17:53:15 133 0

转载 Gson 解析 Json,容错才是关键,举几个常用的实例!

在上篇文章中,提到了GSON 在 JSON 序列化和反序列化之间,数据容错的情况, 最简单的利用@SerializedName注解来配置多个不同 JSON Key 值,或者再使用@Expose来配置一些例外的情况。更复杂一些的数据,可以使用 TypeAdapter 来解决,TypeAdapter...

2020-05-28 18:30:36 209 0

转载 Gson在使用时怎么对JSON容错处理

序 “JSON是一种具有自描述的、独立于语言的、轻量级文本数据交换格式,经常被用于数据的存储和传输。而GSON可以帮我们快速的将JSON数据,在对象之间序列化和反序列化。” GSON 的toJson()和fromJson()这两个方法,是GSON最基本的使用方式,它很直观,也没什么好说的。但当...

2020-05-28 17:02:42 102 0

转载 Integer.valueof()和Integer.parseInt()的区别

Integer. valueOf()可以将基本类型int转换为包装类型Integer,或者将String转换成Integer,String如果为Null或“”都会报错。 Integer. valueOf()是高效的 public static Integer valueOf(int i) {...

2020-05-26 11:43:01 145 0

转载 Kotlin ==和===的区别

总体来说kotlin中==比较的是数值是否相等, 而===比较的是两个对象的地址是否相等, 见如下代码: val a: Int = 999 val b: Int? = a val c: Int? = a println(b == c) //true println(b === c) //f...

2020-05-26 10:56:17 85 0

转载 Android Activity中获取View的宽高

我们在开发中经常会遇到在界面中比如 activity 使用到控件的 width 或者 height,大家也都知道在 onCreate() 中去 getWidth() 或者是 getMeasuredWidth() 拿到的结果都是 0,这是因为我们的 activity 的创建和 view 绘制不是同步...

2020-05-10 16:02:42 106 0

转载 View.getContext() 里的小秘密

一、引言 关于这篇文章内容适合哪些同学,可以先提几个问题请大家考虑下。 1、如果通过一个 ImageView 类型的view.getContext()来获取到的 context 是什么类型? 2、Activity 中调用setContentView()与addContentView()方法有...

2020-04-27 23:25:49 133 0

转载 Android中如何通过View获取Activity

在开发过程中,我们会遇到下面情况: Button button = (Button) findViewById(R.id.btn); button.setOnClickListener(MainActivity.this); if(button instanceof AppCompatBu...

2020-04-27 23:22:32 463 0

转载 kotlin 中::class 、class.java、javaClass、javaClass.kotlin区别

Kotlin的类 class Person { var name: String = "" var age: Int = 0 companion object { } } java类 public class Man { } 要知道获取的到底是...

2020-04-05 15:37:55 1465 0

转载 Activity 的 isFinishing()、isDestroy()

结论: isFinishing() 用于判断 Activity 是否正在 finish。 isDestroy() 用于判断 Activity 是否已经 destroy。 isFinishing() 返回 true 后 isDestroy() 才会返回 true。 一、isFinishing() ...

2020-03-09 23:40:02 577 1

转载 java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation

java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation 背景 手机升级系统后,到了Android8.0,打开原来自己开发的一个app后,发现直接打不开,即闪退了。 只...

2020-03-09 23:23:11 146 0

转载 Android开发--调用系统邮件

Android系统的开源性使其在当前智能手机市场占据绝对优势,同时也产生了各种各样的机型和系统。这使得我们Android开发人员需要根据不同的机型和系统去做对应的适配。 正文 本篇所述需求为调用本地邮件客户端发送带有附件的邮件。 第一种常规调用邮件 Intent intent = n...

2020-02-26 19:04:52 369 0

原创 Android获取系统邮件账号

android账户取得方法: 方法1:可以使用AccountManager 8.0以下动态申请运行时权限Manifest.permission.GET_ACCOUNTS 获取权限后取得账户的方法: 你可以用AccountManager.getAccountsorAccountManager...

2020-02-22 22:44:03 336 0

原创 android 唤起系统分享文件或发送邮件(附件)

代码如下: Intent intent = new Intent(Intent.ACTION_SEND); intent.setData(Uri.parse("mailto:")); intent.putExtra(Intent.EXTRA_EMAIL, addresses...

2020-02-17 17:35:46 332 1

转载 解决Glide图片缓存问题,同一url换图片不起作用问题

解决方法有两个: 1.每次加载都清理缓存。 但这个方法是不可取的, 会导致每次都去网络加载图片. 显示非常慢. 这就相当于废弃了缓存这个好用的功能: Glide.with(this) .load(uri) .asBitmap() .centerCrop() .diskCach...

2020-01-19 16:25:03 874 0

转载 Kotlin(run,apply)陷阱

泛型T 首先我们先看一下apply的源码 fun T.apply(block: T.() -> Unit): T { block(); return this } 这个泛型T可以为null,也就是说null也被赋予了apply的方法 null.apply{ Sy...

2020-01-16 15:29:33 143 0

转载 Kotlin下的5种单例模式

前言 最近在学习Kotlin这门语言,在项目开发中,运用到了单例模式。因为其表达方式与Java是不同的。所以对不同单例模式的实现进行了分别探讨。主要单例模式实现如下: 饿汉式 懒汉式 线程安全的懒汉式 双重校验锁式 静态内部类式 PS:该篇文章不讨论单例模式的运用场景与各种模式下的单例...

2020-01-15 12:20:04 127 0

原创 Kotlin知识点

让你的 Kotlin 代码远离 !! 简评:优雅的运用 Kotlin 的 null safety 特性,而不要简单的直接用 !!。 对于 Null 的检查是 Kotlin 的特点之一。强制你在编码过程中考虑变量是否可为 null,因此可以避免很多在 Java 中隐藏的 NullPointerE...

2020-01-15 12:07:31 122 0

转载 遇到android.os.BadParcelableException: ClassNotFoundException when unmarshalling怎么解决

本文基于本人在项目开发中遇到的实际问题,对ClassNotFoundException异常发生的原因和解决办法做了探究。 定位异常 首先看看出问题的代码。 Application 1 的部分代码: private MediaSessionCompat mMediaSession = ne...

2019-11-02 23:38:10 606 0

转载 android View 绘制完成监听

//view重绘时回调 view.getViewTreeObserver().addOnDrawListener(newOnDrawListener(){ @Override publicvoidonDraw(){ //TODOAuto-generatedmethodstub }...

2019-08-23 17:49:29 1563 0

转载 统计一个ViewGroup中包含的子View的个数(递归和非递归实现)

题:使用递归和非递归编码实现统计一个ViewGroup中所包含的子View的个数? 首先大家想到的肯定是递归实现,简单且较容易想到,代码如下: /** * 递归统计一个View的子View数(包含自身) * * @param root * @retur...

2019-08-22 18:32:57 274 1

转载 FlexBoxlayout在项目的使用总结

前言 FlexBoxlayout是Google推出的开源的可伸缩性布局,在项目中也会经场使用,大大提高了用户的体验。 本文主要记录了 在项目中使用RecyclerView(多布局item)+FlexBoxLayout时遇到的问题做个总结,希望对你有所帮助。 以自身的项目需求为例,如图所示: ...

2019-08-22 18:27:01 678 1

转载 Git : 合并 commit 保持分支干净整洁

本文的读者需要已经了解基本的 Git 操作和开发流程。 在我们开发完分支后,一般分支上会有很多 commit —— 少不了诸如 “fix typo”, “sth wrong in the previous commit” 之类的 commit。在合并到主干的时候,往往这类 commit 显得臃肿...

2019-08-22 15:43:15 421 0

转载 Git使用规范(Android版)

引言 本文根据Git分支管理策略,结合Git Flow分支管理实践,制定了这个适合Android开发中的Git版本管理规范。同时结合实际操作演示了使用示例,希望对你有所帮助。 1. 各分支简介 下面分支中提到的的 version 应该替换为具体的版本,name 应该替换为具体的开发人员...

2019-08-22 14:55:16 330 0

转载 Java Class对象与反射机制

Java Class对象 RTTI RTTI(Run-Time Type Identification)运行时类型识别,其作用是在运行时识别一个对象的类型和类的信息。这里分两种: 传统的”RRTI” — 它假定我们在编译期已知道了所有类型(在没有反射机制创建和使用类对象时,一般都是编译期已...

2019-08-09 16:41:02 156 0

转载 Git中tag标签的使用

一、什么是tag tag是git版本库的一个标记,指向某个commit的指针。 tag主要用于发布版本的管理,一个版本发布之后,我们可以为git打上 v.1.0.1 v.1.0.2 ...这样的标签。 tag感觉跟branch有点相似,但是本质上和分工上是不同的: tag 对应某次comm...

2019-08-06 20:10:29 4685 0

转载 Java内存模型及volatile

大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入。这时就存在一个问题,由于CPU执行速度很快,而从内存读取数据和向内存写入数据的过程则慢得多(不是一个数量级),因此如果任何时候对数据的操作都要通过和内存的交互来进行,会大大降低指令执行的速度...

2019-08-05 00:16:31 136 0

转载 Java线程等待唤醒机制(加深理解)

今天看源码的时候遇到这样一个场景,某线程里面的逻辑需要等待异步处理结果返回后才能继续执行。或者说想要把一个异步的操作封装成一个同步的过程。这里就用到了线程等待唤醒机制,下面具体看一下。 等待唤醒机制示例 下面代码是一个简单的线程唤醒机制示例,主要就是在Activity启动的时候初始化并star...

2019-08-04 16:28:06 2764 1

转载 源码分析 — Activity的启动流程

前言 熟悉Activity的启动流程和运行原理是一个合格的应用开发人员所应该具备的基本素质,其重要程度就不多做描述了。同时,知识栈应该不断的更新,最新发布的Android 9.0版本相较于之前的几个版本也做了许多改动和重构,但是大体流程变化不大。本文基于Android 9.0版本源码,从Acti...

2019-08-04 11:38:13 263 1

原创 Android 查看并解决重复依赖

有时候引入了新的sdk后,build会出现如下问题: Caused by: com.android.dex.DexException: Multiple dex files define Lcom/google/gson/internal/bind/TypeAdapters; ...

2019-07-31 18:12:32 1622 2

转载 从源码解析-Activity的setContentView是怎么加载XML视图的

首先新建一个Activity(如下图所示),我们点击AndroidStudio的顶部菜单栏的Tools菜单,依次点击里面的Android》Layout Inspector;这样就会弹出一个展示Activity窗口视图结构的窗口出来,如图 当前activity的布局里只添加了一个textvie...

2019-07-31 17:46:58 112 0

转载 从源码的角度解析Handler、Looper、Message和MessageQueue

原文链接:https://blog.csdn.net/yyh352091626/article/details/74280135 作为一名Android程序猿,想必在最开始都碰到这么一个问题,就是在子线程中弹出一个Toast,会抛出以下的异常: java.lang.RuntimeExcept...

2019-07-30 18:11:26 117 0

转载 Android系统启动流程—— init进程zygote进程SystemServer进程启动流程

原文地址:https://blog.csdn.net/qq_30993595/article/details/82714409 Android系统启动流程 Android系统启动过程往细了说可以分为5步: Loader --》Kernel --》Native --》Framework --》A...

2019-07-30 16:41:49 461 0

转载 从Zygote说到View——Zygote的启动流程及运行机制

原文链接:https://juejin.im/post/5c05366f6fb9a049f23c82f2 作者说这是一个系列的文章,目前看来也就这一篇了。 前言 Zygote 的中文意思是受精卵、合子,可以理解为孵化器——Android 中大多数应用进程和系统进程都是通过 Zygote 来生...

2019-07-30 15:27:09 106 0

转载 深入理解 Android 中的各种 Context

前言 网上关于 Context 的文章也已经有不少了,比如值得参考的有:Android Context完全解析,你所不知道的Context的各种细节Android Context 到底是什么? 但看了一下,发现还有值得讨论的地方,比如这个等式: Context个数 = Service 个数 ...

2019-07-30 13:56:45 132 0

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