鸿洋

其他

systemserver进程监控者--watchdog

本文摘要本文同样采用自述的方式来介绍systemserver进程的监控者watchdog,通过本文您将了解watchdog的作用,它是如何工作的。(文中代码基于Android13)1我是谁我的名字叫watchdog,翻译为中文是看门狗,说实话我不喜欢这个名字,大家叫我进程监控者吧,这名字才符合我做的事情,我运行在一个单独的线程同时我也是单例,也就是在systemserver进程只有我一个实例,谁要是想使用我就调用我的
9月12日 上午 8:35
其他

Room数据库使用一些坑

deleteAllUsers();}方法3:使用WorkManager进行后台操作对于需要长时间运行或者大量数据的删除操作,推荐将其放在后台进行,以避免影响主线程和用户体验。你可以使用Android
9月11日 上午 8:35
其他

Harmony:关于鸿蒙系统的内容都总结在这里了

跨平台新技术;这或许对于客户端、前端开发者来说是一个很好的就业方向及机遇。问题2:难不难学?鸿蒙系统的开发框架几乎是采用当前较为流行的开发模式:可读性高的JS、声明式UI,对于有一定经验的客户端
9月10日 上午 8:35
其他

学完ASM Tree api,再也不怕hook了

方法头:即标识一个方法的基本属性,包括:access(作用域),name(方法名),desc(方法签名),signature(泛型签名),exceptions(方法可以抛出的异常)
9月6日 上午 8:35
其他

面试题:为什么使用 Bundle 而不使用 HashMap

本文作者作者:程序员DHL链接:https://juejin.cn/post/7408379631093219379本文由作者授权发布。Bundle
9月5日 上午 9:02
其他

Android14 VSync 机制深入解读

/frameworks/native/services/surfaceflinger/Scheduler/Scheduler.cppScheduler::Scheduler(ICompositor&
9月4日 上午 8:35
其他

为什么大部分程序员都在今年冲软考?

血泪教训啊!!原来每年,80%的软考人没拿证都折在了这些问题:❎论文被卡,缺乏项目经验;❎时间太少,啃教材毫无重点;❎考点太多,与实际工作联系少;❎机考太难,没提前熟悉
9月3日 上午 8:40
其他

Android 15 上适配 16K Page Size 的填坑思路,以 IJKPlayer 为例子

还提供了有用算法和容器的通用实现,例如容器提供了在程序中存储数据然后查找、排序和对该数据执行其他计算的简单方法:std::sort(container.begin(),
8月26日 上午 8:36
其他

Android Surface截图方法总结

本文作者作者:时光少年链接:https://juejin.cn/post/7398748051878084648本文由作者授权发布。前言说起Surface截图,很多人一个惯性思维是使用MediaProjection框架,但是有点杀鸡使用宰牛刀的问题,实际上,MediaProjection往往需要申请权限,其录制范围包括第三方app,但是如果是自身app,实际上完全没有必要,仅仅使用DisplayManager创建虚拟屏即可,连权限都不需要申请。实际上,Android
8月23日 上午 8:35
其他

推荐个App:直达开源啦!

,包含详尽的知识体系、好用的工具,还有本公众号文章合集,欢迎体验和收藏!推荐阅读:Android大脑--systemserver进程5年了,ViewPager2
8月22日 上午 8:35
其他

Android大脑--systemserver进程

本文摘要系统native进程的文章就先告一段落了,从这篇文章开始写Java层的文章,本文同样延续自述的方式来介绍systemserver进程,通过本文您将了解到systemserver进程是啥?它包含那么多的服务,是如何管理它们的?如何启动它们的?(文中代码基于Android13)本文大纲:1.
8月20日 上午 8:35
其他

5年了,ViewPager2 终于支持 overScrollMode,没错,我干的。

本文作者作者:Mr_万能胶链接:https://juejin.cn/post/7394463308379045951本文由作者授权发布。注意标题中的我,指的是本文作者Mr_万能胶,大家可以去掘金瞻仰。这两周给
8月19日 上午 8:36
其他

Kotlin新特性:Context receivers将被废弃

{}那我们可以怎么做呢?官方建议我们通过明确参数或者扩展成员函数的方式来实现。明确参数原代码如下所示:context(ContextReceiverType)fun
8月16日 上午 8:35
自由知乎 自由微博
其他

一文看懂DecorView的一生

DecorView是Android应用程序中所有视图的根视图。它是框架用来管理和显示应用程序界面的核心组件之一。理解DecorView的创建流程对于理解Android视图系统的运作方式至关重要。1简介DecorView的主要角色是作为顶层容器,承载着应用的视图结构。当在应用中使用setContentView方法加载布局时,实际上是将这个布局作为子视图添加到DecorView中。因此,DecorView定义了应用界面的边界,所有的视图都在这个边界内进行绘制和事件分发。下面我们来说一下,DecorView与Window、Activity和ViewRootImpl之间的关系,这能够更好地帮助我们理解应用的视图层次结构。与Window的关系Window是Android中的一个抽象概念,代表着屏幕上的一块区域,可以用来显示视图。每个Activity都会被赋予一个Window,而这个Window则负责承载DecorView。简单来说,Window是一个显示DecorView的容器。在Android中,Window和View通过WindowManager服务来管理,WindowManager负责将Window(及其包含的DecorView)放置到屏幕上的正确位置。与Activity的关系Activity是Android应用中的一个基本组件,负责创建用户界面。每个Activity都会有一个与之关联的Window,而这个Window则承载着DecorView。在Activity的生命周期中,当调用setContentView方法时,系统就会开始构建视图层次结构,将指定的布局文件加载到当前Activity的Window所关联的DecorView中。与ViewRootImpl的关系ViewRootImpl是Android
8月15日 上午 8:35
其他

LeakCanary 你真的了解么?看看这些高级用法

,感兴趣的同学可以自取。https://gist.github.com/madroidmaq/9207e24820838ccc0b1a2558d83df7ef5总结首先,正常在
8月13日 上午 8:35
其他

详解Android14 Activity 启动过程

的接口:startActivityfinishActivityactivityResumedactivityPausedactivityStoppedactivityDestroyed//
8月12日 上午 8:35
其他

不同版本上 Bitmap 内存分配与回收对比

机制升级到引用机制后稳定性略有提升,或者将来从引用机制升级到某个更优秀的机制,不管怎么升级,兜底策略永远是兜底策略,它永远不会也不能替换主要策略:在不需要使用资源时立即释放资源。举个例子,Glide
8月9日 上午 8:35
其他

别滥用FileProvider了,Android中FileProvider的各种场景应用

本文作者作者:newki链接:https://juejin.cn/post/7140166121595863076本文由作者授权发布。前言有部分同学只要是上传或者下载,只要用到了文件,不管三七二十一写个
8月8日 上午 8:35
其他

凡猿修仙传:斩杀ClassNotFoundException when unmarshalling Crash

本文作者作者:三雒链接:https://juejin.cn/post/7385736245090615333本文由作者授权发布。1写在前面大家好,我是三雒(luo)。今天水一篇最近我们应用内发生的大规模Crash,
8月7日 上午 8:35
其他

Android线程锁机制:monitor机制解析

wake_set_ 内有线程的时候,监听Signal信号,当监听到Singal的时候,循环结束,走到释放流程。接着会发出Wait信号:这个Wait信号对应的真正操作是
8月6日 上午 8:35
其他

ArkTS 入门指南:快速上手鸿蒙应用开发

鸿蒙开发者文档。https://www.typescriptlang.org/docs/https://developer.huawei.com/consumer/cn/5结语ArkTS
8月5日 上午 8:36
其他

Android特效视频Surface+Camera2的实现

本文作者作者:newki链接:https://juejin.cn/post/7262358127345762364本文由作者授权发布。前言本文并非专业音视频领域的文章,只不过是其在
8月2日 上午 8:35
其他

包体积优化:Android编译期PNG自动化转换WEBP

,动态注册Convert2WebpTask任务,后期使用该注解处理器处理Convert2WebpTask任务。@AutoService(VariantProcessor::class)class
8月1日 上午 8:35
其他

Android 15 线程挂起超时崩溃与修复

本文作者作者:巴黎没有摩天轮Li链接:https://juejin.cn/post/7390341683601014824本文由作者授权发布。背景由于Android系统针对挂起线程超时的场景进行了进程中断处理,从系统稳定性的角度,Google
7月31日 上午 8:35
其他

从 XML 到 View 显示在屏幕上,都发生了什么?

本文作者作者:RicardoMJiang链接:https://juejin.cn/post/6991483318625632286本文由作者授权发布。前言View绘制可以说是Android开发的必备技能,但是关于View绘制的的知识点也有些繁杂。如果我们从头开始阅读源码,往往千头万绪,抓不住要领。目前当我们写页面时,布局都是写在XML里的,我们可以思考下:布局从XML到显示到屏幕上,都发生了什么,可以分为哪几个部分?我们将整个显示流程分解为以下几个部分:1、代码是怎么从XML转换成View的?2、View是怎么添加到页面上的?3、在内存中View到底是怎么绘制的?4、View绘制完成后是怎么显示到屏幕上的?本文目录如下所示:1XML是怎么转换成View的?我们都知道,在android中写布局一般是通过XML,然后通过setContentView方法配置到页面中。看来XML转换成View就是在这个setContentView中了。1.1
7月30日 上午 8:35
其他

核心交互场景优化黑科技,GC抑制从入门到精通

本文作者作者:三雒链接:https://juejin.cn/post/7381388012276580371本文由作者授权发布。写在前面大家好,我是三雒,今天这一篇我们来讨论一下GC抑制。大家都知道C/C++内存的申请和释放需要程序员手动管理,程序员需要付出精力去释放不用的内存,而作为人无论再牛逼细心总会有出错的时候。Java引入GC来实现内存的自动释放,但是天下没有免费的午餐,相应的代价是牺牲应用运行性能。Android上虚拟机一代目Dalvik
7月29日 上午 8:35
其他

万字长文 · Android 功耗优化指导规范

}}Solution对高频调用网络建链耗时函数进行临界条件判断。高频调用正则表达式耗时函数正则表达式是一种非常强大的工具,但是使用不当也可能导致性能问题。高频调用正则表达式的函数可能会占用大量的
7月26日 上午 8:35
其他

Android 性能优化: 启动优化理论与实践

本文章总结了目前市面上常见的一些启动优化常用手段,开发和面试必备哦。首先要做应用启动优化,你得对应用启动流程有个整体甚至细化的了解。1应用启动全路径分析应用启动过程整体分为两大阶段:Application启动
7月25日 上午 8:35
其他

Android 15 适配之16K Page Size :为什么它会是最坑的一个适配点

filesdir="$1"RED="\e[31m"GREEN="\e[32m"ENDCOLOR="\e[0m"matches="$(find
7月24日 上午 8:35
其他

内存大户Bitmap

内存分配策略是不同的,但是通过源码对比,虽然代码有了比较大的改动,但是调用流程和内存大小的计算方式是基本没有什么大的变化。解码配置-每像素字节在
7月23日 上午 8:35
其他

Kotlin委托的原理与使用,在Android中常用的几个场景

常见的一些场景中的使用。1接口/类委托我们可以选择使用接口来实现类似的效果,也可以直接传参,当然接口的方式更加的灵活,比如我们这里就以接口比如我定义一个攻击与防御的行为接口:interface
7月19日 上午 8:35
其他

Android上下文Context,学有所得

本文作者作者:新小梦链接:https://juejin.cn/post/7218080719201321021本文由作者授权发布。1Context概览Context在Android中,代表着当前应用程序运行环境的上下文,通过前面对Android应用程序的启动流程和四大组件的启动流程分析。发现只有Application、Activity、Service三者才会创建上下文Context。所以,我们也可以理解为Context是Application、Activity、Service运行环境的上下文。所谓上下文,即可以根据一些变量、类来帮助我们获得相关资源、信息。类似聊天中,我们有时候需要前面沟通的信息,来理解当前对话的内容。从Android
7月18日 上午 8:36
其他

Android就想下载个文件到SD卡,怎就这么难?快把代码拿走吧

本文作者作者:Newki链接:https://juejin.cn/post/7383311950175272998本文由作者授权发布。前言Android的版本更新算是跟权限管理犟上了,每次版本更新都是权限管理的改动,导致我现在就想简简单单的实现一个下载文件到
7月16日 上午 8:35
其他

Google CameraX,看这篇文章就够了

之间)背压策略应用可以设置分辨率或宽高比,但不能同时设置这两个值。确切的输出分辨率取决于应用请求的大小(或宽高比)和硬件功能,并可能与请求的大小或宽高比不同。如需了解分辨率匹配算法,请参阅有关
7月15日 上午 8:35
其他

Android zygote访谈录

本文摘要本文以访谈的方式来带大家了解zygote进程,了解zygote进程是啥?它的作用是啥?它是如何一步一步“长大成人”的。(文中代码基于Android13)1鼎鼎大名的zygote主持人:“大家好啊,我是今天的主持人,你们大伙儿可是赚到,为啥因为我今天有请到了鼎鼎大名的zygote,千万别和我说你不认识她,在Android所有的系统native进程中,她的名气已经完全超过了vold、installd、lmkd等兄弟们,甚至连她的父亲init都自愧不如。”一位观众提问到:“不好意思主持人,我确实也听说过她,但都是从别人嘴里面得知的,完全不知道zygote名气大的原因是啥?”“谢谢这位观众,这确实是我的疏忽,首先我认为zygote名气大的原因是她有很多的子进程,而这些子进程是可以直接跟用户打交道的比如微信、抖音,而像init它的很多直接子进程都是demon类型的,只是在后台默默无闻的工作,用户对他们完全没感知。其次她是所有系统native进程中唯一可以运行Java/Kotlin代码的进程。那就有请我们今天的主角zygote吧。”zygote:“大家好,主持人完全过奖了,我可不敢当。我的真名是zygote64是一个系统native进程。我其实还有个妹妹她的真名字是zygote,她也和我一样也是一个系统native进程。我和我妹妹的主要工作职责是fork
7月12日 上午 8:35
其他

Android输入法IMS流程详解

的时候调用。onStartInput:用户在编辑框开始输入文字的时候调用。onCreateInputView:创建并返回输入区域的视图,第一次显示输入区域视图的时候调用,默认实现返回
7月11日 上午 8:35
其他

binder传递大数据:AIDL 如何分片传输大量 Parcelable 数据

.setContentIntent(NotificationUtils.createActivityPendingIntent(AIDLTestService.this,
7月10日 上午 8:35
其他

Android打造丝滑的Activity recreate重建(主题切换)过渡动画

}}修改主题后保存状态并重建activity这个Activity继承自上面实现的BaseActivity,因此无需关心设置主题和activity全屏显示的问题。MainActivity
7月9日 上午 8:35
其他

值得一看的Android广播分析好文

12进行广播流程的分析,主要从四个方面:广播的注册、解注册、处理、结束四方面进行分析,会比较全面、按个人理解对广播进行解析。但个人能力有限,可能存在部分理解错误,但绝对是一篇理解Android
7月8日 上午 8:35
其他

Android hide api反射方案合集

限制绕过方案》https://lovesykun.cn/archives/android-hidden-api-bypass.html最后推荐一下我做的网站,玩Android:
7月5日 上午 8:35
其他

OpenHarmony源码系列:如何触发UI刷新?

本文作者作者:Pika链接:https://juejin.cn/post/7349722583158521882本文由作者授权发布。注意鸿蒙系统一直在更新,源码可能会有变更,但是核心体系结构变化不会太大,依旧可以帮助大家建立对鸿蒙源码体系的认知。OpenHarmony源码系列:OpenHarmony源码解读系列:ArkUI
7月4日 上午 8:35
其他

2024年移动端技术探索

1引子2023年号称AI元年,AI带来了一些不是很清晰的机会,没有看到有多好的落地,对于互联网,不止技术层面没有突破,业务层面的需求也断崖式下滑,没有创新就没有需求,老业务的修修补补也带不来多少需求。以音视频行业为例,业界很有影响力的LiveVideoStack也停止了商务活动,音视频大会也不再开了。一切都在朝着萎缩的方向发展。裁员已经不是什么新闻,不是不裁了,是大家习惯了。在移动端,甚至整个互联网还能折腾什么呢?大家早已不再以造轮子为乐了,因为现在缺的不是轮子,而是从头到尾的新车子。参加北京QCon的时候郭东白大佬讲了一个玩笑”一听到重构程序员就很兴奋,有饭吃了“,随着市场的饱和,重构也没有那么必要。2024马上就要过半了,本文试着总结大家前半年做的事情,探索出移动端目前还可以支持的点以及未来”比较“有前途的方向。2行业背景这一章我们从大厂和行业大会两方面的信息分析2024年移动端的诉求点。大厂从各个企业对外输出的文章和分享,整理了下面几个公司的输出成果。阿里、支付宝阿里的输出主要以思维、方法论、推荐书籍、智联、实践为主。以一文带你揭秘淘宝终端技术
7月3日 上午 8:36
其他

Android 大话binder通信

用心坚持输出易读、有趣、有深度、高质量、体系化的技术文章。1本文摘要用故事的方式把binder通信的整个过程都描述出来,binder通信都经历了哪些节点,在这些节点上的数据有哪些变化,同时还对binder通信的关键细节进行介绍。通过本文您能对binder通信整体和细节都有一个全面的认识,比如startActivity方法到底都经历了哪些过程。(文章基于Android13代码分析)下面是我以前写的binder通信的几篇文章,欢迎大家取阅:通熟易懂分析binder:1.binder准备工作通熟易懂的分析binder--2.
7月2日 上午 8:36
其他

Android Resource那些事,看这篇就行啦~

的方式,提供一个较清晰的脉络,以供更好的读懂应用层源码设计,关于更细节的原生实现,并不是本篇所关注的。所谓一眼入森,而不在林,正是如此。现在让我们反推上去:原来我们每次调用
7月1日 上午 8:35
其他

AGP 8.0 路由框架新思路

,包含详尽的知识体系、好用的工具,还有本公众号文章合集,欢迎体验和收藏!推荐阅读:大图预览追求极致,对PhotoView进行一波优化OpenHarmony源码系列:鸿蒙页面背后的机制,打通
6月28日 上午 8:35
其他

大图预览追求极致,对PhotoView进行一波优化

本文作者作者:dafay链接:https://www.dafaycoding.com/article/android-basic-zoomimageview本文由作者授权发布。1背景ZoomImageView
6月27日 上午 8:35
其他

OpenHarmony源码系列: 鸿蒙页面背后的机制,打通 JS View 与C++世界

本文作者作者:Pika链接:https://juejin.cn/post/7347221041569218611本文由作者授权发布。注意鸿蒙系统一直在更新,源码可能会有变更,但是核心体系结构变化不会太大,依旧可以帮助大家建立对鸿蒙源码体系的认知。引言本篇是ArkUI
6月26日 上午 8:35
其他

优雅实现网络请求:协程+Flow+Retrofit+OkHttp

在Android开发中,网络请求是一个很常见的任务。随着Kotlin协程和Flow的流行,我们有了新的工具来优雅地处理网络请求。结合Retrofit和OkHttp,我们可以构建一个强大的、易于理解和维护的网络请求框架。1Kotlin协程与FlowKotlin协程是Kotlin提供的一种轻量级线程管理方式。它可以让我们用同步的方式写异步代码,使得代码更加简洁、易读。Flow是Kotlin提供的一种数据流处理工具,用于处理异步、时间相关的操作。它是一种Cold
6月25日 上午 8:35
其他

Android 7 种方式实现自定义ViewGroup的滚动与惯性滚动

}}效果也是如上图所示,子布局跟随手指滚动。这么多方式都能实现滚动,那么如果我想做惯性的滚动是不是可以用同样的这么多方式实现呢?又通过哪些方式可以实现惯性的滚动呢?让我们带着问题往下看。5通过
6月24日 上午 8:35
其他

Android ServiceManager和它的兄弟们

(这里基于的前提是调用getService方法的进程与servicemanager不是同一进程)。ServiceManager提供了registerForNotifications方法,binder
6月20日 上午 8:35