刘望舒的专栏

他强由他强,清风拂山岗;他横由他横,明月照大江;他自狠来他自恶,我自一口真气足。...

排序:
默认
按更新时间
按访问量

曙光到来,我的新书《Android进阶之光》已出版(内含勘误)

2016年我开始建立了自己的知识体系,所有的文章都是围绕着这个体系来写,随着这个体系的慢慢成长,开始有很多出版社联系我写书,因为比较看好电子工业出版社,就顺理成章的开始了《Android进阶之光》这本书的编写。写作过程中并没有遇到什么困难,就是书名一直确定不下来,后来受到了《运营之光》的启发,这本...

2017-07-05 23:21:26

阅读数:12917

评论数:48

更好的阅读体验尽在 http://liuwangshu.cn

我的独立博客地址为:http://liuwangshu.cn。虽然有了独立博客,但我还会继续在CSDN、简书中持续更新我的文章。独立博客收入了我精选的上百篇文章,在电脑和手机上都有着良好的阅读体验,欢迎大家关注。

2017-04-13 13:29:54

阅读数:4708

评论数:5

2017年本博客知识体系引导(更新至2018.6.14)

前言 为了方便大家的阅读以及自己的知识体系的建立,特意来写出这个引导文章。以前我是遇到什么写什么,想到什么写什么,从2016年开始我将围绕这个知识体系来写文章,从点到面来逐步建立并完善自己的知识体系,同时也欢迎大家关注我的博客。 想要查看更清晰的知识体系,请移步到 http://liuwan...

2016-02-22 15:45:38

阅读数:25762

评论数:55

Android包管理机制(一) PackageInstaller的初始化

前言 包管理机制是Android中的重要机制,是应用开发和系统开发需要掌握的知识点之一。 包指的是Apk、jar和so文件等等,它们被加载到Android内存中,由一个包转变成可执行的代码,这就需要一个机制来进行包的加载、解析、管理等操作,这就是包管理机制。包管理机制由许多类一起组成,其中核心...

2018-06-19 16:45:46

阅读数:438

评论数:1

Android插件化原理(一)Activity插件化

相关文章 Android深入四大组件系列 Android解析AMS系列 Android解析ClassLoader系列 前言 四大组件的插件化是插件化技术的核心知识点,而Activity插件化更是重中之重,Activity插件化主要有三种实现方式,分别是反射实现、接口实现和Hook技术...

2018-06-04 22:45:38

阅读数:606

评论数:0

《Android进阶之光》续作内容简介

《Android进阶之光》续作的书名现在还没有定,目前已经完稿,预计会在9月出版。本书基于Android8.0,理念和《Android开发艺术探索》相近,是将源码和应用开发相结合并融会贯通。本书共分为17章从三个方面来组织内容。 1. 介绍Android应用开发所需要掌握的系统源码知识,...

2018-05-15 16:49:44

阅读数:220

评论数:2

我是如何写出一本畅销技术书的

如何写技术文章已经有很多人写过了,这里我来讲一下如何写一本畅销书,以及成为畅销书作者后发生的事。 1.阻碍写书的关键点 很多人都想写书,也想了很久,就是事没成,最主要就是没有迈出第一步,阻碍迈出第一步的原因主要有三点,分别是担忧、动机和积累。 写书前一般会有以下担忧: 1. 卖不出去 ...

2018-04-03 20:30:50

阅读数:1563

评论数:7

Android热修复原理(一)热修复框架对比和代码修复

相关文章 解析ClassLoader系列 前言 在Android应用开发中,热修复技术被越来越多的开发者所使用,也出现了很多热修复框架,比如:AndFix、Tinker、Dexposed和Nuwa等等。如果只是会这些热修复框架的使用那意义并不大,我们还需要了解它们的原理,这样不管热修复...

2018-03-12 01:20:29

阅读数:22664

评论数:5

Android解析WindowManagerService(三)Window的删除过程

相关文章 Android系统启动系列 Android深入四大组件系列 Android应用进程启动过程系列 Android解析WindowManager系列 前言 在本系列文章中,我提到过:Window的操作分为两大部分,一部分是WindowManager处理部分,另一部分是WMS处...

2018-01-22 22:36:09

阅读数:533

评论数:0

2017~2018 问心无愧,执意前行

2017年问心无愧 2017年工作中的我并没有太多成长,做需求、改bug,没有什么好说的。而在工作之余我所做的事才是我要说的,在2017年我主要做了两个值得说的事,一个是创建了我的个人独立博客,一个是《Android进阶之光》的出版。 个人博客是我花了2个通宵搞定的,中间花了很多时间改进,博客...

2018-01-11 22:35:15

阅读数:693

评论数:2

Android深入四大组件(七)Android8.0 根Activity启动过程(后篇)

当我开始阅读Android 8.0源码时发现应用程序(根Activity)启动过程照Android 7.0有了一些变化,因此又写下了本篇文章,本篇文章照此前的文章不仅流程发生变化,而且增加了一些分析,算是升级版本。由于篇幅较长,Android8.0 根Activity启动过程仍旧分为前篇和后篇来进...

2017-12-18 12:17:36

阅读数:787

评论数:0

Android深入四大组件(六)Android8.0 根Activity启动过程(前篇)

当我开始阅读Android 8.0源码时发现应用程序(根Activity)启动过程照Android 7.0有了一些变化,因此又写下了本篇文章,本篇文章照此前的文章不仅流程发生变化,而且增加了一些分析,算是升级版本。由于篇幅较长,Android8.0 根Activity启动过程仍旧分为前篇和后篇来进...

2017-11-18 16:56:40

阅读数:2225

评论数:0

Android解析WindowManagerService(二)WMS的重要成员和Window的添加过程

在本系列的上一篇文章中,我们学习了WMS的诞生,WMS被创建后,它的重要的成员有哪些?Window添加过程的WMS部分做了什么呢?这篇文章会给你解答。

2017-10-26 18:55:54

阅读数:2698

评论数:2

Android解析ClassLoader(二)Android中的ClassLoader

相关文章 Java虚拟机系列 Android系统启动系列 Android解析ClassLoader系列 前言 在上一篇文章我们学习了Java的ClassLoader,很多同学会把Java和Android的ClassLoader搞混,甚至会认为Android中的ClassLoader和...

2017-10-18 19:45:14

阅读数:4846

评论数:2

Android解析WindowManagerService(一)WMS的诞生

此前我用多篇文章介绍了WindowManager,这个系列我们来介绍WindowManager的管理者WMS,首先我们先来学习WMS是如何产生的。本文源码基于Android 8.0,与Android 7.1.2相比有一个比较直观的变化就是Java FrameWork采用了Lambda表达式。

2017-10-09 21:03:55

阅读数:3827

评论数:1

Android解析ClassLoader(一)Java中的ClassLoader

热修复和插件化是目前比较热门的技术,要想更好的掌握它们需要了解ClassLoader,因此也就有了本系列的产生,这一篇我们先来学习Java中的ClassLoader。

2017-09-25 19:42:50

阅读数:6145

评论数:12

Android解析WindowManager(三)Window的添加过程

在此前的系列文章中我们学习了WindowManager体系和Window的属性,这一篇我们接着来讲Window的添加过程。建议阅读此篇文章前先阅读本系列的前两篇文章。

2017-09-19 00:39:06

阅读数:3289

评论数:4

Android解析WindowManager(二)Window的属性

在上一篇文章我们学习了WindowManager体系,了解了Window和WindowManager之间的关系,这一篇我们接着来学习Window的属性。

2017-09-12 00:13:15

阅读数:3672

评论数:5

Android解析WindowManager(一)WindowManager体系

WindowManagerService(WMS)和AMS一样,都是Android开发需要掌握的知识点,同样的,WMS也很复杂,需要多篇文章来进行讲解,为何更好的理解WMS,首先要了解WindowManager,这一篇我们来学习WindowManager体系。

2017-09-08 00:36:23

阅读数:3242

评论数:5

Android内存优化(六)LeakCanary使用详解

如果使用MAT来分析内存问题,会有一些难度,并且效率也不是很高,对于一个内存泄漏问题,可能要进行多次排查和对比。 为了能够简单迅速的发现内存泄漏,Square公司基于MAT开源了LeakCanary。

2017-09-04 00:13:54

阅读数:16709

评论数:4

Android解析ActivityManagerService(二)ActivityTask和Activity栈管理

关于AMS,原计划是只写一篇文章来介绍,但是AMS功能繁多,一篇文章的篇幅远远不够。这一篇我们接着来学习与AMS相关的ActivityTask和Activity栈管理。

2017-08-25 00:09:55

阅读数:3982

评论数:6

React Native组件(四)TextInput组件解析

TextInput组件和Text组件类似,内部都没有使用FlexBox布局,不同的是TextInput组件支持文字的输入,因为支持文字输入, TextInput组件要比Text组件多了一些属性和方法。TextInput组件支持Text组件所有的Style属性,而TextInput组件本身是没有特有...

2017-08-21 12:41:44

阅读数:3056

评论数:3

Android内存优化(五)详解内存分析工具MAT

在这个系列的前四篇文章中,我分别介绍了DVM、ART、内存泄漏和内存检测工具的相关知识点,这一篇我们通过一个小例子,来学习如何使用内存分析工具MAT。

2017-08-11 00:30:45

阅读数:8732

评论数:0

Android解析ActivityManagerService(一)AMS启动流程和AMS家族

此前在Android系统启动流程、应用进程以及深入四大组件这三个系列文章中,都提及到了AMS,但都没有系统的来讲解它,本文就以AMS为主来进行讲解,其中会有一些知识点与这些系列文章有所重合,这里会尽量做到详尽讲解。阅读此文章前,最好阅读相关文章中列出的系列文章,否则我不敢保证这篇文章你能看的懂。

2017-07-31 00:09:44

阅读数:3155

评论数:1

React Native组件(三)Text组件解析

此前介绍了最基本的View组件,接下来就是最常用的Text组件,对于Text组件的一些常用属性,这篇文章会给出简单的例子以供学习。

2017-07-17 00:18:22

阅读数:2955

评论数:1

Android内存优化(四)解析Memory Monitor、Allocation Tracker和Heap Dump

要想做好内存优化工作,就要掌握两大部分的知识,一部分是知道并理解内存优化相关的原理,另一部分就是善于运用内存分析的工具。本篇就来介绍内存分析工具:Memory Monitor、Allocation Tracker和Heap Dump的使用方法。

2017-07-10 01:10:23

阅读数:4824

评论数:1

Android深入理解JNI(二)类型转换、方法签名和JNIEnv

上一篇文章介绍了JNI的基本原理和注册,这一篇接着带领大家来学习JNI的数据类型转换、方法签名和JNIEnv。

2017-07-03 00:04:36

阅读数:3432

评论数:0

React Native组件(二)View组件解析

了解了RN的组件的生命周期后,我们接着来学习RN的具体的组件。View组件是最基本的组件,也是首先要掌握的组件,这一篇我们来学习View组件。

2017-06-27 10:57:46

阅读数:3640

评论数:0

设计模式(十六)原型模式

公众号有同学留言设计模式,才发现好久没有写设计模式了。关于创建型设计模式只差原型模式没写了,这一篇就来填补这个空缺。

2017-06-26 00:11:53

阅读数:1427

评论数:0

Android内存优化(三)避免可控的内存泄漏

内存泄漏向来都是内存优化的重点,它如同幽灵一般存于我们的应用当中,有时它不会现身,但一旦现身就会让你头疼不已。因此,如何避免、发现和解决内存泄漏就变得尤为重要。这一篇我们先来学习如何避免内存泄漏。

2017-06-21 00:12:44

阅读数:2918

评论数:2

Android深入理解JNI(一)JNI原理与静态、动态注册

JNI不仅仅在NDK开发中应用,它更是Android系统中Java与Native交互的桥梁,不理解JNI的话,你就只能停留在Java Framework层。这一个系列我们来一起深入学习JNI。

2017-06-19 11:39:21

阅读数:9906

评论数:0

React Native组件(一)组件的生命周期

React Native有很多组件比如Image、ListView等等,想要合理的使用组件,首先要先了解组件的生命周期。

2017-06-16 00:14:13

阅读数:3345

评论数:2

Android内存优化(二)DVM和ART的GC日志分析

在Java虚拟机(三)垃圾标记算法与Java对象的生命周期这篇文章中,提到了Java虚拟机的GC日志。DVM和ART的GC日志与Java虚拟机的日志有较大的区别,这篇文章就对DVM和ART的GC日志进行分析。

2017-06-13 00:10:00

阅读数:3885

评论数:0

Android深入理解Context(二)Activity和Service的Context创建过程

上一篇文章我们学习了Context关联类和Application Context的创建过程,这一篇我们接着来学习Activity和Service的Context创建过程。需要注意的是,本篇的知识点会和深入理解四大组件系列的部分文章的知识点相重合。

2017-06-12 00:08:56

阅读数:2315

评论数:0

React Native探索(五)使用fetch进行网络请求

React Native可以使用多种方式来请求网络,比如fetch、XMLHttpRequest以及基于它们封装的框架,fetch可以说是替代XMLHttpRequest的产物,这一节我们就来学习fetch的基本用法。

2017-06-07 00:13:56

阅读数:6190

评论数:3

Android内存优化(一)DVM和ART原理初探

要学习Android的内存优化,首先要了解Java虚拟机,此前我用了多篇文章来介绍Java虚拟机的知识,就是为了这个系列做铺垫。在Android开发中我们接触的是与Java虚拟机类似的Dalvik虚拟机和ART虚拟机,这一篇我们就来了解它们的基本原理。

2017-06-05 00:24:14

阅读数:5175

评论数:3

Android深入理解Context(一)Context关联类和Application Context创建过程

Context也就是上下文对象,是Android较为常用的类,但是对于Context,很多人都停留在会用的阶段,这个系列会带大家从源码角度来分析Context,从而更加深入的理解它。

2017-06-01 00:32:20

阅读数:2753

评论数:1

React Native探索(四)Flexbox布局详解

在Android开发中我们有很多种布局,比如LinearLayout和RelativeLayout,同样在React Native也有它的布局,这个布局就是Flexbox布局。在CSS、React Native和Android等都有它的身影。这一篇文章,我们就通过各种小例子来掌握React Nat...

2017-05-31 00:25:21

阅读数:2301

评论数:0

Java虚拟机(四)垃圾收集算法

在本系列上一篇文章中我讲到了垃圾标记算法,垃圾被标记后,GC就会对垃圾进行收集,垃圾收集有很多种算法,这篇文章就来介绍常用的垃圾收集算法的思想。

2017-05-23 00:55:35

阅读数:2193

评论数:3

Android深入四大组件(五)Content Provider的启动过程

Content Provider做为四大组件之一,通常情况下并没有其他的组件使用频繁,但这不能作为我们不去深入学习它的理由。关于Content Provider一篇文章是写不完的,这一篇文章先来介绍它的启动过程。

2017-05-22 01:09:50

阅读数:3166

评论数:1

React Native探索(三)组件的Props(属性)和State(状态)

在Android或者iOS开发中我们会用到很多控件,这些控件会有很多的属性、样式等等。同样的,React Native中的组件也有属性、样式和状态。

2017-05-17 13:35:53

阅读数:2890

评论数:3

Java虚拟机(三)垃圾标记算法与Java对象的生命周期

这一节我们来简单的介绍垃圾收集器,并学习垃圾标记的算法:引用计数算法和根搜索算法,为了更好的理解根搜索算法,会在文章的最后介绍Java对象在虚拟机中的生命周期。

2017-05-16 11:36:04

阅读数:2159

评论数:2

Android深入四大组件(四)广播的注册、发送和接收过程

我们接着来学习Android四大组件中的BroadcastReceiver,广播主要就是分为注册、接收和发送过程。建议阅读此文前请先阅读《Android深入理解四大组件系列》的文章,知识重复的部分,本文不再赘述。

2017-05-11 14:21:53

阅读数:2958

评论数:3

React Native探索(二)Atom+Nuclide安装、配置与调试

上一篇文章我们搭建了开发环境,并写了个Hello World。这一节我们来学习React Native的开发IDE:Atom+Nuclide的安装、配置与调试。本文所讲的内容只适用于Mac平台。

2017-05-08 12:12:12

阅读数:5571

评论数:1

Java虚拟机(二)对象的创建与OOP-Klass模型

在前一篇文章中我们学习了Java虚拟机的结构原理与运行时数据区域,那么我们大概知道了Java虚拟机的内存的概况,那么内存中的数据是如何创建和访问的呢?这篇文章会给你答案。

2017-05-04 11:43:18

阅读数:3347

评论数:1

React Native探索(一)环境搭建与Hello World(Windows/Mac)

目前关于React Native的教程很多,官方文档写的也不错,但是感觉大部分教程写的不是很清楚,导致我各种碰壁。因此我来写一个简洁的教程。本篇文章基于React Native 0.43,只适用于用Windows平台的Android开发者。

2017-05-02 12:39:52

阅读数:3832

评论数:5

Android深入四大组件(三)Service的绑定过程

我们可以通过调用Context的startService来启动Service,也可以通过Context的bindService来绑定Service,建议阅读此篇文章前请阅读《Android深入四大组件(二)Service的启动过程》这篇文章,知识点重叠的部分,本篇文章将不再赘述。

2017-04-28 11:37:00

阅读数:2458

评论数:0

Android深入四大组件(二)Service的启动过程

此前我们用较长的篇幅来介绍Android应用程序的启动过程(根Activity的启动过程),这一篇我们接着来分析Service的启动过程。建议阅读此篇文章前,请先阅读Android深入四大组件(一)应用程序启动过程(前篇)和Android深入四大组件(一)应用程序启动过程(后篇)这两篇文章。

2017-04-24 11:52:39

阅读数:2363

评论数:2

Java虚拟机(一)结构原理与运行时数据区域

本来计划要写Android内存优化的,觉得有必要在此之前介绍一下Java虚拟机的相关知识,Java虚拟机也并不是三言两语能够介绍完的,因此开了Java虚拟机系列,这一篇文章我们来学习Java虚拟机的结构原理与运行时数据区域。

2017-04-21 13:10:38

阅读数:3599

评论数:2

设计模式(十五)状态模式

建议在阅读本文前先阅读设计模式(十一)策略模式这篇文章,虽说状态模式和策略模式的结构几乎是相同的,但是它们所解决的问题是不同的,读完这两篇文章你就会有了答案。

2017-04-17 12:10:59

阅读数:2135

评论数:0

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