自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (1)
  • 收藏
  • 关注

原创 Understanding Android memory usage (Google I/O '18)

视频观看笔记,如需转载,请注明出处演讲人介绍Rechard Uhler,Android Runtime 开发工程师。为便于写作,笔者将以第一人称视角对视频内容进行概述。视频地址1. 前言理解 Android App 内存占用对 App 的性能优化以及在低内存手机上良好运行都很重要。不同的内存类型,包括 shared memory,...

2018-12-29 22:51:00 366

原创 Garbage Collection in Android

视频观看笔记,如需转载,请注明出处前言Java 语言之所以如此受欢迎,得益于它的内存自动管理机制。但 GC 中的 "Stop the World Event",对 APP 性能来说,也是一个挑战。Colt McAnlis 通过本视频介绍了 Android 平台的垃圾回收机制,以及如何进行性能优化。视频链接历史Garbage Collectio...

2018-12-29 17:58:00 308

原创 The Java® Virtual Machine Specification

读书笔记,如需转载,请注明出处前言(Preface)《Java 虚拟机规范》读书笔记,部分内容摘自 The Java® Virtual Machine Specification Java SE 11 Edition,Java Garbage Collection Basics ,部分内容摘自《深入理解Java虚拟机_JVM高级特性与最佳实践 第2版...

2018-12-29 00:50:00 643

原创 MVP vs MVVM

本文为博主原创文章,如需转载,请在醒目位置注明出处前言主要阐述 Android App 架构之 MVP 与 MVVM 的优点与痛点,不介绍具体的实现方式。因为 MVP 架构简单,无需介绍。而 MVVM 架构相对复杂,核心是 LifecycleOwner、LifecycleObserver、LifecycleRegistry 组件,在此之上,Googl...

2018-12-25 18:38:00 413

原创 你真的了解 OkHttp 缓存控制吗?

本文为博主原创文章,如需转载,请在醒目位置注明出处前言最近在写一个开源项目,需要用到Http的缓存机制。由于项目所使用的Http客户端为OkHttp,所以需要了解如何使用OkHttp来实现Http的缓存控制。很惭愧,这一块不太熟悉,所以就到网上CV了一下。虽然我知道网上很多博客不太靠谱,但是没想到,居然真掉坑里了。错误示例不点名了,网上很多:p...

2018-12-19 23:40:00 214

原创 Android.mk 项目迁移为 Gradle 项目

本文为博主原创文章,如需转载,请在醒目位置注明出处前言最近在研究 Google 的 Camera2 项目,因为该项目属于 AOSP,自然也是用 Android.mk 编译的。因源码阅读不是很方便,便想着迁移至 Android Studio 中,使用 Gradle 来编译。1. 源码下载appframework源码分为两部分,一部分在 pl...

2018-12-09 21:54:00 3435

原创 【Git 教程3】Git 开发流程经验总结

本文为博主原创文章,如需转载,请在醒目位置注明出处前言本文介绍如何使用 Git Bash 命令行,提交代码、解决冲突,以及如何避免冲突。有助于理解 Android Studio 的 VCS 背后的原理。1. 检出代码1.1 检出远程仓库git clone https://github.com/Yuloran/GitTutorial.git可...

2018-12-09 17:22:00 302

原创 【Git 教程2】推送本地仓库至 GitHub

本文为博主原创文章,如需转载,请在醒目位置注明出处推送本地仓库至GitHub的两种方法简记1. 使用 Git Bash本人习惯使用 git bash 提交代码,不过最近觉得 git gui 要更方便一些。这里还是先介绍一下如何使用 git bash 将本地仓库推送至 GitHub。很多小伙伴不喜欢思考,抱怨说 "我想学的是 Git,你为啥老拿 ...

2018-12-09 11:47:00 172 1

原创 Git 账户及命令别名配置

Download:Git for windows前言Android 开发中常用的版本控制工具就是 Git。商业项目大多使用 Git(自己搭建服务器) + Gerrit + Jenkins 搭建代码审核及持续集成系统。个人开源项目大多托管在 Github,这样就不必搭建 Git 服务器。本文以 Github 为例,简述 Git 账户配置及 Git B...

2018-07-25 20:57:00 209

原创 RxJava2源码解析

本文为博主原创文章,转载请注明出处前言本文简析 RxJava2 的 subscribeOn 和 zip 操作符。术语解释Single.just().map().flatMap().subscribeOn().observeOn().subscribe();上述代码中,Single 到 subscribe() 之间的都称为 操作符,想像一下...

2018-07-25 20:53:00 297

原创 RxJava2操作符总结

本文为博主原创文章,转载请注明出处前言本文总结项目中常用的 Rxjava2 操作符。CV大神使用RxJava2原因★★★★★ 封装了线程切换,不用自己封装线程池、Handler了★★★★☆ 链式调用,一气呵成单值发射Single:大多数场景都是单值发射,所以使用 Single 即可覆盖大部分场景。Case1: 在非UI...

2018-07-23 13:22:00 1187 3

原创 记一个定位了一周的Bug

本文为博主原创文章,未经允许不得转载前言这个 bug 本不应该定位这么久,只是最近状态实在是太差了,无论是心理上还是身体上,都感觉非常的疲惫。Bug 现象使用 RxDownload2 下载文件时,要等很久(平均6s以上),才开始刷新进度。定位分析从理论上看,使用 @Streaming 的方式下载文件,在与服务器建立连接后应当立即返回,只有从...

2018-07-15 11:24:00 141 1

原创 拆轮子-RxDownload2源码解析(三)

本文为博主原创文章,未经允许不得转载造轮子者:Season_zlc轮子用法请戳作者链接 ↑前言本文主要讲述 RxDownload2 的多线程断点下载技术。断点下载技术前提服务器必须支持按 byte-range 下载,也就是支持 Range: bytes=xxx-xxx 请求头。详见Http协议 rfc2616 - Range。下载范围...

2018-07-14 22:16:00 359 2

原创 拆轮子-RxDownload2源码解析(二)

本文为博主原创文章,未经允许不得转载造轮子者:Season_zlc轮子用法请戳作者链接↑前言本文主要讲述 RxDownload2 的线程调度下载任务分发线程顾名思义,就是分发下载任务的线程。该线程运行在 DownloadService 中,从业务上看,DownloadService应当仅被 start() & bind() 一次...

2018-07-11 22:07:00 296 1

原创 拆轮子-RxDownload2源码解析(一)

本文为博主原创文章,未经允许不得转载造轮子者:Season_zlc轮子用法请戳作者链接↑前言本篇概述RxDownload2主要功能及对应的技术要点主要功能使用Retrofit+OKHTTP来进行网络请求基于RxJava打造, 支持RxJava各种操作符链式调用断点续传, 根据服务端响应值自动判断是否支持断点续传若不支持断点续传,...

2018-07-05 05:16:00 257

原创 DOM4J 解析 XML 之忽略转义字符

本文为博主原创文章,未经允许不得转载背景项目开发需要手动合入几十种语言的翻译到 string.xml 中,这是一件非常痛苦的事情:Copy、Paste,Copy、Paste,Copy、Paste... 人都快疯了!被逼无奈写了个自动替换翻译的工具。原理很简单:解析 Excel中的翻译,替换到 Xml 中。Excel 解析用 jxl.jar,Xml ...

2018-06-10 22:16:00 3096 3

原创 转换文件换行符

本文为博主原创文章,未经允许不得转载背景项目开发需要手动合入几十种语言的翻译到 string.xml 中,这是一件非常痛苦的事情:Copy、Paste,Copy、Paste,Copy、Paste... 人都快疯了!被逼无奈写了个自动替换翻译的工具,原理很简单:解析 Excel中的翻译,替换到 Xml 中。Excel 解析用 jxl.jar,Xml ...

2018-06-10 19:23:00 752

原创 Retrofit2 源码解析之动态代理

基于 Retrofit 2.3.0 & Android 8.1 分析 Java 动态代理在 Android 上的实现本文为博主原创文章,未经允许不得转载推荐阅读另一篇博文:《Handler 源码解析》动态代理最难理解的就是动在何处,其实动就动在代理类是完全在内存中生成的,包括创建类字节码、加载、链接、初始化代理类对象整个过程。不同于那些...

2018-05-11 13:22:00 167 3

原创 Handler 源码解析

基于Android 8.1 源码,分析 Handler 的工作流程本文为博主原创文章,未经允许不得转载推荐阅读另一篇博文:Retrofit2 源码解析之动态代理一. 概述在 Android 系统中,Zygote 进程是首个 java 进程,同时也是所有 java 进程的父进程。上层应用开发工程师所关注的 App 进程 fork 自 Zygote...

2018-05-11 13:13:00 103 2

原创 计算机体系结构

一. 高级语言是如何被计算机执行的?图1 五级层次结构的计算机系统.png最初的计算机并没有微指令系统。由于M0、M1都是实际存在的,为了区分,这里分为微程序机器、传统机器;将高级语言翻译成机器语言的程序叫做翻译程序,翻译程序分为编译程序与解释程序两种类型:编译程序:一次性将高级语言全部翻译成机器语言;解释程序:翻译一句执行一句,...

2018-05-11 13:06:00 594

原创 (数据结构)十分钟搞定时间复杂度(算法的时间复杂度)

我们假设计算机运行一行基础代码需要执行一次运算。int aFunc(void) { printf("Hello, World!\n"); // 需要执行 1 次 return 0; // 需要执行 1 次}那么上面这个方法需要执行 2 次运算int aFunc(int n) { for(int i ...

2017-11-02 10:17:00 11007 6

原创 Android资源限定符命名规则

传送门:Google官方适配教程吐槽Android开发者真的挺苦逼的,不仅要适配常规分辨率,如 480x854、720x1280、1080x1920、1440x2560,还要适配各种奇葩分辨率,如 720x1440、1080x2160...适配原因不同分辨率和屏幕像素密度的手机,其宽高换算成dp后,有可能是不同的。如下表(Google规定:在1...

2017-08-26 13:07:00 813

原创 Android Studio常用快捷键

Description操作说明EclipseAndroid StudioPopup structure of the current file for quick navigation文档结构Ctrl + OCtrl + F12Find a string in multiple files全文查找Ctrl + HCt...

2017-08-20 10:55:00 105

原创 StarUML下载、注册方法

StarUML官网可以正常访问,但是无法下载。点击Downloads后image.png解决办法直接将浏览器搜索框中的下载地址(http://starumlreleases-7a0.kxcdn.com/v2.8.0/StarUML-v2.8.0.msi)复制到迅雷中下载注册方法修改文件 StarUML\www\licens...

2017-08-13 19:39:00 787

原创 网络基础知识

IP地址IP地址是主机在网络中的唯一标识,采用点分十进制表示,如192.168.0.1(IPV4占32bit)。IP地址由两部分组成,网络(network)地址 + 主机(host)地址。根据网络地址的不同,IP地址可分为A类、B类、C类、D类、E类。(1)A类:1字节网络地址 + 3字节主机地址,网络地址最高位为0,地址范围:1.0.0.0~126.25...

2017-07-12 21:59:00 83

masm汇编程序(masm&link;&debug;)安全下载

winxp\win7 上的汇编程序,内含masm.exe,link.exe,debug.exe等,安全无毒,放心下载。

2012-10-23

空空如也

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

TA关注的人

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