自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

刘望舒的专栏

我的独立博客 http://liuwangshu.cn

原创 Android进阶三部曲 第三部《Android进阶指北》已完稿,公众号改名

今天说两件事,一个是第三本书完稿,一个是本公众号改名。 1.第三本书《进阶指北》今天完稿了 耗时1年半,我的第三本书《进阶指北》终于在今天完稿了。前两本书每本都是耗时1年左右,完成这本书的时间增加了些,主要还是自己懒癌犯了,这里跟大家说声抱歉,让大家久等了。稿件会在下周一交由出版社进行审核,后...

2020-01-12 09:41:42

阅读数 256

评论数 0

原创 Android进阶三部曲 第二部《Android进阶解密》已出版(内含勘误)

独立博客版本请点击这里 Android进阶二部曲第一部《Android进阶之光》介绍 :点击这里 本书源码地址:https://github.com/henrymorgen/android-advanced-decode 为什么写这本书 Android进阶二部曲包括《Android进阶...

2018-10-17 12:46:30

阅读数 10116

评论数 18

原创 Android进阶三部曲 第一部《Android进阶之光》已出版(内含勘误)

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

2017-07-05 23:21:26

阅读数 21024

评论数 50

原创 我的独立博客 http://liuwangshu.cn

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

2017-04-13 13:29:54

阅读数 7190

评论数 6

原创 Android应用开发最强原创知识体系(更新至2019.11.21)

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

2016-02-22 15:45:38

阅读数 29711

评论数 56

原创 Android Binder原理(二)ServiceManager中的Binder机制

本文首发于微信公众号「后厂技术官」 前言 在上一篇文章中,我们了解了学习Binder前必须要了解的知识点,其中有一点就是Binder机制的三个部分:Java Binder、Native Binder、Kernel Binder,其中Java Binder和Native Binder都是应用开发...

2020-01-12 18:33:46

阅读数 112

评论数 1

原创 Android Jetpack架构组件(六)一文带你了解ViewModel的使用和原理

本文首发于微信公众号「后厂技术官」 前言 在本系列的第4和第5篇文章中,介绍了LiveData的使用和原理,LiveData和ViewModel是一对好搭档,这篇文章我们一起来学习什么是ViewModel、ViewModel基本使用、ViewModel的原理。 1.什么是ViewModel 在...

2020-01-12 18:24:10

阅读数 194

评论数 3

原创 Android Jetpack架构组件(五)带你了解LiveData(原理篇)

本文首发于微信公众号「后厂技术官」 前言 在上一篇文章中我们学习了LiveData的基本用法,我们知道LiveData是一个可观察的数据持有者,他是具有组件生命周期感知的,那么它是如何观察组件生命周期变化的呢?LiveData和RxJava的不同的是,LiveData并不是通知所有观察者,它只...

2020-01-12 17:51:35

阅读数 81

评论数 0

原创 Android Jetpack架构组件(四)一文带你了解LiveData(使用篇)

本文首发于微信公众号「后厂村码农」 前言 在2017年前后,RxJava一直很火,我在Android进阶三部曲第一部《Android进阶之光》中就介绍了RxJava的使用和原理。谷歌推出的LiveData和RxJava类似,也是基于观察者,你可以认为LiveData是轻量级的RxJava。起初...

2019-11-20 08:01:11

阅读数 227

评论数 1

原创 Android Jetpack架构组件(三)一文带你了解Lifecycle(原理篇)

本文首发于微信公众号「后厂村码农」 前言 在上一篇文章中,我们学习了如何去使用Lifecycle,当然之会使用是不够的,还需要了解它的原理,这是成为优秀工程师必备的。这篇文章就来学习Lifecycle的基本原理。 1.Lifecycle的生命周期状态事件和状态 Lifecycle使用两个枚举来...

2019-11-20 07:59:52

阅读数 235

评论数 1

原创 Android Gradle (二)签名配置和依赖管理

本文首发于微信公众号「后厂村码农」 相关文章 Gradle核心思想(一)为什么现在要用Gradle? Gradle核心思想(二)Gradle入门前奏 Gradle核心思想(三)Groovy快速入门指南 Gradle核心思想(四)看似无用,实则重要的Gradle Wrapper ...

2019-10-29 07:40:07

阅读数 232

评论数 0

原创 Android Jetpack架构组件(二)一文带你了解Lifecycle(使用篇)

本文首发于微信公众号「后厂村码农」 前言 在上一篇文章中,我们基本了解了什么是Android Jetpack,这一篇文章来介绍Android Jetpack架构组件的Lifecycle,Lifecycle用于帮助开发者管理Activity和Fragment 的生命周期,由于Lifecycle是...

2019-10-29 06:39:50

阅读数 190

评论数 0

原创 Android Binder原理(一)学习Binder前必须要了解的知识点

本文首发于微信公众号「后厂村码农」 关联系列 Android AOSP基础系列 Android系统启动系列 应用进程启动系列 Android深入四大组件系列 Android深入理解Context系列 Android深入理解JNI系列 Android解析WindowManager Android...

2019-10-24 00:29:41

阅读数 479

评论数 0

原创 Android Jetpack架构组件(一)带你了解Android Jetpack

本文首发于微信公众号「后厂村码农」 前言 Android已经发展了11年,可以说是比较成熟的技术了,一开始时框架很少,也没有什么规范,所有的代码都是要自己写,比如网络请求,数据库请求,数据解析等等。后来出现了一些框架来帮助开发者快速进行开发,比如XUtils、Volley、OKHttp、Even...

2019-10-24 00:27:58

阅读数 3547

评论数 0

原创 Flutter基础(十三)Flutter与Android的相互通信

本文首发于公众号「刘望舒」 ReactNative入门系列 React Native组件 Flutter基础系列 前言 本来这篇文章应该讲一下Flutter的插件开发,但是在插件开发的基础是PlatformChannel,也就是Flutter与Android/iOS Native的通信,理解了...

2019-08-20 00:22:08

阅读数 632

评论数 1

原创 Flutter基础(十二)路由(页面跳转)与数据传递

本文首发于公众号「刘望舒」 ReactNative入门系列 React Native组件 Flutter基础系列 前言 在Android开发中我们使用Intent来进行页面跳转,也称之为原生路由,后来出现了一些路由框架,比如ARouter。 在Flutter中进行界面跳转的就是路由,路由用Ro...

2019-08-20 00:20:36

阅读数 156

评论数 1

原创 Flutter基础(十一)网络请求(Dio)与JSON数据解析

本文首发于公众号「刘望舒」 ReactNative入门系列 React Native组件 Flutter基础系列 前言 在Android开发中如果我们想要请求网络,可以使用HttpClent、HttpURLConnection,但在项目中一般都会使用OkHttp和Retrofit。在Flutt...

2019-08-20 00:19:15

阅读数 1120

评论数 1

原创 "Flutter基础(十)布局Widget快速入门

本文首发于公众号「刘望舒」 ReactNative入门系列 React Native组件 Flutter基础系列 前言 Flutter的布局在此前的文章多多少少用过,但是没有具体讲过,Flutter的布局实际上也由Widget来控制的,在Flutter官网上并没有对布局Widget进行分类,这...

2019-08-20 00:01:53

阅读数 198

评论数 1

原创 Flutter基础(九)资源和图片

本文首发于公众号「刘望舒」 ReactNative入门系列 React Native组件 Flutter基础系列 和Android开发一样,Flutter也有asset这一概念,asset是打包到程序安装包中的,可在运行时访问。常见的asset类型包括静态数据(例如JSON文件)、配置文件、图...

2019-08-20 00:00:22

阅读数 553

评论数 0

原创 Flutter基础(八)手势相关Widget:GestureDetector和Dismissible

本文首发于公众号「刘望舒」 ReactNative入门系列 React Native组件 Flutter基础系列 前言 移动开发中,用户交互是一个重要的环节,在Android中的触摸、点击、滑动等事件处理都提供了相关的Api,在Flutter中也是一样的,是由Widget来实现的。 Flutte...

2019-08-19 23:59:27

阅读数 197

评论数 0

原创 Flutter基础(七)Scrolling Widget之ListView、GridView、PageView

本文首发于公众号「刘望舒」 ReactNative入门系列 React Native组件 Flutter基础系列 前言 我们知道Widget的分类有很多种,比如:Basics、Material Components、Cupertino、Scrolling等等,在前面的文章我介绍了Basics和...

2019-08-19 23:57:30

阅读数 181

评论数 0

原创 Android AOSP基础(五)Android Studio调试系统源码的三种方式

本文首发于微信公众号「刘望舒」 关联系列 Android AOSP基础系列 Android系统启动系列 应用进程启动系列 Android深入四大组件系列 Android深入理解Context系列 Android深入理解JNI系列 Android解析WindowManager ...

2019-08-19 23:55:44

阅读数 294

评论数 0

原创 Flutter基础(六)Material组件之BottomNavigationBar、TabBar、Drawer

本文首发于公众号「刘望舒」 ReactNative入门系列 React Native组件 Flutter基础系列 前言 在上一篇 Flutter基础(五)Material组件最佳入门(前篇)中,我介绍了Material组件的MaterialApp、Scaffold、AppBar,这篇文章接着介...

2019-07-29 20:52:09

阅读数 304

评论数 1

原创 Flutter基础(五)Material组件之MaterialApp、Scaffold、AppBar

本文首发于公众号「刘望舒」 关联系列 ReactNative入门系列 React Native组件 Flutter基础系列 前言 在上一篇文章Flutter基础(四)开发Flutter应用前需要掌握的Basics Widget,我们学习了Basics Widget,除了Basics Widge...

2019-07-29 20:50:22

阅读数 353

评论数 0

原创 Flutter基础(四)开发Flutter应用前需要掌握的Basic Widget

本文首发于公众号「刘望舒」 关联系列 ReactNative入门系列 React Native组件 Flutter基础系列 前言 学完了Dart语言,接下来就可以学习Widget了,Flutter的UI界面就是由Widget组成的,Widget的数量繁多,因此我会用几篇文章来专门介绍它,本篇就...

2019-07-29 20:45:25

阅读数 424

评论数 2

原创 Flutter基础(三)Dart快速入门

本文首发于公众号「刘望舒」 关联系列 ReactNative入门系列 React Native组件 Flutter基础系列 前言 Dart是Flutter SDK指定的语言,因此要学习Flutter,Dart是必须掌握的。关于Dart可以写一本书了,这里用一篇文章来介绍下Dart的精髓,带你快...

2019-07-10 01:51:03

阅读数 447

评论数 0

原创 Flutter基础(二)Flutter开发环境搭建和Hello World

本文首发于公众号「刘望舒」 关联系列 ReactNative入门系列 React Native组件 Flutter基础系列 前言 其实没想写Flutter的相关文章的,因为这些看官方文档就够了,但是有不少同学就想看我写的,因此我也写个Flutter系列,顺便自己也梳理下知识点。这个Flutte...

2019-07-10 01:49:17

阅读数 505

评论数 0

原创 Flutter基础(一)移动开发跨平台技术的百家争鸣

本文首发于微信公众号「刘望舒」 前言 本来这一篇应该介绍如何搭建Flutter开发环境的,但我想在了解Flutter前,不妨了解一下跨平台技术的演进,这样更有助于学习Flutter,也能认清Flutter的优势和本质。这篇文章还有一个目的,就是希望大家是玩技术的人,而不是被技术玩的人,对于...

2019-04-23 12:04:35

阅读数 5526

评论数 3

原创 Android输入系统(四)输入事件是如何分发到目标窗口的?

关联系列 解析WindowManager系列 解析WMS系列 深入理解JNI系列 输入系统系列 基于Android 8.1 前言 在Android输入系统(三)InputReader的加工类型和InputDispatcher的分发过程这篇文章中,由于文章篇幅的原因,InputDispatcher...

2019-04-05 01:33:57

阅读数 335

评论数 0

原创 Android Gradle (一)Gradle的Android插件入门

相关文章 Gradle核心思想(一)为什么现在要用Gradle? Gradle核心思想(二)Gradle入门前奏 Gradle核心思想(三)Groovy快速入门指南 Gradle核心思想(四)看似无用,实则重要的Gradle Wrapper Gradle核心思想(五)通俗易懂的Gradl...

2019-04-05 01:31:43

阅读数 673

评论数 1

原创 Android AOSP基础(四)Source Insight和Android Studio导入系统源码

关联系列 Android AOSP基础系列 Android系统启动系列 前言 在上一篇文章Android AOSP基础(三)Android系统源码的整编和单编中,我们对系统源码进行了编译,这篇文章我们接着来学习如何将系统源码导入到编辑器中,以便于查看和调试源码。关于查看源码,可以使用Androi...

2019-04-05 01:29:38

阅读数 737

评论数 0

原创 Android AOSP基础(三)Android系统源码的整编和单编

关联系列 Android AOSP基础系列 Android系统启动系列 前言 在上一篇文章Android AOSP基础(二)AOSP 源码下载 中,我们顺利的将AOSP下载了下来,很多时候我们不仅仅需要去查看源码,还有以下的几个需求: 动态调试Android系统源码 定制Android系统 将...

2019-04-05 01:26:39

阅读数 974

评论数 0

原创 Android AOSP基础(二)AOSP源码下载

前言 这篇文章我们来学习如何下载AOSP 源码,如果你还没有Linux 环境,请查看Android AOSP基础(一)VirtualBox 安装 Ubuntu这篇文章,另外如果你不需要编译源码,或者不需要最新的源码,可以直接从百度网盘:https://pan.baidu.com/s/1ngsZs ...

2019-04-05 01:21:19

阅读数 599

评论数 0

原创 Android AOSP基础(一)VirtualBox 安装 Ubuntu

前言 在Android进阶三部曲第二部《Android进阶解密》的第一章,我介绍了两种阅读源码的方式,其中一种是从百度网盘:https://pan.baidu.com/s/1ngsZs 将源码下载下来,然后用SouceInsight来查看,这种方式很便捷,适合去阅读源码,但是有两个弊端,一个是无法...

2019-04-05 01:19:26

阅读数 312

评论数 0

原创 Gradle核心思想(六)自定义Gradle插件的三种方式

相关文章 Gradle核心思想(一)为什么现在要用Gradle? Gradle核心思想(二)Gradle入门前奏 Gradle核心思想(三)Groovy快速入门指南 Gradle核心思想(四)看似无用,实则重要的Gradle Wrapper Gradle核心思想(五)通俗易懂的Gradle插件讲解...

2019-04-05 01:16:30

阅读数 386

评论数 0

原创 Gradle核心思想(五)通俗易懂的Gradle插件讲解

关联文章 Gradle核心思想(一)为什么现在要用Gradle? Gradle核心思想(二)Gradle入门前奏 Gradle核心思想(三)Groovy快速入门指南 Gradle核心思想(四)看似无用,实则重要的Gradle Wrapper Gradle核心思想(五)通俗易懂的Gradle插件讲解...

2019-04-05 01:13:54

阅读数 313

评论数 0

原创 Gradle核心思想(四)看似无用,实则重要的Gradle Wrapper

关联文章 Gradle核心思想(一)为什么现在要用Gradle? Gradle核心思想(二)Gradle入门前奏 Gradle核心思想(三)Groovy快速入门指南 Gradle核心思想(四)看似无用,实则重要的Gradle Wrapper Gradle核心思想(五)通俗易懂的Gradle插件讲解...

2019-04-05 01:04:06

阅读数 347

评论数 0

原创 Android输入系统(三)InputReader的加工类型和InputDispatcher的分发过程

关联系列 解析WMS系列 深入理解JNI系列 输入系统系列 前言 在上一篇文章中,我们学习了输入事件的处理,输入事件会交由InputDispatcher进行分发,那么InputDispatcher是如何进行分发的?这篇文章会给你答案。 1.InputReader的加工类型 在Android输入系...

2019-03-14 21:42:12

阅读数 390

评论数 0

原创 Android输入系统(二)IMS的启动过程和输入事件的处理

关联系列 解析WMS系列 深入理解JNI系列 输入系统系列 基于Android 8.1 前言 在上一篇文章中,我们学习了IMS的诞生(创建),IMS创建后还会进行启动,这篇文章我们来学习IMS的启动过程和输入事件的处理。 1.IMS的启动过程 IMS的创建在SystemServer的startO...

2019-02-07 15:23:23

阅读数 493

评论数 0

原创 Android输入系统(一)输入事件传递流程和InputManagerService的诞生

关联系列 解析WMS系列 View体系系列 前言 很多同学可能会认为输入系统是不是和View的事件分发有些关联,确实是有些关联,只不过View事件分发只能算是输入系统事件传递的一部分。这个系列讲的输入系统主要是我们不常接触的,但还是需要去了解的那部分。 1. 输入事件传递流程的组成部分 输入系统是...

2018-12-07 17:56:01

阅读数 654

评论数 0

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