自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 记一次问题处理(1):Manifest merger failed with multiple errors, see logs

今天项目引入第三方库时报了一个错:首先看看错误大概是什么:抓到最关键的信息: Execution failed for task ':app:processDebugManifest' ,  也就是在运行processDebugManifest这个task的时候报错了,到现在为止我们只知道这些,接下来就是解决这个问题了。我们用gradlew命令运行processDebugManif...

2018-10-25 17:41:08 18572 1

原创 屏幕适配这一篇就够

一、前言适配器:Adapter,大家看到这个单词是不是非常眼熟了?没错,这就是我们平时用到ListView和RecyclerView时必定会配合使用的Adapter。列表显示数据几乎是任何一个安卓项目都会用到的一个功能,谷歌使用适配器模式来封装等使之异常灵活且非常实用,我们想要了解谷歌为什么这样做,就要先理解java适配器模式是怎样运作的,这篇文章我们就学习一下java设计模式之一的适配器模式

2018-08-24 18:37:38 1624

原创 给Android开发人员的AOP文档

一、什么是AOP关于OOP大家对于OOP(面向对象编程)肯定不会陌生,核心思想为:万事万物皆对象,OOP推荐开发者把所有的事物当作对象来处理。假设有一条鱼,我们就可以创建一个Fish类并构造出它的实例来当作是这条鱼并对它进行操作。OOP就是我们把鱼抽象成为Fish类的过程,通过这个过程我们可以获得更加清晰搞笑的逻辑单元划分。关于AOPAOP(面向切面编程),这个中文名字翻译的很到位:切面,可以脑部一

2017-12-13 18:35:10 429

原创 java算法之冒泡排序、选择排序、插入排序

冒泡排序 重复访问数列 ,一次比较相邻两个元素,如果前一个元素比后一个元素大,那么交换他们的顺序,多次交换之后得出正确排序。假设有这样一个数组{7, 3, 6, 1, 9, 2, 5, 4, 0, 8},使用冒泡排序进行排序,每次循环从最后一个元素开始,相邻的两个元素进行比较,如果前一个元素大于后一个元素,则两者互换第一次排序的结果为{7, 3, 6, 1, 9, 2, ...

2017-11-02 18:27:05 1041

原创 AndroidStudio修改修改Code Style

尽管AndroidStudio给我们提供了默认的代码风格够我们使用,但是有一些细节的地方并不是很好看,所以我决定自己修改一下自动排版。可在AndroidStudio的设置中修改代码风格,进入AS的设置找到”Code Style”选项,这里可以修改多种语言的代码风格,我们只关注”Java”即可一、注解排版修改前:@BindView(R.id.tv_home_page)TextView mTvHome

2017-09-27 15:41:01 2187

原创 第三方ZXing库zxing-android-embedded使用及自定义

一、关于ZXing现在一维码二维码在我们的日常生活中使用如此的广泛,所以拥有扫码功能的APP变得非常普遍,一个安卓APP需要扫码功能就要用到zxing了,zxing是谷歌开源的让开发者更方便使用摄像头的库,而我们常用的扫码功能就是其中之一。github地址:https://github.com/zxing/zxing但是因为zxing的功能太强大了,包含了很多我们用不上的功能,所以一般都会抽取其中的

2017-09-08 09:55:06 31696 21

原创 (四)Android数据结构学习之栈

需要看本系列其他文章的请转到: (一)Android数据结构学习之链表 (二)Android数据结构学习之数组(三)Android数据结构学习之队列正文对数据结构稍微有些了解的,肯定知道栈的特性是:先进后出。它的性质和队列有些相似,都可以通过他们的特性在某些场景发挥很好的作用。下图描述了栈的特性:在java中使用Stack这个类来描述栈,我们一起来看一下。public class Stack

2017-08-09 11:02:12 1277

原创 (三)Android数据结构学习之队列

前文本系列文章的前两篇主要讲了链表和数组,没看过的朋友可以转到:(一)Android数据结构学习与算法之链表(二)Android数据结构学习与算法之数组今天的文章我们来一起学习一下数据结构之队列。正文对于队列稍有耳闻的同学肯定会知道它有一个特点:先进先出。正是这个特点使得队列在处理一些对于顺序要求很高的需求时有很好的效果,就像网络请求的排序,队列大概是这样的:上图可以队列是一个很明显的先进先出

2017-08-07 15:30:46 7306

原创 (二)Android数据结构学习之数组

前言上一篇文章讲述了数据结构的基本知识以及链表的相关知识,地址:(一)Android数据结构学习与算法之链表,本文是系列文章的第二篇,讲的是数组概述数组的使用数组在java中的实现为下:String[] arr1 = new String[3];// 创建一个大小为3的数组arr1[0] = "0";arr1[1] = "1";arr1[2] = "2";String[] arr2 = ne

2017-08-04 17:11:54 6676

原创 Android使用Fiddler模拟弱网络环境测试

前言现在的Android软件,基本上都会有网络请求,有些APP需要频繁的传输数据时对于网络请求的稳定性和在特殊网络条件下的兼容性有要求,但是我们在测试的时候又很难模拟那种弱网络差网络的情况,今天就给大家分享一篇干货来模拟弱网络情况。正文第一步:下载抓包软件fiddler官网:http://www.telerik.com/fiddler这是PC端的软件,我们模拟弱网络环境的流程大概是:手机APP使用网

2017-08-03 23:45:16 31625 13

原创 (一)Android数据结构学习之链表

需要看本系列其他文章的请转到: - (一)Android数据结构学习与算法之链表 - (二)Android数据结构学习与算法之数组 - (三)Android数据结构学习与算法之队列前言我们都知道Android是基于java的,Java中实现了很多数据结构,像我们最常使用的数组、List都是数据结构,当我们使用的时候可能会觉得这些东西真是方便,但是并不知道其中原理,很多好的公司招人会

2017-08-02 16:24:42 6044

转载 Android获取Mac地址(WIFI,移动网络,网线(lan))

帖子原地址:http://blog.csdn.net/zxw136511485/article/details/52161269获取mac地址一般有3中情况:WIFI,移动网络,lan口(网线),在网上找了一圈,大多数都只支持WIFI,没有考虑移动网络和lan口的情况,也没有考虑到6.0系统的情况,终于找到一个能兼容这三种情况的方法:/** * 获取Mac地址 */ public cla

2017-07-25 11:47:11 10103 6

原创 Retrofit打印网络请求日志

用过Retrofit的朋友肯定知道使用Retrofit进行网络网络请求非常的方便简洁,但是要打印网络请求的日志还是要自己另想办法。昨天在网上找了一圈,发现要打印日志,大部分的帖子都是引入OkHttp3的日志库:compile 'com.squareup.okhttp3:logging-interceptor:3.8.1'这个库使用起来很简单,在你创建OkHttpClient的时候增加拦截器即可new

2017-07-15 12:37:55 5792

原创 重撸Android事件分发

概述Android事件分发从我刚开始开发以来就已经撸过好几遍,但感觉一直没有完全理解透彻,今天这篇文章从作者自身出发,希望给读者带来一个最简单明了的理解流程,也算是给自己一边巩固的机会正文在安卓事件分发系统中有3个非常重要的概念: 1. 分发(dispatch) 2. 拦截(intercept) 3. 消费(consume)这三个概念也就对应着3个非常重要的方法,从它们的==名字==就可以看出

2017-07-04 17:54:32 270

原创 从零开始学dagger2

前言dagger2这个框架做安卓的同学应该都听说过,现在公司一般的项目架构都是Retrofit + rxjava + mvp,然后dagger2框架又很适用于mvp模式,所以它也十分主流,虽然十分主流,但是很多公司的项目依然没用用起来,为什么呢?因为它和rxjava一样,学习曲线很陡,刚学起来是比较吃力的,作者也是如此。这篇文章题是从零开始学dagger2,对于作者而言是第三次从零开始,因为在去年的

2017-04-28 23:29:40 358 1

原创 从观察者模式的角度看RxJava

概述用过Rxjava的朋友都知道它是用观察者模式写的,且用起来的时候一定会有一个Observable(被观察对象)和一个Observer(观察者对象),作者刚接触Rxjava的时候被它的迷の编码方式和各种操作符整的头晕,也不太理解它所使用的观察者模式。今天就让我们从观察者模式的角度去理解一下Rxjava观察者模式观察者模式,顾名思义会有一个被观察的对象和一个观察者对象,关系简单来说就是:被观察者做了

2017-04-17 19:40:39 743 2

原创 深入浅出RxJava演变原理

概述Rxjava和RxAndroid在安卓开发中越来越常见了,函数式编程的思想和编码方式写起代码来还是非常爽的,今天这篇文章,不会去介绍RxJava的使用,而是去介绍RxJava的思想是怎么从我们原始的编码思想中演变出来的。引文首先引入一篇很优秀的帖子http://www.devtf.cn/?p=323,楼主的这篇帖子算是用自己的思维把原文给翻译了一遍。正文上代码:/** * 学生 */pub

2017-04-11 00:37:41 671 1

原创 android中使用webSocket通信

概述最近公司项目准备使用WebSocket实现消息推送功能,在网上搜了一下几个支持WebSocket的框架,在使用框架之前简单说一下我对WebSocket的理解:同HTTP协议相似,也是一种协议,我们知道,没种协议有他的长处和短处,HTTP适合接口通信、单次通信,但是如果是聊天这种频繁的通信且不只是客户端请求服务端要求双方都能够给对方发消息的使用HTTP就不怎么合适了,像WebSocket,服务器和

2017-04-06 11:00:37 32661 27

原创 关于Adapter的notifyDataSetChanged()方法数据不更新问题解析

概述做安卓开发的同学应该大多都经历过adapter中在调用了notifyDataSetChanged()方法之后数据不更新的问题,作为菜鸟的我也同样踩过坑,现在写这篇文章作为总结。正文话不多说,上代码!首先是Activity的布局,两个按钮,代表两种加载数据的方式,然后一个ListView。<LinearLayout xmlns:android="http://schemas.android

2017-04-06 10:52:45 2790

原创 ThreadLocal原理解析

ThreadLocal这篇文章其实是接着上一篇文章来的,因为在安卓消息机制中是用ThreadLocal来保存各个线程的Looper对象,所以这篇文章专门来讲一下这个特殊的类。ThreadLoacal的作用其实很简单:可以保存不同线程中的数据。用代码给你解释一下:public class MainActivity extends AppCompatActivity { private stat

2017-03-31 17:53:18 383

原创 Android 消息机制原理解析

一、概序关于Android消息机制的使用,大家一个想到的就会是在子线程中更新控件,确实,安卓设计出这个机制很大一部分原因是处于这个目的,但是并不是全部。本篇文章,作者也会从源码的角度去分析消息机制的运作方式,希望大家能从文章中了解到消息机制的使用方法以及它为什么能被这样用。二、Android消息机制首先我们来看一下平常使用消息机制的方式:public class MainActivity exten

2017-03-31 17:40:46 428

原创 适配器模式在Android开发中的应用

一、前言适配器:Adapter,大家看到这个单词是不是非常眼熟了?没错,这就是我们平时用到ListView和RecyclerView时必定会配合使用的Adapter。列表显示数据几乎是任何一个安卓项目都会用到的一个功能,谷歌使用适配器模式来封装等使之异常灵活且非常实用,我们想要了解谷歌为什么这样做,就要先理解java适配器模式是怎样运作的,这篇文章我们就学习一下java设计模式之一的适配器模式以及它

2017-03-25 21:14:13 1125 3

原创 Android 非静态内部类/匿名类引起的内存泄漏

一、概述让我们先来回顾一下android内存泄漏的相关概念: - 内存溢出:android系统会给每个安卓程序分配一定的内存,当程序所使用的内存超过最大值就会造成内存溢出,就是常说的OOM - 内存泄漏:简单来说就是你new了一个对象,这个对象是要消耗内存的,然后jvm会对没有引用的对象进行回收释放内存,如果一个对象已经没有引用了,但是jvm没有回收这个对象,就会造成内存泄漏,多次内存泄漏到最后

2017-03-20 21:10:20 9160 2

原创 Android中的TCP/IP协议,Socket,Http协议间的关系

前提:本片文章的名字叫做"Android开发中的TCP/IP协议,Socket编程",其实TCP/IP协议是一种网络协议,并不是在Android中才有的,也不只是在java中有,其他的开发语言中同样也可以使用TCP/IP协议进行网络编程。之所以这么说是因为在不久的以前,作者也是一个对于各种协议、什么socket编程、什么http等等完全没有概念,直到现在,我也还是在不断的学习,去尝试慢慢的理解它们

2017-03-16 20:17:45 4570 4

原创 androidStudio找不到.so库文件的问题

这几天一直在对接不同厂家的POS收银机,各大POS机厂商通常有自己的SDK和.so库文件。在对接某一款机器的时候,按照开发文档导入jar包,复制.so文件到jniLibs文件夹中,顺便说一句android studio引入.so文件,需要在与java文件夹同级的地方新建一个jniLibs的文件夹,把.so库文件复制到该文件夹中,然后as会来该目录中读取。本来我以为只要按照这

2017-03-10 16:04:48 7258 1

原创 java Map使用遇到的问题

Map map = new HashMap();map.put("aaa", "1");map.put("bbb", "1,2");map.put("ccc", 1);map.put("ddd", 2);map.put("ddd", 2D);Map, Integer> params = map;// (1)此处不会报错,换成Float或者Double等都不会报错,但是只要一换成Stri

2016-11-29 16:39:53 440

空空如也

空空如也

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

TA关注的人

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