自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (4)
  • 收藏
  • 关注

原创 Android自定义ViewGroup实现侧滑菜单

自定义控件之侧滑菜单SlidingViewGroup本文主要介绍实现一个侧滑菜单的过程。利用ViewGroup来实现,并且具有强扩展性,用户可以自定义主要内容视图和侧滑菜单视图,并妥善处理了父View跟子View的滑动冲突问题。灵感来源与需求灵感主要来自TIM的聊天信息的滑动菜单: 需求: 1. ViewGroup允许用户放入两个视图,一个作为内容视图,一个作为菜单视图。 ...

2018-08-24 01:00:36 363 1

原创 Android Toast机制实现原理

Toast的实现原理通过本文,你将懂得: 1. 为什么调用Toast的子线程需要Looper.prepare() 2. Toast的Window是在哪里创建的Toast中的IPC通信在Toast的实现中主要有两类IPC通信: 1. 从Toast通过IPC访问NotificationManagerService(以下简称NMS) 2. 从NMS通过IPC访问Toast其中...

2018-08-21 21:50:16 1309

转载 【转载】Android 路由框架ARouter最佳实践

转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/76165252 本文出自【赵彦军的博客】 一:什么是路由?说简单点就是映射页面跳转关系的,当然它也包含跳转相关的一切功能。二:为什么需要路由Android系统已经给我们提供了api来做页面跳转,比如startAc...

2018-08-21 02:42:08 196

原创 IntentService的实现

IntentService 是继承于 Service 并处理异步请求的一个类,在 IntentService 内有一个工作线程来处理耗时操作,启动 IntentService 的方式和启动传统 Service 一样,同时,当任务执行完后,IntentService 会自动停止,而不需要我们去手动控制。另外,可以启动 IntentService 多次,而每一个耗时操作会以工作队列的方式在Inte...

2018-08-18 13:49:33 269

原创 Android中服务和线程的区别

线程 线程始于.start()方法,终止于运行run()方法运行结束或者线程所在进程的结束。服务 服务始于Context.startService()方法或者bindService()方法,终止于stopService()或unbindService() 一个Service 是一段长生命周期的,没有用户界面的程序,可以用来开发如监控类程序。Android四大基本组件介绍与...

2018-08-18 13:49:07 2866

原创 Java并发机制和Java中提供的锁介绍

参考https://www.cnblogs.com/dolphin0520/p/3920373.htmlJava中的非阻塞算法 https://blog.csdn.net/lifuxiangcaohui/article/details/8051687并发中的概念并发编程中常遇到的三个问题原子性问题原子性操作是指程序执行的最小单位,也就是一个线程执行该操作时不能...

2018-08-17 16:12:47 253

原创 单例模式(懒汉实现和饿汉实现的区别)

单例模式的作用是使某个类在整个应用中只存在一个实例。单例模式分为懒汉模式和饿汉模式:饿汉模式 :从第一次主动调用该类开始就创建实例对象,一直到程序死亡。 懒汉模式 :从第一次调用获取实例的方法的时候才创建对象,一直到程序死亡。饿汉单例模式的实现public class Singleton { //类初始化的时候创建实例对象 private static Sing...

2018-08-17 16:10:42 1698 1

转载 【转载】Android组件化方案

版权声明:本文为博主原创文章,欢迎大家转载! 转载请标明出处: http://blog.csdn.net/guiying712/article/details/55213884 ,本文出自:【张华洋的博客】Android...

2018-08-16 11:02:06 254

原创 代理模式和装饰者模式区别

静态代理需要手动实现被代理接口的所有方法,而动态代理通过反射可以自动代理接口的所有方法静态代理在编译的时候就生成了代理类的class文件;动态代理在运行的时候动态生成代理类代理模式有很多用途:比如在方法调用前后添加日志;AIDL中就生成了远程接口的代理类,代理类帮助我们实现Binder底层的跨进程通信机制,让客户端用起来跟本地调用一样;日志系统、事务、拦截器、权限控制等。代理的优点:如果我...

2018-08-16 01:17:50 3774

原创 侧滑菜单布局DrawLayout与圆形头像

常见错误NavigationView占了主界面;这是因为没有设置layout_gravity = “start”使用1、依赖包compile 'com.android.support:design:25.3.1'compile 'de.hdodenhof:circleimageview:2.1.0' //圆形头像2、布局文件 activity_main.xml...

2018-08-16 00:17:07 567

原创 利用OkHttp缓存机制实现无网缓存

OkHttp实现缓存标题字越少,内容含金量越高。OkHttp实现缓存需求描述需求限制思路实现拦截器编写请求拦截器编写响应拦截器添加到OkHttpClient效果图需求描述需求在有网的情况下,正常进行网络请求,然后把响应缓存到本地;在无网的情况下,从本地拿到缓存,返回给调用方。限制不能改变服务器的API,服务器的API没...

2018-08-15 03:05:21 1171

原创 Parcel和Serializable的区别

Parcel和Serializable的区别Parcel正常主动通过Parcel写入的数据,都是放在malloc分配的堆上的,这里也就没有特别的尺寸限制了。但并不是说对尺寸没要求,因为数据的接收端有要求!这里Parcel只是对数据的打包类,在面向对象的抽象上,可以将可序列化的对象,flatten到一个parcel中通过binder传递。Parcel实际上是在内存中开辟了一段空间,通过...

2018-08-14 00:38:13 1008

原创 Retrofit2源码解析

Retrofit2源码解析Retrofit实际上是一个网络请求框架的封装,它的核心是使用OkHttp来进行网络请求。完成OkHttp数据的转化和适配工作Retrofit使用了动态代理八个步骤创建retrofit实例定义网络请求接口,并添加注解通过 动态代理 生成网络请求对象通过 网络请求适配器 将网络请求对象 进行平台适配通过 网络请求执行器(Call) 发送网络...

2018-08-14 00:00:40 195

原创 OkHttp库源码解析

OkHttp库使用及源码解析OkHttp库使用及源码解析特点使用一个简单的GET请求的步骤(阻塞方式):更好的用法(异步)提交数据的POST请求源码解析OkHttp的线程池对于同步Call和异步Call的处理拦截器HttpStream和StreamAllocationBridgeInterceptorCacheInterceptorConnectInter...

2018-08-12 01:34:42 414

原创 Android TouchEvent事件分发机制

Android TouchEvent事件分发机制 遥控器等按键设备走的是KeyEvent的分发流程,普通触屏手机走的是TouchEvent分发流程。这里只对TouchEvent分发流程做分析源码分析从Activity的dispatchTouchEvent开始分发 public boolean dispatchTouchEvent(MotionEvent ev)...

2018-08-11 01:36:05 383

原创 自己编写的一个Activity内存泄漏检测工具

自己编写的一个Activity内存泄漏检测工具看完LeakCanary的源码之后,有点想自己动手写一个内存泄漏的工具了,正所谓自己动手,丰衣足食。真正做起来,其实会出现各种问题,最大的问题就是误判,经常由于GC没有及时把销毁的Activity回收而误判未内存泄漏,即便把检测时间延长也是如此: (这是在两次gc后等待10秒仍然存活的activity,此时仅被虚引用指向)最后的解决办...

2018-08-09 22:09:26 1132 2

原创 适配Android 8.0(Oreo)通知栏行为变更

适配Android 8.0(Oreo)通知栏行为变更官方文档:https://developer.android.google.cn/about/versions/oreo/android-8.0行为变更 Android 8.0 引入了通知渠道,其允许您为要显示的每种通知类型创建用户可自定义的渠道。用户界面将通知渠道称之为通知类别。如果使用Sdk版本在26以上,使用下面的...

2018-08-07 02:31:19 386

原创 理解PendingIntent的作用

理解PendingIntent的作用官方文档:https://developer.android.google.cn/reference/android/app/PendingIntent理解PendingIntent的作用PendingIntent是什么非暴露组件的权限问题实例:让其他应用打开本应用的非暴露组件PendingIntent是什么PendingIn...

2018-08-06 02:14:01 2893

原创 模版方法模式与实战:编写Android应用崩溃处理工具类

模版方法模式与实战:应用崩溃处理本文主要介绍模版方法模式,以及使用模版方法模式开发一个可扩展的Android应用崩溃处理的工具类。模版方法模式与实战:应用崩溃处理原理和应用实战:应用崩溃处理原理和应用AsyncTaskView的绘制流程 等等。。模版方法模式注重于 - 封装不可变部分,扩展可变部分 - 提取公共部分代码,便于维护比如View...

2018-08-05 21:29:21 177

原创 Java中finalize()方法的作用

finalize方法是Object提供的的实例方法,使用规则如下:当对象不再被任何对象引用时,GC会调用该对象的finalize()方法finalize()是Object的方法,子类可以覆盖这个方法来做一些系统资源的释放或者数据的清理可以在finalize()让这个对象再次被引用,避免被GC回收;但是最常用的目的还是做cleanupJava不保证这个finalize()一定被执行;但是...

2018-08-02 00:42:10 15753 3

原创 Android内存泄漏框架LeakCanary源码分析

LeakCanary源码分析LeakCanary是一个内存泄漏检测的框架,默认只会检测Activity的泄漏,如果需要检测其他类,可以使用LeakCanary.install返回的RefWatcher,调用RefWatcher.watch(obj)就可以观测obj对象是否出现泄漏。从install方法开始: public static RefWatcher install(Appli...

2018-08-02 00:31:02 1277

原创 Java设计模式之原型模式

原型模式原型模式是一种创造性设计模式。当一个类需要提供信息给外部,但又不希望外部去修改这个信息;也就是说这个信息对外部来说是只读的,这时候我们可以用原型模式来实现,原型模式很简单,就是当别人获取信息的实体对象时,返回一个深拷贝出来的新对象,这样对新对象的任何修改都不影响原对象。原型模式可以用来做保护性的拷贝.下面是一个登陆用户信息的获取逻辑:public class Login...

2018-08-01 10:26:20 194

PK后台扫描工具

PK后台扫描工具(网络攻防必备),多线程,急速扫描,亲测有效。

2018-07-11

BitTorrent

种子下载工具,可以下载.torrent文件,具体使用请下载。

2018-07-11

MP3文件隐写工具

MP3文件隐写工具,可以对隐写内容加密。就是这样啊。使用简单。

2017-10-20

压缩包爆破解密工具(7z、rar、zip)

压缩包内包含三个工具,分别可以用来爆破解密7z压缩包、rar压缩包和zip压缩包。

2017-10-20

空空如也

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

TA关注的人

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