init 进程是 Android 系统中用户空间的第一个进程,进程号为 1,是 Android 系统启动流程中一个关键的步骤,作为第一个进程,它被赋予了很多极其重要的工作职责,比如创建 Zygote (孵化器) 和属性服务等。init 进程是由多个源文件共同组成的,这些文件位于源码目录 system/core/init 中。
Android Framework 笔记01 - Android 系统架构概览
Android 是构建在 Linux 基础之上的,下图所示为 Android 系统的主要分层架构。
Android 内存重启优化
这篇文章是由Android App 的一种内存重启
现象引发的思考,是基于Activity 基类的规范状态使用和数据处理。
这种设计的关键内存重启后怎么进行恢复关键数据
和预加载数据
,并且规范 Acitivity 基类
,让团队减少处理内存重启的情况,并且减少因为 关键数据缺失
导致的崩溃问题。
[译] ConstraintLayout深入系列之中心点对齐
原文:ConstraintLayout tricks & tips Centring
作者:Mark Allison
中心点对齐
在 Android 设计布局中,我们常常遇到需要根据父组件、相邻组件甚至是相邻组件的边来进行中心点对齐。本文将讲解如何使用 ConstraintLayout
来满足这些中心点对齐的需求。
需要中心点对齐的 Views 一般是有自己不定的内容大小的,经常定义的宽高是 android:layout_[width|height]="wrap_content"
。本文中使用到的例子也会按照这个模式来使用。
[译] ConstraintLayout深入系列之代替常见布局
原文:ConstraintLayout layouts
作者:Mark Allison 、 Sebastiano Poggi
本文将列举讲述如何使用 ConstraintLayout
来代替常见的三种布局 LinearLayout 、 RelatvieLayout 、 PercentLayout
的用法,本文使用的 Android Studio 都是 2.4 alpha 7
版本的,而 ConstraintLayout 库是使用的 1.0.2
。
[译] ConstraintLayout基础系列之尺寸横纵比 dimensions
原文:ConstraintLayout basics guidelines
作者:Mark Allison
ConstraintLayout的尺寸 dimensions
有时候,我们需要创建一些固定方向比的 View 组件,最常使用固定横纵比的就是当 ImageView
用于展示一些固定横纵比的图片的时候。举些例子,书面封面(尺寸横纵比多种多样),电影海报(一般是 4:6 ),电影剧照(一般是 1.85:1 或 2.39:1 ),电视剧(一般是 4:3 或 16:9 )
对于不熟悉什么是横纵比的,横纵比就是表示了 View 的宽度与高度的比例 w:h
。例如,对于一个拥有横纵比为 4:6
拥有宽度为 40dp
的 View 组件有着高度是 60dp
,若它的宽度改为 30dp
则它的高度就是 45dp
。
[译] ConstraintLayout基础系列之参照线guidelines
原文:ConstraintLayout basics guidelines
作者:Mark Allison
什么是参照线 guidelines
如果你熟悉 UI 设计软件你应该已经使用过参照线 guidelines 并对它的作用熟悉了。参照线 guideline 提供了视觉上的参照用于 Views 的对齐,而且不会在运行的时候显示,只要你熟悉它的使用了就会发现它对你的对齐实现非常方便。 Google 的 Material 设计原则推荐了使用 keylines 。该文章将介绍如何通过参照线 guidelines 来快速实现这些。
[译] ConstraintLayout基础系列之Chains链
原文:ConstraintLayout basics create chains
作者:Mark Allison
什么是 Chain 链
Chain
链是一种特殊的约束让多个 chain 链连接的 Views 能够平分剩余空间位置。在 Android 传统布局特性里面最相似的应该是 LinearLayout
中的权重比 weight ,但 Chains
链能做到的远远不止权重比 weight 的功能。
[译] ConstraintLayout基础系列之约束(constraints)
原文:Constraintlayout basics create constraints
作者:Mark Allison
什么是约束(Constraints)
ConstraintLayout
的核心基础就是创建约束。约束定义了布局内两个组件之间的关系,从而控制组件的布局位置。对于刚接触 ConstraintLayout
但对 RelativeLayout
熟悉的开发者来说,约束布局的工作原理很像 RelativeLayout
中通过创建组件间关系来控制布局。
Web 图片性能优化系列一:背景与基础
什么是响应式图片
组成网站的资源中,图片往往是网络负载的主要组成部分,占据了大部分负载而且随着时间推移,这个现象仍然会保持。虽然现在的网络连接速度持续改进,但是同样出现了越来越多的高 DPI
分辨率设备,为了在这些设备上有更好的表现,就需要有更高清晰度的图片,高清晰的同时就需要更大的文件大小。而因为仍需要支持一些相对非高 DPI
的分辨率设备,就需要有低清晰度的图片,从而就需要有更好的方案来实现针对不同设备提供不同的图片,也就是响应式图片 (Responsive images)。同时还要遵循 Web 资源的准则,保持性能和表现的平衡,合理地提供图片资源而不加载不需要使用的多余的资源。
其实,响应式图片简化来看,关键就是针对不同的设备选取合适的类型和清晰度。
给不同的设备提供刚好合适的清晰度分辨率是对性能最优的,过高的清晰度不仅意味着更多的传输时间还意味着需要缩放渲染时间,过低的清晰度就会让高 DPI
设备得不到应该有的最优体验。理论上来说确实是有可能给所有的设备提供刚好合适的清晰度。但设备的分辨率太多了,还存在不同的 DPI
,所以实践上目前更合理的方案是选择一系列的主要适配的设备产生对应的图片集合,其他设备就适当的选择相近的方案图片进行缩放。
如果设置响应式图片取决于你是在哪里进行适配(CSS、HTML、JS)以及用于哪些用途(UI、UX),其中主要出现在 CSS 和 HTML 中,以下主要讲解如果选择合适的图片类型,以及如果根据清晰度等因素响应式选择图片。
[译] 通过 Node.js, Express.js 实现 HTTP/2 Server Push
原文:Optimize Your App with HTTP/2 Server Push Using Node and Express
作者:Azat Mardan
代码:http2-node-server-push
什么是 HTTP/2 Server Push
HTTP/2
是 Web 开发的新标准,拥有很多不错的优点能够让 Web 访问更快且开发的工作更轻松简单。比如,引入多路复用传输不用合并资源,服务器推送(Server Push)资源让浏览器预加载。
该文不会讲述 HTTP/2
的所有优势。你可以通过上篇文章了解更多[译] Node.js, Express.js 搭建 HTTP/2 服务器。该文主要关注于在 Node.js
环境使用 Express.js
和 HTTP/2
库 spdy。
[译] Node.js, Express.js 搭建 HTTP/2 服务器
原文:Easy HTTP/2 Server with Node.js and Express.js
作者:Azat Mardan
代码:http2-express
什么是 HTTP/2
现代互联网的 TCP/IP
协议发布于1975年,这项技术在41年前是多么令人惊讶。自它发布开始大部分形式,我们使用 HTTP
和 后续接任者 HTTP/1.1
来实现客户端和服务端的通讯。它能很不错的传输 Web
,但今时今日的开发者建立网站的方式已经发生了巨大的改变。存在各式各样的外部资源链接例如图片、CSS
文件、JavaScript
资源。资源的种类数量只会持续增长。