自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

璐豪笔记

多看!多读!多思!多写!多行!

  • 博客(52)
  • 资源 (4)
  • 收藏
  • 关注

原创 扩大View的点击区域

TouchDelegate可以通过设置TouchDelegate 给View的父类来实现点击事件的区域扩充(拦截父View的Touch事件) View child; ViewGroup parent; // 上下左右各扩充10px的点击范围 int sizeDifference = 10; Rect delegateArea = new Rect(); delegateArea.right += sizeDifference; delegateArea.bott

2020-07-03 15:34:27 556

原创 RecyclerView中关于UpdateOp的Reorder

大纲: 1. 关于UpdateOp的重新排序2. 对于各类操作移动转换的处理处理方式是将所有的move操作都移动到操作列表的最后,用来合并处理前面有相互交叉的操作。向前依次找到第一个是Move 且 下一个不是Move操作的,然后尝试将Move操作向后移动一位。直到所有的Move操作都被沉到列表的末尾关于Remove操作的交换注意 Remove 类型的UpdateOp 的itemCount 表示要移动到的位置而非移动的个数, Remove操作暂时只支持一次移动一个思想查找移动后move的操

2020-05-16 11:25:42 262

原创 RecyclerView AdapterHelper源码

大纲:1. UpdateOp2. 如何管理和执行UpdateOpAdapterHelper是帮助RecyclerView 管理和执行更新操作的帮助类。RecyclerView将每一次更新操作封装成了一个UpdateOp操作,然后通过AdapterHelper进行管理和执行。我们先来看UpdateOp的数据结构: static class UpdateOp { static final int ADD = 1; static final int REMOVE

2020-05-15 22:26:20 500

原创 RecyclerView ChildHelper源码

大纲: 1. ChildHelper的职责2. hidden的处理方式2. 关于Bucket的位计算概述ChildHelper帮助处理RecyclerView中的View的辅助类。 RecyclerView中的childern被分成了2类一类是当前正在使用可见的,一类是hidden的。ChildHelper提供了2类方法,一类获取getChildCount等,一类是Unfilter的方法 例如getUnfilterChildCount , 区别是getChildCount返回当前可见的View的

2020-05-11 20:27:31 232

原创 Gradle发布项目到Maven(New)

之前写过一篇Gradle发布到maven的Blog,具体可见 Android Gradle上传Maven仓库。最近由于项目需要需要一个publishToLocal的功能,发现基于之前的maven插件不太好配置,而且Gradle官方也有了新的发布插件,所以就产生了本文,基于maven-publish插件实现maven上传。 首先我们明确一下我们的需求: 1.我们需要发布到maven 2.我...

2018-08-09 16:51:30 2766

原创 我为什么选择yaml格式做配置文件

最近要写个程序的自动生成脚本,需要用到配置文件。初期考虑使用json,再使用json的过程中,我遇到了一下问题: 1. json不支持注释 2. 过多的层级嵌套 3. 过于严苛的格式 json不支持注释在定义一个配置文件时,如果不能使用注解,我们总会被繁杂的信息所冲击的头晕脑胀。所以一个好的注释是很重要的,虽然json可以通过 “//”:的方式间接实现注释的功能。但是它降低了配置文...

2018-07-20 15:56:52 5577

原创 使用pygal画图

使用pygal画图今天需要用python画一些数据比较的图,上网对比完python的图像库后决定选用pygal(考虑到 上手的难易度,和我对图形暂时没有复杂的需求) pygal文档python安装 pip install pygal 基本使用方式 bar = pygal.Bar() bar.title = "bar测试" bar.x_lab...

2018-07-05 21:47:56 3542

原创 AndroidStudio插件推荐

最近开发了2个AndroidStuio插件,像大家推荐一下,也欢迎给我提issues。 POJOGenerator在我们日常开发中我们经常需要和后台打交道,将后台定义的接口文档转化成我们的java对象,这个工作有些繁琐,而后台也不一定给出的是完整的json格式的文档说明,现在插件中心也有很多将json转换为java对象的插件,我这里主要解决的是 将按一定格式排列的数据转换为jav...

2018-06-04 13:59:02 362

原创 AndroidStudio插件推荐

AndroidStudio插件推荐最近开发了2个AndroidStuio插件,像大家推荐一下,也欢迎给我提issues。 POJOGenerator在我们日常开发中我们经常需要和后台打交道,将后台定义的接口文档转化成我们的java对象,这个工作有些繁琐,而后台也不一定给出的是完整的json格式的文档说明,现在插件中心也有很多将json转换为java对象的插件,我这里主要解决的是 ...

2018-05-20 00:24:31 371

原创 okHttp之请求Call

前一篇我们简单介绍了OkHttp中的几个常见的概念,我们知道OkHttpClient是请求的门户(外观模式),通过OkHttpClient创建了一个Call对象,然后通过Call对象来实现网络的请求,本篇我们来看一下Call做同步和异步时候都做了些什么。

2017-06-16 17:31:46 1695

原创 OkHttp源码初探

在之前的文章我中我们介绍了OkHttp的基本使用方法并简单说明了源码下各个module的功能作用,从这篇开始我们将要开始分析okHttp的源码。

2017-06-16 17:28:55 287

原创 okHttp各个module介绍

上一篇我们简单介绍了okHttp,了解了OkHttp的基本用法,并下载了okhttp的源码。本篇我们将一起来看看okhttp源码的目录结构,来大概了解下okHttp源码下的各个module的作用。

2017-06-13 18:22:34 1304

原创 okhttp-简介

An HTTP & HTTP/2 client for Android and Java applicationsokhttp

2017-06-09 17:48:19 687

原创 multidex找不到的问题

最近将AndroidStudio升级到了2.3, 然后发现instan run不好使了,要求Gradle插件版本必须是2.3以上,所以讲gradle插件版本修改为2.3.1,然后发现点击运行会报错:程序包:multidex 找不到。 在之前的版本中只要配置好multidex = true 插件会自动引用multidex的包,升级到2.3.1后不能自动引用 只能手动添加了, 在dependencie

2017-05-17 14:42:45 2851

原创 window的showAsDropDown失效的问题

在使用Popupwindow的showAsDropDown的时候,有时候会在特定机型上无法正确显示(全屏显示了)。 目前的解决方案是如果需要全屏显示的popwindow,要计算出window的实际高度然后调用popupwindow的setHeight方法后再调用showAdDropDown即可。 获取PopupWindow的实际高度: public static void showPop

2017-05-17 14:40:43 1386

原创 EventBus Q&A

阅读EventBus源码过程中总结的一些问题和答案EventBus 中如果一个subscriber中的父类也注册了相同的监听事件,以哪个为准以子类中的事件为准,在SubscriberMethodFinder方法中,在添加一个subscribeMethod的时候 会调用FindState的checkAdd方法,其中有这么一段逻辑: if (methodClassOld == null || m

2017-05-16 16:03:29 464

原创 IPC之AIDL(3)系统为我们做了什么

内容大纲:1.了解基本的aidl原理(不涉及底层)前面几篇我们介绍了如何使用AIDL实现IPC 那么你会有疑问了 我们用的asInterface是什么, Stub又是什么,现在让我们一点一点来看。在我们编译的时候,系统会吧aidl生成对应的java类(这就是为什么支持aidl这种文件格式了),我们先来看一下系统生成的类(本文涉及到的系统源码都是基于android-23): package com

2017-05-16 16:01:15 337

原创 ReactNative调研报告

2015年9月15日Facebook发布了ReactNative for Android,引发了学习使用ReactNative开发跨平台引用的热潮。目前React Native发布到了0.44的版本。最近项目中考虑是否要接入ReactNative, 所以对ReactNative进行了一些调研性的工作。 ReactNative简介在reactnative中文网上有以下简介: React Nativ

2017-05-14 23:54:25 736

原创 用gradle构建java项目

一般像后台的项目都是用maven构建的,我们来看一下使用gradle来构建java项目,本文不涉及到具体的gradle配置IDE: idea首先安装gradle 并配置环境变量 在项目目录下执行 gradle wrapper 生成wrapper文件(之后再idea中配置使用wrapper构建,使用wrapper的好处在于使用项目配置的gradle版本 不会因为版本冲突引发问题)可以通过–ver

2017-05-14 23:52:55 2311

原创 Android Gradle上传Maven仓库

在Android的gradle配置上追加上传Maven的相关操作 maven的gradle插件Android里内置了maven插件 只需要apply plugin: “maven” 即可使用maven插件配置maven配置maven仓库地址在root 下的build.gradle 的subprojects下的repositories中追加一下maven仓库地址,表示给子项目添加仓库地址 mave

2017-05-14 23:51:28 4038

原创 git分支恢复

今天误删了git分支,还好可以恢复 今天git push之后 以为merge了 就把本地和远程分支都删掉了,然后悲催的发现并没有执行merge操作。。还好分支可以恢复。。这个时候我们可以从之前提交的那次merge request中查找到提交的版本号,然后本地执行 git branch 分支名称 commit号然后重新push即可。。。

2017-05-14 23:50:24 372

原创 gradle调试断点

调试断点我们的gradle插件 我们免不了需要调试gradle脚本。但是要特殊说明的是, 现在还没有办法调试gradle的脚本文件, 我们只能通过pringln 来输出message, 然后在Gradle Console中查看。 我们这里要说的是利用远程调试,去断点调试自己编写的gradle插件。其实gradle的脚本使用groovy编写的而groovy也是运行在jvm上的,所以这里的调试方法就

2017-05-14 23:49:22 8689 1

原创 gradle在不同系统下适配

有时我们需要自己定制一些gradle的执行task,可能会用到一些系统中的其它环境,这时需要我们针对不同的OS做一些适配。判断当前系统环境方法一: 获取os的name判断其中是否包含windows字段 def isWindows() { return System.properties['os.name'].contains('windows');}方法二: 通过Operatin

2017-05-14 23:45:32 4026

原创 用GithubPages搭建个人Blog

用GithubPages + jekyll搭建你的个人Blog, 专注于内容。 内容大纲:1.配置githubpages 2.选择你的jekyll模板 3.开始写Blog 以前总是羡慕别人有自己的Blog,一直想有有个属于自己的Blog网站。之前断断续续写过一些,用过csdn 用过 eoe的blog(现在已经没有这个功能了)。 也尝试过wordpress等,买过云服务器。最后总是

2017-05-14 23:44:08 548

原创 IPC之AIDL(2)in out inout

内容大纲: 1.在AIDL的时候正确使用in out inout上一篇我们用AIDL简单实现了一个IPC,其中我们谈到在定义aidl接口中的除基本类型和AIDL接口外的参数要调价修饰符in out 或 inout中的一种,本文将帮助大家理解in out inout,并让读者可以正确的使用in out inout。 在介绍in out inout的区别之前我们先明确两个基本概念:起点 和 终点,

2016-09-20 17:08:41 1109

原创 IPC之AIDL(1)实现AIDL

使用AIDL实现IPC

2016-09-18 11:13:02 359

原创 IPC之Messenger

内容大纲:1.学会使用Messenger进行进程间通信 在进行具体的探讨之前,我们先明确2个基本概念客户端和服务端。在本例中客户端是指发起处理请求的进程(app的主进程), 服务端(service端)指一个另外一个提供服务的进程(主要是指service)。Messenger可以理解为信使,它可以实现消息的发送,底层使用Binder实现的(所以可以跨进程)。我们来看Messenger的构造函数:

2016-09-13 11:09:52 298

原创 IPC概述

摘要:1.什么是IPC2.android实现IPC的几种方式

2016-09-12 20:45:39 633

原创 JVM(二) 常见的垃圾回收算法

看完本文你会了解什么: 1.了解常见回收算法垃圾回收算法是JVM在整理内存时候的策略。上一篇我们介绍了JVM的基本结构,那么JVM的Java堆中又是如何处理那些没用的垃圾内存的呢?下面将介绍几种常见的垃圾回收算法引用计数法引用计数法基本上最简单的垃圾回收策略,它的核心思想是: 当有指针指向某实例时,计数加一, 当删除一个指针时,计数减一,当计数为0时,说明该实例没有引用可以被垃圾回收器回收。

2016-08-25 22:28:37 392

原创 JVM(一) JVM的基本结构

JVM(一) JVM的基本结构欢迎关注公众号:CoderHouse看完你会了解什么: 1.JVM的结构让我们先来看张图: 我们再用脑图来表示下: 方法区(元数据区)线程间共享,主要存放:类信息 常量池 静态变量等 1.8后修改为元数据区,大小可变。 Java堆几乎所有的实例都存放在Java堆中,Java堆一般又分为年轻代和老年代, 年轻代主要有一个eden区 2个survivor

2016-08-22 23:04:56 391

原创 善用adb

善用adb内容大纲: 1.什么是ADB 2.安装adb 3.ADB常用命令 4.善用ADB 什么是adbadb全称Android Debug Bridge, 通过ADB我们可以在电脑上操控手机的一些行为 安装adbadb存在于sdk\platform-tools,你只需要在环境变量path中配置上就可以在命令行或AS自带的Terminal中使用 adb常用命令下面只对常用命令做一个描述

2016-08-15 15:56:22 357

原创 Android面试知识树

最近总结了下初中级Android工程师在面试过程中常常被问到的知识点,做了张图,当然没有正确答案了,只是给大家提供一个面试前的复习大纲

2016-08-12 10:45:56 653

原创 Android事件分发二

Android事件分发二上一篇我们介绍了通常情况下的事件分发,下面我们来看一看在FrameLayout 两个View重叠后的时间分发情况。

2016-08-11 16:35:53 451

原创 Android 事件分发一

Android 事件分发一Android事件分发是每一个Android程序员都应该烂熟于心的内容。本文将对Android的时间分发做一个整体(不涉及系统源码)描述。

2016-08-09 11:57:59 314

原创 从ant到gradle

从ant到gradle本人前段时间完成了打包工具从ant到gradle的过度,本文主要阐述在迁移过程中项目遇到的一些坑以及解决方案,并不会详细阐述整个过程(一般除非使用了插件话等,否则参考下边的关于gradle的文章足以)。关于gradle关于gradle本文不做讨论 可以参考:http://blog.csdn.net/innost/article/details/48228651 项目背景我们的

2016-04-22 14:42:38 3946

翻译 Kotlin 基本语法

Kotlin 基本语法翻译:https://kotlinlang.org/docs/reference/basic-

2016-01-14 15:25:07 3439

原创 Kotlin配置开发Android

图片来源: https://kotlinlang.org/docs/tutorials/kotlin-android.html

2016-01-12 22:40:22 598

转载 各级别dpi的值

hdpi: 240 , ldpi: 120 , mdpi: 160 , xhdpi: 320

2014-09-03 14:04:09 2802

转载 sftp命令

cd 路径                        更改到远程目录的路径                  lcd 路径                       更改到本地目录的路径                  chgrp group path               将文件path的组更改为group                  chmod mo

2014-08-29 11:44:23 557

原创 代码中setProgressDrawable

在Android代码中直接调用setProgressDrawable不好用,应为get             Drawable draw = getResources().getDrawable(R.drawable.errorprogressbar);                        draw.setBounds(progressBar.getProgressDrawab

2014-08-13 14:07:25 9626 6

疯狂android讲义实例2

疯狂android讲义实例 后半部分算法

2012-11-03

java j简单的dos界面的 五子棋游戏

简单的五子棋游戏 是在dos界面下的 没有用到GUI

2012-07-24

java贪吃蛇游戏

java贪吃蛇游戏 简单实现了 一个贪吃蛇游戏

2012-07-05

操作系统实验

自己写的图形界面的大学操作系统实验 分享一下

2012-02-23

空空如也

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

TA关注的人

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