读书笔记
wx_su
这个作者很懒,什么都没留下…
展开
-
BroadCastReceiver的应用与工作过程
BroadCastReceiver作为android的4大组件之一,其重要程度不言而喻。在BroadCastReceiver的工作过程中主要涉及到两方面的内容,一是广播的注册过程;二是广播的发送和接收过程。 一、广播的使用 首先定义一个广播接收者: public class AlarmReceiver extends BroadcastReceiver{ @Override pub...原创 2019-12-05 17:12:35 · 194 阅读 · 0 评论 -
使用最广的设计模式——单例模式
单例模式是我们应用最广的设计模式,所以对于像我这样的菜鸟一样会接触到很多。在使用这种设计模式的时候,单例对象的类必须保证只有一个实例存在。 单例模式的定义 确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 单例模式的适用场景 确保一个类只有一个对象的场景,避免产生多个对象消耗过多的资源,或者某种类型的对象只应该有且只有一个。例如创建一个对象要使用的资源过多,或者需要访问IO和数据库...原创 2019-10-30 11:17:34 · 163 阅读 · 0 评论 -
Window和WindowManager深入理解
Window表示一个悬浮窗口,在开发直接接触的并不多,但是当我们需要使用在桌面上显示一个悬浮窗的东西的时候Window就派上用场了。Window是一个抽象类,它的具体实现时PopupWindow类,创建Window很简单,只需要通过WindowManager即可完成。WindowManager是外界访问Window的入口。 Window和WindowManager之间的联系 为了分析Window的...原创 2019-10-26 15:46:18 · 1734 阅读 · 0 评论 -
自定义控件之——GestureDetector用户手势检测分析
在我们平常的使用当中会只用到很多的手势,DOWN,MOVE,UP,SCROLL,FLING等等,当然在我们之前的理解中使用View的onTouchEvent好像都可以解决,但是在实现的逻辑上也许就会非常的复杂了。所以Android为我们更加方便实现复杂的手势操作提供了GestureDetector这个类。 DestureDetector的接口 DestureDetector对外提供了两个接口(On...原创 2019-10-25 20:25:19 · 1611 阅读 · 0 评论 -
自定义控件之——封装控件(一)
自定义属性与自定义Style 在使用一个自定义控件式我们常常在它的xml文件中看到如下的代码: <com.example.administrator.tine.view.CustomCalendar android:id="@+id/cal" android:layout_width="match_parent" and...原创 2019-10-23 17:27:12 · 1907 阅读 · 0 评论 -
IntentFilter匹配规则详解
说到IntentFilter最先想到的肯定是Intent Intent intent是一个消息传递对象,我们可以是有它来启动其他应用组件特定的任务。 作为一个Android开发者相信大家都知道intent在4大组件中的运用吧。 Activity startActivity(Intent intent) Service startService(Intent service) bindServic...原创 2019-10-21 14:23:50 · 290 阅读 · 0 评论 -
自定义控件——Canvas与图层
获取Canvas对象的方法 方法一:重写onDraw(),dispatchDraw()函数 这两个函数在我们自定义view时是非常常用的,函数结构如下: //其中的Canvas对象是View的Canvas对象,利用这个对象画图,效果会直接反映在View中 protected void onDraw(Canvas canvas){//该函数用于绘制试图本身 super.onDraw(canvas)...原创 2019-10-17 10:35:45 · 623 阅读 · 0 评论 -
Synchronized的实现原理与应用
1.线程的安全性问题 Synchronized原理与使用 内置锁 互斥锁 修饰普通方法——内置锁就是当前类的实例 修饰静态方法——内置锁就是当前的class字节码对象 修饰代码块方法——内置锁为传入的参数 字节码层面分析Synchronized的实现原理 2.活跃性问题 死锁——哲学家就餐问题。 饥饿——线程优先级过低,导致一直拿不到资源,一直无法执行,就会处于饥饿状态。...原创 2019-09-11 14:13:57 · 175 阅读 · 0 评论 -
自定义控件——属性动画
1.1 ValueAniamor的基本使用 1.1.1 为何要引入属性动画 属性动画是为了弥补视图动画的不足而设计的,能够实现补间动画无法实现的功能。 从属性动画的名字我们知道它应该是用于操作控件的属性的。 补间动画的一个缺点 当我们利用补间动画绘制一个矩形,并给它设置点击事件,然后将它从屏幕的左上角移动到右下角时,我们会发现当我门点击当前右下角的位置,并不会触发点击事件,而当我们点击左上角时...原创 2019-09-07 20:01:24 · 198 阅读 · 0 评论 -
自定义控件——属性动画进阶
1.PropertyValuesHolder与KeyFrame 在前一节我们了解了ofInt(),ofFloat(),ofObject()函数的用法。ValueAnimator和ObjectAnimator创建Animator实例除此之外还有ofProperValuesHolder() //ValueAnimator public static ValueAnimator ofPropertyVa...原创 2019-09-05 16:16:47 · 229 阅读 · 0 评论 -
自定义控件——视图动画
阿瑟东原创 2019-09-05 10:30:13 · 165 阅读 · 0 评论 -
自定义控件——基础图形绘制
android中的paint类就是画笔,canvas类就是纸,也就是画布。 画笔的基本属性如下: Paint paint = new Paint(); paint.setColor(Color.RED);//设置画笔基本属性 paint.setStyle(Paint.Style.STROKE);//设置填充样式 paint.setStrokeWidth(50);//设置画笔宽度 如何实现画一个...原创 2019-09-03 16:43:43 · 296 阅读 · 0 评论 -
Activity的生命周期——笔记一
Activity的生命周期分为两部分 1.典型情况下的生命周期——>有用户参与的。 2.异常情况下的生命周期——>Activity被系统回收或者由于当前设备的Configuration发生改变从而导致Activity被销毁重建。 一、典型情况下的生命周期 (1)onCreate:表示Activity被创建。做初始化工作,setContentView初始化Activtiy所需数据等。 (...原创 2019-07-22 15:43:31 · 226 阅读 · 0 评论 -
OkHttp3源码阅读理解
** OkHttp3源码阅读理解* Okhttp3作为当下最为流行的网络框架,对于这个框架想必来说是每一个android开发人员都会学习和是使用的吧。为什么要使用OkHttp呢?那我们就来说以下OkHttp的好处吧。 使用OkHttp的好处: 1.支持SPDY,HTTP2.0共享同一个Socket来处理; 2.如果SPDY不可用,则通过连接池来减少请求延时; 3.缓存响应数据来减少重复的网络...原创 2019-04-27 16:25:31 · 280 阅读 · 0 评论