自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

豆子的博客

豆子会发光。。。

  • 博客(88)
  • 资源 (17)
  • 收藏
  • 关注

原创 NestedScrollView嵌套viewpager不显示内容的解决方案

NestedScrollView嵌套viewpager不显示内容的解决方案

2023-03-13 15:51:45 1462

原创 Android 算法之排序算法

冒泡排序冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素(两两比较),如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。算法描述比较相邻的元素。如果第一个比第二个大,就交换它们两个; 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数; 针对所有的元素重复以上的步骤,除了最

2021-11-26 14:59:06 746

原创 BroadcastReceiver普通广播、有序广播、拦截广播、本地广播、Sticky广播、系统广播

BroadcastReceiver翻译为广播接收者,Broadcast是一种广泛运用在应用程序之间的传输信息的机制,简单的可以理解为传统意义上的电台广播,通俗一点,发布失物招领广播机制是一个典型的发布—订阅模式,也就是我们所说的观察者模式。广播最大的特点就是发送方并不关心接收方是否接到数据,也不关心接收方是如何处理数据的,通过这样的形式来达到接、收双方的完全解耦合普通广播普通广播是完全异步的,通过Context的sendBroadcast()方法来发送,消息传递效率比较高,但所有receiver

2021-09-10 16:37:26 821

原创 Android手机适配问题怎么处理,都有什么方案。

前言Android的屏幕适配一直以来都在折磨着我们Android开发者,本文将结合:Google的官方权威适配文档 郭霖: Android官方提供的支持不同屏幕大小的全部方法 鸿洋:Android 屏幕适配方案 凯子:Android屏幕适配全攻略(最权威的官方适配指导) 自身的思考&实践给你带来一种全新、全面而逻辑清晰的Android屏幕适配思路,只要你认真阅读,保证你能解决Android的屏幕适配问题!目录图定义使得某一元素在Android不同尺寸、不同分辨率的.

2021-09-08 15:54:09 3591

原创 ANR发生的原理是什么, 怎么排查

定义ANR 的全称是 Application No Responding,即应用程序无响应,具体是一些特定的 Message (Key Dispatch、Broadcast、Service) 在应用的UI线程(主线程)没有在规定的时间内处理完,进而触发 ANR 异常。ANR类型1.KeyDispatchTimeout这个主要是按键或触摸事件在特定时间内无响应,一般 Android 平台默认超时时间是 5s 会报 anr,不过有些平台会修改这个时间,比如 MTK 有些平台就是 8s 的超时时间

2021-09-07 15:39:02 1197 3

原创 有多少种单例模式,枚举算不算单例,单例模式中不用volatile会导致什么问题?volatile特性是什么?为什么android中不推荐使用枚举。

有多少种单例模式以公司中的CEO来举例,一个公司中只能有一个CEO,所以CEO就是单例,可以使用单例模式来实现,下面以这个例子来实现单例.1、饿汉方式public class CEO{ //静态对象 private static CEO mCeo = new CEO(); //构造函数私有 private CEO(){} //公有的静态函数,对外暴露获取单例对象的接口 public static CEO getInstance(){.

2021-09-06 17:39:18 464

原创 序列化相关 :Serializable还是Parcelable

序列化是什么?为什么需要序列化?1.序列化是什么?序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。序列化分为两大部分:序列化和反序列化。序列化是这个过程的第一部分,将数据分解成字节流,以便存储在文件中或在网络上传输。反序列化就是打开字节流并重构对象。通俗的来讲:序列化是将对象存储为二进制格式。2.为什么要把对象序列化?序列化是将对象转换为容易传输的格式的过程,是为了解决在对对象流进行读写操作时所引发的问题。对象序列化的两个使用场景

2021-09-04 15:47:58 101

原创 事件分发机制及滑动冲突解决

事件分发机制是一块Android比较重要的知识体系,了解并熟悉整套的分发机制有助于更好的分析各种点击滑动失效以及滑动冲突问题,更好去扩展控件的事件功能和开发自定义控件,同时事件分发机制也是Android面试必问考点之一,总结一句:事件分发机制很重要。Android事件分发流程网上关于事件分发机制的的博客很多很多,但是很多都是写个Demo然后贴一下输出的Log或者拿源码分析,然后一堆的注释和说明,读者可能很难读懂,或者是读懂之后,过不了多久便又忘记了。那么,今天我用一张图来总结一下Android整个事

2021-09-03 16:05:04 201

原创 Handler的理解

参考 “酱爆大头菜”:https://juejin.cn/post/6995854886386532388本文就以生活点餐的例子再结合源码原理进行解析。希望对你有一点帮助。 来,咱们进入角色。Handler,Looper,MessageQueue,Message的全程协作的关系就好比一个餐厅的整体运作关系Handler好比点餐员 Looper好比后厨厨师长。 MessageQueue好比订单打单机。 Message好比一桌一桌的订单。接下来我们回顾下我们餐厅点餐的场景,餐厅点餐分为标准点

2021-08-18 14:47:36 265

原创 摘自一博主的牛逼面试总结 !!! 五颗星(阿里(分享面试过程))

作者:酱爆大头菜链接:https://juejin.cn/post/6952849875784433671这里我只摘录面试部分的,想看原版的小伙伴还请点击上方链接面试思路技术实力是面试的大前提,你需要非常清晰的了解自己,了解自己所要面试岗位,这是决定面试是否成功的先决条件。比如我工作时间4年多,我要面试的岗位是高级Android工程师,那我这个自身素质是否能满足面试岗位所要求的条件?其实这一点在我刚刚面试的时候也是拿不准的,因为在公司已经3年,这段时间对外界的发展其实是不了解的,..

2021-08-17 14:35:20 458

原创 个人认为重要的Android面试总结七

网络通信的过程,以及中间用了什么协议这个问题专门有一个动画,大家可以看看:网络数据原来是这么传输的(结合动画解析):https://mp.weixin.qq.com/s/PFhA3WdS-2aSdbWqGyTETQ再简单总结下:客户端: 在浏览器输入网址。 浏览器解析网址,并生成http请求消息。 浏览器调用系统解析器,发送消息到DNS服务器查询域名对应的ip。 拿到ip后,和请求消息一起交给操作系统协议栈的TCP模块。 将数据分成一个个数据包,

2021-08-17 09:37:44 95

原创 Android各版本迭代信息集合

Android在版本迭代中,总会进行很多改动,那么你熟知各版本都改动了什么内容?又要怎么适配呢?Android4.4 发布ART虚拟机,提供选项可以开启。 HttpURLConnection的底层实现改为了OkHttp。 Android5.0ART成为默认虚拟机,完全代替Dalvik虚拟机。 Context.bindService()方法需要显式 Intent,如果提供隐式 intent,将引发异常。Android6.0增加运行时权限限制如果你的应用使用到了危险权限,.

2021-08-09 17:06:49 293

原创 个人认为重要的Android面试总结六

Activity,Dialog,Toast的Window创建过程上篇文章说过Dialog的创建,先来回顾下:1)Dialog//构造函数Dialog(Context context, int theme, boolean createContextThemeWrapper) { //...... //获取了WindowManager对象,mContext一般是个Activity,获取系统服务一般是通过Bi...

2021-08-09 15:22:20 201

原创 个人认为重要的Android面试总结五

kotlinkotlin为什么被设计出来?kotlin被设计出来并被Google推广,主要有以下优势:完全兼容Java 更少的空指针异常 更少的代码量,更快的开发速度...

2021-03-04 14:04:27 485 1

原创 个人认为重要的Android面试总结四

二十六:RecyclerView预取机制与缓存机制讲一下RecyclerView的缓存机制,滑动10个,再滑回去,会有几个执行onBindView。缓存的是什么?cachedView会执行onBindView吗?这两个问题都是关于缓存的,我就一起说了。1)首先说下RecycleView的缓存结构:Recycleview有四级缓存,分别是mAttachedScrap(屏幕内),mCacheViews(屏幕外...

2021-03-03 17:01:47 129

原创 个人认为重要的Android面试总结三

十八:注解是什么?有哪些元注解注解,在我看来它是一种信息描述,不影响代码执行,但是可以用来配置一些代码或者功能。常见的注解比如@Override,代表重写方法,看看它是怎么生成的:@Target(ElementType.METHOD)@Retention(RetentionPolicy.SOURCE)public @interface Override {}可以看到Override被@interface...

2021-03-03 14:11:50 335

原创 个人认为重要的Android面试总结二

九:ViewModel 是什么,说说你所理解的ViewModel?...

2021-02-25 16:41:48 260

原创 个人认为重要的Android面试总结一

一:说说View/ViewGroup的绘制流程View的绘制流程是从ViewRoot的performTraversals开始的,它经过measure,layout,draw三个过程最终将View绘制出来。performTraversals会依次调用performMeasure,performLayo...

2021-02-25 14:09:28 163 1

原创 Intent传递数据大小

我们知道可以通过 Intent 和 bundle 在 activity 或 fragment 间进行通信,但是 Intent 传递数据时,如果数据太大,可能会出现异常。

2021-01-14 10:02:13 285

原创 volatile关键字在Android中到底有什么用?

volatile这个关键字我用到的也不多,今天看了郭婶的文章才发现此关键字大有作为,特此记录。对volatile关键字的作用有疑问的同学,可能都不太了解CPU高速缓存这个概念,所以我们先从这个概念讲起。 CPU高速缓存和可见性问题当一个程序运行的时候,数据是保存在内存当中的,但是执行程序这个工作却是由CPU完成的。那么当CPU正在执行着任务呢,突然需要用到某个数据,它就会从内存中去读取这个数据,得到了数据之后再继续向下执...

2020-10-14 16:41:50 130

原创 ImmersionBar -- android 4.4以上沉浸式实现

github地址:https://github.com/gyf-dev/ImmersionBar原地址:https://www.niwoxuexi.com/blog/android/article/351.html直接看效果图,最下面有各个版本的效果图

2020-09-24 15:36:18 295

原创 哪些优化是我们迫切需要掌握的呢?

今天看了鸿洋 的一遍优化文章,顿觉不记录下就不行IO优化小伙伴们在开发项目是时不时的遇到UI卡顿吗,大部分UI卡顿主要是因为在主线程操作IO导致的。例如:经常使用SharePreference 导致概率性的卡顿。在微信等一线大厂中,早已放弃了SharePreference 作为键值对存储小伙伴是不是感觉很惊奇,不用SharePreference 那用什么?腾讯在去年开源了一个存储框架叫 MMKV。对,他就是用来做IO优化接下来我们一起来看看两者在存储上的性能对比。mmkv的优势.

2020-09-24 15:28:56 254

原创 MVC / MVP / MVVM 到底该如何选?有对错吗?

0预备知识看完本文可以达到什么程度了解如何分析一个架构模式 掌握 MVC,MVP,MVVM 架构定义和实现阅读前准备工作clone [CommonTec](https://github.com/5A59/android-training/tree/master/common-tec/CommonTec)项目,其中 architecture 模块是本文架构模式的对应的示例代码文...

2020-03-25 13:32:58 476

原创 悬浮 顶部的 scrollView

今天状态不好 感冒了 直接先看效果效果吧布局<?xml version="1.0" encoding="utf-8"?><layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto...

2019-10-25 09:45:15 1373

原创 Android 浅谈MVVM模式

近段时间在实际应用项目中接触到了MVVM模式编写的代码,发现与MVP有很大的不同,这里做一下个人记录。其实关于MVVM模式的原理我们大家在很早之前就接触过,网上也有很多释义,我就不多做解释,大家需要的话可以打开链接看一下,我在这里挑选了几篇 Android中MVVM是什么 Android开发之MVVM新姿势探究 MVC MVP MVVM 谈谈我对Android应用架构的理解...

2019-08-23 09:30:22 298

原创 Android 浅谈MVP模式 二

上次编写了浅谈MVP模式 一 ,其实“二”只是对“一”的另一种写法或者是说是一种延伸,我会像“一”一样直接在代码中对MVP模式进行注释,好了,直接上代码(也是我实际项目中封装的)...

2019-08-23 09:08:33 206

原创 Glide v4

从v3迁移到v4 链接 :https://muyangmin.github.io/glide-docs-cn/doc/migrating.html#v3v4

2019-06-20 10:21:12 167

原创 一句话搞定,简化 Android 6.0 系统复杂的权限操作

今天主要讲讲 Android Acp 。Acp 为 Android check permission 缩写,此库简化 Android 6.0 系统复杂的权限操作而编写使用 Gradle 构建时添加一下依赖即可:compile 'com.mylhyl:acp:1.2.0'特定支持批量权限申请,不需要重写 onRequestPermissionsResult 方法,Activity 与 F...

2019-06-20 09:41:55 381

原创 Adapter中传入监听listener与应用时Tag的结合使用

相隔数月不见终于又见到大家了,最近换了份新工作,一直在忙,学到了很多很实用的东西,接下来会一一分享给大家。Adapter传入监听1.实现监听  public class PopularFragment extends BaseMvpFragment&lt;PopularInterface.PopularPresenterInterface&gt; implements Popul...

2018-10-09 11:03:14 668

原创 Android中常用的设计模式

一:参考文档先介绍参考文档(或许我们更容易明白):另记录本人可参考 QQ15 MobileSafe 两个Demo有哪些在实际 Android 项目中用到的设计模式?Android开发中常见的设计模式Android中常见的设计模式Android设计模式之23种设计模式一览Android中常用设计模式二:然后总结一下其总结内容多根据参考文献文档而来,还请了解文档内容(一)什么是设计模式1. 基本定义:...

2018-05-04 14:41:04 11442 4

原创 Android 浅谈MVP模式 一

一直想记录下最近学习MVP模式的一些心得,又怕写的太渣,没办法,先写写然后及时更新。 我会粘贴一些代码,对于MVP模式的理解会在代码中详细注释例一:闪屏界面判断是否已经登录/** * MVP 思想 : MVP中Activity/fragment属于View ,因此要有一个View的接口,然后Activity/fragment实现View接口 * P 中创建业务层 Presenter中...

2018-05-04 10:21:59 1155

原创 Android WebView及WebView的神坑之旅

WebView的一些神坑最近在开发过程中遇到一个问题,主要是WebView页面,需要调用本地相机拍照及图库,遇到一系列的神坑,这里结合本人所查阅的资料给大家一一说明。进入正题,首先来了解webview,这里我分享两篇大佬的博客1.WebView开车指南2.WebView详解3.WebView深坑之旅本人也是首次使用H5页面调用相机及图库,本以为只要将页面展示就可以,其他的都是前端的事情,我还能偷偷...

2018-03-27 10:46:27 3787

原创 Android 性能优化

一般情况下,我们谈性能优化基本上会从以下几个方面App启动速度优化UI流畅度优化内存优化apk瘦身电量优化还有些网络速度优化、以及特定类型app的一些针对性的优化,比如播放器起播速度等...我们重点谈论上面5个方面。性能优化正常的流程是,发现自己某方面与竞品差距比较大,比如UI渲染速度,需要通过某种方式去发现为什么比别人慢,往往需要利用一些工具,然后可以做一些针对性的调优(代码优化、实现方式改变等...

2018-03-21 15:37:18 254

原创 搞懂 Android Studio 构建那些事

1.Android 构建系统构建 APK 的过程是个相当复杂的过程,Android 构建系统需要将应用的资源文件和源文件一同打包到最终的 APK 文件中。应用可能会依赖一些外部库,构建工具要灵活地管理这些依赖的下载、编译、打包(包括合并、解决冲突、资源优化)等过程。应用的源码可能包括 Java 、RenderScript、AIDL 以及 Native 代码,构建工具需要分别处理这些语言的编译打包过...

2018-03-19 15:10:39 1594

原创 android.view.WindowLeaked 的解决方案

leak 是泄露的意思,WindowLeaked 应该是窗体泄露, 碰到这种异常的原因我觉得是:在某个Dialog或者某个PopupWindow正在显示的时候我们去finish()了承载该Dialog(或PopupWindow)的Activity,所以抛出这种异常,因为这个Dialog(或PopupWindow)的WindowManager已经没有谁可以附属了,所以它的窗体管理器已经泄漏了。 an...

2018-03-15 10:24:27 3337

原创 Android 搜索框的实时查询/模糊查询

在搜索框的检索中我们经常会遇到“精确检索”、“模糊检索”,精确检索我就不多加解释了,我们看下模糊检索:参考:http://blog.csdn.net/jdsjlzx/article/details/46514761http://www.cnblogs.com/jeffen/p/6958235.htmlhttp://blog.csdn.net/ljd4305/article/deta

2017-10-08 15:13:28 23841 13

原创 AndroidStudio导入项目在 Building gradle project info 一直卡住

项目开发中我们难免会从网上下载一些我们认为比较好的案例进行学习,但是在导入Android Studio的过程中,有的案例会一直Building ,卡在 Building gradle project info 这一步,其主要原因还是因为被墙的缘故。而解决办法主要有两种:一 是直接下载gradle离线包,二 是修改项目的gradle-wrapper.properties里的gradle版本为

2017-10-06 14:39:49 279

原创 Android 图片随着手势缩放,平移,并且支持多点触控

效果图:现在app中,图片预览功能肯定是少不了的,用户基本已经形成条件反射,看到小图,点击看大图,看到大图两个手指开始进行放大,放大后,开始移动到指定部位~~~想要做到图片支持多点触控,自由的进行缩放、平移,需要了解几个知识点:Matrix , GestureDetector , ScaleGestureDetector 以及事件分发机制1、Matrix参考:http:

2017-08-30 16:28:05 13998 12

原创 Android 使用数据库操作应用加锁、未加锁,列表展示效果

效果图:要求:1.

2017-08-26 10:11:01 2025

原创 Android 使用ListView实现列表条目分组展示(两组)小标题悬浮在顶部

效果图:要求:1.获取手机中的应用,是系统应用还是用户应用。2.展示两组应用,为两组应用添加小标题。3.滑动列表,当滑动至顶部时,小标题交替悬浮。写这个功能前,我也和往常的惯例一样查了一些资料,(滑动组件顶部悬浮固定)我们也参考下:http://blog.csdn.net/ganshenml/article/details/53112722http://www.jb

2017-08-25 09:19:57 3590

检索框实时查询

检索框实现实时查询(给EditText添加文本改变前的更改监听,当文本发生改变时获取输入内容使用模糊查询查询数据库将内容展示到listview中)

2017-10-08

图片随手势缩放平移,多点触控

单张图片预览中图片随手势缩放,平移,并且支持多点触控操作

2017-08-30

数据库操作

依靠数据库进行简单的应用列表获取,添加,删除,查询操作

2017-08-26

列表条目分组展示

列表分组展示,滑动组件悬浮固定效果

2017-08-25

拍照,选择图库图片剪切

实现拍照,选择图片进行图片剪切并保存

2017-08-22

画廊放大缩小效果

实现画廊在滑动时的放大缩小效果,并且滑动停止后某图居中。

2017-08-22

CircleView

自定义实现数字圆环,填充圆环颜色,单一颜色,多种颜色。

2017-08-03

流程选择器

流程选择器,进度选择器,步骤选择器

2017-07-22

ViscosityPoint 粘性控件

Android 仿QQ未读消息拖拽删除粘性效果

2017-07-20

FlowLayout

流式布局,并且可以单选,多选,滑动,限制选择,点击改变标签颜色。

2017-07-18

生成二维码

二维码的生成

2017-07-15

PickerView

PickView 时间选择器 城市选择器 选项选择器

2017-07-12

PullToRefreshLibrary刷新

上拉加载下拉刷新

2017-07-09

本地数据库储存

数据储存之本地数据库储存

2017-06-30

微信语音聊天

仿微信语音聊天,在6.0以后运行时权限的添加,在模拟器和真机上运行的区别

2017-06-27

仿通讯录,联系人列表

带检索栏的仿通信录,联系人列表

2017-06-19

ViewpagerPoint

轮播图滑动指示点连带效果

2017-06-15

空空如也

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

TA关注的人

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