排序
Android架构灵魂组件Lifecycle的生命周期机制详解
前言:写作就跟生活一样,是一趟发现之旅。 前言 在早期 Andorid 架构中,生命周期的事件监听和状态查询,我们需要自定义一套提供侦测功能的 Activity/Fragment 基类及回调接口,在 Activity/Fr...
开发一款游戏App上线Googleplay(花了2个月业余时间)
欢迎关 Android茶话会 回 pdf 取阿里&字节经典面试题、Android、算法、Java等系列武功秘籍 在技术学习、个人成长的道路上,让我们一起前进! 背景 作为一个Android开发还是希望能上线一...
05.Handler源码之消息队列的遍历
前几篇我们学习了Handler的创建,Looper和MessageQueue是组合关系,Handler持有Looper和MessageQueue的引用。还有消息的创建与发送,消息持有Handler的引用,通过Handler发送到MessageQueue。同...
【开源库剖析】Shadow v2.3.0 源码解析
一、框架介绍 Shadow是19年腾讯开源的自研Android插件化框架,经过线上亿级用户量检验。 Shadow不仅开源分享了插件技术的关键代码,还完整的分享了上线部署所需要的所有设计。 项目地址:github...
如果启动一个未注册的Activity
简述 要启动未注册的Activity主要是要逃避AMS的检测,思路是,检测前要启动的Activity换成注册的,检测通过了,再在启动前换回来。这里主要是两个点。检测前,hookAMS。检测后hookHandler。hook...
Flutter中如何获取Text截断后的字符串
我正在参加「掘金·启航计划」。 问题 当Text文本设置maxLins属性将文本强制截断之后,Text的承载字符串是截断前?还是截断后的呢?我们该如何获取截断后的字符串呢? 答案是:截断前,截断字符...
CheckBox/RadioButton切换动效实现
背景 因为项目需求要为CheckBox和RadioButton添加切换动画,以达到个性化的UI组件效果,具体来说项目需要的切换动画为复杂动画,即无法通过简单的平移,旋转,缩放等基本图形变换来模拟。经...
Android平台下的cpu调频、线程绑核、cpu时间片分配控制实践
背景 为了进一步优化APP性能,最近针对如何提高应用对CPU的资源使用、以及在多线程环境下如何提高关键线程的执行优先级做了技术调研。本文是对技术调研过程的阶段性总结,将分别介绍普通应用如...
给Android工程师入门Flutter手册(二)
前言 这是笔者作为一个Android工程师入门Flutter的学习笔记,笔者不想通过一种循规蹈矩的方式来学习:先学Dart语言,然后学习Flutter的基本使用,再到实践应用这样的步骤。这样的方式有点无趣且...
现代化 Android 开发:数据类
本文为现代化 Android 开发系列文章第二篇。 完整目录为: 现代化 Android 开发:基础架构 现代化 Android 开发:数据类(本文) 现代化 Android 开发:逻辑层 现代化 Android 开发:组件化与模块...
末日终极坐标安卓辅助工具
前言 本文档只介绍工具的使用方法,有时间再写一篇介绍一下实现细节。 整体的话就是借助这个工具方便记录当前坐标,可以实现游戏资源不浪费。阅读本文档前提是大家是《末日血战》游戏玩家。 工...
事件通知-eventfd的简单使用
事件通知-eventfd的简单使用 eventfd是linux提供的用于事件通知的一种文件描述符,可以用来当作wait、notify的一种工具,用其可以轻易实现线程间或进程间的信号共享。eventfd维护了一个uint64_t...
JNI 编程上手指南之 HelloWorld 实战
JNI 编程是高级/专家 Android 开发的必备技能之一,接下来我们就一步一步掌握 JNI 编程的方方面面。 本文示例代码可以在 github.com/yuandaimaah… 这里下载到 1. 基本概念 JNI(Java Native Int...
移动端实战开发:探索React Native的技术深度
移动应用开发在当今的技术领域中扮演着重要的角色。React Native作为一种流行的开发框架,允许开发人员使用JavaScript来构建原生移动应用程序。本文将带您深入了解React Native,并通过一个实例...
ViewModel旋转屏幕仍然保持存在原理
目录 Activity创建ViewModel Activity重建ViewModel保持存在的实现 relaunch之后新的Activity获取之前的viewModel relaunch过程中保存旧Activity的viewModel reference 2022/08/21 Activity创建...
Filt】KSP 初探之自动生成 Hilt MultiBindings
Filt Filt 是 Fill+Hilt 的意思,用于简化在使用 Hilt 时注入接口所有的实现类的操作。 我先介绍下需求背景,首先需求上会对某一类事物与行为做一些统一的抽象,这些抽象被放在了一个单独的模块...
Activity启动模式呕心沥血扒开现象看本质版本
默认规则 在不同的task中打开相同的activity,Activity会被创建多个实例,并放到不同的task当中。 SingleTask 主要是唯一性,保证只有一个task里又这个Acitivty,也保证了task里最多只有一个这...
一看就懂的OpenGL ES教程——走进3D的世界之坐标系统(上篇)
我正在参加「掘金·启航计划」 通过阅读本文,你将获得以下收获: 1.矩阵变换拓展到3D相关知识 2.OpenGL的坐标系统 3.OpenGL坐标系统之间的转换 4.了解投影变换 上篇回顾 上篇一看就懂的OpenGL ...
[Gradle] 编译任意地方的文件
[Gradle] 编译任意地方的文件 我正在参加「掘金·启航计划」 本人所有文件禁止任何形式的转载 gradle 对于参与编译的文件的位置没有限制,不必发布到maven repository 或者编译成aar、jar。 Sou...
在 Compose 中实现缓存列表数据提升用户体验(Stale-while-revalidate)
前言 最近在利用业余时间使用 Compose 实现一个 Github APP 客户端。 对标的是 GSY 大佬使用多种不同语言框架实现的 Github APP。 在实现过程中发现一些问题,因为这个客户端的数据几乎全部来自...