R
RSSOK!
历史文章

码农明明桑

共 122 篇文章
返回首页
Android源码分析:Binder概述与ServiceManager获取
阅读Android系统源码,Binder是绕不过去的东西,前面看ContentProvider,Activity都有Binder的身影,因此决定还是先把Binder的部分看一看。本文主要简单介绍一下Binder的历史和它的基本架构,介绍Binder的ServiceManager我们在使用的时候如何去拿到它,同时推荐一些Binder的学习资料。 Binder简介 对于普通的Android的应用开发来说,进程的概念是被弱化的。这得益于系统已经帮助我们把Activity,ContentProvider,Broadcast,Service等涉及到跨进程的组件做了很好的封装。我们知道Android也是基
2024-09-04 19:09
八月月报-折腾不停歇
8月将结束,秋天已经到来,酷暑还未结束。把小朋友送到学校,才有时间又来回顾一个月。如题所示,博客折腾了许多,也体验了一下黑神话,详细见下文。 黑神话:悟空 悟空上线,全网热议,每个群里都有人在讨论,似乎身边的每个人都在玩。对于这种现象级的国产三A大作,肯定要支持一下。然而,却没时间玩,这十来天也只玩了一小会,牯护院打过去了,广智打了十几把还没过,就暂时搁置下来了。之前电脑上的游戏主要是玩回合制的比较多,这个类型的游戏之前很少,种种原因,觉得难度还挺大。 游戏画面精美,里面的碑文都能够清晰可见汉字,值得夸赞。各种建筑据说是按照很多中国的古建筑建模,即使是我这种游戏手残党也值得进入游戏游山玩水。
2024-09-02 13:39
Android源码分析: ContentProvider查询以及数据变化监听分析
之前已经分析了启动应用安装ContentProvider,使用时获取ContentProvider,我们这里再分析一下使用ContentProvider查询数据已经监听ContentProvider数据变化的情况。 查询数据 上次的文章已经介绍了使用query的方法,并且已经介绍完了通过acquireProvider获取到ContentProvider,如果是是本地应用的话拿到的是Transport对象,如果是查询其他应用(不严谨的说法,其他应用也要排查userId不同,且不共享签名),则拿到的是ContentProviderProxy,这里我们要分析的查询是其他应用的情况,因此我们需要关注C
2024-08-29 18:51
Android源码分析: 使用场景获取ContentProvider分析
之前已经分析过在应用启动的时候安装ContentProvider的流程了,现在我们再从使用者的角度看看是怎样去拿到ContentProvider的。 在使用ContentProvider的时候,我们通常会使用Context拿到ContentResolver,然后在执行CURD的操作,比如我们要查询手机中的联系人,通常会这样做: 1 2 3 4 5 6 7 8 String[] projection = new String[] { Profile._ID, Profile.DISPLAY_NAME_PRIMARY, Profile.LOOKUP_KEY, Profile.PHOTO_THUMB
2024-08-27 10:22
在家搭建VaultWarden密码管理服务
每个人都有很多密码,有人用脑记,有人用纸记,也有很多的工具帮我们记。之前我一直使用Keepass,在之前的文章介绍过。平时输入密码的场景最多的是网页中,目前keepass的网页插件只能说是能用的程度。前段时间给openwrt上面装上了docker,也想着在家搭一个密码管理服务,于是说干就干了。 密码服务能够个人搭建的就是Bitwarden了,因为在自家的树莓派上运行,因此选择了基于Rust的VaultWarden,毕竟资源消耗更少,性能也会更好点吧,它兼容Bitwarden,因此所有的客户端和浏览器插件都通用。 因为是在家里搭建要保证在外的时候,密码服务也能正常工作,因为已经有公网ip了,所以
2024-08-22 19:33
Android源码分析: 应用启动安装ContentProvider分析
ContentProvider是Android应用开发的四大组件之一,并且源码相对于其他几个也是比较简单的。因此我们先来看看它的源码。ContentProvider的使用我们会涉及到外部程序调用应用的ContentProvider来查询数据,也有监听数据的变化,以及ContentProvider的安装。我们先来看安装部分的源码。 ContentProvider根据它的名字就知道,他是一个内容提供者,它提供了整删改查的接口,方便Android应用跨应用跨进程的数据共享,在Android系统中,相册,通讯录等等都是通过ContentProvider来共享数据让其他应用可以使用。看源码,我们需要关注
2024-08-15 20:02
Android源码分析:ClientTransaction分析
分析Android Activity的启动过程,发现Android 在Android9.0中引入了ClientTransaction这一系列的对象,来简化system_server与App进程中处理Activity启动相关的任务。这里就来分析一下。 在服务端(system_server进程)主要有上面这些类,我们首先需要关注的就是ClientTransaction类,这个类在使用的时候主要是有以下几个成员: 1 2 3 4 private List mActivityCallbacks; private ActivityLifecycleItem mLifecycleStateRequest;
2024-08-13 21:59
博客主题装修更新记录
现在版本的博客是三年前搭建hugo程序的时候选择的hello-friends主题,用着没啥问题,但是一直想要做点改变,最近就动手干起来了。新主题基于PaperMod,更多更新如下。 首先换了个主题,主要是因为之前的主题用到了yarn编译,每次换电脑都要重新装一下node,npm,主题好久没有修改了,新装npm的时候居然给我报错,索性就直接换一个theme。挑选了一下PaperMod比较符合我的胃口,这个theme比较简洁,没有使用第三方的js,css预编译工具,使用了hugo去做js和css的预编译。 为了与众不同,这次为我这个修改版本的主题起了个名字“Zen“。主题的基础框架来自PaperM
2024-08-06 21:20
莫干山避暑玩水之旅
最近天气一直比较热,几天之前朋友就约了一起周末去莫干山鱼鳞坝玩水。周末早上便一起驾车前往,开启两天的玩水之旅。 第一天上午驾车前往,大约中午十二点钟到达四合村,猜想鱼鳞坝应该会有很多人,便在这里停下来的,花了十块钱把车停到村民家里。随后便拿出天幕,露营椅,在水边搭好方便遮阳。因为也没有带泳衣,我和小朋友一起都脱的只剩内裤下水游玩,同行的家属则在天幕下歇息。 这里的水深度还可以,有适合小朋友游玩的浅水,也有适合大人游泳的深水区,就是水面上没有树荫比较热,另外水中水草较多,水不太清澈。但是这一切都不能阻挡小朋友们玩水的热情。 在附近想要找到吃饭的店也没有,便在河边的小店花了30多元买了几个山寨可爱
2024-08-05 19:54
7月小记-可能是破财消灾吧
七月即将结束,就在动笔前,一次爆胎为这个月定了调。这个月梅雨刚走,又来高温,除了上半个月出去玩了一趟,后面基本就在家待着,靠空调续命。 游玩 月初带着老婆小孩到山东玩了一趟,沿着沈海公路北上,经过日照,青岛,威海,烟台,一路上看海玩水,大人小孩都开心,山东半岛的海鲜价格也还比较实惠,吃的也很爽。具体可以看之前的博客文章👈。 回上海之后,就开始一直高温,便一直待在家里。周末去了一次浦东的金海湿地公园,去时阴天,到了却是大晴天,热的全身出汗,待了一会便大道回家了。 车损 这个月可谓是运势不佳,月初去山东玩,在海边倒车撞上了渔船的螺旋桨,因为报案问题,保险又不全赔,4s店给解决了,好奇的可以看之前的
2024-07-31 17:44
1 … 5 6 7 8 9 … 13