自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

perry_Fan

实践出真知

  • 博客(81)
  • 资源 (1)
  • 收藏
  • 关注

原创 对优秀程序员的思考

关于技术人员知识体系的思考PS:网上已经有很多类似的文章,但我依然要再造一次“轮子”,因为多少有些不同的心得。人生总有目标和追求不管是谁,活着总是有方向和追求的,差别可能是有些人“高尚”一些,有些人“低俗”一些,有些人对自己的方向没有那么坚定、今天定了明天可能就变了。 无论是短期或长期、高尚或低俗的目标或追求,都无关对错,只是个体的选择。(恩,我也不知道自己说了什么)优秀的

2016-05-08 09:12:32 832

转载 CSAPP-导读

Chapter 1 A Tour of Computer System 一个对计算机系统总体的介绍,简单明了。应试 ★★★:可能在笔试中会有一些整体上的概念题。 修炼 ★: 属于计算机最基本的概念。chapter 2 Representing and Manipulating Information 信息在计算机中的表示形式。分别包括整数和浮点数的表示形式。应试 ★: 应...

2018-08-23 17:10:19 591

原创 Android源码解析(一)Android项目构建过程

平时开发过程中我们通过android studio编写完成android项目之后直接点击 Run ‘app’就可以在build/outputs/apk生成可以在android设备中安装的apk文件了,那么整个android源码的构建过程是怎么样的呢?根据Google官方提供的流程图来具体了解构建的过程: 通常的构建过程就是如上图所示,下面是具体描述:AAPT(Android Asset Packa

2017-11-10 17:12:14 1136

原创 Leetcode 第206题:Reverse Linked List

链表问题1.递归思路/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListNode re

2017-11-03 10:38:23 563

原创 LeetCode 第17题:Letter Combinations of a Phone Number

采用递归的思想解答。回溯法实现

2017-10-30 16:29:51 595

原创 Android Studio不能走到断点的原因?

可能是由于buildTpes{ debug{ minifyEnable true }}此时设定为 false 可解决

2017-10-25 15:05:00 5086

转载 Android:深入剖析 Retrofit 2.0 源码

前言在Andrroid开发中,网络请求十分常用 而在Android网络请求库中,Retrofit是当下最热的一个网络请求库今天,我将手把手带你深入剖析Retrofit v2.0的源码,希望你们会喜欢在阅读本文前,建议先阅读文章:这是一份很详细的 Retrofit 2.0 使用教程(含实例讲解)目录1. 简介特别注意:准确来说,Retrofit 是一个 RE...

2017-10-25 10:35:09 520

原创 LeetCode 第1题:Two Sum

Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution, and you may not use the same ele

2017-10-23 16:12:55 294

转载 RxJava使用指南

前言Rxjava,由于其基于事件流的链式调用、逻辑简洁 & 使用简单的特点,深受各大 Android开发者的欢迎。如果还不了解RxJava,请看文章:Android:这是一篇 清晰 & 易懂的Rxjava 入门教程 RxJava如此受欢迎的原因,在于其提供了丰富 & 功能强大的操作符,几乎能完成所有的功能需求 今天,我将为大家献上一份 RxJava操...

2017-10-09 15:00:10 698

原创 解决react-native run-ios报错问题--Print: Entry, ":CFBundleIdentifier", Does Not Exist

解决ReactNative开发中 run-ios构建时报错:CFBundleIdentifier",Does Not Exist打开XCode,进入.xcodeproj文件,运行,编译时报错:'boost/iterator/iterator_adaptor.hpp' file not found’这个问题只在react native 0.45.0及以后的版本中出现,stackove

2017-09-27 10:38:49 5322

原创 Android 学习书单

视频,公众号,博客,书,源码是一个学习的整体。提升的过程中应当将零碎的知识通过实践之后整合到自己的知识体系当中。下面是自己对于Android书籍部分的一个简单列举Android入门《第一行代码》《Android群英传》《Android群英传-神兵利器》Android中级《Android高级进阶》《Andriod进阶之光》《Android开发进阶:从小工到专家》《Android开发艺

2017-09-12 00:28:34 511

转载 Android事件分发机制 详解攻略

前言Android事件分发机制是Android开发者必须了解的基础 网上有大量关于Android事件分发机制的文章,但存在一些问题:内容不全、思路不清晰、无源码分析、简单问题复杂化等等 今天,我将全面总结Android的事件分发机制,我能保证这是市面上的最全面、最清晰、最易懂的  本文秉着“结论先行、详细分析在后”的原则,即先让大家感性认识,再通过理性分析从而理解问题;  所以,...

2017-09-11 23:58:29 433

转载 Android Glide源码分析

前言 Glide,该功能非常强大 Android 图片加载开源框架 相信大家并不陌生  正由于他的功能强大,所以它的源码非常复杂,这导致很多人望而却步 本人尝试将 Glide 的功能进行分解,并单独针对每个功能进行源码分析,从而降低Glide源码的复杂度。  接下来,我将推出一系列关于 Glide的功能源码分析,有兴趣可以继续关注 今天,我将主要源码分析Glide的基...

2017-08-23 22:36:45 638

转载 Android内存优化杂谈

Android内存优化是我们性能优化工作中比较重要的一环,这里其实主要包括两方面的工作:优化RAM,即降低运行时内存。这里的目的是防止程序发生OOM异常,以及降低程序由于内存过大被LMK机制杀死的概率。另一方面,不合理的内存使用会使GC大大增多,从而导致程序变卡。优化ROM,即降低程序占ROM的体积。这里主要是为了降低程序占用的空间,防止由于ROM空间不足导致程序无

2017-08-21 10:49:17 427

转载 Android WebView 的缓存机制 & 资源预加载方案

 一、简介Retrofit是Square公司开发的一款针对Android网络请求的框架,Retrofit2底层基于OkHttp实现的,OkHttp现在已经得到Google官方认可,大量的app都采用OkHttp做网络请求,其源码详见OkHttp Github。本文全部是在Retrofit2.0+版本基础上论述,所用例子全部来自豆瓣Api首先先来看一个完整Get请求是如何实现:...

2017-03-24 16:43:38 1280

原创 KMP算法详解

kmp算法完成的任务是:给定两个字符串O和f,长度分别为n和m,判断f是否在O中出现,如果出现则返回出现的位置。常规方法是遍历a的每一个位置,然后从该位置开始和b进行匹配,但是这种方法的复杂度是O(nm)。kmp算法通过一个O(m)的预处理,使匹配的复杂度降为O(n+m)。kmp算法思想我们首先用一个图来描述kmp算法的思想。在字符串O中寻找f,当匹配到位置i时两个字符串不相等,这

2017-03-21 18:59:30 586

原创 码农翻身精华文章

让你豁然开朗的干货文章合集,通俗易懂

2017-02-27 17:25:18 34223 7

转载 算法第四版练习题答案

算法第4版练习题答案Algorithms 4th edition exercise answers.1FUNDAMENTALS1.2.13Transaction.javatransaction data type1.2.16Rational.javarational number

2017-02-22 16:35:14 11006

原创 React-Native学习指南

本指南汇集React-Native各类学习资源,给大家提供便利。指南正在不断的更新,大家有好的资源欢迎Pull Requests!同时还有Awesome React Native系列 https://github.com/jondot/awesome-react-nativeReact NativeReact.jsES6系列教程开源APP图书组件工具资源

2017-02-16 10:11:53 885

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

http://blog.csdn.net/u011240877/article/details/54141714快来优化你的项目吧~读完本文你将了解到:什么是 Lint、Lint 工作方式简单介绍、从命令行运行 Lint、Android Studio 中使用 Lint、团队中建立代码规范利器提升降低问题的等级、Lint 虽好也不能贪杯、在 Java 代码中忽略 Lint 警告、在 XML代码中忽略 Lint 警告、Gradle 中配置 Lint、自动删除查找出来的无用资源文件

2017-02-15 17:28:26 561

原创 Android项目快速编译之Freeline-Android的配置与集成

Freeline是蚂蚁金服旗下开发的一个基于动态替换的编译方案,运用到项目后可以极大的提高项目编译速度。相比较现在的instant-run,buck,layoutcast等方案快数倍。 开源地址: https://github.com/alibaba/freeline 相关原理介绍: https://yq.aliyun.com/articles/59122?spm=5176.809

2016-12-27 10:38:02 545

原创 Android Studio - MAC版快捷键详解

要点总结 : -- 熟练使用快捷键 : 在任何编程环境中, 熟练使用环境提供的快捷键会大大提高编程效率, 在 Android Studio 中也不例外, 熟练使用其快捷键是 Android 开发者必备的技能之一, 这里根据官网提供的列表, 我自己总结使用了一遍, 将快捷键使用记录以及使用后的效果都展示给大家; -- 只适用于 MAC 操作系统 : 该快捷键总结的时 MAC

2016-12-16 11:59:30 21334 1

原创 Git有这一篇就够了

在日常工作中,经常会用到Git操作。但是对于新人来讲,刚上来对Git很陌生,操作起来也很懵逼。本篇文章主要针对刚开始接触Git的新人,理解Git的基本原理,掌握常用的一些命令。一、Git工作流程以上包括一些简单而常用的命令,但是先不关心这些,先来了解下面这4个专有名词。Workspace:工作区Index / Stage:暂存区Repository:仓库区(或本地仓

2016-12-14 12:14:11 4718

原创 Xposed框架详解

Xposed,大名鼎鼎的Xposed,是Android平台上最负盛名的一个框架。在这个框架下,我们可以加载很多插件App,这些插件App可以直接或间接操纵系统层面的东西,比如操纵一些本来只对系统厂商才open的功能(实际上是因为Android系统很多API是不公开的,而第三方APP又没有权限)。有了Xposed后,理论上我们的插件APP可以hook到系统任意一个Java进程(zygote,syst

2016-12-14 10:16:20 9827

转载 [总结]FFMPEG视音频编解码零基础学习方法

在CSDN上的这一段日子,接触到了很多同行业的人,尤其是使用FFMPEG进行视音频编解码的人,有的已经是有多年经验的“大神”,有的是刚开始学习的初学者。在和大家探讨的过程中,我忽然发现了一个问题:在“大神”和初学者之间好像有一个不可逾越的鸿沟。“大神”们水平高超,探讨着深奥的问题;而初学者们还停留在入门阶段。究竟是什么原因造成的这种“两极分化”呢?最后,我发现了问题的关键:FFMPEG难度比较大,

2016-12-13 14:37:39 1439 1

转载 RxJava应用场景

前言Rxjava由于其基于事件流的链式调用、逻辑简洁 & 使用简单的特点,深受各大 Android开发者的欢迎。如果还不了解RxJava,请看文章:Android:这是一篇 清晰 & 易懂的Rxjava 入门教程今天,我将为大家带来 Rxjava的的基本使用 & 实际应用案例教学,即常见开发应用场景实现 ,并结合常用相关框架如Retrofit等,希望大家会...

2016-12-13 11:58:44 811

原创 Android面试题整理

2017 年 Android 曲折的求职之路2017 Android 暑期实习生面试经验谈杭州找 Android 工作的点点滴滴为跳槽的你献计献策(Android)2017年4月美团Android面试总结美团:1 手写算法题。一共有3个,面试官随机选择一个。猫扑素数;1到n,求1的个数;单词反转。2 Activity的加载模式。sta

2016-12-13 11:51:36 2562 1

原创 Android 自定义View合集

2016-12-12 15:39:57 573

原创 Python网络爬虫实战项目代码大全

WechatSogou [1]- 微信公众号爬虫。基于搜狗微信搜索的微信公众号爬虫接口,可以扩展成基于搜狗搜索的爬虫,返回结果是列表,每一项均是公众号具体信息字典。 DouBanSpider [2]- 豆瓣读书爬虫。可以爬下豆瓣读书标签下的所有图书,按评分排名依次存储,存储到Excel中,可方便大家筛选搜罗,比如筛选评价人数>1000的高分书籍;可依据不同的主题存储到Excel不同的Shee...

2016-12-12 14:16:59 50804 3

原创 AS: Unsupported method: AndroidProject.getPluginGeneration().

16:56:06 UnsupportedMethodException Unsupported method: AndroidProject.getPluginGeneration(). The version of Gradle you connect to does not support that method. To resolve t

2016-12-06 13:51:43 538

原创 Android热修复——Tinker微信解决方案

Android的热修复前言:随着时代的发展,由于公司的项目需要去求变化平凡计划总赶不上变化,H5的高灵活性,开发周期短,更新速度快H5以及一些混合开发越来越被看好,然而主要原因之一:这种混合开发的方式容错率大,更新和修复BUG快.不用发布版本就可以让用户不觉的情况下就更新对应的内容或者BUG,我们不能否认混合开发的快捷,正在此前提下热修复和热更新技术也得到了非常大的发展,不管热修复还是

2016-11-10 17:24:18 2201 5

转载 Android性能优化:性能优化指南(含内存优化、布局优化等)

前言在 Android开发中,性能优化策略十分重要 因为其决定了应用程序的开发质量:可用性、流畅性、稳定性等,是提高用户留存率的关键 本文全面讲解性能优化中的所有知识,献上一份 Android性能优化的详细攻略, 含:优化方向、原因 & 具体优化方案,希望你们会喜欢文章较长,建议预留较长时间阅读 / 收藏目录1. 性能优化的目的性能优化的目的是为了让应用程序A...

2016-10-17 18:51:57 1455

翻译 知其所以然(以算法学习为例)

其实下文的绝大部分内容对所有学习都是同理的。只不过最近在正儿巴经地学算法,而后者又不是好啃的骨头,所以平时思考总结得就自然要比学其它东西要多一些。  问题:目前几乎所有的算法书的讲解方式都是欧几里德式的、瀑布式的、自上而下的、每一个推导步骤都是精准制导直接面向目标的。由因到果,定义、引理、定理、证明一样不少,井井有条一丝不乱毫无赘肉。而实际上,这完全把人类大脑创造发明的步骤给反过来了。看起

2016-10-14 13:26:04 654

原创 Android内存泄漏解析

定义​内存泄漏也称作“存储渗漏”,用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元。直到程序结束。(其实说白了就是该内存空间使用完毕之后未回收)即所谓内存泄漏。 内存泄漏形象的比喻是“操作系统可提供给所有进程的存储空间正在被某个进程榨干”,最终结果是程序运行时间越长,占用存储空间越来越多,最终用尽全部存储空间,整个系统崩溃。所以“内存泄漏”是从操作系

2016-09-18 15:40:52 814

转载 Java注解基础概念

注解的概念注解(Annotation),也叫元数据(Metadata),是Java5的新特性,JDK5引入了Metadata很容易的就能够调用Annotations。注解与类、接口、枚举在同一个层次,并可以应用于包、类型、构造方法、方法、成员变量、参数、本地变量的声明中,用来对这些元素进行说明注释。注解的语法与定义形式(1)以@interface关键字定义(2)

2016-08-31 15:40:23 751

转载 Android性能优化典范之多线程篇

本文涉及的内容有:多线程并发的性能问题,介绍了 AsyncTask,HandlerThread,IntentService 与 ThreadPool 分别适合的使用场景以及各自的使用注意事项,这是一篇了解 Android 多线程编程不可多得的基础文章,清楚的了解这些 Android 系统提供的多线程基础组件之间的差异以及优缺点,才能够在项目实战中做出最恰当的选择。1. Threading Perf...

2016-08-30 22:39:54 539

原创 android中对线程池的理解与使用

前段时间有幸接到腾讯上海分公司的 android开发面试,虽然最后一轮被毙了。但还是得总结一下自己在android开发中的一些盲点,最让我尴尬的是面试官问我几个android中线程池的使用与理解。。哎。。平时就知道new 线程要么用Asynctask,再者就是从github上下载大神写的一些开源库,虽然里面涉及到了线程池,但自己最多就是改改里面的最大线程数,没有仔细研究里面对线程池的使用。。结果被

2016-08-29 15:40:58 525

翻译 Android安全:使用HTTPS与SSL

SSL,安全套接层(TSL),是一个常见的用来加密客户端和服务器通信的模块。 但是应用程序错误地使用SSL可能会导致应用程序的数据在网络中被恶意攻击者拦截。为了确保这种情况不在我们的应用中发生,这篇文章主要说明使用网络安全协议常见的陷阱和使用Public-Key Infrastructure(PKI)时一些值得关注的问题。概念一个典型的SSL使用场景是,服务器配置中包含了一个证书,有匹

2016-08-18 16:19:25 1343

原创 Android面试题总结

2016-07-22 08:50:42 1597

原创 SurfaceView和View最本质的区别

surfaceView是在一个新起的单独线程中可以重新绘制画面,而View必须在UI的主线程中更新画面。那么在UI的主线程中更新画面 可能会引发问题,比如你更新画面的时间过长,那么你的主UI线程会被你正在画的函数阻塞。那么将无法响应按键,触屏等消息。当使用surfaceView 由于是在新的线程中更新画面所以不会阻塞你的UI主线程。但这也带来了另外一个问题,就是事件同步。比如你触屏了一下,你需要s

2016-07-07 14:57:15 374

计算机组成原理

408计算机专业考研必备图书,《计算机组成原理》是清华大学出版社出版的图书,作者是蒋本珊。书 名: 计算机组成原理 作 者:蒋本珊 出版社: 清华大学出版社 出版

2015-11-25

空空如也

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

TA关注的人

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