自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (1)
  • 收藏
  • 关注

原创 studio 和mac快捷键

studio:Android studio 快捷键Control option + h 查看方法调用的层级结构command f9 makeprojectCmt + shift + FCmd + R 运行cmd + , 打开preference^ + d 打开debugopt+Cmd + 左键 (右键) 返回上次编辑的位置Cmd + O 全局搜索类...

2019-07-04 17:56:52 373

原创 Android在线热修复基本流程

在线热修复基本流程每个APP都会集成一个用于捕获并统计线上Crash的SDK,通过这个SDK,我们可以知道APP的健康状况,这是在线修复的基础。从线上Crash的统计中可以得知APP是否存在需要在线热修复的严重性Crash。如果存在,那么接着根据Crash日志定位分析出哪里的代码出的问题,这是需要基于这个发布的版本号对应的代码标签拉出一个bugfix分支,并在这个分支上修复问题。问题修复后,首先...

2019-06-04 18:39:19 480

原创 Java存储方式,堆、栈区别

Java 存储方式Java中有6种不同的地方可以存储数据:寄存器存储这是最快的存储区,因为它位于不同于其他存储区的地方——处理器内部。但是寄存器的数量极其有限,所以一寄存器由编译器根据需求进行分配。是不由用户控制和感知的。堆栈(STAck)堆栈位于RAM中,但通过他的“堆栈指针”可以从处理器那里获得支持。堆栈指针若向下移动,则分配新内存;若向上移动,则释放内存。这种快速有效的分配...

2019-06-04 18:37:27 300 1

原创 Android 后台定时任务的实现和改进

CounDownTimer浅析CounDownTimer(long millisInFuture, long countDownInterval),但是如果使用不当,常常会报空指针异常?通过源码分析,CounDownTimer的内部实现是采用Handler机制,通过sendMessageDelayed延迟发送一条message到主线程looper中,然后在自身中收到之后判断剩余时间,并发...

2019-06-04 18:35:34 1325

原创 Android推送机制的实现原理

Android 推送机制实现原理APP传统获取服务端信息途径:Pull模式–这种模式客户端和服务器端维持的是短连接。当然也存在由服务器端主动向客户端主动发送消息的通信模式,称为Push模式,即为推送–此时需要移动端和服务器端保持一个长连接通道。也有APP基于Pull模式通过轮询的方式实现类似推送的功能,即客户端启动一个定时器,每隔一段时间向服务器端发起Pull请求,也称伪推送。真是的推送是基于...

2019-06-04 18:34:16 1003

原创 Rxjava 源码分析总结

Rxjava ----a library for composing asynchronous and event-basedprograms using observable sequences for the Java VM即一个在Java VM上使用可观测的序列来组成异步的,基于时间的程序的库。Rxjava 的优点:简洁,因为在调度过程比较复杂的情况下,异步代码经常会既难写也难被读懂。即随...

2019-05-31 10:49:22 199

原创 设计模式六大基本原则

六大基本原则单一职责原则————SRP Single Responsibility principle开闭原则————OCP Open Closed Principle里式替换————LSP Liskov Substitution Principle依赖倒置————DIP Dependence Inversion Principle接口隔离————ISP Interface Segre...

2019-05-31 10:47:52 136

原创 http常识和TCP端连接和长连接

http 与https常见状态吗100 表示确认200 ok201 创建新资源301 重定向400 请求格式错误403 禁止访问404 not found 找不到如何与URI匹配的资源500 服务器端错误一个页面从输入URL到页面加载完成,这个过程都发生了什么?浏览器会开启一个线程来处理这个请求,对URL分析判断如果是http协议就按照web的方式处理,调用浏览器内核...

2019-05-31 10:46:33 319

原创 设计模式之mvc、mvp、mvvm

MVP MVC MVVMMVC数据关系View接收用户交互请求View将请求转交给ControllerController操作Model进行数据更新数据更新之后,Model通知View更新数据变化View更新变化数据方式所有的数据都是单向通信使用时MVC中的View是可以直接访问model的!因此,View里面会包含Model的信息,不可避免也会包含一些业务逻辑。在MVC...

2019-05-31 10:43:47 121

转载 Android view绘制总结

android View 的绘制流程android 中view之间是树结构的,每一个view的绘制主要包括measure、layout和draw方法整个view树的绘制是从ViewRootImpl类的performTraversals()方法开始的,该函数的执行过程主要是根据之前设置的状态,判断是否重新计算视图大小(measure)、是否重新放置视图的位置(layout)、以及是否重新绘制(d...

2019-05-31 10:37:47 110

原创 Android滑动效果,跟随指尖滑动的view

滑动效果:实现View根据用户的滑动时间监听,动态的改变View的坐标,从而实现View跟随用户触摸的滑动而滑动。Android 中View的位置和点击位置的获取View提供的获取坐标的方法:getTop():获取到的是View自身的顶边到其父布局的顶边的距离getLeft():获取到的是View的左边到其父布局的左边的距离getRight():获取到的是View右边到其父布...

2019-05-31 10:35:51 545

原创 设置模式之经典的Builder模式总结

经典的Builder模式主要有四个参与者:Product:被构造的复杂对象,ConcreteBuilder用来床架该对象的内部便是,并定义它的装配过程。Builder:抽象接口,用来定义创建Product对象的各个组成部件的操作。ConcreteBuilder:Builder接口的具体实现,可以定义多个,是时机构建Product对象的地方,同时会提供一个返回Product的接口。Dire...

2019-05-31 10:34:24 344

原创 Android 事件总线总结

Android 应用开发过程中,经常会设计Activity、Fragnebt、Service等不同组件或者模块之间的消息传递,使用传统的方法,往往会写出丑陋的代码,而且不同组件和模块之间耦合严重。随着模块的日益增多、代码逻辑的不断新增和修改,整个代码的架构就会显得越来越混乱。举个栗子:多个Activity页面跳转和数据回传的问题,例如Acticity A 跳转到 Activity B,接着跳转到...

2019-05-31 10:33:00 391

原创 java 范型总结

Java 泛型泛型 即“参数化类型”。一提到参数,最熟悉的就是定义方法既有形参,也有实参,泛型就是将类型由原来的类型参数化,类似于方法中的变量参数,此时的类型T等可以称为类型形参,然后在使用/调用时传入具体的类型。在java中泛型这一概念提出的目的,让其只是作用于代码编译阶段,在编译过程中,对于正确检验泛型结果后,会将泛型的相关信息擦除,也就是说,成功编译后的class文件中是不包括任何泛型信...

2019-05-31 10:30:38 116

原创 Android 开发常见问题

1、AsyncTask串行和并行问题2、支付宝调用界面,IP代理,调不起界面问题3、git reset --hard 导致本地代码消失问题4. textview inclueFontPadding问题5. 支付宝授权问题Android 的gradle中compile和provide的区别compile是从repository(默认是jCenter())里下载一个依赖包进行编译并打包。...

2019-05-31 10:29:24 1506 1

原创 Android Crash日志收集原理与实践

 通常不需要我们自己研发Crash SDK的任务,市场上已经有很多第三方的Crash SDK可供选择,如腾讯的Bugly\百度的MTJ、友盟SDK等。实现一个Crash SDK包括以下三个方面的工作:* Crash 的捕获* Crash 堆栈信息的捕获* Crash 日志的上报    Android 底层是基于Linux操作系统构建的,上层是基于Java语言的实现的,上层与底层的通信基于JNI。在...

2018-04-18 11:17:38 1182

原创 AIDL

## AIDL1. AIDL 是Android interface definition Language的英文缩写,--接口定义语言2. 主要实现发布和调用远程服务,实现跨进程通信3. 将AIDL 创建并放到对应的src目录中,工程的根目录会自动生成想对应的接口类,再通过bindService(intent,Service,int)方法绑定远程服务,在bindService中的ServiceCo...

2018-04-18 11:16:28 97

原创 64K方法数限制原理与解决方案总结

### 64K方法数限制原理与解决方案64K方法数问题也有人称之为65K方法数问题,本质上都是指Android Dalvik可执行文件.dex中的Java方法数引用超过65536,64K的计算方法是65536除以1024,65K的计算方法是65536除以1000,Android 64K的一次幂。64K方法数问题的直观表现是在构建APP的时候出现编译错误,导致构建失败,提示too many fiel...

2018-04-18 11:15:42 1783

Android+12+new+features.doc

Android 12新特性

2021-05-25

空空如也

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

TA关注的人

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