自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 Android 组件化最佳实践 ARetrofit原理

Hello,各位伟大的程序猿们,提前给各位拜年了,祝大家在新的一年收获满满、挣钱多多、猪年吉祥。开源ARetrofit大约半年左右的时间,没有任何推广和介绍,今天一看也有160+的stars了,这里非常感谢大家的支持。趁着年关降至,也想写一点东西来介绍一下这个框架。无论是ARetrofit的用户也好,还是对源码感兴趣的同学也好,希望能从这篇文章中有所收获。简介ARetrofit是一款针对...

2019-01-30 10:38:58 341

原创 Android组件化最佳路由—ARetrofit

Android组件化超级路由,为简单而生。Github 源码: ARetrofitdemodemo apk 下载一 介绍从命名来看,做Android开发的小伙伴们感觉是不是似曾相识…是的,Retrofit,一款优秀的网络框架,目前正在被大量使用,相信大家对它的用法已经非常熟悉吧。ARetrofit一款优秀的Android组件化框架(皮一下_开心),可以轻松实现跨module通信。这里之所以使用Re...

2018-06-05 15:07:28 362

原创 完美解决Android进程间通信—ABridge

编辑文章Android 进程间通信最牛方案,为简单而生Github 源码: ABridge一、介绍做Android开发的小伙伴们是不是经常有遇到同一个公司有多个App,而这些App之间需要进行通信业务。于是需要解决这种IPC问题,而ABridge可轻松解决进程间通信问题。二、Android IPC方式跨进程常见的几种通信方式:Bundle通过Intent传递数据,文件共享,ContentProvi...

2018-06-05 14:18:17 415

原创 android Webview中注入js,用于解决第三方页中出现返回事件window.history.go(-1),无法响应问题

问题描述:平时我们在使用WebView时,出现第三方页中出现返回事件window.history.go(-1),这时点击网页中的返回页面就一直重新刷不能退出当前界面解决方案:通过在android Webview中注入js,用于解决无法响应问题。例如如下网页test.html: New Document

2016-04-24 10:59:57 5627

原创 如何优雅的实现自己的Android组件化改造?

本篇文章的主要目的:帮助正在对项目进行组件化改造或者想建立组件化项目架构的小伙伴,更好的认识组件化本质。目前组件化的框架众多,说的天花乱坠的,其本质来说其实都差不多,阅读本文以后,读者甚至可以摒弃这些开源框架,根据自己的项目特点,轻松构建自己的组件化框架。帮助想学习和了解组件化框架,并尝试动手写自己的开源框架的小伙伴们什么是组件化?在平时的开发过程中,随着项目需求的增加,app支持功...

2019-02-21 12:55:12 238

原创 Java注解

什么是注解注解对于开发人员来讲既熟悉又陌生,熟悉是因为只要你是做开发,都会用到注解(常见的@Override);陌生是因为即使不使用注解也照常能够进行开发;注解不是必须的,但了解注解有助于我们深入理解某些第三方框架(比如Android Support Annotations、JUnit、xUtils、ActiveAndroid等),提高工作效率。常见注解APIAndroid开发过程中使用到的注解主...

2018-04-10 22:36:29 203

原创 Java反射

什么是java反射Java Reflection是java语言的特征之一。这使得JVM能在运行时检查和操作程序中的classes、interfaces、fields和methods等对象。这一特性十分强大实用,在很多牛逼的开源项目中都有体现出来,如果你还不知道什么是java反射,不懂反射的使用方法,可能对你阅读开源项目时产生很多烦恼,同时这也是做为一个高级开发人员必备的基础知识。这篇文章将深入介绍...

2018-04-10 22:35:35 206

原创 Android Handler机制深入解析

Handler是什么Handler是Android设计者Google设计用于的一套更新UI的机制,也是一套消息处理的机制,我们可以发送消息,也可以通过它来处理消息,Handler在我们的 framework中是非常常见的。Android 在设计的时候,就封装了一套消息创建、传递、处理机制,如果不遵循这样的机制就不能更新UI信息,并抛出异常信息。为什么要设计只能通过Handler机制来更新UI呢其实...

2018-04-10 22:33:42 276

原创 okhttp 源码学习(四)RetryAndFollowUpInterceptor 深入解析

在okhttp 源码学习(二)基本流程这节中曾带大家认识了Interceptor拦截器的概念,不记得的同学可以回顾一下。从本节开始将从源码带角度逐个介绍其中的5个重要拦截器,首先来认识一下RetryAndFollowUpInterceptor什么是RetryAndFollowUpInterceptor?用一句话来说,它是okhttp核心拦截器之一,该拦截器主要用于失败重试以及必要的请求重定向。整个...

2018-04-10 22:20:13 293

原创 okhttp 源码学习(三)Dispatcher 深入解析

在上一节中,我对Dispatcher进行了概述。本节主要内容就是带大家了解Dispatcher如何完成任务调度,并进行管理同步/异步的请求状态,如何维护一个线程池,来执行请求。成员变量为了下文描述更直观,这里我们先熟悉一下Dispathcer的几个重要的成员变量。我们还是结合源码来看:public final class Dispatcher { private int maxRequests...

2018-04-10 22:20:06 345

原创 okhttp 源码学习(二)基本流程

本节将对okhttp中的关键的类和方法进行简单介绍,并梳理出执行的基本流程进行,让大家对源码有一个全局的认识。Class Call回顾我们上节中出现的Call对象,这个Call是什么呢?Call对象其实就是一个准备好执行网络请求的request,是对request进行了封装,支持取消。由于一个Call对象表示的是请求和响应流,因此同一个Call不能执行两次。Class Dispatcher在讲Di...

2018-04-10 22:19:59 198

原创 okhttp 源码学习(一)基本用法

本小节主要讲解okhttp基本用法第一步 创建client通常情况下,在我们的应用中OkHttpClient采用单例模式创建,这是因为每一个okhttp client都拥有自己的connection pool(连接池 )和thread pool(线程池),通过对他们的复用避免资源浪费从而减少内存开支。创建client有两种方式:方式一:使用其构造方法// The singleton HTTP cl...

2018-04-10 22:19:50 257

转载 Android逆向之旅—Android应用的安全的攻防之战

一、前言在前两篇破解的文章中,我们介绍了如何使用动态调试来破解apk,一个是通过调试smali源码,一个是通过调试so代码来进行代码的跟踪破解,那么今天我们就这两篇文章的破解方法,来看看Android中开发应用的过程中如何对我们的应用做一层安全保护,当然现在市场中大部分的应用已经做了一些防护策略,但是没有绝对的安全,破解只是时间上的问题。所以攻破和防护是相生相克,永不停息的战争,没有绝对的

2017-03-17 16:48:38 586

原创 Android 开发者的 RxJava 详解--简书

Android 开发者的 RxJava 详解--简书

2016-07-27 16:38:12 1130

原创 关于正确使用Android AsyncTask学习整理

关于正确使用Android AsyncTask学习整理这里写链接内容

2016-07-22 09:41:47 411

原创 ContentProvider学习及使用

原文(http://www.jianshu.com/p/66dd8d5b5bd5)

2016-07-13 17:01:27 347

原创 Android Studio 插件之 Android ButterKnife Zelezny

Android Studio 插件之 Android ButterKnife ZeleznyButterKnife程序员都是懒惰的,不会偷懒的程序员都不是好的程序员。大部分Android开发应该都知道 @JakeWharton 大神的 ButterKnife 注解库,使用这个库我们可以不用写很多无聊的 findViewById() 和 setOnClickListener() 等代码。 Butte

2016-06-29 14:25:45 529

原创 android开发人员获取sqlite

Android中可以采用sqlite数据裤来存储数据,是Google却没有直接给我们提供相关工具来管理数据库里的数据。如果不能直接通过工具来查看,那我们就把数据库从手机/模拟器里面拷贝出来用工具查看,下面是步骤1.确认数据库的位置 我们可以通过eclipse的DDMS插件来访问手机的部分目录数据库文件位于/data/data/你的程序的包名/databases/中2.拷

2016-05-15 19:49:58 354

转载 15 个 Android 通用流行框架大全

1. 缓存名称描述DiskLruCacheJava实现基于LRU的磁盘缓存2.图片加载名称描述Android Universal Image Loader一个强大的加载,缓存,展示图片的库Picasso一个强大的图片下载与缓存的库

2016-05-15 17:07:49 324

原创 如何检测AudioRecord是否被第三方管理应用给禁用了,附上demo

如何检测AudioRecord是否被第三方管理应用给禁用了,附上demo问题描述 我们在平时在开发中可能会遇到,申请的<uses-permission android:name=”android.permission.RECORD_AUDIO”/>被第三方给禁用了,如被小米的自带的“安全中心”给禁用了,这时该如何检测AudioRecord是否被第三方管理应用给禁用了呢?网上有很多方案,请参考如

2016-05-07 15:45:41 2024 2

原创 Android 学习问题汇总,不断更新

关于ProGuard学习ProGuard详解混淆(Proguard)用法

2016-05-05 10:22:48 372

原创 常用设计模式学习

一、建造模式:是将复杂的内部创建封装在内部,对于外部调用的人来说,只需要传入建造者和建造工具,对于内部是如何建造成成品的,调用者无需关心。代码:public interface Builder {     void buildPartA();     void buildPartB();     void buildPartC();       Product getResult

2016-04-25 12:57:49 399

原创 Handler,Looper,MessageQueue,Message源码端理解

1、 概述首先介绍Handler,Looper,MessageQueue,Message四个概念:Message:消息,其中包含了消息ID,消息处理对象以及处理的数据等,由MessageQueue统一列队,终由Handler处理。Handler:处理者,负责Message的发送及处理。使用Handler时,需要实现handleMessage(Message msg)方法来对特定的Mes

2016-04-20 20:32:29 366

原创 Android Lint gradle错误处理

一、Lint简介英文原文:http://tools.android.com/tips/lint 参照文章:http://blog.csdn.net/thl789/article/details/8037473  Android Lint是SDK Tools 16 (ADT 16)之后才引入的工具,通过它对Android工程源代码进行扫描和检查,可发现潜在的问题,以便程序员及早修

2016-04-20 10:44:37 2030

转载 Android 使用android-support-multidex解决Dex超出方法数的限制问题,让你的应用不再爆棚

随着应用不断迭代,业务线的扩展,应用越来越大(比如集成了各种第三方sdk或者公共支持的jar包,项目耦合性高,重复作用的类越来越多),相信很多人都遇到过如下的错误:[java] view plain copy UNEXPECTED TOP-LEVEL EXCEPTION:  java.lang.IllegalArgumentExcepti

2016-04-20 10:39:02 459

转载 android 特殊用户通知用法汇总--Notification源码分析

版权声明:转载请标明出处http://blog.csdn.net/self_study,对技术感兴趣的同鞋加群544645972一起交流目录(?)[-]Notification动态改变big view浮动通知notification常见问题总结notification源码解析相关资料图标数字源码

2016-04-18 10:31:16 1156

转载 Android里Service的bindService()和startService()混合使用深入分析

1.先讲讲怎么使用bindService()绑定服务    应用组件(客户端)可以调用bindService()绑定到一个service.Android系统之后调用service的onBind()方法,它返回一个用来与service交互的IBinder  绑定是异步的.bindService()会立即返回,它不会返回IBinder给客户端.要接收IBinder,客户端必须创建一个S

2016-04-18 10:19:41 641

转载 简单理解Socket

题外话前几天和朋友聊天,朋友问我怎么最近不写博客了,一个是因为最近在忙着公司使用的一些控件的开发,浏览器兼容性搞死人;但主要是因为这段时间一直在看html5的东西,看到web socket时觉得很有意思,动手写几个demo,但web socket需要特定的服务器支持,由于标准制定工作还没完成,所以没有多少主流的服务器支持,自己在网上下载了几个实现,包括php的、C#的、甚至Node.js的

2016-03-10 10:18:59 946

转载 TCP、UDP、IP 协议分析

互连网早期的时候,主机间的互连使用的是NCP协议。这种协议本身有很多缺陷,如:不能互连不同的主机,不能互连不同的操作系统,没有纠错功能。为了改善这种缺点,大牛弄出了TCP/IP协议。现在几乎所有的操作系统都实现了TCP/IP协议栈。TCP/IP协议栈主要分为四层:应用层、传输层、网络层、数据链路层,每层都有相应的协议,如下图所谓的协议就是双方进行数据传输的一种格式。

2016-03-10 10:12:04 468

原创 android5.0 CardView,RecyclerView作用,附上Demo

CardViewCardView继承FrameLayout类,通过它可以显示信息在卡片内部,并且在不同的平台上有统一的样式。CardView组件可以有阴影和圆角。创建有阴影的Card,使用card_view:cardElevation属性。CardView 使用真实的高度和动态阴影在Android5.0(API21)和更高版本,较早的版本则使用传统的阴影。使用这些属性去定制Card

2014-11-26 09:38:00 872

空空如也

空空如也

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

TA关注的人

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