自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 AbstractProcessor: 利用注解动态生成代码

https://blog.csdn.net/Gaugamela/article/details/79694302

2019-02-19 16:25:37 4173

转载 Java注解

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

2019-02-19 16:15:16 202

转载 Android 性能优化:使用 Lint 优化代码、去除多余资源

点击打开链接

2018-06-29 14:12:38 297

原创 设计模式六:适配器模式

前面我们讲了创建型设计模式 那么接下来开始接触结构型设计模式 结构型设计模式 能够帮助我们解耦 从而扩大整体的类结构 方便后续扩展适配器模式:就相当于我们的转接口  比如我的耳机是原型插口 手机比较新 是TabC接口 那么就需要一个转换头 也就是适配器...

2018-06-23 18:40:59 700

原创 设计模式五:原型模式

创建型模式最后一种 原型模式 (一般用于框架)或者称为克隆模式使用场景:当对象创建比较繁琐 耗时 或者有访问权限的时候 可以使用原型模式 (以某个对象为原型 复制出新的对象 不同于new)实现: 实现Cloneable 接口和重写clone方法(内存赋值)public class Sheep implements Cloneable { public String name; p...

2018-06-21 11:34:46 191

原创 设计模式四:建造者模式

应用场景:    如果开发中我们需要构建复杂对象(属性很多 装配比较麻烦) 一般使用建造者模式本质:    实现了组件的构造(builder)和装配(Director)的分离不同的构建相同的组装那么产生的对象时不同的public class AirShip { private Engine engine;//发动机 private Escape escape;//逃离器 ...

2018-06-21 10:53:47 162

原创 设计模式三:工厂设计模式

核心作用:    实现了创建者和调用者的分离     --简单工厂      --工厂方法模式    --抽象工厂模式简单工厂interface Car { void run();}public class AudiCar implements Car { @Override public void run() { Log.d("Car","audica...

2018-06-20 11:04:19 176

原创 设计模式二:单例设计模式

核心作用:(保证每个类只有一个实例 提供一个访问该实例的全局访问节点)常见应用场景   Windows 的Task Manager(任务管理器)    日志管理   数据库设计   application     ....  总结下:     如果我们初始化需要资源消耗比较大(数据库对象创建、配置文件读取) 单例设计模式的实现    常见:        饿汉式:  public class Mo...

2018-06-18 16:51:31 150

原创 设计模式一:导论

前言    通过课程来学会或者说掌握设计模式 是不现实的  课程只能是让你能够学习一种思维  关键是通过在工作中实践来掌握设计模式 就是代码设计的模板  重点在于不同的场景对不同模式的需求先了解下23种设计模式创建型模式:    单例、工厂、抽象工厂、建造者、原型结构型模式:    适配器、桥接、装饰、组合、外观、享元、代理行为型模式:     模板方法、命令、迭代器、观察者、中介、备忘录、解释器...

2018-06-18 16:20:18 194

原创 关于编译版本降级25以下 gradle build 异常Execution failed for task ':libclear_dex:mockableAndroidJar'

Execution failed for task ':libclear_dex:mockableAndroidJar'.> java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.android.builder.utils.FileCache$FileCreatorExcep...

2018-06-14 11:19:00 1143

原创 从java到Kotlin学习五:kotlin系统类型

与java相比  kotlin引入了一些新的特性 来提升代码的可读性 那么我们开看下kotlin 的特性 可空性

2018-06-01 16:01:24 211

原创 从java到Kotlin学习四:Lambd编程

lambd是在java8中被引入的 使用起来非常简便函数参数代码块  原始方式: 使用匿名内部类实现事件处理器(比如click事件监听)   bt.setOnclickListener(object:OnclickListener(){ public void click(){ ... }})  lambd:bt.setOnclickListener({...})是不...

2018-05-24 17:13:44 407

原创 从java到Kotlin学习三:类 对象 和接口

相比较java来说 没有太大改变 我们一起来看下  这章节我不在粘java的例子了 但是 会做简单总结 这样大家能看的更明确一点 接口java public interface _Clickable { void click();}public class _ClickAbleImpl implements _Clickable{ @Override public v...

2018-04-16 10:52:24 320

原创 从java到Kotlin学习二:函数与类

函数的定义和调用集合kotlin 并没有创建自己的集合类 而是使用java 的集合类 这样可以完美实现和java 的互相调用  创建: java :      Int []  array=new Int[count]   List list=new ArrayList() Map map=new HashMap()kotlin        var array:IntArray=intArrayO...

2018-04-12 21:19:49 234

转载 Android 系统架构组件--Paging Library

Room持久化库Room为SQLite提供一个抽象层,在充分利用SQLite的同时,允许流畅的数据库访问注意:引入Room到你的android工程,参看 adding components to your project应用处理大量的结构化数据能够从本地持久化数据获益很多,最通用的例子是缓存相关的数据碎片。那样,当设备不能访问网络的时候,用户仍然可以浏览内容。任何用户发起的内容改变在设备恢复网络的...

2018-04-11 20:56:19 780

原创 Android 系统架构组件--Room Persistence Library

Room持久化类库官方The Room persistence library provides an abstraction layer over SQLite to allow fluent database access while harnessing the full power of SQLite.The library helps you create a cache of your...

2018-03-29 21:11:36 355

原创 Android 系统架构组件--Save UI State

写在前面  : 关于Room 我放在下一篇写  按照官方推荐路线学习 可能会容易点~ 简介:  无论我们是不是注重UI ,UI一直是用户体验最关键的部分 对于用户来讲 无论是横竖屏切换 还是重启 或者 系统强制停止运行 当界面回复的时候 用户都希望之前的操作状态能够被保留 我们通常的做法是通过onSaveInstanceState(也不知道是不是拼对了) 来实现 简单数据的恢复,通过前面几篇文章的...

2018-03-29 20:57:36 290

原创 Android 系统架构组件--ViewModel

可能有人觉得我写的 和官网不太一样 我这几篇关于架构组件的博客 是自己在学习的过程中的随笔 也可能有很多错误 只能说作为参考  后面我再使用过程中 会不断纠正自己之前的理解  简介:上一篇 关于LiveData 的学习 相信都差不多能看懂 我们再使用liveData的过程中 将其放在ViewModel中进行存储管理了 那么究竟什么是ViewModel  他有什么用处 好处呢 ? 我们根据文档 大概...

2018-03-29 18:04:24 326

原创 Android 系统架构组件--LiveData

简介:      LiveData 数据观察者持有类  拥有生命周期感应的特性  所以他实在对应组件的生命周期内(例如 activity  fragment service 等等)完成数据活动         liveDate 也可以理解成一个观察者 在被观察者(生命活动持有者)的生命周期处在onstart 或者onResume 的状态下 也就是active的状态下 可以接受到liveData的事...

2018-03-26 16:45:43 368

原创 Android 系统架构组件--生命周期感应组件(Lifecycle-Aware Components)

简介:       生命周期感应组件简单来说         例如:a 启动了b 进行一个耗时操作  当a销毁时 我们应该结束b中的耗时操作 销毁b对象  换句话说 也就是b应该对a的生命周期状态做出正确的相应   生命周期感应组件 就是来使我们这种操作变得更加方便 准确 简洁的一种方式class MyLocationListener {    public MyLocationListener(...

2018-03-22 15:57:52 422

原创 从java到Kotlin学习一:初了解kotlin

函数(表达式函数体)java 写法: public Int methodName(int a){//TODO}kotlin 写法:fun methodName(a:Int):Int{if(a>b)return a else return b }    特性: 可以使用表达函数体同时省略返回类型(当函数体只有一个表达式组成的时候)--as 可以自己转换 fun methodName(a:Int...

2018-03-22 11:02:29 258

原创 gradle学习一:上传项目到maven

写在前面:       之前尝试上传aar到github  然后本地引用一直不成功 也不知道咋整的  所以尝试了下 上传到maven  挺好用 顺便记录下 1.注册账号   https://bintray.com/   如下图   建议选择自己注册 不使用三方登录 (可能会有坑)  登录之后 点击编辑 之后来获取我们的apikey 输入密码 提交之后 就能看到获取apikey 之后 通过show可...

2018-03-16 16:15:45 688

转载 git merge 和 git rebase 小结

原文出处:http://blog.csdn.net/wh_19910525/article/details/7554489Git merge是用来合并两个分支的。git merge b      # 将b分支合并到当前分支同样 git rebase b,也是把 b分支合并到当前分支-----------------------------------他们

2017-01-14 12:21:48 305

原创 压缩图片工具类(在保证图片清晰度的情况下 尽可能的压缩图片的大小)

倒入类库 compile 'me.shaohui.advancedluban:library:1.3.1'封装的工具类package com.wisdomschool.stu.utils;import android.content.Context;import android.graphics.Bitmap;import android.text.TextUt

2016-12-30 17:43:41 2748 3

原创 swipRefreshLayout 和Scrollview 以及recycleView嵌套产生滑动冲突问题解决

使用 NestScrollView来替代 ScrollView  可以在滑动到顶部的时候才会出发swip Refreshlayout  那么此时滑动会有点卡顿  那么只能自定义NestScrollView  重写onTouchEvent方法   同时 设置verticalManager.setSmoothScrollbarEnabled(true);verticalManager.

2016-12-29 17:15:45 1419

原创 打包遇到的坑

Android Studio 错误 com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536gradle中引用的包太多   android dex最大索引范围为65536个方法  一旦超过酒会报这种错误  那么此时就需要使用1.去掉无用的引用包 2.优化代码3.分包编译技术4.使用p

2016-12-29 17:13:25 339

原创 关于权限问题

关于6.0权限  使用PermissionDispater 需要注意的问题使用的activity 必须继承AppCompatActivity不支持fragment遇到这么坑的问题时  我只想嚎啕大哭 但是部门妹子太多 哭起来没人心疼 还是自己整吧  一般使用手动定义的 /** * 添加权限 */private void addPermission() {

2016-12-29 17:10:20 410

原创 RxJava遇到的坑

java.lang.InternalError                                                     at rx.internal.util.unsafe.UnsafeAccess.a(UnsafeAccess.java:115)                                                     at

2016-12-29 17:03:44 2771

原创 关于Rxjava for android学习(基础篇)

一 简介RxJava是实现异步操作的库 那么在有很多异步成熟实现的基础上 我们为什么还要使用RxJava呢?    异步操作很关键的一点是程序的简洁性,因为在调度过程比较复杂的情况下,异步代码经常会既难写也难被读懂。 Android 创造的 AsyncTask eventBus 和Handler ,其实都是为了让异步代码更加简洁。RxJava 的优势也是简洁,但它的简洁的与众不同之处在于,

2016-12-29 16:14:40 717

原创 android studio 恢复误删除文件

真是手欠  欠欠欠啊   不小心删除了项目中的model文件夹   还好能恢复 要不就哭死了  选中项目 右键 local history  --> show history--》revert  ok了 是不是很好用

2016-11-05 14:49:38 4529 4

原创 自定义布局实现头部搜索框

android:layout_width="match_parent" android:layout_height="@dimen/height_96" android:orientation="horizontal" android:paddingRight="20px" android:background="@color/blue_0f9cfe" an

2016-11-05 11:06:24 1871 1

原创 webview和swiperefreshLayout 的下拉冲突问题

webview和swiperefreshLayout 的下拉冲突问题由于webview比较特殊,如果不进行特殊的处理的话,下拉和webview的滚动就会发生冲突,这个解决办法也很简单,只要把重写一下swiperefreshLayout的 onTouchEvent 方法就可以了 代码:package com.spring.swiperefreshlayout.view;i

2016-11-05 11:04:50 3796 11

原创 EventBus的使用散记

自从接触了RX 总觉得EventBus没有以前那么高大上了 不过 使用习惯了 不舍得放下  尤其是推出3.0以后 功能好像更佳人性化了 以前在使用订阅者 接受线程模型的方法的时候 方法名必须是onEvent开头的  现在 i 通过添加注解的形式 改变了这种强迫症不过我却掉坑了 /** * 主线程接受消息模型 */@Subscribe(threadMode = ThreadMode

2016-10-27 14:17:46 288

转载 EventBus的使用

什么是EventBusEventBus是一个Android端优化的publish/subscribe消息总线,简化了应用程序内各组件间、组件与后台线程间的通信。比如请求网络,等网络返回时通过Handler或Broadcast通知UI,两个Fragment之间需要通过Listener通信,这些需求都可以通过EventBus实现。详细Demo:Android EventBus实战

2016-10-27 14:15:04 327

原创 React Native 学习笔记二十一(导航器三方 插件学习)

所有的app设计,都会考虑导航的问题,android一般采用底部tabbar,但是最新的设计方案,更多的倾向于头部tabbar,或者头部scrollTabBar。本方案还是采用底部模式。react-native最佳实践,推荐的解决方案,  github地址 。 如何使用 react-native-router-flux 依赖于  ExNavigator ,所以首先要安装

2016-10-24 15:56:50 1873 1

原创 React Native 学习笔记二十一(定时器学习)

阅读本文大约需要3分钟今天主要讲解Timers(定时器)模块,该部分在我们开发中是非常常用的。例如可以实现:秒杀中的倒计时,任务延迟执行等等。本文所讲知识点定时器基本内容以及对比InteractionManager(交互管理器)TimerMinxin 定时器相关实例基本内容Timers(定时器)是应用中非常重要

2016-10-24 14:53:22 2149

原创 React Native 学习笔记二十(关于ListView的使用)

完整讲解链接使用三方封装的插件 完成 listView的下啦刷新  并添加网络请求 /** * Created by zhangyanjiao on 16/10/21. */import React, {Component} from 'react';import { PullList} from 'react-native-pull';import { S

2016-10-21 15:11:44 964 2

原创 React Native 学习笔记十九(关于开发环境)

关于React Native 我使用的开发环境时webStrom 链接就不给了 自己搜吧  添加插件 就可以进行开发了 插件地址:https://github.com/virtoolswebplayer/ReactNative-LiveTemplateReactNative的代码模板,包括:组件名称Api 名称所有StyleSheets属性调用ReactNative

2016-10-21 14:48:37 375

原创 React Native 学习笔记十八(关于样式 补充)

之前关于样式 我们之前说到了 单一样式的设置 以及根据条件选择样式 今天将对前面的样式进行补充 将样式的创建放在最后 是为了 只创建一次 并不是每次render都进行创建样式覆盖import React,{ Component } from 'react';import { View, Text, StyleSheet}from 'react-nat

2016-10-20 15:54:42 349

原创 React-Native 学习笔记十七(网络请求)

关于网络请求 不多说了 例子上面都有注释/** * Created by zhangyanjiao on 16/10/20. */import React,{Component} from 'react';import { Image, View, StyleSheet, Text, ListView,ToastAndroid}from

2016-10-20 15:00:29 392

空空如也

空空如也

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

TA关注的人

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