排序
现成的MVI框架——mavericks
前言 Android架构演变:MVC、MVP、MVVM、MVI。 新技术层出不穷,架构一天一个样。像我这种懒惰又不自律的人,能学习上最新的技术,就已经佩服我自己了。 所以造轮子是不可能造轮子的,这辈子都...
同事问我为什么电脑屏幕上会有那么多球在飘
记得以前用的Windows电脑里面,有一个屏保程序就是在屏幕上出现很多飘来飘去的球,当球碰到电脑边缘的时候,会反弹到相反的方向,然后最近就琢磨着能不能使用Compose DeskTop也实现一个这样的效...
Android 14 快速适配要点
随着 Google I/O 2023 发布的 Android beta2 ,预计 Android 14 将在2023年第三季度发布,目前看整体需要适配的内容已经趋向稳定,那就根据官方文档简单做个适配要点总结吧。 如何做到最优雅的...
ChatGPT的前世今生,还不了解下?
欢迎关注 「Android茶话会」 回 「学习之路」 取Android技术路线经典电子书 回 「pdf」 取阿里&字节经典面试题、Android、算法、Java等系列武功秘籍。 回 「天涯」 取天涯论坛200+精彩...
太库辣!Netflix Android 客户端开源库大公开
我正在参加「掘金·启航计划」 由于前段时间看完了《不拘一格 网飞的自由与责任工作法》这本书,对 Netlifx 这家公司产生了巨大的好感。今天突然好奇,这家酷酷的硅谷公司所做的 Android 客户端...
Jetpack Compose(第四趴)——Compose中的基本布局(上)
Compose中的基本布局 1、简介 Compose是一个界面工具包,可让您轻松实现应用的设计。您只需描述自己想要的界面外观,Compose会负责屏幕上进行绘制。 1.1、学习内容 您将学习: 如何借助修饰符扩...
Android 14 又来了?别扶!抬起我来吧!
大家好,好久不见,从去年底写完年终总结之后就再也没有更新过文章,之前最多也就间隔一两个月时间,但这回间隔时间确实有点长,基本快半年了!也没有别的原因,就是工作太忙了。。。好了,废话...
ExoPlayer客户端解密m3u8音频/视频
项目中有一个需求,播放加密的视频和音频,想到的方案有服务端鉴权和客户端本地解密两种思路。服务端可通过短时效的Token来鉴权,避免视频/音频被盗播的问题,考虑到后端的人力紧张,后来选择了...
末日终极坐标安卓辅助工具
前言 本文档只介绍工具的使用方法,有时间再写一篇介绍一下实现细节。 整体的话就是借助这个工具方便记录当前坐标,可以实现游戏资源不浪费。阅读本文档前提是大家是《末日血战》游戏玩家。 工...
ChatGPT也能画图?教你一键生成时序图、类图、流程图、状态图以及用例图
作为一个文本模型,ChatGPT是无法直接输出图像的,除非借助其他的第三方插件或库。 但是,得益于前期接受了海量不同格式文本的预训练,ChatGPT可以轻松生成各种类型的结构化输出,例如表格,代...
uiautomator2 源码阅读(四):主应用 – Service
本节涉及部分:([○] 本节覆盖,[√] 为前面已覆盖,[×] 为确认废弃) app/src/ ├── androidTest │ └── java │ └── com │ └── github │ └── uiautomator ...
Compose + Fragment是一个不错的选择
Compose很好用,但是在真正应用到项目时,我们还需要解决一些问题。 我要开发一个这样的页面,外层用Bottom Navigation Activity,每个tab对应的一个fragment,页面内容我用Compose来填充,不使...
MediaCodec对HDR视频进行转码压缩
视频转码三方库 在研究端上视频转码压缩时,发现网上大部分的Demo或转码库是基于FFmpeg的,只有少部分的是采用Android的MediaCodec Api进行硬件转码的。 LightCompressor LiTr android-transcod...
Android-apk动态加载研究
前言 近期工作中遇到两个问题。 换应用皮肤 加载插件apk中的view Android 换肤技术一文中已经详细说明了如何进行应用换肤。而加载插件apk中的view,利用前文提到的换肤技术,居然无法实现!仔细...
记一次个人项目迁移到 AGP 8.0+ & Gradle 8.0+ 的全过程
前言 历经几个月的拖延,我终于在今天下午决定将自己的项目从 AGP 7.1.2 & Gradle 7.3.3 迁移至 AGP 8.0+ & Gradle 8.0+。整体过程还算顺利,但也遇到了一点问题,结果也比较有意思。本...
AndroidSDK开发新人总结!
AS的外层素材可以覆盖掉内层素材,可以理解为英语语法中的“就近原则”,当我们需要替换aar包中的素材,有时候为了方便起见,不想重新打aar,可以考虑在外层同名文件夹添加同名素材资源,会覆盖...
浅析一下:kotlin委托背后的实现机制
大家好,kotlin的属性委托、类委托、lazy等委托在日常的开发中,给我们提供了很大的帮助,我之前的文章也是有实战过几种委托。不过对比委托实现的背后机制一直都没有分析过,所以本篇文章主要是...
Android中Room的使用
Room 持久性库在 SQLite 上提供了一个抽象层,以便在充分利用 SQLite 的强大功能的同时,能够流畅地访问数据库。具体来说,Room 具有以下优势: 针对 SQL 查询的编译时验证。 可最大限度减少重...
心遇 Android 启动优化实践:将启动时间降低 50%
图片来自:unsplash.com/photos/_2mL… 本文作者:ZZG 前言 作为 APP 体验的重要环节,启动速度是各个技术团队关注的重点。几百毫秒启动耗时的增减都会影响用户的体验,并直接反应在留存上。心...
基于Media3的本地音频播放器初体验
最近想用Media3+Exoplayer写一个音频播放器练练手,网上翻了翻资料,相关内容比较少,有也基本是播放个音频没有后台服务的,不过最后还是整出来了,目前只实现了播放本地音乐 第一步就是添加依...