
Android进阶
文章平均质量分 84
Android进阶
Donkey..
这个作者很懒,什么都没留下…
展开
-
Kotlin
目录文章主要参考链接var 与 vallateinit和lazylateinit 的使用lazy 的使用Elvis操作符函数示例单表达式函数扩展函数嵌套类与内部类嵌套类(Nested Class)内部类(Inner Class)小结一下嵌套类和内部类类的构造函数主构造函数二级构造函数同时存在主构造函数和二级构造函数时的情况继承类的基础使用继承类的构造函数无主构造函数存在主构造函数重写方法重载覆盖规则接口数据类使用数据类修改数据类属性解构声明抽象类使用抽象类LambdaLambda介绍无参数的情况有参数的情况原创 2021-01-19 20:39:59 · 2149 阅读 · 0 评论 -
Android 学习笔记
Android 学习笔记最全 Android 常用开源库总结!Android DebugAdb常用命令收录Android studio 最全最好用的插件Android shape属性大全UMLAndroid改主题字体和字体大小Android Live Template(实时模板)的使用Android studio Debug设计模式GradleAppTheme属性设置集合Android中style和theme的区别Android Fragment 非常详细的一篇Fragment的replace、add、re原创 2020-10-15 17:30:31 · 3616 阅读 · 1 评论 -
Bitmap优化
ConfigConfig表示位图像素的存储格式,什么意思呢? 就是bitmap在屏幕上显示的每一像素在内存中存储的格式,会影响Bitmap真实图片的透明度以及图片质量;Bitmap.Config.ALPHA_8:颜色信息只由透明度组成,占8位;Bitmap.Config.ARGB_4444:颜色信息由透明度与R(Red),G(Green),B(Blue)四部分组成,每个部分都占4位,总共占16位;Bitmap.Config.ARGB_8888:颜色信息由透明度与R(Red),G(Gre原创 2022-04-01 16:56:10 · 480 阅读 · 0 评论 -
依赖倒转原则
依赖倒转原则高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象。简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。下面看一个例子来理解依赖倒转原则【例】组装电脑现要组装一台电脑,需要配件cpu,硬盘,内存条。只有这些配置都有了,计算机才能正常的运行。选择cpu有很多选择,如Intel,AMD等,硬盘可以选择希捷,西数等,内存条可以选择金士顿,海盗船等。类图如下:代码如下:希捷硬盘类(XiJieHardDisk):pu原创 2022-02-20 20:39:36 · 321 阅读 · 0 评论 -
Git学习
Git常用指令为什么要使用git pull --rebase?git cherry-pick 详解cherry-pick挑拣提交原创 2022-03-30 14:22:01 · 263 阅读 · 0 评论 -
Android进阶-Context
Context都没弄明白,还怎么做Android开发?Android Context完全解析,你所不知道的Context的各种细节扒一扒 Context一个是ContextWrapper,一个是ContextImpl。那么从名字上就可以看出,ContextWrapper是上下文功能的封装类,而ContextImpl则是上下文功能的实现类。Activity,Application,Service虽都继承自ContextWrapper(Activity继承自ContextWrapper的子类Conte原创 2022-02-19 20:43:18 · 260 阅读 · 0 评论 -
Android 进阶
retrofit源码阅读Android进阶-设计模式-动态代理模式Android:这是一份全面 & 详细的Retrofit 2.0 源码分析指南okHttp源码阅读设计模式-责任链模式彻底理解OkHttp - OkHttp 源码解析及OkHttp的设计思想从通信流程聊OkHttp拦截器从一次请求开始,深入探索OkHttpOPPO互联网技术-OkHttp源码深度解析...原创 2021-08-02 11:44:03 · 156 阅读 · 0 评论 -
Android进阶-Activity
standard(标准模式) 系统不会在乎这个活动是否已经在返回栈中存在,而是每次启动活动都会创建该活动的一个新的实例。singleTop (栈顶复用)在启动活动时,如果发现该返回栈的栈顶已经是该活动时,则认为可以直接使用它,不会在创建新的活动实例singleTask (栈内单例)每次启动该活动时,首先会在返回栈中检查是否存在该活动的实例,如果发现已经存在就直接使用该实例,并把这个活动之上的所有活动统统出栈,如果没有发现就会创建一个新的活动实例。singleInstance (堆内单例) 会启用一原创 2021-04-27 22:07:13 · 205 阅读 · 0 评论 -
Android进阶 - View事件分发
鸿洋版事件分发机制案例MyButtonpackage com.example.zhy_event03; import android.content.Context;import android.util.AttributeSet;import android.util.Log;import android.view.MotionEvent;import android.widg...原创 2020-04-21 16:22:11 · 224 阅读 · 0 评论 -
Android进阶 - ViewGroup事件分发机制
鸿洋版ViewGroup事件分发机制案例添加一个自定义的LinearLayout:package com.example.zhy_event03; import android.content.Context;import android.util.AttributeSet;import android.util.Log;import android.view.MotionEven...原创 2020-04-21 17:55:55 · 610 阅读 · 0 评论 -
Android进阶-Handler源码解析
Handler深入理解MessageQueueHandler发送消息的方式Handler类中发送消息-post()和postDelay()方法精炼详解原创 2021-01-28 15:18:55 · 1032 阅读 · 0 评论 -
Android进阶 - 自定义View
View和ViewGroupView是Android所有控件的基类,同时ViewGroup也是继承自View。ViewGroup作为View或者ViewGroup这些组件的容器,派生了 多种布局控件子类,比如LinearLayout、RelativeLayout等Android坐标系Android视图坐标系View获取自身宽高getHeight():获取View自身高度getWidth():获取View自身宽度MotionEvent提供的方法我们看上图那个深蓝色的点,假设就是我们触原创 2020-11-12 16:28:20 · 396 阅读 · 0 评论 -
Android进阶 - Android 的屏幕适配
参考链接:dpi 、 dip 、分辨率、屏幕尺寸、px、density 关系以及换算1、像素(px):像素就是手机屏幕的最小构成单元单位:px(pixel),1px = 1像素点 一般情况下UI设计师的设计图会以px作为统一的计量单位。2、分辨率:手机在横向、纵向上的像素点数总和 一般描述成 宽*高 ,即横向像素点个数 * 纵向像素点个数(如1080 x 1920)。3.屏幕像素密度(d...原创 2020-03-04 17:29:31 · 307 阅读 · 0 评论 -
Android进阶-Android的内存泄漏
java的内存栈区、堆区、静态区/方法区1、栈区:由编译知器自动分配释放,存放函数的参数值、局部变量的值等、基本类型的变量,例如int a=3中的a、对象的引用变量,例如Thread t=new Thread()中的t、具体方法执行结束之后,系统自动释放JVM内存资源。2、堆区:一般由程序员分配释放,存放由new创建的对象和数组,jvm不定时道查看这个对象,如果没有引用指向这个对象就内回收。3、静态区/方法区:存放全局变量,静态变量和字符串常量,不释放和整个应用的生命周期一样。堆内存和栈内存,两者原创 2020-05-18 17:37:35 · 351 阅读 · 0 评论 -
Android进阶-HTTPS通信原理-非对称加密
对称加密简介:对称加密算法又称传统加密算法,加密和解密使用同一个密钥。加密解密过程:明文->密钥加密->密文,密文->密钥解密->明文。缺点:对称加密算法是不现实的,互联网中通信的双方大多是临时建立的连接,不可能提前协商好密钥,而且密钥也要进行传输,无法保证密钥本身的安全性。非对称加密简介:非对称加密(asymmetric cryptography),也称为公开密钥加密(Public-key cryptography),是密码学的一种算法,它需要两个密钥,一个原创 2021-05-02 21:03:59 · 1230 阅读 · 1 评论 -
Android进阶-Java向上转型
很多人在初次接触设计模式的时候,最大的疑惑莫过于碰到这样的句子:(父类C和子类C1) // 父类引用指向子类对象:父类名 对象名=new 子类名(); C c = new C1();// 相当于C c = new C ();C1 c1 = new C1();c = c1;这种用法叫做“父类引用指向子类对象”,或者叫“父类指针指向子类对象”,指的是定义一个父类的引用,而它实际指向的是子类创建的对象。功能上相当于子类的“向上转型”。向上转型时,父类只能调用父类方法或者子类覆写后的方法,而子原创 2021-01-30 14:51:02 · 134 阅读 · 0 评论 -
Android进阶-设计模式
设计模式六大原则单一职责原则定义: 一个类只有一个原因引起变化。也就是一个类只有一个职责,它就只负责一件事情。通俗理解: 例如类 A 负责两个不同的职责,分别是职责 B1 与职责 B2,当职责 B1 需要修改时,就会导致类 A 的修改,这样就有可能影响到职责 B2 的功能。为了解决修改职责 B1 影响职责 B2 的功能就有了“单一职责原则”,也就是可以根据“单一职责原则 ”分别创建类 A1 和类 A2,然后类 A1 负责职责 B1,类 A2 负责职责 B2,这样就解决了相互影响的问题。好处: 类的原创 2021-01-30 22:37:04 · 1217 阅读 · 0 评论 -
Android进阶-Gradle
百度App技术 - Gradle 与 Android 构建入门 Gradle 爬坑指南 – 概念初解Android Gradle (一)Gradle的Android插件入门Android Gradle (二)签名配置和依赖管理Gradle是一个框架,作为框架,它负责定义流程和规则。而具体的编译工作则是通过插件的方式来完成的。比如编译Java有Java插件,编译Groovy有Groovy插件,编译Android APP有Android APP插件,编译Android Library有Android原创 2020-11-20 17:27:42 · 1519 阅读 · 0 评论 -
Android进阶-Android第三方框架学习
Android第三方框架学习EventBus的使用参考链接1.定义EventMessage事件类。2. 在需要订阅事件的模块中,注册EventBus3.接收事件4.发送事件Subscribe 注解介绍EventBus的使用参考链接EventBus 使用(全面分析,细节提醒)一文彻底搞懂EventBus 3.0原理1.定义EventMessage事件类。public class EventMessage { private String messageType; private原创 2020-05-27 16:50:28 · 1857 阅读 · 0 评论 -
Android进阶- 网络编程学习
参考链接TCP/IP 四层模型应用层:SMTP、FTP、HTTP传输层:TCP、UDPTCP与UDP区别总结1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接。2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保 证可靠交付。3、TCP面向字节流,实际上是TCP把数...原创 2020-05-04 23:23:04 · 812 阅读 · 0 评论