![个人头像照片](https://ucc.alicdn.com/avatar/img_b7018b7e27d8bd9c9897b5f92b76660f.jpg)
刘子瑛,阿里系统框架专家。工作十余年,一直对新编程语言、新开发方法、数学与算法相关和并发等相关领域保持浓厚的兴趣。乐于通过技术分享促进新技术。
mermaid时序图,与PlantUML有什么不同呢
用描述性的语言来写UML,尤其是Sequence Diagram,PlantUML应该是很多同学的首选了吧
mermaid的好处是可以在写markdown文档的同时,就直接可以画图了
用代码画流程图和时序图快餐教程1,graphviz的dot语言
与很多同学交流的时候发现,一想到用C++写多线程,还是想到pthread这样的库的方法实现。 但是,十几年前的研究就证明了,线程安全是无法用库的形式来提供的. 所以,至少对于多线程编程来讲,C++11是必须要学习的。我们不能再停留在C++98/03的老黄历上了! 所幸的是,对于最基本的C++1
我一直觉得,Makefile确实是C/C++程序员的良配,因为Makefile所使用的两种范式都是C/C++程序员不熟悉的,一种是函数式的思想,一种是依赖构成的目标链的模式。
前面基础知识已经准备得差不多了,我们开始看几个例子巩固一下
前面我们把Makefile做为一门语言的主要特性大致做了一个描述。但是,我们在实际的Android.mk当中还是会发现有很多事情光用Makefile的字符串替换搞不定啊,这可如何是好? 其实,这就是我们在第一讲的最开始就讲shell函数的原因,因为这要靠shell脚本来解决了。
看看PerfService是如何落地的,提供一个完整的例子
MTK提供了一个PerfService来实现调整CPU/GPU资源的服务。对于老的API,可以更简单地讲就是调CPU核数和CPU频率的。
dex2oat是如何在makefile中落地的
传统上我们一直称这种东西为makefile中的变量,其实本质上就是一个宏,只是做的是字符串替换。我们何如就把它叫做宏呢。
按照面向过程程序设计的标准流程,我们讲完了顺序结构,就要讲分支、循环和子程序。下面我们就开始讲用于分支、循环和子程序调用功能的函数。
大家都习惯看从头,从构建目标讲起的makefile教程,导致每篇文档熟的都是前面的部分。很多教程也都是想办法能够观其大略,从整体上给大家一个思路。比如《深入理解Android内核设计思想》的第4章,比如《Android内核剖析》的第18章,比如《深入解析Android 5.0系统》的第2章。
本节我们分析一下生成boot.art和boot.oat,与编译普通应用的不同
dex2oat是将dex字节码编译成oat格式的可执行文件的工具,我们先从命令行参数,和makefile调用它的时候所给的参数开始了解它吧
在Android M中,PMS也是有变化的,比如原来一些用c语言写的变成c++写的了。我们先从被取消掉的patchoat命令的直接调用说起,一起看看都有些什么变化。
云栖博客支持语法高亮的常用编程语言
Node.js写独立运行程序快餐的第二节 - 如何处理环境信息,如命令行参数,环境变量等
Android 6.0开始支持运行时权限管理的功能。运行时权限管量中当然也包括对READ_EXTERNAL_STORAGE和WRITE_EXTERNAL_STORAGE这两个权限的动态管理。系统需要提供在不杀掉或重启已经运行的应用的情况下去动态授权的机制。 这篇文章就是讲在Zygote fork的
Node.js与其它语言一样,提供了对文本文件按照行来读的功能。不过与Ruby,Python等语言不同,Node.js的File System对象并不提供迭代访问功能,要借用一个独立模块readline来实现这个功能.
inflate分析第3章,分析如何用XmlPullParser从XML中读取属性,以及如何从编译好资源XML中读取属性和资源的值。
Future实现了从单任务到多任务的转变,而Fork-Join模式是一种充分利用多核的模式。
清理一下去年的存货,讲64位ARM指令集和架构
在Android源码中,越来越多地使用到了Annotation,我们有必要从头学习一下Annotation的基础知识和在Android中的应用
最近一直在写多线程的东西,也看了不少教程,觉得材料的组织有可以改进之处。主要原因是对于时间要求太高,要想写出正确的代码,基本上得把一本书学完才行。 于是我尝试可以改进一下,是否可以先讲些安全的,可以短平快的,最后再讲大块头的。
inflate系列第2章出炉,工具已经齐备,下面开始介绍材料。首先我们从ViewGroup中的LayoutParams开始打牢基础,这是个只有宽和高两个参数的简单类,通过它我们把TypedArray,Theme之类的概念搞清楚,为将来进入更复杂的布局做准备。
Android的preload-classes是一种通过预加载来加快应用启动速度的好办法,这篇文章来讲如何针对某特定手机去实现自己预加载列表。
4.4时代Android的浅杀
Android inflate的前因后果
boolean常量在判断中的位置的不同,对于最终生成的代码有微妙的影响
Android过场动画的基础知识介绍