
Android开发笔记
文章平均质量分 86
lollo01
这个作者很懒,什么都没留下…
展开
-
RecyclerView缓存机制源码学习
RecyclerView缓存数据结构RecyclerView相比ListView缓存机制更为复杂些,它一共有四级缓存,RecyclerView中缓存相关的代码在它的内部类 Recycler里,先来看一下Recycler中相关的数据结构第一级:mChangedScrap(离屏) 与 mAttachedScrap(未离屏) ---》 回收相关方法:recycler.scrapView(view);第二级:mCachedViews---》 默认大小为2 ---》 回收相关方法:recycler.rec原创 2021-03-05 09:59:07 · 366 阅读 · 2 评论 -
ListView缓存机制源码学习
文章参考:https://blog.youkuaiyun.com/guolin_blog/article/details/44996879ListView缓存机制所需的数据结构 class RecycleBin { private View[] mActiveViews = new View[0]; private ArrayList<View>[] mScrapViews; private ArrayList<View&原创 2021-02-28 11:18:26 · 156 阅读 · 0 评论 -
Fragment使用过程中遇到的一些问题
先看下 Fragment 的基础用法,这是Fragment动态用法四部曲1.获得FragmentManager对象,通过getSupportFragmentManager()2.获得FragmentTransaction对象,通过fm.beginTransaction()3.调用add()方法或者repalce()方法加载Fragment;4.最后调用commit()方法提交事务FragmentManager fragmentManager = getSupportFragmentManag原创 2021-02-24 13:32:14 · 931 阅读 · 0 评论 -
Fragment源码学习(一)
Fragment源码学习首先看一下 Fragment 的基本用法 FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction transaction = fragmentManager.beginTransaction(); transaction.add(R.id.frameLayout, Bug5Fragment.newIntance(), B原创 2021-02-21 13:36:03 · 277 阅读 · 0 评论 -
Glide 的缓存机制
Glide 的缓存机制,需要了解 LruCache 和 DiskLruCache,可以参考以下两篇博文https://blog.youkuaiyun.com/guolin_blog/article/details/28863651下面我们通过写一个阉割版的Glide来了解一下Glide的缓存机制首先看一下Glide的一行代码经典用法private final String IMAGE_URL = "http://p1.pstatp.com/large/166200019850062839d3";原创 2021-01-20 17:12:18 · 362 阅读 · 2 评论 -
Android LayoutInflater inflate方法学习
结合Andorid 9.0 的代码,记录一下学习过程,大多时候是用的下面这个方法public View inflate(@LayoutRes int resource, @Nullable ViewGroup root) { return inflate(resource, root, root != null); }还有就是重载的另一个方法:public...原创 2020-01-18 21:28:21 · 198 阅读 · 0 评论 -
Activity 的 Window 创建主要流程
首先是在 ActivityThread 的 performLaunchActivity() 方法中创建Activity实例,并调用 Activity 的 attach 方法xref: /frameworks/base/core/java/android/app/ActivityThread.javapackage android.app;......public final cla...原创 2020-01-13 13:41:05 · 175 阅读 · 0 评论 -
Android 实现简单的悬浮窗按钮(二)
这篇主要分析 Window 的工作机制,WindowManager 添加 Window (View) 的主要流程以下是Android9.0 的源码首先看一下 WindowManager.javaxref: /frameworks/base/core/java/android/view/WindowManager.javapackage android.view;.........原创 2020-01-13 09:57:33 · 784 阅读 · 0 评论 -
Android 实现简单的悬浮窗按钮(一)
先来看一下实现效果吧功能较为简单,直接贴出主要实现代码:public class MainActivity extends AppCompatActivity implements View.OnClickListener,View.OnTouchListener{ private WindowManager.LayoutParams mParams; private...原创 2020-01-12 17:03:35 · 6093 阅读 · 3 评论 -
Handler如何通过sendMessage(Message msg)方法将新消息加入当前消息队列(二)
这里假设我们是通过Handler 的 sendMessage(Message msg) 来发送消息的首先进入 sendMessage 方法 public final boolean sendMessage(Message msg) { return sendMessageDelayed(msg, 0);//注意第二个参数传入的是整数 0 ...原创 2020-01-03 13:38:20 · 1129 阅读 · 1 评论 -
Handler如何通过sendMessage(Message msg)方法将新消息加入当前消息队列(一)
首先需要先理清 Handler、MessageQueue、Looper 之间的关系。我们使用Handler的时候(UI主线程)一般是通过以下两种方法去创建一个Handler实例1. 最常用的方法:方法1Handler mHandler =new Handler(){ @override public void handleMessage(Message msg){ ...原创 2020-01-03 10:26:47 · 2338 阅读 · 0 评论 -
简单的Socket通信实例:实现Android客户端与PC服务端的简单通信
今天来写一个使用Socket通信的小小实例实现效果:快看动图效果说明:当点击发送时,是先将文本内容发送到本地服务器,之后再从服务器中获取显示到TextView中的PC服务端实现:package com.lollo.server;import java.io.DataInputStream;import java.io.DataOutputStream;impor...原创 2019-11-03 20:16:14 · 842 阅读 · 3 评论