9 HansChen_

尚未进行身份认证

博观而约取,厚积而薄发。

等级
TA的排名 3w+

Android Q 深色模式(Dark Mode)源码解析

1.简介随着AndroidQ发布,「黑暗模式」或者说是「夜间模式」终于在此版本中得到了支持,官方介绍见:https://developer.android.com/guide/topics/ui/look-and-feel/darktheme,再看看效果图:其实这个功能魅族在两年前就已支持,不得不说Android有点落后了,今天我们就来看看原生是怎么实现全局夜间模的吧2.打开...

2019-10-22 09:59:07

如何顺滑地查看 Android Native 代码

1.简介使用AndroidStudio查看AndroidFramework代码体验非常好,无论是索引还是界面都让人很满意,但是当你跟踪代码,发现进入native逻辑时,就会发现AndroidStudio对native代码的支持非常不好,不能索引不支持符号搜索不能跳转等,这些让人非常抓狂。那么如何能在IDE愉快地查看native代码呢?在Windows上,S...

2019-10-22 09:56:52

AOSP 编译和烧写

1.简介很多Android开发者都会希望编译Android源码并刷进自己的手机里面,但网上教程很多都仅仅是告诉你lunch、make等等,但你手里有一台设备时却发现,你编译出的镜像由于驱动关系是不能直接烧进手机的。这里整理了一下步骤,帮助大家可以按照流程编译并烧写镜像。本篇文章以Pixel2&&Android10为例2.环境准备这块没啥说,官方教...

2019-10-22 09:54:36

Protocol Buffers 3.0 技术手册

转载请标明出处:http://blog.csdn.net/shensky711/article/details/69696392本文出自:【HansChen的博客】简介proto3语法定义一个Message定义多个message类型定义变量类型分配Tag指定变量规则注释保留变量不被使用默认值定义枚举Enumerations如何引用其他pro...

2017-04-08 18:15:27

设计模式之装饰模式

转载请标明出处:http://blog.csdn.net/shensky711/article/details/59185950本文出自:【HansChen的博客】概述情景举例丑陋的实现装饰模式概念介绍用装饰模式实现需求装饰模式的应用举例总结概述装饰模式(Decorator)也叫包装器模式(Wrapper),是指动态地给一个对象添加一些额外的职责,就增加功能来说装饰模式比生

2017-03-09 16:34:41

设计模式之桥接模式

转载请标明出处:http://blog.csdn.net/shensky711/article/details/53891127本文出自:【HansChen的博客】场景问题发送消息不用模式的解决方案实现简化版本实现发送加急消息有何问题继续添加特急消息的处理继续添加发送手机消息的处理方式小结一下出现的问题解决方案桥接模式来解决模式结构和说明桥接模式示例代码使用桥接

2017-03-01 22:55:53

设计模式之代理模式

转载请标明出处:http://blog.csdn.net/shensky711/article/details/53891127本文出自:【HansChen的博客】概述代理模式UML图代码远程代理延迟加载保护代理额外功能静态代理和动态代理概述我们执行一个功能的函数时,经常需要在其中写入与功能不是直接相关但很有必要的代码,如日志记录、信息发送、安全和事务支持等,这些枝节性

2016-12-27 00:14:42

依赖注入利器 - Dagger ‡

转载请标明出处:http://blog.csdn.net/shensky711/article/details/53715960本文出自:【HansChen的博客】概述声明需要注入的对象如何实例化出依赖Module的使用Component的使用Dagger的进阶使用Components之间的关系dependenciesSubcomponentsScopesSinglt

2016-12-17 22:53:36

Robolectric使用教程

转载请标明出处:http://blog.csdn.net/shensky711/article/details/53561172本文出自:【HansChen的博客】概述如何使用为项目添加依赖指定RobolectricTestRunner为运行器什么是Shadow类Config配置配置SDK版本配置Application类指定Resource路径使用第三方Library

2016-12-10 21:24:32

设计模式之模板方法模式和策略模式

转载请标明出处:http://blog.csdn.net/shensky711/article/details/53418034本文出自:【HansChen的博客】设计模式系列文章:设计模式之工厂模式设计模式之模板方法模式和策略模式概述我们知道,OOP三个基本特征是:封装、继承、多态。通过继承,我们可以基于差异编程,也就是说,对于一个满足我们大部分需求的类,可以创建它的一个子类并

2016-12-01 08:50:32

设计模式之工厂模式(Factory)

转载请标明出处:http://blog.csdn.net/shensky711/article/details/53348412本文出自:【HansChen的博客】设计模式系列文章:设计模式之工厂模式设计模式之模板方法模式和策略模式概述根据依赖倒置原则,我们知道,我们应优先依赖抽象类而不是具体类。在应用开发过程中,有很多实体类都是非常易变的,依赖它们会带来问题,所以我们更应该依赖

2016-11-26 09:51:22

Fragment源码分析

转载请标明出处:http://blog.csdn.net/shensky711/article/details/53171248本文出自:【HansChen的博客】概述Fragment表示Activity中的行为或用户界面部分。您可以将多个Fragment组合在一个Activity中来构建多窗格UI,以及在多个Activity中重复使用某个Fragment。您可以将

2016-11-15 14:54:44

Fragment事务管理源码分析

转载请标明出处:http://blog.csdn.net/shensky711/article/details/53132952本文出自:【HansChen的博客】概述在Fragment使用中,有时候需要对Fragment进行add、remove、show、hide、replace等操作来进行Fragment的显示隐藏等管理,这些管理是通过FragmentTransaction进行事务管

2016-11-11 20:43:57

java动态代理

转载请标明出处:http://blog.csdn.net/shensky711/article/details/52872249本文出自:【HansChen的博客】概述动态代理是java的一大特性,动态代理的优势就是实现无侵入式的代码扩展。它可以增强我们原有的方法,比如常用的日志监控,添加缓存等,也可以实现方法拦截,通过代理方法修改原方法的参数和返回值等。要了解动态代理,我们需要先看

2016-10-20 14:24:51

Android分包MultiDex源码分析

转载请标明出处:http://blog.csdn.net/shensky711/article/details/52845661本文出自:【HansChen的博客】概述Android开发者应该都遇到了64K最大方法数限制的问题,针对这个问题,google也推出了multidex分包机制,在生成apk的时候,把整个应用拆成n个dex包(classes.dex、classes2.dex、cl

2016-10-18 08:14:42

JNI教程与技术手册

转载请标明出处:http://blog.csdn.net/shensky711/article/details/52806794本文出自:【HansChen的博客】概述对于JNI,有些童鞋在没有接触过的时候,可能会觉得比较复杂,但是其实当你真正去了解、去使用的时候,就会发现JNI的使用还是比较简单的,JNI本身提供了一系列的API让我们可以在native方法中操作java。JNI的使用无

2016-10-13 14:38:51

MockWebServer使用指南

转载请标明出处:http://blog.csdn.net/shensky711/article/details/52771797本文出自:【HansChen的博客】MockWebServer介绍MockWebServer能帮我们做什么MockWebServer不能帮我们做什么MockWebServer环境配置MockWebServer一般步骤MockWebServer使用方法

2016-10-09 22:59:47

Mockito使用指南

转载请标明出处:http://blog.csdn.net/shensky711/article/details/52771493本文出自:【HansChen的博客】mock和Mockito的关系Mockito使用举例AndroidStudio工程配置MockitoMockito使用方法验证行为Stubbing参数匹配验证准确的调用次数最多最少从未等为void方法抛异常

2016-10-09 22:43:25

ProGuard代码混淆详细攻略

转载请标明出处:http://blog.csdn.net/shensky711/article/details/52770993本文出自:【HansChen的博客】ProGuard简介和工作流程PrgGuard环境配置和使用运行PrgGuard需要以下依赖如何运行ProGuardPrgGuard配置文件使用Entrypoints的概念会用到的指令参数说明Modifier

2016-10-09 21:59:48

Mock Server利器 - Moco

转载请标明出处:http://blog.csdn.net/shensky711/article/details/52770686本文出自:【HansChen的博客】Moco介绍Moco独立运行所需环境如何运行Moco启动http服务启动https服务MocoHTTPsAPI配置如何在配置文件添加注释约定请求Body约定接口的uri约定请求参数约定请求方法约定HT

2016-10-09 21:24:24

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。