自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(104)
  • 资源 (12)
  • 收藏
  • 关注

原创 CoordinatorLayout怎么玩折叠

CoordinatorLayout怎么玩折叠前言关于 CoordinatorLayout 的解析之前有一篇文章介绍 CoordinatorLayout补齐资料篇,如果对 CoordinatorLayout 的特性不太清楚的,可以先去了解下,再开始阅读本篇。需求大概两个月前,产品妹子携手设计妹子跑过来。 妹子:“小哥哥,给我们 app 的个人信息页加点动态效果吧”。 我:...

2017-10-09 11:16:48 521

原创 iOS/Android 微信及浏览器中唤起本地APP

需求概述分享应用活动链接已经成为手机应用一个非常重要的推广传播形式。为了提高转化率,就需要让用户不管是在微信或者是浏览器中,都能在点击链接后, 唤起本地的 app 后 , 跳转到指定页面 。虽然这个功能从用户体验方面来说是自然而然的,但是由于 iOS/Android 平台差异性,在实现过程中还是有些问题。未安装 app 时,如何做好引导页,引导用户下载后打开 app 后,是否可以打开之前唤醒前指定

2017-05-08 20:28:58 23537

原创 二叉排序树、红黑树、AVL树最简单的理解

前言[为什么写这篇]之前在知乎上看过一个提问:为什么红黑树比AVL树用的场景更为广泛,红黑树在 STL 和 Linux 都有一定的运用。而AVL树也在 Windows进程地址空间管理 中得到了使用。既然红黑树和AVL树这么厉害,就要进一步了解一下它们到底是什么。基础准备[需要懂点数据结构哦]红黑树和AVL都是来源于二叉排序树,关于二叉搜索树的相关知识本文将会对一些简单的概念和操作进行分析,更多的细节

2016-12-04 17:56:36 15258 4

转载 每日一问:谈谈 SharedPreferences 的 apply() 和 commit()

SharedPreferences 应该是任何一名 Android 初学者都知道的存储类了,它轻量,适合用于保存软件配置等参数。以键值对的 XML 文件形式存储在本地,程序卸载后也会一并清除,不会残留信息。使用起来也非常简单。// 读取val sharedPreferences = getSharedPreferences("123", Context.MODE_PRIVATE)val string = sharedPreferences.getString("123","")// 写.

2020-08-11 15:01:12 1904 1

转载 每日一问 | RecyclerView的多级缓存机制,每级缓存到底起到什么样的作用?

谈到 RecyclerView,相信不少同学,张口都能说出它的几级缓存机制:例如:一级缓存:mAttachedScrap 和 mChangedScrap 二级缓存:mCachedViews 三级缓存:ViewCacheExtension 四级缓存:RecycledViewPool然后说怎么用,就是先从 1 级找,然后 2 级...然后4 级,找不到 create ViewHolder。那么,有没有思考过,其实上面几级缓存都属于“内存缓存",那么这么分级肯定有一定区别。问题来了:每

2020-08-11 09:56:48 3121

原创 LeakCanary 为什么会生成新的桌面图标啊

问题起源大家现在都在用 LeakCanary 来做内存泄漏的检测,引入方式比较简单。在 LeakCanary 2.0 之前dependencies { debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.5'}以及在 Application 的 onCreate:LeakCanary.instal...

2019-12-14 18:44:58 1232 2

原创 图说数据库索引

数据库储存结构常见的数据库储存空间的基本结构是数据页,一个数据页的大小一般为 16KB。数据页的头信息中,保留中前向指针和后向指针,分别指向前一页和后一页,数据页之间形成了双向链表。在数据页内部,存储了用户记录(即使用数据库插入的一条条记录),记录按照主键值大小升序排序。每条记录都有一个后向指针,指向后一条记录,因此记录之间形成了单向链表。值得注意的是,数据页还会自动增加两条额外的记录,分别为...

2019-08-09 01:34:24 377

原创 扯一扯HTTPS单向认证、双向认证、抓包原理、反抓包策略

HTTP的缺点:通信使用明文,内容可能被窃听不验证通信方的身份,因此有可能遭遇伪装无法证明报文的完整性,所以有可能遭到篡改

2019-03-28 00:56:02 2253 1

原创 pymysql数据库之建库建表、增删改查

上次有同学问到,python的持久化怎么处理。这次就带大家来体验一下,python怎么去访问数据库。首先要有个数据库现在的数据库分类很多,以mysql为例。需要到mysql的官网上去下载mysql。下载路径下载打开安装包,勾选常见的安装位置等配置以后,设置数据库用户名密码,启动mysql就可以了。mac上的启动可以沿着一下路径开启: 系统偏好设置------Mysql------开启。如...

2019-03-19 23:51:56 10227 1

原创 Python小猪佩奇来拜年

快要过年了,在这里给大家带来的是Python版的小猪佩奇拜年!效果如下:turtle库介绍turtle(海龟)库是python自带的绘图库,可以用它来绘制想要的图画。它的绘图原理:有一只海龟,其实在窗体正中心,在画布上游走, 走过的轨迹形成了绘制的图形。海龟由程序控制,可以控制移动、变换 颜色、改变宽度等。主要指令:控制指令绘制指令全局指令这些指令都比较简单,利用这...

2019-02-03 22:08:57 1018

原创 233 Matrix矩阵快速幂Java

233 Matrix矩阵快速幂Java版题目背景如下:这个题目中重点是构造矩阵,具体的构造过程可参考233 Matrix HDU - 5015(矩阵快速幂)这道题目的C++解法很多,这里提供一个自己ac的代码:public class Solution { public static final int mod = 10000007; /** * @param...

2018-12-17 17:41:25 602

原创 程序员的自我修养

在看一本很有意思的书《程序员的自我修养》,讲的是链接、装载与库,大概讲了操作系统层面,程序如何加载运行的。记录以下关于操作系统的演化史。硬盘:硬盘有多个盘片,每个盘片分两面,每面按照同心圆划分为若干个,每个磁道划分为若干个扇区,盘面外围的磁道密度比内圈稀疏。现代的硬盘普遍采用LBA(logic block address)的方式来区分,所有扇区从0到开始编号,抛弃复杂的磁道、盘面的概念。...

2018-12-01 17:43:59 251

原创 Git workflow工作流及边角知识

Git workflow工作流及黑科技开篇workflow工作流rebase onto合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出...

2018-11-25 18:52:35 294

原创 Android Studio 3.2 发布

Android Studio 3.2 正式版已经发布了。比较期待的以及实际工程中可能会着重用到的是耗电分析功能。其他新特性请参考:https://juejin.im/post/5bc5e70ce51d450e85307963以及https://juejin.im/post/5bc54686e51d450e5f3dbe41附上自己关于 Android 新特性的介绍ppt:...

2018-10-17 11:12:49 603

转载 Android应用图标微技巧,8.0系统中应用图标的适配

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/79417483本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭霖 即可关注,每个工作日都有文章更新。大家好,2018年的第一篇文章到的稍微有点迟,也是因为在上一个Glide系列结束之后一直还没想到什么好的新题材。现在已经进入了2018年,Andro...

2018-07-27 19:07:16 203

原创 重构——改善既有代码的设计

最近在读,总结中。作为一个经验丰富的开发者,你可以肯定:无论用户提出什么方案,你要保证有一定的预见性,用户肯定会在六个月之内再次修改他。如果你想重构,从剥离函数开始。将大块复杂难懂的代码分离,extract method。更改变量名称是值得的行为吗?绝对值得。好的代码应该能清楚的表达出自己的功能,变量名称是代码清晰的关键。重构和性能优化不要靠猜,要根据具体的观察度量指标来做出...

2018-03-18 20:01:16 276

转载 Android性能优化:手把手带你全面了解 内存泄露 & 解决方案

原文地址:http://blog.csdn.net/carson_ho/article/details/79407707前言在Android中,内存泄露的现象十分常见;而内存泄露导致的后果会使得应用Crash本文 全面介绍了内存泄露的本质、原因 & 解决方案,最终提供一些常见的内存泄露分析工具,希望你们会喜欢。 目录1. 简介即 ML (Memory Leak)指 程序在申请内存后,当该内...

2018-03-04 16:57:27 399

原创 Error: Could not link: /usr/local/etc/bash_completion.d/brew

用mac在brew update的时候,提示出现error link的错误,最后的提示是please delete these path。解决方案是:rm -rf 上述的路径我的就是一起合并执行力: rm -rf /usr/local/share/zsh/site-functions/_brew & rm -rf /usr/local/share/man/man1/brew.1 &...

2018-02-12 10:01:41 567

转载 Spring配置文件详解

转自: http://book.51cto.com/art/201004/193743.htm此处详细的为我们讲解了spring2.5的实现原理,感觉非常有用             Spring配置文件是用于指导Spring工厂进行Bean生产、依赖关系注入(装配)及Bean实例分发的"图纸"。Java EE程序员必须学会并灵活应用这份"图纸"准确地表达自己的

2018-01-11 11:34:39 259

原创 JS 备忘录

Numberjs 数值只有 Number,唯一能判断NaN的方法是通过 isNaN() 函数:isNaN(NaN); // truenull和undefined在其他语言中,也有类似JavaScript的null的表示,例如Java也用null,Swift用nil,Python用None表示。但是,在JavaScript中,还有一个和null类似的undefined,它表示...

2018-01-05 17:32:34 929

原创 shell 备忘录

shell 主要指 shell 脚本,通常有两种方式运行:shell 运行方式1.作为可执行程序 保存为 helloworld.sh,并 cd 到相应目录:chmod +x ./helloworld.sh #使脚本具有执行权限./helloworld.sh #执行脚本2.作为解释器参数 直接运行解释器,其参数就是 shell 脚本的文件名/bin/sh helloworld.sh

2018-01-02 16:28:15 512

转载 Groovy脚本基础全攻略

Groovy脚本基础全攻略【工匠若水 http://blog.csdn.net/yanbober 转载请注明出处。点我开始Android技术交流】1 背景Groovy脚本基于Java且拓展了Java,所以从某种程度来说掌握Java是学习Groovy的前提,故本文适用于不熟悉Groovy却想快速得到Groovy核心基础干货的Java开发者(注意是Java),因为我的目

2017-11-24 10:39:23 511

转载 别再加端到端集成测试了,快换契约测试吧

原文地址:http://insights.thoughtworks.cn/contract-test/?ref=myread正如大家所知,最初QA都是手动执行测试用例,开发人员每修改一个版本,QA就要手动测试一遍,随着功能的不断增加,手动测试重复的工作量越来越大。为了解脱QA重复性劳动,提高工作效率,重复执行的测试用例被自动化了。自动化测试让QA的工作前进了一大步。本文讲的

2017-11-21 09:38:15 784

原创 移动端弱网测试及Chrome前端调试

移动端弱网测试 chrome前端调试

2017-08-26 15:26:27 3252

原创 Android 文件存储策略

Android的文件存储有两种类型: 内部存储 和 外部存储 。首先来确定下一些易混淆的概念:内部存储 不是内存,内部存储位于系统中很特殊的一个位置。外部存储 不一定是 SD 卡, 机身存储也是外部存储。比如 16GB 版本的安卓手机,机子本身就带了外部存储。对于开发来说,最关键的是,我们都是通过相同的 api 来访问可移动的 sdcard 或者手机自带的存储(外部存储)。绝对路径是文件的 完

2017-03-21 19:36:55 788

原创 service和aidl的区别

service是在当前进程中新开线程,aidl是系统新开进程,属于另一个进程。

2017-03-17 11:03:26 1126

原创 AndroidStudio Frameworks detected: Android framework is detected in the project Configure

当我们从 Github 上下载一份 Android 源码,可能遇到的问题是,我们遇到 gradle 的一个提示:AndroidStudio Frameworks detected: Android framework is detected in the project Configure。遇到这种情况,就要去检查下载的这个包的结构。 打开菜单栏,File —> open 就会定位到当前打开的

2017-02-22 15:29:51 3574

原创 Android的一些trick

点击空白收起键盘iOS点击空白收起键盘,Android这边要怎么处理呢。其实很简单,代码如下。 private static void setTouchListener(final Activity context){ context.getWindow().getDecorView().setOnTouchListener(new View.OnTouchListener() {

2017-02-20 10:20:05 511

原创 CoordinatorLayout补齐资料篇

关于CoordinatorLayout你所需要的指南。

2017-02-09 19:37:52 455

转载 一个2年安卓开发者的一些忠告

原文:What 2 Years of Android Development Have Taught Me the Hard Way 转载:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2016/1006/6659.html我仍记得2014年我决定做安卓开发的那天,这是我一生中做出的最好决定之一。到现在已经有

2017-02-04 10:34:21 769

原创 RESTful API设计指南

RESTful API设计指南RESTful API概述RESTful API是什么RESTful是Representational State Transfer的缩写,代表着表征状态转移。REST拥有一组架构约束条件和原则,只要符合这一套约束原则的架构,就是RESTful架构。 需要注意的是,REST并没有提供新的组件、技术,也并不是专门为HTTP提供规范,而是通过约束和原则去合理使用Web的现

2017-01-15 23:09:39 1790

原创 设计模式之禅

代码,是写给人看的,是写给机器运行的这句话不知道是在哪里看到的,当时似懂非懂。后来细细品味了一番,觉得还是有道理的。 回想在做项目的时候,我们所写的代码确实能够做到后半部分,写给机器运行是个必备的条件。然而,前半部分呢,代码是写给人看的这一点很容易被忽略吧。每每想起以前接受别人的项目,甚至是自己以前写的项目,看到那些仙风道骨一般的代码,都要花不少时间来整理代码间错综复杂的关系,从交叉引用中去剥离

2017-01-03 17:26:47 563 1

原创 hannoi塔(汉诺塔)移动过程解析

来源汉诺塔是来源于印度的一种古老的益智游戏。它总共有三根柱子,分别为A,B,C。初始状态下,A柱中有N个盘子,这N个盘子有大有小,大的在下面,小的在上面。游戏的最终目标就是将A柱上的所有盘子移到C柱上,中间可以经过B柱,过程中必须保持大盘在下面,小盘在上面。如图所示:算法引申在这个题目中,我们把关注点投向最优解实现:需要用最少的步骤完成游戏,移动的过程是怎么样的。 现在让我们在脑海中想一下自己操

2016-12-03 17:02:47 16554 2

原创 回文序列解题思路

网易校招的一道算法题提到了回文序列,原题如下: 如果一个数字序列逆置之后跟原序列是一样的就称这样的数字序列为回文序列。例如: {1, 2, 1}, {15, 78, 78, 15} , {112} 是回文序列, {1, 2, 2}, {15, 78, 87, 51} ,{112, 2, 11} 不是回文序列。 现在给出一个数字序列,允许使用一种转换操作: 选择任意两个相

2016-12-02 00:17:06 2263

原创 React Native踩坑记录

添加依赖报错信息: npm WARN react-native@0.35.0 requires a peer of react@~15.3.1 but none was installed.解决方案: npm install -save react@~15.3.1在package.json中也可以添加依赖 "dependencies": { "react": "^15.3.2"

2016-11-29 23:15:38 4674

原创 利用 Python 爬取豆瓣电影排行榜 Top250 的数据

平时利用在地铁公交的时间简单学习了解了 Python,学习参考的是廖雪峰的Python教程 ,但是要想学好,还是要上手练习才会有好的效果,于是周末就利用 Python 写了一个简单的爬虫,来获取豆瓣电影排行榜 Top250 的数据,实现了保存数据到文件,保存海报图片。我利用的是 requests (HTTP for Humans ,哈哈)和 BeautifulSoup,具体使用方法可参考官网,

2016-11-25 23:52:02 2065

转载 携程火车票业务在 React Native 实践中踩过的坑

本文为携程技术中心投稿,版权归原作者所有,非经允许,请勿转载。 原文是禁止转载的,此次转载用于学习,非商业使用。原文链接:http://geek.csdn.net/news/detail/114527【作者简介】姚瑞琼,前端程序媛一枚。2014年毕业后加入携程火车票事业部,今年年初起至今,主要负责 React Native 方案在火车票业务线的实践,先后参与并负责汽车票 RN 独立

2016-11-13 21:59:46 836

原创 动手写第一个微信小程序

微信小程序开放公测了,目前公测面向的用户主要是政府、企业、组织,暂时不对个人开发者开放注册。 注册请前往微信公众平台注册 微信小程序注册 下载微信web开发者工具并打开quickStart工程(提供获取当前登录账号的功能),可以看到编辑和调试的界面 点击开发者工具左侧导航的“编辑”,我们可以看到这个项目,已经初始化并包含了一些简单的代码文件。最关键也是必不可少的,是app.js、app

2016-11-06 23:33:38 3318 1

原创 Android应用增量更新

增量概述之前在创业公司,人手不够,业务人员也要参与功能测试。有一段时间,应用的版本迭代非常快,基本上两天一版,测试时要重新下版本。当时,就有参与测试的人员抱怨说:测得这么频繁,能不能出个补丁啊,就不用整个下了。我那时候的回答的:这和游戏不一样,都是重新下载的。后来才发现,增量更新也是能够实现的。现在我带大家来了解下增量更新的条件与步骤。增量更新的重点在于生成增量文件并且和老文件合并: 1. 获取老

2016-10-30 21:29:38 371

原创 1024程序员节,定个小目标

自从来了上海,感觉很久没有写过博客了,技术博客的停更只可能是两种情况: 1. 项目太忙,加班很多 2. 时间花在其他事情上 我静静地想了一下,只可能是原因2了,毕竟现在客户端的开发人员众多,开发任务又不会太紧急,那么时间到底花在哪呢。主要是初到上海喝朋友聚会太多,平时忙着联络,周末忙着出门,根本没心思写代码。如今,来上海快一个月了,该玩的玩了,该理清的理清了,剩下的时间就能做点提升的事了。

2016-10-24 21:58:36 471

Android 2018 新特性介绍

Android 2018 新特性介绍,包括app bundle,kotlin,slices,app action,等等

2018-10-17

GankApp源码

GankApp, 运用Rxjava、Retrofit以及其它第三方类库

2016-08-05

Android数据库框架ORMLite使用

Android数据库框架ORMLite使用

2015-11-09

属性动画TypeEvaluator实例

博客源码: 利用TypeEvaluator实现小球从屏幕左上角移动到屏幕右下角的过程 此过程小球不断变色。

2015-10-25

自定义listview仿qq侧滑置顶删除

博客源码:http://blog.csdn.net/linshijun33/article/details/48394465 自定义listview仿qq侧滑置顶删除 自定义View的学习使用 用到了adapter,listview,gesture

2015-09-12

Volley实战经典

Volley实战 使用的是JsonRequest,StringRequest 以及三种Volley加载图片的方式

2015-08-31

Android ScrollView滚动实现大众点评、网易云音乐评论悬停效果

Android ScrollView滚动实现大众点评、网易云音乐评论悬停效果 滚动悬停,提高用户转化率 Android Studio源码, 我的博客有相关的源码介绍

2015-08-23

TextView的折叠与展开

TextView在长文本情况下的折叠与展开 小箭头翻转效果呈现。 随博客源码。 http://blog.csdn.net/linshijun33/article/details/47906127

2015-08-23

Android Material Design之Toolbar与Palette实践

Android Material Design设计 Android Studion开发 Toolbar实践运用 Palette调色板运用 PagerSlidingTabStrip运用范例

2015-08-22

BaseAdapter, 适用于GridView,Spinner,ListView

博客源码,需要的下载。主要讲解了BaseAdapter适配器的使用方法。 BaseAdapter, 适用于GridView,Spinner,ListView

2015-08-20

Android MVP模式实现

Android MVP模式是不同呈MVC模式的,MVP中View与Model不直接通信,而是通过Presenter来进行任务调度。 代码中为V层和M层都写了接口为的是降低代码的耦合。 使用谷歌推荐的Android Studio写的。

2015-08-13

单片机大全

单片机技术大全

2014-10-03

空空如也

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

TA关注的人

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