自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小之的博客

只要觉得正确,不论过程多艰难,硬着头皮下去终究是对的

  • 博客(40)
  • 收藏
  • 关注

原创 使用Python快速获取公众号文章定制电子书(二)

原文链接我的GitHub博客地址接上篇文章使用Python快速获取公众号文章定制电子书(一)。我们现在已经成功的将公众号历史消息的前十条文章给爬取了出来,使用 content_url 这个关键字段,我们便可以轻易的获取文章具体内容,并将文章保存到本地文件中。实际上上面这些东西已经是我们实现爬取公号文章的核心功能了,剩下的就是如何通过某种方式将公众号的所有文章一次性爬取出来。我们用手机在...

2018-05-23 10:30:52 494

原创 使用Python快速获取公众号文章定制电子书(一)

原文链接我的GitHub博客地址前言分享一个笔者最近写的 Python 相关的小 demo,爬取某个公众号的所有历史文章,并导出到本地,方便之后在线下环境直接观看。参考了刘志军的小册基于Python实现微信公众号爬虫,有兴趣的同学也可以自行购买。这个功能还是有一定实际用途的,需求和功能虽然简单明确,但我在开发的过程中,也是遇到了一定的问题,可以说好好的把 Python 爬虫方面...

2018-05-23 10:11:23 1875

原创 轻松初探 Python 篇(六)— 函数

这是「AI 学习之路」的第 6 篇,「Python 学习」的第 6 篇 小之的公众号 : WeaponZhi题外话这周工作日 5 天,我并没有更新文章,但大家并不要以为小之懒惰了。正好相反,自从上篇的 AI 入门文章后,我自己便开始进行机器学习的系统学习了,这周一到周五,只要有空闲时间,我就开始看吴恩达 Coursera 的视频,可以说是非常痴迷了。吴教授的课程非常通俗易懂,而且他本人的

2017-12-18 15:43:38 364

原创 轻松初探 Python 篇(五)— dict 和 set 知识汇总

这是「AI 学习之路」的第 5 篇,「Python 学习」的第 5 篇 小之的公众号 : WeaponZhi介绍一下 dict 和 set 这两个数据结构。dictdict 是 Python 内置的字典类型,熟悉 Java 的同学可以把它类比为 Map。dict 使用键值对来存储(key-value),它的查找速度特别快。dict 一般用在什么场景呢?假设我们需要根据公司名字查找公司地址

2017-12-18 15:42:50 346

原创 轻松初探 Python 篇(四)—list tuple range 知识汇总

这是「AI 学习之路」的第 4 篇,「Python 学习」的第 4 篇 小之的公众号 : WeaponZhi今天的主题是 Python 的序列类型(Sequence Types),内容很多,干货很足,也是我们平时经常使用的,大家准备好小板凳纸笔吧!注意,我不准备再将循环语句和条件语句方面的知识了,比较简单,每种语言这方面的写法区分不大,有兴趣的大家可以自行去查阅一下。listlist 是一种

2017-12-18 15:42:16 599

原创 Markdown 你真的懂了吗

为什么说,每个人都应该学会 Markdown在 IT 圈和作家圈,Markdown 是一种非常风靡的语言,可能大家都已经或多或少的接触过,或者正在使用了,如果你现在没用在用,那么我强烈的推荐您学习和掌握该语言,这篇文章我不是站在一个程序员的角度来介绍 Markdown 的,我觉得只要是文字工作者,都有必要去学习和使用 Markdown。同时,我也不会介绍 Markdown 的语法。我对 Markdo

2017-11-22 15:42:08 7904 1

原创 AI 学习之路——轻松初探 Python 篇(三)

这是「AI 学习之路」的第 3 篇,「Python 学习」的第 2 篇Python 字符串使用和 C 语言比较类似,但还有一些我们值得注意的地方需要关注,用这篇文章来帮助大家掌握 Python 的字符串吧!编码不论什么语言,我们都需要考虑一下这个语言的编码问题。「ASCII」编码是我们最熟悉的编码,但它只有 127 个字符被编码到计算机里面了,显然,像中日韩这类国家,语言文字比较特殊,就需要自己来

2017-11-20 10:58:52 5551

原创 AI 学习之路——轻松初探 Python 篇(二)

这是「AI 学习之路」的第 2 篇,「Python 学习」的第 2 篇我将分两篇讲解下 Python 的基础语法,这是第一篇。大家也可以在很多地方看到入门的学习资料,我就简单的根据自己理解和学习,用尽量简单和好理解的方式,再来小入门一下,文中可能会用到一些 Java 上的理解。总而言之,我不希望是一种阅读文档的方式,而是用一种思考和共鸣的方式去理解各个知识点。一些建议今天在群里,有的小伙伴建议我使

2017-11-20 10:57:56 1726

原创 AI 学习之路——轻松初探 Python 篇(一)

这是「AI 学习之路」的第 1 篇,「Python 学习」的第 1 篇

2017-11-20 10:50:50 868

原创 没错,我准备和你一起学习人工智能

我准备开始连载一个「人工智能」学习相关的系列博客,说说我为什么决定做这件事吧1人工智能确实大热,现在 GitHub 上 Star 数最高的项目就是 Google 的深度学习开源框架 TensorFlow 了,之前的阿尔法狗,身后支持的技术就是 TensorFlow,大家都知道,Google 自己维护的项目都是非常值得信赖的,有 Google 这样值得信赖的企业为它支撑,我们是有理由相信 Tenso

2017-11-11 23:01:09 623

原创 高效开发 MVVM 和 databinding 你需要使用的工具

相信不少同学已经开始使用MVVM作为自己 Android 开发架构了,但实际上,我在使用过程中查阅资料发现,网上有关 MVVM 的资料并不是很多,这主要是因为 MVVM 还是有一定使用门槛的,并且 MVVM 不一定会帮助你提高开发效率,可能你需要写的代码更多了,或者说为了你为了让代码保持 Databinding 的双向绑定特性,而需要考虑很多业务以外的设计逻辑。我们使用一个架构或者设计模式,当然是为

2017-11-06 15:09:26 1303

原创 分享一些帮助你提升效(bi)率(ge)的干货!

工欲善其事,必先利其器

2017-10-29 13:45:54 444

原创 小之的架构之路——Android MVVM 面向接口型框架封装和单元测试

大家好,今天给大家带来一个我自己开发改造的 MVVM 封装框架。代码不难,但我更想说一些我在开发这样一个架构过程中的想法和思路,我们不仅要善于作一个搬运工,更要自己多多造轮子,我们程序员就是会折腾嘛。先送上源码地址:WeaponApp 多提一句,这个 App 是我和朋友最近正在努力开发的一款 app,涵盖绝大多数使用场景和技术(RxJava+Retrofit+MVVM+插件化+组件化+全平台分享

2017-10-22 13:39:25 946

原创 不求服务端,自己改接口!Charles抓包工具在Android/iOS开发中的应用

Charles 在 Android 和 iOS 开发中的应用,数据替换,请求重定向

2017-10-22 13:37:15 1159

原创 Android Gradle 插件 3.0 挖坑日记

为了提升编译速度,这几天用上了 AS 3.0 和 Gradle 3.0 插件,不得不说不论是 AS 3.0,还是 Gradle 3.0 都变化非常大,具体的更新日志参考下官网,其中 Gradle 3.0的配置和可能遇到的问题可以说是非常详细了。Gradle 4.1-all 官方下载速度很慢,我直接放出来下载地址和相关官方文档地址吧。 Gradle 4.1-all.aip 密码: 2ujf

2017-10-10 16:36:23 7700

原创 Android插件化进阶——插件化原理和插件管理器(二)

上一篇文章我们讲解了如何使用 DexClassLoader 来加载插件文件中的类。Android插件化进阶——插件化原理和插件管理器(一)这一节我们来具体讲解一下资源文件的加载,并设计一个简单的插件管理器。要了解这方面的内容,首先得看一下 Android 系统中为我们提供了哪些方法来加载资源,下面来看一下图例。从图中我们可以看出,当资源只有文件名,那么我们通过 AssetManager 就可以直接通

2017-08-30 15:38:40 457

原创 oh-my-zsh ys 主题去除命令行前面计算机名

我们为了好用(zhuangbi)的终端,可能会选择 zsh,我选择了 ys 这个非常好看的主题配置的方法大家自己到网上查一下,教程还是非常多的。不过,样式虽然很美丽,但前面各种计算机名太长了,所以想通过配置文件修改一下,网上查了查,发现不同的主题配置文件设置不一样,没查到 ys 的,所以自己瞎摸索了下,总算去掉了。现在是这样。 是不是清爽了挺多了呢,当然这里所有默认显示的样式都可以通过配置文件进行

2017-08-30 11:05:36 4064

原创 Android插件化进阶——插件化原理和插件管理器(一)

之前已经对我们学习插件化原理需要的预备知识进行了比较详细的讲解了,从这篇文章开始,我们将具体介绍插件化原理,同时会根据原理写一个比较简单的插件化管理器。插件化主要用到的技术知识有:Android ClassLoader 加载 class 文件原理,这也是插件化最重要的技术点,我们在上篇文章中讲解的也比较详细了,插件化框架都会通过自定义 ClassLoader 来加载插件中的 class 文件。J

2017-08-28 16:27:27 739

原创 Android 插件化基础——ClassLoader 源码解析

其他有关插件化的文章欢迎大家观阅 插件化踩坑之路——Small和Atlas方案对比 Android插件化基础篇—— class 文件 Android插件化基础篇 — dex 文件 Android 插件化基础——虚拟机Android 和 Java 平台的类加载平台区别较大,是我们基础篇的重点,我们将从三个方面来讲解 ClassLoader。Java 中的 ClassLoade

2017-08-27 01:58:33 424

原创 Android 插件化基础——虚拟机

其他有关插件化的文章欢迎大家观阅 插件化踩坑之路——Small和Atlas方案对比 Android插件化基础篇—— class 文件 Android插件化基础篇 — dex 文件我们之前讲解了 class 文件和 dex 文件,但如果没有虚拟机,这些文件都将没有任何意义,所以我们这篇文章将给大家讲解下 JVM 和 Dalvik 的一些知识。这里提醒一下大家,虚拟机内容非常多,这

2017-08-23 15:12:45 438

原创 Android插件化基础篇 — dex 文件

有关插件化系列的其他文章链接在下面已列出,将会不断更新,希望各位追踪关注~ Android插件化基础篇–class 文件 插件化踩坑之路–Small和Atlas方案对比 上一篇文章介绍了很多 class 文件相关的知识,这篇我们将具体的剖析一下 dex 文件。什么是 dex 文件dex 文件和 class 文件一样,也是一种文件格式,相对的,dex 文件就是能够被 DVM

2017-08-22 15:20:37 546

原创 Android插件化基础篇—— class 文件

之前写了一篇我这段时间对组件化和插件化研究工作的整体概述,没看过的小伙伴可以去回顾下我这段时间研究插件化的历程: 插件化踩坑之路—Small和Atlas方案对比下面我计划通过一个系列的博客由浅入深的解析插件化的原理。我们学习插件化需要一些预备知识,这些预备知识的简单介绍组成了基础篇,当然,这些知识你也没必要做到非常精通,只需了解到一定程度即可理解插件化原理,毕竟每一个知识点要深入进去的话都是可

2017-08-21 16:03:27 489 1

原创 Caused by :java.lang.reflect.InvocationTargetException和Binary XML file line #**错误记录

昨天在给测试打了一个包,测试回馈说某个地方会崩溃,我就看了下错误日志:Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class <unknown> Ca

2017-08-18 14:34:59 4342

原创 插件化踩坑之路——Small和Atlas方案对比

插件化算是去年到今年一直比较火的一个技术了,各个开源库的方案实际上原理都大相径庭,但在集成和使用上有一定的区别,不同的方案针对的场景也不同,下面就主要分析一下 Small 和 Atlas ,他们的使用场景,优缺点,以及踩过的坑都会一一介绍。作为一个公司 Android 团队架构组成员,肯定就要接触最前沿的技术嘛,这之前我一直在研究长连接相关的技术,封装了一套以 Netty 为核心的 TCP 客户端

2017-08-18 13:59:14 8846 3

原创 转正了,来谈谈这三个月的感受

来新公司三个月了,提前一个月转正,总体上都进入了正轨,我的工作因为是在架构组工作,所以技术的沉淀也是工作的一部分。这几个月的学习工作,让我对自己的行业有了更深的理解,对 Android ,对团队,和对技术,都得到了一些以前从来没有过的理解。业务还是架构作为一个移动端开发工程师,如果是单纯的做 UI ,那么工作将会比较繁琐和枯燥,而且重复性工作也比较多,对于技术的提升也比较有限,作为移动端开发工程师

2017-07-05 23:20:51 8135 4

原创 并发编程笔记(三):Java 内存模型(二)

并发系列的文章都是根据阅读《Java 并发编程的艺术》这本书总结而来,想更深入学习的同学可以自行购买此书进行学习。一 锁的内存语义众所周知,锁可以让临界区互斥执行。但锁的另一个同样重要的功能却常常被大家忽略:锁的内存语义。1. 锁的释放 - 获取建立的 happens-before 关系锁是 Java 并发编程中最重要的同步机制。锁除了可以让临界区互斥外,还可以让释放锁的线程向获取同一个锁的线程

2017-06-19 09:48:43 333

原创 并发编程笔记(三):Java 内存模型(一)

并发系列的文章都是根据阅读《Java 并发编程的艺术》这本书总结而来,想更深入学习的同学可以自行购买此书进行学习。Java 线程之间的通信对程序员完全透明,内存可见性问题很容易困扰 Java 程序员。让我们来通过下文来揭开 Java 内存模型神秘的面纱。一 Java 内存模型基础1. 并发编程模型的两个关键问题并发编程中需要处理两个关键问题:线程之间如何通信和线程之间如何同步。在命令式编程中,线程

2017-06-07 16:43:51 455

原创 并发编程笔记(二):Java 并发机制的底层实现原理

并发系列的文章都是根据阅读《Java 并发编程的艺术》这本书总结而来,想更深入学习的同学可以自行购买此书进行学习。Java 代码在编译后会变成 Java 字节码,通过类加载器加载到 JVM 里,JVM 执行字节码,最终需要转化为汇编指令在 CPU 上执行,Java 中所使用的并发机制依赖于 JVM 的实现和 CPU 的指令。volatilevolatile 在并发编程中扮演着重要的角色。volat

2017-06-02 14:20:21 846

原创 并发编程笔记(一):并发编程的挑战和解决方案

并发系列的文章都是根据阅读《Java 并发编程的艺术》这本书总结而来,想更深入学习的同学可以自行购买此书进行学习。并发编程的目的是为了让程序运行的更快,但是启动更多的线程不一定会让程序能够最大程度的并发执行,甚至有时候,并发比串行还要慢。在使用并发编程的时候,会面临许多挑战。上下文切换单核处理器也是可以支持多线程执行代码的。CPU通过分配时间片来实现这个机制。时间片是 CPU 分配给各个线程的时间

2017-05-25 16:52:55 358

原创 2017年技术和生活的目标

最近的学习计划有点乱,目前我的阶段仍处于需要大量吸收知识的阶段,所以大概的整理一下今年自己的学习目标:Kotlin 学习,并进行一些小项目的编写,发布一些相关的博客和 Github ,然后公司项目的新需求尝试用 Kotlin 写JVM 研究学习,使用 Linux 系统熟练掌握 Linux 命令和 Vim设计模式研读,并有相关的博客总结并发研读,博客总结除了学习上的,生活上今年也有很多需要

2017-05-22 10:16:55 466

原创 Android模块化分层化之: maven 库中上传的 aar 包 获取 BuildConfig 相关常量值

最近在做项目分层化的一些工作,具体思路是将原有项目一些基础服务模块和设备服务模块抽离出来,上传到本地的 Maven 服务器,然后再通过在主项目中的 build.gradle 文件中通过 compile 语句进行导包处理。但通过这种方法编译成的 aar 包只能是 release 版本,无法使用到 BuildConfig 动态设置的一些常量,比如常见的「Debug 日志开关」,我们一般都是在日志类通过

2017-05-08 18:13:09 1646

原创 青春正当时

总想说点什么,兴奋的把下面几段话在我所有社交网络都发了一遍。有时候,不在乎别人怎么看怎么说,也要给自己灌点鸡汤。回南京已经快 2 个月了,从当初裸辞的惶恐,到找到满意东家的喜悦,再到初入新公司期间的紧张,这两个月的经历对我来说是意义非凡的。今晚回到家后,坐在电脑前,我终于体会到久违的满足感和归宿感,这就是我当初执意要冒着风险也要裸辞回南京找工作的源动力吧。我经常在地铁上看到一则广告,几个 23 岁的

2017-04-19 22:27:09 358

原创 面试记录

昨天面试了一家非常棒的互联网产品公司,聊得很不错,不过技术上有几个问题没回答出来或者答得不够好,所以特地记录下: Java 中堆内存和栈内存的区别 Serilzable 和 Parcelable 的区别 笔试有一个 HashMap 迭代的问题,以前看过,记不清了,用得比较少 Android 性能优化的方式 弱引用概念:我实际上这块比较熟,但表达的不太清楚 ListVie

2017-03-24 09:50:39 508

原创 Android事件传递之onInterceptTouchEvent()和requestDisallowInterceptTouchEvent()方法的使用

之前看郭神的事件分发机制解析博客,深入的从源码角度学习了一下Android的事件分发机制。如果还没看过,那么请先去郭神的博客学习下:http://blog.csdn.net/guolin_blog/article/details/9097463了解到事件从ViewGroup向子View分发的过程中,需要走一个判断,如果这个判断语句没有过,那么事件将被父布局给拦截掉,这个判断语句是:if(disall

2017-03-10 16:48:29 36713 4

原创 Android用MVP实现一个简单的类淘宝订单页面

这几天把以前项目上做过的一个类似淘宝订单的页面单独提取出来重新做了一遍,把一些公共代码提取出来,方便以后用到类似界面简易集成,同时也用到了MVP框架,通过MVP之间各层次互相绑定的最基础的类,将数据和逻辑分离开,这是效果图值得一提的是,这里用到了一些其他开源代码,比如刷新样式swipetoloadlayout等,具体的使用方法大家可以百度搜下名字就行了,资料很多。4个Fragment用的统一的静态构

2017-03-05 11:05:10 2663

原创 Thinking in Java学习笔记 第二十一章:并发

实现并发最直接的方式是在操作系统级别使用进程。进程是运行在它自己地址空间内的自包容的程序线程就是在进程中的一个单一的顺序控制流,因此,单个进程可以拥有多个并发执行的任务。静态方法Thread.yield()的调用是对线程调度器(Java线程机制的一部分,可以将CPU从一个线程转移给另一个线程)的一种建议。线程调度机制是非确定性的,所以一次运行的结果可能与另一次运行的结果不同 当创建Thread时,

2017-03-03 09:36:41 399

原创 Thinking in Java学习笔记 第七章:复用类

如果想初始化引用,可以在代码的下列位置进行:在定义对象的地方。这意味着他们总是能够在构造器被调用之前初始化在类的构造器中就在正要使用这些对象之前,这种方式成为惰性初始化。在生成对象不值得以及不必每次都生成对象的情况下,这种方式可以减少额外的负担使用实例初始化继承语法:创建一个类的时候,总是在继承,除非已明确指出要从其他类继承,否则就是在隐式地从Java的标准根类Object进行继承。即便是

2017-03-01 21:48:45 318

原创 Thinking in Java学习笔记 第五章:初始化与清理

初始化与清理,垃圾回收器,finalize()方法

2017-03-01 21:32:05 374

原创 Thinking in java学习笔记 第二章:一切都是对象

Thinking in Java第二章:一切都是对象 学习笔记

2017-03-01 16:21:00 448

原创 我的个人技术分享博客创建

个人博客介绍

2017-02-28 20:03:23 487

空空如也

空空如也

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

TA关注的人

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