之前是用树莓派连个两盘位硬盘盒运行一些服务,由于它的稳定性加上容量不够,一直想弄一个 NAS,趁着双十一到来,就入手了威联通的 NAS,本文介绍 一下购入的抉择以及 NAS 的初始化和相关的设置。 缘起 NAS 这个东西知道了很多年了,一直想要搞一个,迫于家里花费的紧张,之前一直…
广播,顾名思义就是把一个信息传播出去,在 Android 中也提供了广播和广播接收器 BroadcastReceiver, 用来监听特定的事件和发送特定的消息。不过广播分为全局广播和本地广播,本地广播是在 Android Jetpack 库中所提供,其实现也是基于 Handler…
最近因为 Follow 的爆火,RSS 的内容也跟着一起火了一把。笔者最近也优化了一下自己博客的 RSS 输出,在这里写一下博客如何更加 优雅的输出 RSS,以及在订阅 RSS 的时候如何更好的发现 RSS 源。 RSS2.0 与 ATOM RSS 是一种消息来源格式,用于方便的…
Android 消息循环在应用开发中会经常涉及,我以前也分析过。不过那个时候分析的还是以很老的 Android 源码来进行的,并且只是分析了 Java 层的代码,当时的文章为:Android 消息循环分析。而 Native 层,以及一些新增的功能,都没有涉及,今天再读源码,对其进…
之前的文章分享的是去安庆博物馆,在第二天,朋友推荐了集贤时空这个地方,便约着一起去了。 集贤时空位于集贤北路上,由原来的白鳍豚水泥厂改造而成。进去里面会发现里面的商业设施还不完善,许多空间都还在招租,旁边还有二期正在施工,现在也不需要门票。 停完车,看到入口大门,就能感受到满满的…
媳妇家在离安庆不远,过个江就到了,因此安庆经常去,不过去安庆也主要是去逛商场和吃饭。之前呢也去过附近的乌龙溪和菜子湖,安庆市区的除了菱湖公园别的也都没去过了。这次国庆过来,就去了一下安庆博物馆、集贤时空和倒扒狮街。本文先介绍一下安庆博物馆的这一部分。 对于安庆博物馆感兴趣也是今年…
九月学生开学,台风来袭,合肥地震,股票上涨。开了一夜的车到达皖南农村后,稍作休息,有空来写一写九月的月报。 游玩 九月没有出远门去玩,月初周末去了一次崇明岛,东滩湿地公园转了一下,这里是鸟类保护生态园,但是确没看到什么鸟,里面的一些设施也有一些荒废,不过环境还不错,到这露营还不错…
之前分析的是从 InputChannel 中读取 Event,并且向后传递,进行消费和处理的过程。但是之前的部分呢,事件如何产生,事件怎么进入到 InputChanel 当中的,事件又是如何跨进程到达 App 进程,这里继续来分析。 以上为 system 进程的流程的简化图,这里…
对于应用开发者的我们来说,经常会处理按钮点击,键盘输入等事件,而我们的处理一般都是在 Activity 中或者 View 中去做的。我们在上一篇文章中分析了 View 和 Activity 与 Window 的关系,其中的 ViewRootImpl 和我们的事件传递息息相关,上文…
Activity 是四大组件中和 UI 相关的那个,应用开发过程中,我们所有的界面基本都需要使用 Activity 才能去渲染和绘制 UI,即使是 ReactNative,Flutter 这种跨平台的方案,在 Android 中,也需要一个 Activity 来承载。但是我们的 …
老家在皖北农村,一年回不了几次,上次过年回去的,这次中秋想着回家看看老爹,就回去看了看。正好也记录一下回去的所看所感。 人 中秋节的节味是越来越淡了,因为大部分的人都在外打工,现在这个节点跟过年比农村依然很冷清。但是跟平时比还人还要多一点点,因为有些住在县城的人,中秋这天还跑回来…
Activity 的启动分析,很大一块需要了解的是 Activity 的 Task 管理,以及启动过程中 Task 的决策,在之前分析启动流程中,关于 Task 处理的部分,我这里是简化掉了很多的,今天再来分析一下。 入口与计算启动参数 在之前分析 Activity 的启动中,已…
Activity 是 Android 中四大组件使用最多的一种,不准确的说,一个 Activity 就是一个独立页面的承载,因此看 Android 系统的源码,Activity 的启动也是必须要去阅读的。今天的文章就来介绍 Activity 的启动。因为之前的文章已经分析了 Cl…
Android 应用进程的启动,简单来说就是从 zygot 进程 fork 出来一个新进程,并对其进行一些初始化。这样做系统的一些代码和资源等等就不需要重复加载,一些环境变量也都不需要重新设置,可以说是很巧妙的设置。下面就来具体分析一下其初始化过程。 启动时机 应用进程的启动,一…
前面介绍的通过 ServiceManager 添加服务和获取服务,这些服务都是有名称的,我们可以通过 ServiceManager 来获取它。除此之外 Android 系统中还有一类 Binder 服务是匿名它,它们如何让客户端获得代理对象,并且使用呢,本文就一探究竟。 AIDL…
通过 ServiceManager 添加服务和获取服务分别为 addService 和 getService,两者流程上其实是有一些类似的,其中我们可以看到 binder 通讯的全过程。为了让内容更有意义,添加服务选择从 Java 层的代码触发,获取服务则选择从 Native 层…
之前已经分析过获取 ServiceManager 了,不过那是在使用端,在分析使用 ServiceManager 去获取服务或者添加服务的时候发现,我使用的 Android Studio for Platform 默认没有把 ServiceManager 的源码导入。并且同时我们…
阅读 Android 系统源码,Binder 是绕不过去的东西,前面看 ContentProvider,Activity 都有 Binder 的身影,因此决定还是先把 Binder 的部分看一看。本文主要简单介绍一下 Binder 的历史和它的基本架构,介绍 Binder 的 S…
8 月将结束,秋天已经到来,酷暑还未结束。把小朋友送到学校,才有时间又来回顾一个月。如题所示,博客折腾了许多,也体验了一下黑神话,详细见下文。 黑神话:悟空 悟空上线,全网热议,每个群里都有人在讨论,似乎身边的每个人都在玩。对于这种现象级的国产三 A 大作,肯定要支持一下。然而,…
之前已经分析了启动应用安装 ContentProvider,使用时获取 ContentProvider,我们这里再分析一下使用 ContentProvider 查询数据已经监听 ContentProvider 数据变化的情况。 查询数据 上次的文章已经介绍了使用 query 的方…