- 博客(35)
- 资源 (5)
- 收藏
- 关注
原创 Flutter 知识点(路由与导航)
1 动态路由跳转页面代码 Navigator.push<void>( context, MaterialPageRoute<void>( builder: (BuildContext context) => HomePageB(), ), );返回页面代码 Navigator.pop(context);跳转页面传参数,通过构造方法传参 Navigator.push( co
2022-03-04 16:17:35
2079
原创 LinkedList 源码解析
Arraylist 的源码解析,请参考ArrayList 源码解析,看完就明白系列<一>ArrayList 源码解析,看完就明白系列<二>平常我们使用LinkedList,很简单,我们根据源码逐一分析下 LinkedList linkedList = new LinkedList(); linkedList.add("1"); linkedList.add("2"); linkedList.get(2); linkedList.getFirst();首先 new LinkedL...
2021-07-20 15:40:14
158
原创 开发一个好的框架 需要必须知道的一些知识点
要想开发一个好的框架,设计模式,数据结构(例如 hashmap,List),锁,注解,线程池,handler,反射,jvm,牢固的java基础 这些知识一定要消化掉,掌握了这些也就走遍天下都不怕了。
2021-07-20 11:29:07
240
原创 解析 setContentView(R.layout.activity_home)流程
我们使用activity,设置布局的时候会用setContentView(R.layout.activity_home),那到底是怎么加载的呢?public class HomeActivity extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState);
2021-05-26 19:11:09
1041
原创 ArrayList 源码解析,看完就明白系列<二>
上一节介绍了ArrayList 的创建 和add流程,不清楚的可以看一下https://blog.youkuaiyun.com/ruanjiandu/article/details/111093162本节介绍remove 的流程 ArrayList<String> listq = new ArrayList<>(); listq.add("1"); listq.add("2"); listq.add("3"); li.
2020-12-17 17:33:22
272
转载 java 线程池知识点,看完就明白系列
这篇文章很好,推荐看看。转载于https://www.cnblogs.com/jay-huaxiao/p/11454416.html
2020-12-16 14:49:30
98
原创 handler机制原理 看完就明白系列
1 主线程中使用handler Handler handler = new Handler(){ @Override public void handleMessage(@NonNull Message msg) { super.handleMessage(msg); } }; Message msg = handler.obtainMessage(); handler....
2020-12-16 09:02:55
126
原创 HashMap 一遍就懂,看完就明白系列
转载于https://blog.youkuaiyun.com/qq_40574571/article/details/97612100
2020-12-14 17:32:05
91
原创 View的绘制流程,看完就明白系列
View的绘制流程View的绘制流程:OnMeasure()——>OnLayout()——>OnDraw()第一步:OnMeasure():测量视图大小。从顶层父View到子View递归调用measure方法,measure方法又回调OnMeasure。第二步:OnLayout():确定View位置,进行页面布局。从顶层父View向子View的递归调用view.layout方法的过程,即父View根据上一步measure子View所得到的布局大小和布局参数,将子View放在合适的位置
2020-12-14 17:13:04
691
原创 Okhttp 责任链解析 看完就明白系列
拦截器是okhttp的一个重要的核心功能,在分析各个拦截器功能的同时又会牵扯出okhttp的缓存机制、连接机制。1 自定义一个拦截器需要实现Interceptor接口首先我们继承Interceptor实现intercept(Chain)方法,完成我们自己的拦截逻辑,即根据需要进行1、2、3、4、5步,不管是自定义拦截器还是后面介绍的okhttp默认的拦截器大概都是这个模板实现,定义完拦截器后,我们在构造OkhttpChient时就可以通过addInterceptor(Interceptor)或add
2020-12-14 15:45:20
341
原创 okhttp 流程解析,看完就明白系列
同步请求// 构建okHttpClient,相当于请求的客户端,Builder设计模式 OkHttpClient okHttpClient = new OkHttpClient.Builder().readTimeout(5, TimeUnit.SECONDS).build(); // 构建一个请求体,同样也是Builder设计模式 Request request = new Request.Builder().url("http://www.baidu.com")
2020-12-14 14:33:28
435
原创 ArrayList 源码解析,看完就明白系列<一>
Arraylist ,是我们平常使用非常频繁的一个集合,我们从最常用的方式 开始解析ArrayList<String> arrlist1 = new ArrayList();arrlist1.add("1");arrlist1.add("2"); ... ... ...以此增加11个元素 ... ...arrlist1.add("10");arrlist1.add("11");ArrayList<String>
2020-12-13 14:45:42
230
1
原创 java << 、>>理解
java 中 左移符号<<,右移符号 简单解释。例如 int i = 10; int j = i << 1;i = 10 : 十进制 是10,二进制是 1010i << 1: 左移1位,二进制变为 10100,转换位十进制 则是 20结论,j = 20,也就是 左移1位,相当于 乘以2,以此类推,<< 2 相当于乘以 4例如 int i = 20; int j = i >>1;i = 20 : 十进制 ...
2020-12-13 11:31:31
13834
2
原创 java序列化,反序列化
序列化,反序列化:序列化是指把一个Java对象变成二进制内容,本质上就是一个byte[]数组。 为什么要把Java对象序列化呢?因为序列化后可以把byte[]保存到文件中,或者把byte[]通过网络传输到远程,这样,就相当于把Java对象存储到文件或者通过网络传输出去了。 有序列化,就有反序列化,即把一个二进制内容(也就是byte[]数组)变回Java对象。有了反序列化,保存到文件中的byte[]数组又可以“变回”Java对象,或者从网络上读取byte[]并把它“变回”Java对象。序列化和反序列.
2020-12-13 10:54:34
139
原创 (最新)天津各片区,各小区,各学校 对应关系,持续更新
★河西区★ 片区 小学名称 对应小区 备注 河西一片 ★闽侯路小学 西楼北里、敬重里、信昌大楼、福至里、宝德里、存诚里、无锡道大楼、浦口东里、积庆里、广田里、安德里、三义大厦、祺寿里、安辛庄、南浦大厦、久仰里、吉万里...
2020-12-09 15:57:20
9995
2
原创 java 常用的单例模式 及区别
常用的单例模式饿汉模式 特点:在类加载时就完成了初始化,所以类加载比较慢,但获取对象但速度快,并且避免了多线程同步问题 public class Singleton { private static Singleton instance = new Singleton(); private Singleton (){ } public static Singleton getInstance() { return instance; }
2020-12-03 15:29:39
176
原创 android zxing 生成二维码去除白边,宽距
android zxing 自带的生成二维码不会根据设置的宽高去显示二维码,内容越长,白边距会越大,所以整理了个demo,希望能帮助到遇到同样问题的同学。github地址:demo地址
2020-10-23 15:25:59
1445
原创 android ViewModel Obsever 被多次回调?
ViewModel 极大的方便了我们的开发,但是 activity被回收在重新创建,由于VIewModel的生命周期机制,Obser的回调会被多次执行,显而易见不是我们想看到的,但是站在巨人的肩膀上,处理方式也很简单,使用谷歌大神的方案,SingleLiveEvent 代替MutableLiveData即可。SingleLiveEvent 具体代码:public class SingleLiveEvent<T> extends MutableLiveData<T> {...
2020-08-21 11:37:53
2631
1
原创 android EditText 设置android:gravity=right获取焦点时光标不在最后处理方法
android EditText 设置android:gravity="right|center_vertical",获取焦点时 光标不在最后? 复制下面代码即可<com....LastInputEditText android:id="@+id/presale_et" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@nul.
2020-06-09 15:03:47
475
原创 BottomNavigationView 去掉菜单长按 弹出菜单文字吐司
废话少说,直接上代码 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(getResLayoutId()) var menuView = bottom_navigation.getChildAt(0)//举个例子,第一个tab的拦截,其它的同理 menuView.findViewById...
2020-05-20 10:21:03
3263
13
原创 android studio 升级到3.3.2 采坑记录
android studio 升级到3.3.2 采坑记录android studio 升级到3.3.2 采坑记录做为一个喜欢新(qiang)鲜(po)事(zheng)物的码农,明知道升级as 很可能项目跑不起来,但依然没忍住点了update,升级完后果然不出所料。。。。第一个坑(包括所有moudle)AndroidManifest.xml 不能包含minSdkVersion 15,建议直...
2019-03-14 13:25:25
904
原创 Android webview 微信h5支付无法调起?
最近做一个webview 加载h5商城的需求,感觉太简单了,load一个url就ok了,可是到支付的时候,竟然报商户参数格式不正确,请联系商户,查看文档,原来需要在webview 加载的时候需要加入请求头 Referer。简单,分分钟加上了:如下 @Override public boolean shouldOverrideUrlLoading(WebView ...
2018-07-25 16:42:26
2992
原创 android scrollTo(x,y)和scrollBy(x,y) 的区别
1概念 scrollTo(x,y) :view 相对于初始位置滚动的距离, x 相对于横屏的距离,正数则向左移动的距离,负值则向右移动的距离 。y 正值向上移动的距离,负值向下移动的距离。 scrollBy(x,y):view 相对于当前位置滚动的距离,x 相对于横屏的距离,正数则向左移动的距离,负值则向右移动的距离 。y 正值向上移动的距离,负值向下移动的距离。 2 相同点移动的都...
2018-03-15 16:45:24
403
原创 view事件分发机制简单总结
view 事件执行顺序 view.dispatchTouchEvent -> View.setOnTouchListener->View.onTouchEvent1 当 view 可点击,onTouchListenr != null 并且 View.setOnTouchListener 返回true 三个条件都满足时,则view.dispatchTouchEvent 的事件被消费...
2018-03-08 11:43:14
168
原创 给状态栏设置渐变颜色
1 状态栏设置纯颜色,很方便,直接获取状态栏,设置颜色即可代码:if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = ((Activity)context).getWindow(); window.addFlags(WindowManager.LayoutParams.FLAG_
2017-12-25 13:30:21
2415
1
原创 android studio 编译so文件入门(ndk配置及demo)2
上一节简单介绍了ndk的安装及demo运行,这次记录下demo的结构及作用1 cpp目录及cmakeLists.txt cp目录,是写c++源码的文件目录,创建demo后,会自带native-lib.cpp,这是一个c++返回字符串的示例include include extern “C” jstring Java_com_buybal_www_ndkdemo2_MainActivity_st
2017-04-18 14:05:07
315
原创 android studio 编译so文件入门(ndk配置及demo)1
前言:本次文章只能算ndk开发最初级的了。话不多说,进入主题 1 配置ndk,准备开发环境,android studio 2.2以上 2 下载ndk及cmake 如图: 3 下载完就算配置完成了 4 新建ndkdemo 如图: 5 demo新建完成后,是这样滴,如图 6 运行即可,ndkdemo就出来了,具体demo的结构,下节分析。如有问题请留言。
2017-04-18 12:00:16
380
原创 android activity启动优化方法
最近做一个项目,用的viewpage+fragment 模式,由于加载的fragment比较多,加上布局复杂,每次跳转activity的时候,总是会卡顿几秒钟,当然性能好的手机,情况会好很多,经过排查以及实验,记录下方法。一般初始化都会在oncreate()方法中,首先找出哪些控件的初始化比较复杂,提取出来,activity在onresum,fragement 在可见的情况下初始化复杂的控件,那问题
2017-03-01 17:22:19
1126
原创 android 动画被父布局遮盖问题解决
项目需要一个动画效果,点击按钮后,需要一个小太阳从某个位置,抛物线形势从底部位移出去,做的过程中,发现动画位移出父布局就被遮盖掉,经过各种查找,好多都是复制动画图层,最终发现,只要在根布局配置两个属性就可以。android:clipChildren="false"android:clipToPadding="false"都设置为false,需要在动画父布局之上,所有父布局至根布局
2017-02-20 14:12:13
3902
转载 Android 属性动画(Property Animation) 完全解析 (下)
转载自:http://blog.youkuaiyun.com/lmj623565791/article/details/38092093上一篇Android 属性动画(Property Animation) 完全解析 (上)已经基本展示了属性动画的核心用法:ObjectAnimator实现动画,ValueAnimator实现动画,AnimatorSet的使用等~当然了属性动画还有一部分的知识点,也能做出很不错的
2017-02-08 11:35:28
319
转载 Android 属性动画(Property Animation) 完全解析 (上)
转载自:http://blog.youkuaiyun.com/lmj623565791/article/details/38067475 1、概述Android提供了几种动画类型:View Animation 、Drawable Animation 、Property Animation 。View Animation相当简单,不过只能支持简单的缩放、平移、旋转、透明度基本的动画,且有一定的局限性。比如:你希
2017-02-08 11:27:06
199
转载 Android 属性动画(Property Animation) 完全解析 (上)
转载自:http://blog.youkuaiyun.com/lmj623565791/article/details/380674751、概述Android提供了几种动画类型:View Animation 、Drawable Animation 、Property Animation 。View Animation相当简单,不过只能支持简单的缩放、平移、旋转、透明度基本的动画,且有一定的局限性。比如
2017-02-08 11:24:10
311
原创 初识自定义view<一>
看着很多app上炫炫的效果,甚是羡慕,所以今天开始学习自定义view,自定义view刚开始看比较乱,一步一步了解其原理,就很快入门了,先从简单的开始说起。 1 自定义view首先要继承view,重写onmeasure()(非必须),ondraw(Canvas canvas)方法。 2 ondraw(Canvas canvas) 这个方法作用就
2016-11-11 14:43:42
394
原创 Android studio多渠道打包
最近有个EcLipse项目,需要O单,意思就是换皮换图标换包名,以及申请的第三方key,O单第一个的时候,复制一份工程,修改包名OK,然而陆续的要换十几个,并且以后还要加功能,必须同步加上,厉害了我的哥,如果一套套复制,效率低的非得猝死,幸亏还有你(android studio),多渠道打包,完美解决了我的问题,废话有点多,进入正题,如何多渠道打包。 1 把eclipse 项目导
2016-10-20 16:16:06
292
XRecyclerView 支持不满一屏也可上拉加载更多
2019-06-11
android使用okhttp与服务端网络通信demo
2016-01-27
android videoview 视频播放器
2015-05-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人