3 tiankongchengS

尚未进行身份认证

Ok ! I am Iron man

等级
TA的排名 2w+

Android Studio新建module,以及module引用aar等相关问题

一、新建module如果是作为lib被引用,需要选择Android Library。二、作为lib的module如果引用了aar文件:1、把aar文件放到module的libs目录下2、作为lib的module的gradle文件:repositories { flatDir { dirs 'libs' }} dependencies { ......

2019-10-31 10:45:07

aar包导入引起的Error:Failed to resolve: :xxxaar: 的问题

在Android Studio中 如果在module中依赖了aar库,当build工程的时候,会出现failed to resolve的错误想要解决这个问题可以在app的build.gradle中加入下面代码:repositories { flatDir { dirs 'libs' } }举个栗子:在app的build.gra...

2019-10-31 10:39:01

Fragment的show()、hide()和attach()、detach()切换方式生命周期过程

1.使用show()、hide()方式进行fragment切换 @Override public void onClick(View view) { switch (view.getId()){ case R.id.main_home: switchFragmentWithShowHide(0); ...

2019-09-26 15:53:18

Java开发人员最常犯的9个错误

1.Array转ArrayList当需要把Array转成ArrayList的时候,开发人员经常这样做:String [] strArray = {"0" , "1" , "2"};List<String> list = Arrays.asList(intArray);Arrays.asList会返回一个ArrayList,但是要特别注意,这个ArrayList是Arrays类...

2019-09-05 15:23:30

Android 获取目录下所有文件信息(名字、大小)

privatevoidgetFiles(){Filefile=newFile(GlobalConstant.POSLOGPATH);File[]files=file.listFiles();for(inti=0;i<files.length;i++){FilechildFil...

2019-08-06 14:37:00

关于线程安全最通俗易懂的解释

下面的博客是在博客园上面看到的大佬写的,写的很好,通俗易懂,作为一个萌新看完以后促使我对线程安全有了新的理解。博客未经博主的同意,所以未擅自转载,下面附快速通道点次进入博客内容...

2019-07-26 16:01:01

Android崩溃日志收集---CrashHandler,给你自残的理由

使用CrashHandler的目的测试人员过来告诉你,“你写的代码崩溃了!”“what ? ! 我写的代码怎么可能会崩溃?!你复现一下,污蔑我的话信不信自残给你看”“哎,这次怎么好了,什么情况?”虽然说这种几率性bug可以晚点解决,但是终归是要解决的,但是复现又有点困难,那怎么办?那就只能使用CrashHandler了先看如何实现CrashHandlerpublic class Cra...

2019-03-29 17:05:38

进阶之路:Java设计模式---外观模式

外观模式定义:外部与子系统间进行通信时,需要通过一个统一的外观进行,为子系统的一系列接口提供一个统一的界面。外观模式定义了一个高层接口,这个接口使子系统更易使用。外观模式又称为门面模式,它是一种对象型结构模式。实现:客户端发出一条指令:“将大象放进冰箱”;服务端为了保证代码的单一职责原则,分别定义了三步操作:1.打开冰箱门;2.将大象勾引进冰箱;3.关闭冰箱门;在不使用外观模式的情...

2019-03-28 14:49:54

一天或者几天一个小算法---数列排序方式

/** * 数字排序 */public class Algorithm5 { /** * 冒泡排序 * 自认为是最简单的一个排序方法,只是拿出一个数,大的放后,小的放前就可以了 * 时间复杂度为O(n2) */ public static int [] sortOfBubble(int [] valueArray){ ...

2019-03-27 14:59:10

进阶之路:Java设计模式---适配器模式

适配器模式定义:适配器模式就是把一个类的接口变为另一个类期望的接口,从而让原来两个因接口不匹配而无法一起工作的两个类能在一起工作适配器模式:类适配器模式和对象适配器模式类适配器模式实现:/** * 目标类 */public interface Target { void operationOne(); void operationTwo();}/** *...

2019-03-26 15:51:43

一天或者几天一个小算法---Fibonacci(菲波那切)数列

题目输入n,求出Fibonacci数列第n项的数值思路1.Fibonacci数列是什么F(0) = 0;F(1) = 1;F(n) = F(n-1) + F(n-2)2.实现开始Fibonacci数列的第0、1、2项为基础数值,后面所有的数值都由这三个得来,前三个数的值可以判断得出,后续的数值可以使用循环或者递归实现。public static long getFibonacc...

2019-03-25 17:02:02

进阶之路:Java设计模式---Builder模式

什么是Builder模式?将一个复杂对象的构建与它的表示相分离,使得同样的构建过程可以创建不同的对象。一步一步构建一个复杂的对象,它允许用户只通过指定复杂对象的内容和类型就可以构建他们,用户不需要知道内部的具体构建细节。有什么特点?优点:1.良好的封装性,使用建造者模式可以使客户端不必知道产品内部组成的细节2.建造者独立,容易扩展3.在对象的创建过程中会使用到系统中的一些其他对象,这些...

2019-03-25 15:34:36

进阶之路:Java设计模式---单例模式

package com.example.administrator.javadesignmode.single_mode;public class SingleInstance { private static SingleInstance singleInstance; private SingleInstance(){} /** * 饿汉式 ...

2019-03-23 16:15:48

Android 在不确定后台返回json格式时,如何解析数据

前面一篇文章我介绍了Gson的解析的基本方法。但我们在享受Gson解析的高度封装带来的便利时,有时可能会遇到一些特殊情况,比如json数据中的字段key是动态可变的时候,由于Gson是使用静态注解的方式来设置实体对象的,因此我们很难直接对返回的类型来判断。但Gson在解析过程中如果不知道解析的字段,就会将所有变量存储在一个Map中,我们只要实例化这个map就能动态地取出key和value了。先给...

2019-03-11 16:48:57

AndroidTimeLine(时间轴)绘制

实现方法Recyclerview+ItemDecoration重写ItemDecorationclassTimeLineItemDecoration(varcontext:Context):RecyclerView.ItemDecoration(){//上下左右的偏移量vartopOffset:Int=dp2px(context,30)...

2019-03-07 15:10:37

RxJava+Retrofit框架中多种操作符解释

转自:http://www.jianshu.com/p/2b0aeb6b6b61从年前一两个月开始,就开始慢慢接触RxJava+Retrofit,针对以往开发中遇到的情况,慢慢写了一个框架Demo。文章不在进行入门介绍,需要了解的同学,可以查看笔者总结的文章RxJava、Retrofit分割Response一般来说,网络请求结果包括以下信息: { "message": "操作成...

2018-12-13 11:38:09

android 两数相除,保留两位及多位小数

/***valueOne:除数*valueTwo:被除数*scale:保留几位小数*/fundivide(valueOne:Int,valueTwo:Int,scale:Int):Double{if(scale<0){throwIllegalArgumentE...

2018-12-11 10:50:02

Retrofit添加拦截器报错:must call proceed() exactly once

这是因为你的OkHttpClient.Builder调用的addNetworkInterceptor方法添加的拦截器,这种方式添加的拦截器里面的Chain只能调用一次proceed方法,如果想调用多次,你的拦截器就要用addInterceptor方法添加,就没问题了...

2018-12-07 17:35:16

GridLayoutManager中setSpanSizeLookup()的基本操作,实现布局多样化

效果图上面布局格式为1-2-1-2,你可以使用itemtype做多布局,但是还有一种更简单的方法就是使用GridLayoutManager的setSpanSizeLookup()函数代码如下适配器和布局文件的代码就不贴出了,只贴出关键代码privatevoidinitView(){recyclerView=findViewById(R.id.recyclerV...

2018-11-15 15:27:04

android 手机分辨率与DPI对照表

分辨率对应DPIldpiQVGA(240×320)mdpiHVGA(320×480)hdpiWVGA(480×800),FWVGA(480×854)xhdpi720P(1280*720)xxhdpi1080p(1920*1080)xxxhdpi4K(3840×2160)手机常见分辨率:4:3VGA640*480(VideoGraphics...

2018-11-09 15:58:49

查看更多

勋章 我的勋章
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。