自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (4)
  • 收藏
  • 关注

原创 ThreadLocal源码解析(Android-30)

从get、set为切入点,往下看边分析边考虑几个问题如果做到线程分离?为什么会导致内存泄漏?为什么这么设计?如何解决的?/*Copyright © 1997, 2013, Oracle and/or its affiliates. All rights reserved.DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.This code is free software; you can re.

2021-11-01 13:50:40 1496

原创 Java基础-泛型

前提专业术语有时候比较难懂,胖子觉得,用不严谨的说法,泛型的白话解释就是:传入的任意对象(注意是对象)泛型一般有三种:泛型类、泛型接口、泛型方法泛型类:典型泛型类—ArrayListpublic class A<T> { private T data; public T getData() { return data; } public void setData(T data) { this.data = data;

2021-08-09 17:07:28 78

原创 日常出入坑-Android之SSLHandshakeException

前提:1.第三方包,gradle引入2.项目在上午可以正常运行,下午就包错,错误日志如下Could not resolve com.mob:MobToolsMC:+.Required by:project :app> Failed to list versions for com.mob:MobToolsMC.> Unable to load Maven meta-data from https://mvn.mob.com/android/com/mob/MobToolsMC/ma

2021-08-01 11:36:15 423

原创 日常出入坑-RecyclerView之Duration

前提:上下滑视频列表,实现方式:RecyclerView+LinearLayoutManager产品需求:1.黑名单功能。videoList添加author进黑名单,删除该作者在本地列表的所有视频。胖子的思路1.从列表最后往前删除,防止remove时,由于索引产生变化的bug。int tempVideoId = 0;for (int i = mAdapter.getData().size() - 1; i >= 0; i--) { BaseVideoBean baseVideoB

2021-03-18 11:46:01 110

原创 用户体验层面-APP启动优化

胖子最近在忙配合业务层,赶项目,紧急中没有考虑到应用细节问题,现回头从用户体验的层面一一来解决用户体验层面-APP启动优化都知道,app启动分热启动和冷启动,这里主要从应用层来优化冷启动(会涉及部分原理)。冷启动:点击桌面APP icon时,启动应用,这时后台没有该应用的进程,AMS会通知zygote孵化出应用进程,随后一连串各种通知,到达我们最关心的Application和Activity。来看看Application和Activity的执行顺序,我们从这里下手,优化APP的启动。Appli

2021-02-03 19:14:27 88

原创 Java虚拟机(JVM)-自动内存管理(简约版)

JVM,是Java Virtual Machine(Java虚拟机)的缩写,要完全弄明白JVM,可能需要花很多时间去学习、研究。胖子语录:点成线,线成面,切勿贪心,否则一脸懵逼我们先了解、弄清楚以下几点,剩下的,读者自行深造。推荐纸质书《深入理解Java虚拟机》or深入理解Java虚拟机,建议一样来一发,要雨露均沾,同时加深印象,虽然内容一样的。1.Java内存区域与内存溢出异常1.1 JVM运行时数据区1.1.1 程序计数器程序计数器(线程私有),占一个非常小的内存空间。它可以看成当前线程所

2020-10-10 16:47:53 187

原创 加深对RxJava线程切换的理解之ObserveOn和SubscribeOn

这几天看到一篇些文章,关于RxJava线程切换的,说到RxJava的线程切换,就一定会涉及ObserveOn和SubscribeOn两个方法。网上对于ObserveOn和SubscribeOn的调用顺序、调用有效等有很多文章,读者可以自行搜索。胖子只是为了加深对RxJava线程切换的理解,同时完善一些网上结论不严谨的地方,毕竟实践出真理。这里只做结论,对于原理,会另起一篇,介绍RxJava原理机制时,详细介绍。先来说说大概介绍下ObserveOn和SubscribeOn分别是做什么的,看官网的描述和

2020-09-25 16:36:10 262

原创 Androi事件分发( 二),解决事件冲突

通过《Android事件分发(一)》我们了解了Android的事件分发机制,不熟悉的,可以回头再去看一遍。有了这方面的知识基础,我们来解决实际研发的过程中,老生常谈的事件冲突问题。解决这类问题,其实是有方法的。下面先介绍这两种方法,然后再结合以上三种问题,分别进行讲解方法一:外部拦截法顾名思义,外部拦截法,就是指在外部进行拦截,让事件不传递下去。其实就是对外部的dispatchTouchEvent和onInterceptTouchEvent动手脚方法二:内部拦截法事件冲突大致分为三种1.方向一

2020-08-26 14:20:13 316

原创 基于Android9.0,了解Android事件分发(一)

基于Android9.0,了解Android事件分发还是那句话:点成线,线成面,切勿贪心,否则一脸懵逼先记住这个事件分发的顺序:Activity->ViewGroup->View以及三个重要的方法:方法名作用是什么?什么时候调用?dispatchTouchEvent()传递(分发)事件当前View能够获取点击事件时onTouchEvent()处理点击事件在dispatchTouchEvent()内部调用onInterceptTouchEvent

2020-08-13 16:47:42 163 1

原创 基于Android9.0,了解Android消息机制

基于Android9.0,了解Android消息机制​ 还是那句话:点成线,线成面,切勿贪心,否则一脸懵逼​ 由于Android的主线程(UI线程)是非安全的,而且Android开发规范的限制,不能在UI子线程中访问UI控件,否则就会出发程序异常。这个时候,就可以通过Handler来将更新UI的操作切换到UI线程中执行。因此,Handler被大家经常用来更新UI,但是从本质上说,Handler并不是专门用于更新UI的。​ Android的消息机制主要是指Handler的运行机制,然后得到Message

2020-07-19 14:49:47 142

原创 基于Android9.0,了解启动流程

先记住四个进程和三种方式。四个进程1.Launcher进程2.system_server进程3.App进程4.Zygote进程三种方式1.Binder方式2.Socket方式3.Handler方式点击桌面APP图标,Launcher调用startActivitySafely(Launcher进程)/** * Default launcher application. */public final class Launcher extends Activity im

2020-07-14 15:39:35 236

《Pro Git》中文版 PDF

《Pro Git》中文版 PDF,本章介绍开始使用 Git 前的相关知识。学习了该资料的知识,git是几乎不会有问题了

2015-09-06

android与java的知识点

详细描述了android与java的不同,有利于新手学习。

2012-10-18

第三方登录的总结文档

用于iOS和Android开发第三方登录。

2012-09-27

最新ADT,安装简单

android最新ADT,配合最佳SDK使用,达到最佳效果。

2012-04-21

空空如也

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

TA关注的人

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