自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

luck_xiang的博客

我们不能生产代码,只是代码的搬运工

  • 博客(35)
  • 收藏
  • 关注

原创 Rxjava

ReactiveX的历史ReactiveX是Reactive Extensions的缩写,一般简写为Rx,最初是LINQ的一个扩展,由微软的架构师Erik Meijer领导的团队开发,在2012年11月开源,Rx是一个编程模型,目标是提供一致的编程接口,帮助开发者更方便的处理异步数据流,Rx库支持.NET、JavaScript和C++,Rx近几年越来越流行了,现在已经支持几乎全部的流行编程...

2019-04-28 11:08:25 273

原创 设计模式集合

IT设计模式的一个简单总计和搜索,通过java代码实现的,别问我为啥用java,再问我就说我只会java,哦……我还会android一、观察者模式 :点击这里哦 github下载地址:点击这里哦二,单利模式:这里哦,github地址:这里哦...

2016-11-15 13:57:34 250

原创 Activity之方法汇总索引

该博客是我记录Activity中各个方法详解中的一个索引,通过该博客可以更快的找到对应方法出现在我写的博客中的位置,避免到处乱找,也方便自己忘了或者到用的时候可以快速找到对应方法的使用和解释。1、onCreate():Activity之生命周期2、onStart():Activity之生命周期3、onPostCreate():Activity之生命周期4、onResume():Ac

2016-10-26 15:19:26 466

原创 android之Handler详解

Handler的所有senndMessage方法最总都会调用。Message创建,获取了一个native方法。对应方法是不是以为空,不为空就执行对应的数据。该方法是从一秒内随意位置进行计时打印。这样handler的流程就走完了。该实现是从1秒的开始进行计时。Message类中创建。代码打印如下,明显一。

2023-12-24 18:06:19 546

原创 Dagger2源码分析

这里代码的差距就是,之前是在每个类上面都执行了一个create(),会多次调用前面create方法,就会多次创建里面所有相关的对象,现在将这个类的create()写到了Application中了,这个create()就只调用了一次,那么对应的对象也就只创建了一下,所以后面注入的对象都都只有一个,这样就变成了单利模式了。这里可以看到new User() 执行了两次,所以创建了两个对象 ,先一步我们看看injectUser做了啥。privodeUser(),所以只创建了一次,所以在同一个类是局部单利。

2023-12-18 21:26:11 862

原创 Android hilt使用

这里进行了多次注入User对象,实际上User的构造器之调用了一次,表明之创建了一次,所以这几个对象都指向这个创建的对象,所以在该类中为单利。从打印中可以发现,Hilt的注入对象是我们打印位置之前的。1,自动生成对应组件,需要自定义application。这样就传入了Application的context了。添加依赖库app build.gradle.kts。添加插件app build.gradle.kts。添加插件项目中 build.gradle.kts。这里User创建了一次,和前面所讲对应。

2023-12-17 11:54:00 600

原创 Dagger2基本使用3之其他使用

在实际使用中,有些类的已经创建好了,dagger需要使用这些类,就需要通过参数传入,下面是android中传入application实例的一个例子。这里可以看出,User创建的时候传入了context对象,这样就可以调用已经创建好了的实例对象了。这样就通过dagger的方式注入了两个不构造器创建的对象了。修改module,进行关联配置。2,装载到Component。3,传入context。1,创建module。

2023-12-16 13:19:44 405

原创 Dagger2基本使用2之子组件

按照上面的写法,装载到Component上module只能是全局单利,想要注入的类是在是局部单利,就要使用到子组件才行。这种写法子组件需要用到父组件中提供的provide注入实例,就需要显示在父组件中显示声明才行。修改UserComponent名字为UserSubComponent,修改内容如下。从打印中可以看到,子组件注入的实例类只创建了一个,也注入了父组件的实例类。3,创建字组件component,并装载父组件到子组件上。3,创建 Component组件。2,创建子组件module。

2023-12-16 10:56:16 378

原创 Dagger2基本使用1

这里发现不管是从@Inject注解到构造器上,还是通过@Privodes注解方法实现实例化类,都会创建多个对象,但是在项目中,有些类需要用到单利模式,那该怎么办呢,接下来就要用到Dagger2的作用域了,下面是作用域的讲解。我们在不是自己创建的类上无法在构造器上进行@Injec注解,那该怎么使用了,dagger提供了另一个注解方式@Module+@Provides实现,下面以Retrofit创建为例。Car 又是哪里来的呢,我们在Car的构造器上有@Inject,代码会帮我们创建对应对象,所以进一步为。

2023-12-06 22:13:06 931

原创 git基本命令

git log --abbrev-commit 使得输出的commit更加简短。ssh-keygen -t rsa -C "邮箱地址" 初次使用需要用这个创建。git config --global user.email "邮箱地址"git push [远端分支名称] [本地分支名称]:[远端分支名称]git config --global user.name "名字"git push [远端名称] [远端分支]:[本地分支]git commit -m "信息":设置文件提交的信息。

2023-11-30 20:54:21 245

原创 java反射和注解3-仿照retrofit组装接口参数

本片文章将用反射和注解仿照retrofit只需要传入一个带有给定注解的接口,通过调用接口就能直接将传入的数据和注解进行结合,生成对应参数。这个就是retrofit封装参数的原理,是不是和retrofit一样,只需要接口,然后接口调用方法就可以了。通过动态代理实现注解和数据拼装。

2023-11-28 21:07:52 93

原创 java反射和注解2-自定义注解

对反射有一定了解过后学习注解就会轻松许多,这篇文章会创建创建字段,方法,参数上面的注解,并且通过反射的形式将注解内容拿出来。@Target注解可以修饰的范围:METHOD表示方法,只有METHOD修饰的只能用在方法上,6,这样就可以获取到上面的一个class文件上所有的注解了,打印如下。1,自定义注解,创建一个只能修饰方法的注解。注解的写法如下,别问我为什么这么写,规定的。5,通过代码获取到类class上的所有注解。3,创建一个只能修饰方法参数的注解。2,创建一个只能修饰字段的注解。

2023-11-28 20:53:25 403

原创 java 反射和注解1-反射详解

反射和注解本就是一家人,注解离不开反射,这里先将反射的写法,本文涉到的注解暂时可以不不用理解。2,执行反射相关操作。

2023-11-24 21:36:11 381

原创 android view属性大全

(1)视图透明度,值在0-1之间,0为完全透明,1为完全不透明android:alphasetAlpha(float)(2)视图背景android:backgroundsetBackgroundResource(int)(3)视图是否可点击android:clickablesetClickable(boolean)(4)设置view的备注说明,作为一种辅助功能提供,为一些没有文字描述的View提供说明android:contentDescriptionsetContentDescrip

2021-07-14 15:59:49 1019

原创 Android Handler消息机制原码解读

android的消息机制包括:handler(处理者)、looper(循环)、messageQueue(消息队列)、message消息。这里先理解一个消息队列这个概念,handler的消息队列是先进先出的链表结构,下面是模拟消息队列写的一些方法。消息类的写法public class MessageData { //传递的数据类型,以作判断 public int sta...

2019-05-29 11:40:15 110

原创 RxJava操作符—变换操作符

map() /** * map被观察者转换器,可以将一个被观察者(Observable)发送的数据依次转换为需要的数据,可以执行多个map * 来完成功能 */ public void map(View view) { Observable.create(new ObservableOnSubscribe<Integer>() ...

2019-04-28 11:06:14 92

原创 设计模式——单例模式

单例模式:其定义的对象的类只能允许一个实例存在单利模式的几种写法饿汉式 public class SingletonHunger { private final static SingletonHunger singletonHunger=new SingletonHunger(); private SingletonHunger() { } pub...

2019-04-28 11:05:25 107

原创 RxJava操作符——创建操作符

just() /** * just()— 将一个或多个对象转换成发射这个或这些对象的一个Observable * just有10个重构方法,可以发射1-10个数据,数据是依次发射的 * Observable:被观察着 * observer:观察者 * Observable.just:被观察者被观察者订阅了 * Observabl...

2019-04-28 11:05:02 163

原创 RecycleView实现单选框RadioButton,复选框CheckBox,不定项选择

该功能是用Recycleview的adapter实现的上面的功能,用起来方便,先上图RadioButton的写法,只有构造方法必须传入一个数字,及你开始就选中的位置,如果开始没有选中的,就填默认值new DialogRadioAdapter(getContext(), data, rlv_select, BaseRecycleRadioAdapter

2017-08-03 15:38:19 2733

原创 ExpandableRecycleview之简单实现

ExpandableRecycleview准确的说应该是ExpandableRecycleviewAdapter,该功能并没有自定义Recycleview,只是重组了数据,然后根据自己写得数据类型写就可以,同时不需要使用的时候将原本的数据改变,使用方便。先上效果图,有图有真相为啥要写这个呢,一个是公司业务需要,一个是去github看了看星最的多,看了一眼就不想看了,acitivity中写的

2017-08-03 11:18:47 1796 1

原创 面试怪谈

最近几天在群里跟那群android聊天,有个大佬去面试,面试官问了一个问题,你的app用户量有多少?这个问题能代表啥呢,一个人的技术不是靠自己写过app用户量决定的,假设一个人运气好刚好进来大公司,就写了几个页面,然后那个app用户量特别多,难道他技术就非常好?我做了也快两年的android,说起自己写过的乱七八糟的app,算一算用户量……怕是没有就上万吧,想想宝宝心里就难受,还是说说我对ap

2017-08-03 10:46:34 460

原创 Activity,Fragment互相调用几种写法,

一,Fragment操作acitivity中控件或者给acitivity传值,1,官方推荐写法,接口回调Fragment中的写法: private OnFragmentInteractionListener mListener; @Override public void onAttach(Context context) { super.o

2017-08-03 10:23:05 18119 1

原创 读书笔记:Android开发艺术探索之第4章 View的工作原理

1ViewRoot的对应实现类ViewRootImpl,它是连接WindowsManager和DecorView的纽带,ActivityThread创建完Activity,将DecorView添加到Window中通过ViewRootImpl对象和DecorView建立联系View的绘制流程是从ViewRoot 的performTraversals开始的,流程图大概为:Decor

2017-07-24 16:00:32 322

原创 读书笔记:Android开发艺术探索之第10章 android的消息机制

1,Handler:消息传递2,MessageQueue消息队列。单链表储存消息3,Looper:循环从MessageQueue中取消息4,ThreadLocal:在不同线程中互不干扰的储存并提供数据5,ActivityThread:初始化Looper6,ViewRootImpl的checkThread方法检查更新ui线程是否是UI线程7,Handler调用send方法会调

2017-07-21 13:29:50 288

原创 读书笔记:Android开发艺术探索之第6章 android的Drawable

1,BitmapDrawable2,ShapeDrawable属性:<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape=["rectangle" | "oval" | "line" | "ring"] > <corners android:

2017-07-20 16:37:59 159

原创 android 添加到购物车动画

今天做添加到购物车的动画,之前有做过,只是拷贝被人的代码而已,今天想起来自己整理了一下,没相当这么简单,下面就是我封装的代码,只需要简单的操作就可以完成加入购物车动画。先来一张效果图:代码只复制了一部分,用起来方便灵活 /** * @param from:点击位置的view * @param to:终点位置的view */ privat

2017-07-20 15:56:14 939

原创 读书笔记:Android开发艺术探索之第3章 View的事件体系

view的位置关系width=right-left;heihgt=bottom-top;对应的值可以通过get方法获得,及getLeft;3.0后x=left+translationX;y=top+translationY;touchSlop最小滑动距离获取方法:ViewConfiguration.get(getContext).getScaledT

2017-07-07 16:00:33 254

原创 android nfc开发

前言:由于是初次接触nfc功能,照搬前辈的代码啊,还是网上找都是模模糊糊,而且网上资料也……于是决定自己写一些,有些设计到公司秘密,点到为止。第一步、配置基础信息1,AndroidMainfest配置,开发需要配置权限:android:name="android.hardware.nfc"android:required="true"/>2,xml中TAG标签配

2017-07-06 15:42:20 497

原创 学习之路——网页收藏

前言:今天在跟朋友聊天的时候,我把我收藏的网站给他看,他说他都把平时找到的东西直接复制到博客上面,听到这里我恍然大悟,我在上家公司收藏的网站博客都因为我的离开而没有了,为啥我就不能把这些东西放到我博客上面呢,这样不不会因为换了地方而重新搜索资料了,不管是在任何地方都能找到之前看过的资料,不过我就不复制代码了,把别人的网页地址复制过来就可以了,哈哈,偷个懒。1、安卓巴士-安卓开发-Android

2017-07-05 17:31:16 381

原创 android 自定义数字软键盘

直接上功能图片有图有真相该功能主要是通过抄作android自带控件KeyboardView实现的 先上控制布局文件代码<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/activity_keyboard" android

2017-03-01 15:51:34 816

原创 设计模式之工厂模式

这篇博士是工厂模式和数据库设计连接起来实现的,数据库是用比较流行的Dao模式设计的。先上代码,根据代码来解释:先是SQLiteOpenHelpler类的写法:public class SQLdbhHelper extends SQLiteOpenHelper { private static final String LIBRARY = "rapid.db"; pri

2017-02-23 14:42:56 213

原创 android项目中用到的小工具

编码解码相关工具类URL编码:/** * URL编码 * 若想自己指定字符集,可以使用{@link #urlEncode(String input, String charset)}方法 * * @param input 要编码的字符 * @return 编码为UTF-8的字符串 */ public static St

2017-02-23 12:59:22 184

原创 设计模式——观察者模式

观察者模式:通过观察者订阅被观察者,在被观察者发生改变的时候通知观察者,不需要观察者一直等候。用通俗一点的语言说当b站上面看到一个非常好看的连载番的时候,非常非常喜欢,当番剧更新的时候想第一时间去看,这个时候怎么办呢,总不可能时时刻刻刷新吧,这个时候你就需要追番了,点击追番,在番剧更新的时候回第一时间推送给你,你不用时时刻刻关注你的番是否更新了,推送给你了你就去看就可以了。这个时候,番剧(被观察者...

2016-11-15 13:29:49 251

原创 android 日历 CalendarView

先上功能图,有图有真相这个日历可以进行多个选择,既可以换的换月,又可以点击换月,还可以选择换年月,日历简洁,对之需要日历选择的app可以做选择。在写这个功能的时候也在网上找了好多,要不就是功能太多,要不就是没有选择年月的,而且大部分都是用ListView或者RecycleView实现的,滑动换月的时候还卡顿。所以最后就自己根据别人的写了一个。这个日历分为三个部分,一个是头部的年月选择和

2016-10-26 15:50:49 3416 1

原创 Activity之生命周期

话不多说,先上镇山之图这是Activity基本生命周期流程,只要一个Activity启动了就要走这些方法。下面是按生命周期执行的方法,不止上面那些哦。onCreate():这个方法在Activity创建过程只执行一次,只要没有执行onDestroy(),onCreate()就不会再执行,在该方法中主要做一些初始化操作。onStart():在初次创建时、按home键或者启动另一个

2016-10-26 15:08:50 211

空空如也

空空如也

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

TA关注的人

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