在这篇文章中,我想尝试与大家探讨一下,如何做好软件的接口设计。
macOS是许多开发者最爱用的操作系统(这其中就包括了我自己)。本文将介绍macOS系统上的基础开发环境搭建。
HarmonyOS开发者活动演讲材料下载。 资料下载资料下载我于2021年7月31日,在HarmonyOS Developer Day上的公开演讲材料:《HarmonyOS分布式应用框架深入解读》。
本文介绍一个适合于软件工程师所使用的绘图工具:PlantUML。
若干年以后,当我们回想2020年的时候,让我们记得的关键词除了新冠病毒,也一定少不了5G。5G作为新一代移动通信技术,将和它的前辈一样,彻底的改变人们的生活。本文是关于5G的一篇介绍性文章,希望能让大家对5G有一个感性上的认识。
表达式是C++语言的基石。每个表达式都有两个属性:类型(type)和值类别(value category)。前者是大家都熟悉的,但是后者却可能是我们不太在意的。本文的目的是介绍与值类别相关的一些知识。
本文是一篇关于Python基础知识的文章,介绍Python中最常用的内建数据类型。
DDS是一套通信协议和API标准,它提供了以数据为中心的连接服务。Fast-RTPS是DDS的开源实现,借助它可以方便的开发出高效,可靠的分布式系统。本文是对DDS以及Fast RTPS的介绍文章。
最近几年中,Google在一直极力的改进Android系统的续航能力。在本文中,我们将看到Andrdoi自5.0到8.0这几个版本中对于功耗方面的改进。
正则表达式可以说是软件开发中最常用的功能之一。本文将以C++语言为例,介绍其中的正则表达式相关知识。
日期和时间是编程中非常常用的功能。本文是对C++11到C++17中相关编程接口的介绍。
越来越多的人使用Python进行机器学习方面的工作。本文大致整理了目前现阶段构建Python开发环境的方法以及牵涉到的工具。同时,也会大致介绍机器学习方面常用的软件包。
下面记录了我2020年的读书单,会不定期更新,直到2020年结束。
本文是《C++ 并发编程》一文的姊妹篇。将着重介绍C++11标准引入的内存模型。
自C++11标准以来,C++语言开始支持多线程模型。借助多线程模型,我们可以开发出更好的并发系统。本文以C++语言为例,讲解如何进行并发编程。并尽可能涉及C++11,C++14以及C++17中的主要内容。
在软件工程中,我们常常需要监测某个进程或者整个系统的资源消耗情况,这其中包括对于CPU,内存还有IO信息的了解。这方面的工具非常多,其中有些商业工具非常的贵。但在Linux社区里,有很多的免费开源工具做的已经非常优秀。本文就将介绍Linux上一个优秀的系统监测工具:sysstat。
Chrome OS是Google公司开发的基于Chrome浏览器的操作系统。本文会讲解Chrome OS对于Android系统支持方面的内容。
之前我写过一些文章讲解Android系统上的进程管理,那几篇文章主要是从ActivityManagerService的角度来讲解。而这篇文章,将从更底层,从Linux内核层的角度讲解Android系统对于进程的调度管理。
Automotive Grade Linux是一套开源的车载系统平台。本文是对该平台的整体介绍。
梯度下降是非常常用的优化算法。作为机器学习的基础知识,这是一个必须要掌握的算法。借助本文,让我们来一起详细了解一下这个算法。
矩阵是高等代数学中的常见工具,也常见于统计分析等应用数学学科中。在人工智能的项目中,无论是使用机器学习,还是做数值优化,都会用到矩阵的知识。因此借助这篇文章,让我们来一起了解一下有关矩阵的一些基础概念。
本文紧接着上一篇文章:《解析百度Apollo之决策规划模块》。会详细讲解决策规划模块中是如何生成参考线和行车轨迹供车辆行驶的。参考线和轨迹直接影响了自动驾驶车辆对于方向和速度的控制,因此,说它是自动驾驶系统中最重要的数据都不为过。
本文是Apollo项目系列文章中的一篇,会解析自动驾驶系统中最核心的模块 - 决策规划模块。
本文是Apollo项目系列文章中的一篇,会结合源码解析其中的Routing模块。
A*(念做:A Star)算法是一种很常用的路径查找和图形遍历算法。它有较好的性能和准确度。本文在讲解算法的同时也会提供Python语言的代码实现,并会借助matplotlib库动态的展示算法的运算过程。
下面记录了我2019年的读书单,会不定期更新,直到2019年结束。
本文是Matplotlib的第二篇文章,会讲解如何通过Matplotlib绘制3D图形。关于Matplotlib的第一篇文章,请看这里:Python绘图库Matplotlib入门教程。
对代码进行单元测试是几乎每个软件工程师都要完成的工作。本文以C++语言为基础,讲解如何进行单元测试并生成测试报告。
生活中的很多事情潜在的都符合某种规律。例如:反复抛掷一枚均匀的硬币,出现正面和反面的机会是差不多的;我们认识的人里面特别高或者特别矮的都不多,大部分人的身高都在一个比较接近的范围内。概率论通过概率分布来描述事件出现的频率。本文选取了一些常见的概率分布做一些介绍,以方便在今后使用的时候可以查阅。
期待了小半年,历时两周,终于完成了我的欧洲之旅,这里分享一些我拍的照片。
本文是Android虚拟机系列文章的最后一篇,会讲解Android上的ART虚拟机。
本文是Android虚拟机系列文章的第二篇,会介绍Andorid系统上曾经使用过的Dalvik虚拟机。后面还会有一篇文章讲解Android系统上现在使用的虚拟机:ART。
大家最熟悉的Android系统应该是手机和平板设备上的,大部分人可能没想过Android系统和汽车有什么关系。但实际上,Android系统在四年前就在布局汽车这个平台。我最近对相关内容做了一些了解。下面将我所了解到的信息分享给大家。
最近对百度的自动驾驶平台Apollo项目做了一些了解。下面将我所了解到的一些信息分享给大家。
今年有机会参加了上海的CES展。下面是我拍的照片和一些见闻。
本文是scikit-learn系列文章的第二篇,会讲解分类预测的相关知识,并会给出通过scikit-learn进行分类预测的代码示例。强烈建议读者在读本文之前先阅读前一篇文章:《使用scikit-learn进行线性回归分析》
接下来会有一系列文章讲解Python机器学习库:scikit-learn。本文是第一篇,我们会介绍一些基本概念以及讲解如何使用scikit-learn进行线性回归分析。
Matplotlib是一个Python语言的2D绘图库,它支持各种平台,并且功能强大,能够轻易绘制出各种专业的图像。本文是对它的一个入门教程。
在前面一篇文章中,我们对pandas做了一些入门介绍。本文是它的进阶篇。在这篇文章中,我们会讲解一些更深入的知识。
pandas是一个Python语言的软件包,在我们使用Python语言进行机器学习编程的时候,这是一个非常常用的基础编程库。本文是对它的一个入门教程。
NumPy是一个Python语言的软件包,它非常适合于科学计算。在我们使用Python语言进行机器学习编程的时候,这是一个非常常用的基础库。
下面记录了我2018年的读书单,会不定期更新,直到2018年结束。
2017年人工智能已经处于井喷的态势。无论是国内的BAT还是国外的Google,Apple,无一不在AI上进行了大量的投入。就连国内政府也表现出非常重视的态度。由此可见其未来的形势。
接下来会有几篇文章专门讲解Android系统中的虚拟机,本文是序篇,主要是为了后面讲解Dalvik和ART虚拟机做一些铺垫。在本中我们将对Java虚拟机以及虚拟机中的垃圾回收算法做一定的介绍。
本文内容摘录自:https://source.android.google.cn/security/selinux/ ,详细说明了SELinux在Android上的使用。
本文内容摘录自:https://source.android.com/security/ ,对Android系统的安全机制进行了整体的介绍。
本文中,我们详细了解一下Android N(7.0)上的新增特性:Quick Settings。
在本文中,我们来详细了解一下Android上的Notification实现。
本文紧接着上一篇文章Android SystemUI 介绍 。在本文中,我们来详细了解一下Android上的System Bar
接下来会有几篇文章来解析Android系统的SystemUI功能,这里是第一篇入门介绍。
App Shortcuts是Android 7.1上推出的新功能。借助于这项功能,应用程序可以在Launcher中放置一些常用的应用入口以方便用户使用。
本文是Android Binder机制解析的第三篇,也是最后一篇文章。本文会讲解Binder Framework Java部分的逻辑。
本文是Android Binder机制解析的第二篇文章,会讲解Binder Framework的C++部分逻辑。
Binder的实现是比较复杂的,想要完全弄明白是怎么一回事,并不是一件容易的事情。
今天是农历正月初一,一切又是全新的开始。面向新的一年,我们可能启动了许多有意义的计划,在这个有着特殊意义的日子里,让我们来一起学习一下Android系统是如何启动的。
这一年中我一共看了十多本书,不算多也不算少,但重点是终于开始看一些技术以外的书籍了。
本文是Android系统进程管理的第三篇文章,会讲解关于内存回收相关的内容。
本文是Android进程管理系列文章的第二篇,会讲解进程管理中的优先级管理。
对于操作系统来说,进程管理是其最重要的职责之一。考虑到这部分的内容较多,因此会拆分成几篇文章来讲解。本文是进程管理系统文章的第一篇,会讲解Android系统中的进程创建。
在以往的Android系统上,所有Activity都是全屏的,如果不设置透明效果,一次只能看到一个Activity界面。
C++11 中增加了许多的新特性。在本文中,我们来聊一下lambda表达式,闭包,std::function以及std::bind。 lambda 表达式 std::function 闭包 std::bind lambda表达式是如何实现的 参考资料lambda 表达式C++11中新增了lambda ...
在本章中,将逐个分析Android系统对于Linux添加的一些特有驱动。 注意,这里解析的驱动是与硬件无关的驱动,这些驱动通常是为Android的上层软件层所使用的。 如果你需要了解Linux硬件驱动层的开发知识,请参阅其他资料。
本文作为系列文章的第一篇,将对Android系统做一些介绍。
本文作为一个开篇,接下来会有一系列的文章通过对AOSP源码的分析,来对Android的内部实现进行解析。
之前我写过一些文章讲解Android系统上的进程管理,那几篇文章主要是从ActivityManagerService的角度来讲解。而这篇文章,将从更底层,从Linux内核层的角度讲解Android系统对于进程的调度管理。
Read More本文是Android虚拟机系列文章的第二篇,会介绍Andorid系统上曾经使用过的Dalvik虚拟机。后面还会有一篇文章讲解Android系统上现在使用的虚拟机:ART。
Read More接下来会有几篇文章专门讲解Android系统中的虚拟机,本文是序篇,主要是为了后面讲解Dalvik和ART虚拟机做一些铺垫。在本中我们将对Java虚拟机以及虚拟机中的垃圾回收算法做一定的介绍。
Read More本文内容摘录自:https://source.android.google.cn/security/selinux/ ,详细说明了SELinux在Android上的使用。
Read MoreApp Shortcuts是Android 7.1上推出的新功能。借助于这项功能,应用程序可以在Launcher中放置一些常用的应用入口以方便用户使用。
Read More本文是Android Binder机制解析的第三篇,也是最后一篇文章。本文会讲解Binder Framework Java部分的逻辑。
Read More今天是农历正月初一,一切又是全新的开始。面向新的一年,我们可能启动了许多有意义的计划,在这个有着特殊意义的日子里,让我们来一起学习一下Android系统是如何启动的。
Read More对于操作系统来说,进程管理是其最重要的职责之一。考虑到这部分的内容较多,因此会拆分成几篇文章来讲解。本文是进程管理系统文章的第一篇,会讲解Android系统中的进程创建。
Read More在本章中,将逐个分析Android系统对于Linux添加的一些特有驱动。 注意,这里解析的驱动是与硬件无关的驱动,这些驱动通常是为Android的上层软件层所使用的。 如果你需要了解Linux硬件驱动层的开发知识,请参阅其他资料。
Read More自C++11标准以来,C++语言开始支持多线程模型。借助多线程模型,我们可以开发出更好的并发系统。本文以C++语言为例,讲解如何进行并发编程。并尽可能涉及C++11,C++14以及C++17中的主要内容。
Read MoreC++11 中增加了许多的新特性。在本文中,我们来聊一下lambda表达式,闭包,std::function以及std::bind。 lambda 表达式 std::function 闭包 std::bind lambda表达式是如何实现的 参考资料lambda 表达式C++11中新增了lambda ...
Read More本文是Matplotlib的第二篇文章,会讲解如何通过Matplotlib绘制3D图形。关于Matplotlib的第一篇文章,请看这里:Python绘图库Matplotlib入门教程。
Read More本文是scikit-learn系列文章的第二篇,会讲解分类预测的相关知识,并会给出通过scikit-learn进行分类预测的代码示例。强烈建议读者在读本文之前先阅读前一篇文章:《使用scikit-learn进行线性回归分析》
Read More接下来会有一系列文章讲解Python机器学习库:scikit-learn。本文是第一篇,我们会介绍一些基本概念以及讲解如何使用scikit-learn进行线性回归分析。
Read MoreMatplotlib是一个Python语言的2D绘图库,它支持各种平台,并且功能强大,能够轻易绘制出各种专业的图像。本文是对它的一个入门教程。
Read Morepandas是一个Python语言的软件包,在我们使用Python语言进行机器学习编程的时候,这是一个非常常用的基础编程库。本文是对它的一个入门教程。
Read MoreNumPy是一个Python语言的软件包,它非常适合于科学计算。在我们使用Python语言进行机器学习编程的时候,这是一个非常常用的基础库。
Read MoreDDS是一套通信协议和API标准,它提供了以数据为中心的连接服务。Fast-RTPS是DDS的开源实现,借助它可以方便的开发出高效,可靠的分布式系统。本文是对DDS以及Fast RTPS的介绍文章。
Read More本文紧接着上一篇文章:《解析百度Apollo之决策规划模块》。会详细讲解决策规划模块中是如何生成参考线和行车轨迹供车辆行驶的。参考线和轨迹直接影响了自动驾驶车辆对于方向和速度的控制,因此,说它是自动驾驶系统中最重要的数据都不为过。
Read More大家最熟悉的Android系统应该是手机和平板设备上的,大部分人可能没想过Android系统和汽车有什么关系。但实际上,Android系统在四年前就在布局汽车这个平台。我最近对相关内容做了一些了解。下面将我所了解到的信息分享给大家。
Read MoreA*(念做:A Star)算法是一种很常用的路径查找和图形遍历算法。它有较好的性能和准确度。本文在讲解算法的同时也会提供Python语言的代码实现,并会借助matplotlib库动态的展示算法的运算过程。
Read MoreChrome OS是Google公司开发的基于Chrome浏览器的操作系统。本文会讲解Chrome OS对于Android系统支持方面的内容。
Read More在软件工程中,我们常常需要监测某个进程或者整个系统的资源消耗情况,这其中包括对于CPU,内存还有IO信息的了解。这方面的工具非常多,其中有些商业工具非常的贵。但在Linux社区里,有很多的免费开源工具做的已经非常优秀。本文就将介绍Linux上一个优秀的系统监测工具:sysstat。
Read More越来越多的人使用Python进行机器学习方面的工作。本文大致整理了目前现阶段构建Python开发环境的方法以及牵涉到的工具。同时,也会大致介绍机器学习方面常用的软件包。
Read MoreHarmonyOS开发者活动演讲材料下载。 资料下载资料下载我于2021年7月31日,在HarmonyOS Developer Day上的公开演讲材料:《HarmonyOS分布式应用框架深入解读》。
Read More