自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(200)
  • 资源 (9)
  • 论坛 (4)
  • 收藏
  • 关注

原创 玩转Kotlin--彻底弄懂Lambda和高阶函数

3语法3规定Lambda表达式语法: 1 lambda 表达式总是被大括号括着; 2 其参数(如果有的话)在 -> 之前声明(参数类型可以省略); 3 函数体(如果存在的话)在 -> 后面在 Kotlin 中有一个约定,如果函数的最后一个参数是一个函数,并且你传递一个 lambda 表达式作为相应的参数,你可以在圆括号之外指定它if the last parameter of a

2017-10-16 22:48:54 16457 6

原创 GreenDao保存List<String>类型数据

**在上一章中介绍了如何简单使用GreenDao,并创建了User类来保存一些简单的数据。 但是假如在User中有一种List类型的数据也需要保存到数据库中,该如何处理呢??**答案很简单,可以转换一下思路,遍历List数据,然后将所有的String对象都append到一个StringBuilder中,然后保存在数据库中即可。 事实上,GreenDao已经为我们考虑到了这种情况,因此才有了 Pr

2017-06-21 11:12:17 10708 6

原创 自定义ViewGroup实现多个单页面上下滑动效果

阅读过自定义ViewGroup实现仿淘宝的商品详情页的童鞋,应该都了解了ViewGroup中onMeasure、onLayout、onTouchEvent等相关方法的使用。在介绍仿淘宝商品详情页时,我们提到过现在网上很多实现方法是使用ScrollView嵌套两个ScrollView。而我也提到过这样实现的缺陷,很难进行扩展。而使用自定义ViewGroup的话就可以根据自己的需要扩展功能了。今天我们介

2016-12-30 16:33:59 1689 9

原创 You need to use a Theme.AppCompat theme (or descendant) with this activity解决方法

当我的MainActivity继承自v7包中的ActionBarActivity或者AppCompatActivity时,如果在style.xml文件中指定MainActivity所使用的样式如下: @color/colorPrimary @color/colorPrimaryDark

2016-03-25 23:40:53 23697 4

原创 Android在ScrollView中嵌套ViewPager以及ListView的可能出现的问题以及解决方案

我们在实际开发一个款Android App时,经常会遇到如下图所示的需求:从上面gif图片可以看出,在一个页面的最上方有一个首页轮播的效果,在首页轮播的下方又会有一个ListView或者是GridView来显示我们的网络请求数据。对于上述需求,我们很容易想到先使用ViewPager的来实现首页轮播的效果,然后在下方添加一个ListView或者GridView并将数据通过自定

2016-03-17 18:14:58 8983 16

原创 自定义ViewGroup实现仿淘宝的商品详情页

最近公司在新版本上有一个需要, 要在首页添加一个滑动效果, 具体就是仿照X宝的商品详情页, 拉到页面底部时有一个粘滞效果, 如下图 X东的商品详情页,如果用户继续向上拉的话就进入商品图文描述界面:刚开始想拿来主义,直接从网上找个现成的demo来用, 但是网上无一例外的答案都特别统一: 几乎全部是ScrollView中再套两个ScrollView,或者是一个LinearLay

2015-07-23 14:28:45 31788 74

原创 OkHttp框架中Proxy的那点事儿(一)

在OkHttp框架中,已经集成好了网络请求代理Proxy的功能,我们只需要调用如下API,即可实现使用代理地址访问目标服务器:OkHttpClient.Builder builder =...

2020-12-29 23:50:00 89

原创 OkHttp与HTTP协议

OkHttp,从名字也能感觉到这套框架似乎与http协议有着千丝万缕的关系。事实上也确实如此,OkHttp所做的各种操作都是建立在http协议基础之上的。因此在理解并自己手写OkHttp...

2020-12-10 23:01:30 72

原创 Java中合理使用局部变量替代成员变量、静态变量

故事起因一个Java类中可以存在多种形式的变量,可以是最一般的成员变量、或静态变量、或临时变量。如下图:publicclassVariableDemo{staticin...

2020-10-11 21:50:39 72

原创 一个 int 值,只能表示一个数值吗?

正常情况下一个 int 就是代表一个数值,或者一种状态。但是Google和Oracle的工程师似乎特别喜欢用1个 int 类型来表示多种状态,源码中到处都能看到这种使用方式。线程池Thr...

2020-06-06 18:16:25 330

原创 GreenDao在Android项目中的实践总结

文章目录:1 GreenDao 基本使用2 GreenDao 多表之间的关联3 GreenDao 保存List类型数据4 GreenDao 版本升级基本使用1 引入GreenDao在p...

2020-05-29 20:26:00 112

原创 作为一个32岁工程师,我已不再焦虑。你呢?

故事总得有个开头"嗡~嗡!"手机震动了两声,应该是一条短信通知,顺手拿起手机撇了一眼What ? 眼睛一闭一睁《Android进阶课程》已经更新到第18篇了!人生第326...

2020-05-25 12:03:44 829 1

原创 阿里3轮面试都问了RecyclerView

阿里面试总共4轮,其中有3轮面试都问到了RecyclerView的问题。面试的点各不相同,有原理、嵌套问题、有缓存实现,但是最终都是殊途同归,所有的问题都汇集在如何对RecyclerV...

2020-05-16 22:01:56 459

原创 RecyclerView.ItemAnimator实现动画效果

Item动画来源在RecyclerView的源码中,有一个ItemHolderInfo.java。其源码如下:ItemHolderInfo主要是用来表示RecyclerView中item...

2020-05-12 23:49:05 328

原创 RecyclerView.ItemAnimator源码解析

RecyclerView动画的核心执行类ItemAnimator,当继承一个ItemAnimator时,有如下几个方法需要被实现:通过实现以上几个接口方法就能实现不同的动画效果,以上几个...

2020-05-08 23:05:17 129

原创 Java 线程池实践出真知

线程池是Java工程师实现并发编程的一大利器,能够有效限制系统中执行线程的数量,重复利用已创建线程,减少资源浪费。但是!线程池真正的难点在于实际使用阶段,主要有以下几个痛点:如何合理配置...

2020-05-05 21:48:47 247

原创 漫画Java线程池的工作机制

线程池结构图线程池是一套围绕着核心线程、非核心线程、等待队列的任务调度框架。默认情况,线程池主要结构如下:corePoolSize核心线程数当前线程池中运行的线程数量还没有达到 core...

2020-04-28 01:24:20 130

原创 Java命令行工具之 jstat

jstat 是JDK中提供的一个命令行工具,主要用来打印JVM 性能数据相关的统计数据。主要包含以下几个方面:垃圾回收(GC)方面数据编译(Compilation)相关数据类加载信息(C...

2020-04-24 17:07:26 172

原创 彻底弄懂Lambda和高阶函数

Lambda是什么简单来讲,Lambda是一种函数的表示方式(言外之意也就是说一个Lambda表达式等于一个函数)。更确切的说:Lambda是一个未声明的函数,会以表达式的形式传递。为什...

2020-04-20 23:27:35 202

原创 不要让你的Java对象"逃逸"了!

经常会有面试官会问一个问题:Java中的对象都是在"堆"中创建吗?然后跟求职者大谈特谈"逃逸分析",说通过"逃逸分析",JVM会将实例对象...

2020-04-19 22:30:31 182

原创 Java虚拟机究竟是如何处理SoftReference的

但凡是写过几行java代码的,都知道java中的引用分为4种:强引用、软引用、弱引用、虚引用。其中广大开发者最热衷的莫过于 软引用 了。因为它能保证在内存足够时,我们创建的对象完好的存活在内存中。同时当内存不足时,则将软引用指向的对象交由GC回收。抛个砖但是Java工程师不能认为SoftReference就是万无一失的保险锁,并且肆无忌惮的使用。被 软引用 对象关联的对象会自动被垃圾回收器...

2020-04-09 18:09:21 166

原创 如何在Flutter中使用GraphQL

什么是GraphQL这篇文章主要是看一下如何在Flutter项目中使用GraphQL,如果不清楚GraphQL是什么,建议先看下官网对其介绍:https://graphql.org/ht...

2019-11-23 23:59:03 176

原创 如何在Flutter项目中使用GraphQL

什么是GraphQL这篇文章主要是看一下如何在Flutter项目中使用GraphQL,如果不清楚GraphQL是什么,建议先看下官网对其介绍:https://graphql.org/https://www.howtographql.comGraphQL体验先介绍一个免费试用GraphQL语法的网站: https://countries.trevorblades.com/打开此链接,默认...

2019-11-23 22:53:56 1303

原创 More than one file was found with OS independent path 'META-INF/proguard/androidx-annotations.pro'

今天在项目中引入了一个cache image的库 cached_network_image 1.1.3。可以引入之后,程序无法编译通过,提示:More than one file was found with OS independent path 'META-INF/proguard/androidx-annotations.pro解决方案很简单,在项目android目录app下的 bu...

2019-11-19 17:25:53 135

原创 Flutter踩坑记录之setState

这篇文章主要受以下这篇文章的启发:How to refresh the content of a Dialog via setState?在上面链接中的这篇文章中,主要介绍了在Flutter中使用setState刷新Dialog的问题,并提供了一种解决方案。这篇文章大部分内容翻译自这个链接,另外除了坐着提出的方案之外,另外再介绍一种更简单实用的解决方案。学习到的内容:如何在Flutter...

2019-11-18 12:24:33 3030

原创 Flutter使用Stream更新Widget UI

通过之前的两节课,相信你应该已经掌握了Stream的使用。这节课我们来看下如何使用在Flutter中使用Stream来更新Widget UI。不过在这之前,我们可以先看下Flutter常规刷新界面的操作,通过对比我们能了解Stream的优势。setState当我们在Studio中创建一个Flutter项目时,Studio会默认给我们创建如下代码从图中红色框的指示可以看出,在 Floati...

2019-11-05 21:00:21 675

原创 如何使用Dart的Stream(二)

上一节主要介绍了什么是 Stream,以及Stream的一些简单交互。

2019-11-02 20:11:08 439

原创 如何使用Dart的Stream(一)

Stream 诞生2018年,谷歌推出了Dart中最重要的一个特性-- Stream。官方对其介绍是:Widgets + Streams = Reactive Flutter App简单来说就是,Stream被创建的初衷就是为了实现Flutter的响应式编程。Stream 简介Stream(流) 的作用与RxJava、RxJS,或者是Android中 Live Data 非常相似。...

2019-10-28 21:23:41 1128

原创 关于Dart List,你必须知道的几个方法

forEach()遍历List中的每一个元素List<int> list = [19, 20, 12];list.forEach((f) => print('$f is ${f > 18 ? 'bigger' : 'smaller'}' + ' than 18'));打印结果19 is bigger than 1820 is bigger than 1812...

2019-09-21 09:51:34 3210

原创 从0开始搭建Flutter开发环境

准备工作Mac OS之所以选择在Mac上开发,是因为它同时支持Android和IOS系统,对Android Studio和xCode等IDE使用者也比较友好另外, Mac OS已经内置了...

2019-09-14 10:10:01 93

原创 安利一波Flutter

"一套代码,多平台运行"一直是当今互联网喊得比较响亮的口号。各种跨平台方案也是如雨后春笋般涌现,比如H5,Week等。其中最经典的莫过于React Native。但是,由...

2019-09-13 00:00:52 56

原创 提升算法数据结构的几个网站

与同事之间的一段对话,搞得我的小心脏又是扑通扑通的。最起码证明自己坚持在算法这条路上还是有意义的。平复心情,决定还是写一篇我自己感觉比较好用的几个提升算法技能网站,也当做是做一下自我总结。学习算法可能会遇到的障碍有时候我们自认为对一些理论知识已经掌握的足够扎实。比如说链表。相信大多数开发人员对于链表结构不会陌生;对于链表的工作机制了然于心,链表各种操作的时间复杂度也能做到侃侃而谈;甚至...

2019-08-28 22:03:40 203

原创 时间复杂度分析(二)--常见时间复杂度

之前我介绍了大O时间复杂度的由来和表示方式(算法时间复杂度分析(一)), 最后介绍了几个分析大O时间复杂度的简单规则。这一篇介绍一些平时开发中经常会遇到的时间复杂度。在我们实际开发过程中...

2019-08-28 21:54:56 112

原创 共享单车Android面试回忆

今天一个朋友分享了一下他前端时间去某单车公司面试资深安卓工程师岗位的经历。因为他也是通过朋友内推,所以并没有给他定是什么级别。一共经历了三轮技术面试,第一轮是一个高级工程师,第二轮是资深...

2019-07-06 22:13:52 90

原创 算法时间复杂度分析(一)

金庸武侠中描述一种武功招式的时候,经常会用到 “快、准、狠” 这3个字眼。同样,在计算机中我们衡量一种算法的执行效率的时候也会考量3个方面:“快、省、稳”。具体点来讲就是我们在实现某一种算法的时候,最终目的就是要求计算机(CPU)在最短的时间内,用最少的内存稳定的输出正确的结果。这一章节主要来理解 “快”,至于“省” 和 “稳”,我会在后续章节进行讲解。那如何来判断某一段代码运行的是否足够快呢...

2019-07-03 22:50:59 7014 2

原创 Activity启动流程

本文分析的源代码基于 android27Activity的启动流程相当复杂,比如我们在Activity A打开Activity B。这一过程开始于A.startActivity 经过...

2019-05-07 21:59:01 101

原创 树(Tree)简介

计算机科学中,树(Tree)是将一组被称为结点(Node)的元素按照层次结构的方式组织而成。在这个层次结构最顶端的结点称为根, 与根直接相连的结点称为根的子结点。通常子节点本身也可以拥有...

2019-04-18 15:26:37 60

原创 如何写一个完美的单例类

设计模式在软件开发中一直是一个非常热门的话题。通常来说,设计模式是一种解决某一类软件开发问题的解决方案。而这篇文章所讲的单例模式就是创建型模式中的一种。单例模式的目的单例模式的主要目的是...

2019-04-12 22:40:00 49

原创 队列

队列&栈队列Queue是一种同栈Stack非常类似的结构。唯一的不同点是:最先被压入栈的数据,将会在最后被弹出栈;而队列与栈相反,最先进入队列的数据会被最先从队列中取出。这个非常...

2019-02-13 22:09:50 35

原创 Leetcode第1题: 快速查找数组中“和”为X的两个数

题目快速判断在一个数组中,是否存在两个数字,让这两个数字之和等于一个给定的值 X以数组num[] = {11, 15, 6, 8, 9, 10}为例:当x = 16时, 存在两个数字的...

2019-02-08 23:13:16 79

Picasso实现下载图片进度提示

http://blog.csdn.net/zxm317122667/article/details/51814095

2016-07-03

优化对Private方法进行单元测试Demo

不要对private方法写UnitTest code。这说明调用这个private方法的public接口做了太多它不该做的事情

2018-09-07

GreenDaoDemo

GreenDao的详细实用案例,包含List<String>类型的保存,已经多表之间的关联

2017-06-21

主题切换应用

http://blog.csdn.net/zxm317122667/article/details/52688882 一步一步教你实现主题切换 注意:需要先运行并安装压缩包中的BlackTheme和WhiteTheme两个应用,最后在运行安装SwitchThemeDemo

2016-09-28

MaterialPullToRefresh

自定义FrameLayout,实现下拉刷新 带水波纹的下拉刷新MaterialPullToRefresh http://blog.csdn.net/zxm317122667/article/details/52094048

2016-08-02

MyPopListButton

Android自定义Button结合PopupWindow和ListView实现顺序显示下拉菜单控件 http://blog.csdn.net/zxm317122667/article/details/50929798

2016-03-19

Scrollview_ViewPager_ListView

Scrollview中嵌套ViewPager和ListView的问题和解决方案

2016-03-17

自定义ImageView,实现点击之后算出点击的是身体的哪个部位

自定义ImageView,实现点击之后算出点击的是身体的哪个部位

2015-08-13

自定义VIewGroup实现仿淘宝商品详情页

仿照X宝的商品详情页, 拉到页面底部时有一个粘滞效果,如果用户继续向上拉的话就进入下一页

2015-07-23

Danny_姜的留言板

发表于 2020-01-02 最后回复 2020-01-02

android wifi 是如何实现打开wifi后自动连接的

发表于 2012-05-24 最后回复 2019-11-12

android wifi 是如何实现打开wifi后自动连接的

发表于 2012-05-24 最后回复 2012-07-31

APN默认设置

发表于 2012-03-27 最后回复 2012-03-27

空空如也

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

TA关注的人 TA的粉丝

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