
资源操作
文章平均质量分 84
锐湃
这个作者很懒,什么都没留下…
展开
-
Protobuf 与 JSON 在 Android 平台上的比较
在 Android 开发中,数据通信是一个重要的部分。选择合适的数据传输格式可以显著影响应用的性能和效率。本文将深入比较 Protobuf 和 JSON 两种常见的数据通信协议,分析它们在 Android 上的优缺点。转载 2024-11-21 20:46:34 · 178 阅读 · 0 评论 -
Jetpack Compose Material 实现自适应布局稳定版本已发布
自适应布局是指应用程序 UI 能够根据设备的屏幕尺寸、方向和窗口状态,自动调整其显示内容和布局方式。对于手机和大屏设备(如平板和桌面设备),用户界面应具备灵活性,以确保在不同窗口大小下的用户体验一致性。Jetpack Compose 的 Material 自适应布局 API 提供了多个预定义的布局和工具,帮助开发者轻松应对这一挑战。尽管默认的自适应行为足够满足大部分场景的需求,但有时我们希望进一步自定义。例如,通过自定义,你可以手动处理设备的返回操作,甚至在不同屏幕大小时对返回行为做不同处理。) {转载 2024-10-30 17:49:51 · 263 阅读 · 0 评论 -
Jetpack WindowManager 1.1 稳定版
系统会在屏幕上并排或上下显示托管应用的 Activity 和其他应用的嵌入 Activity,就像在单一应用 Activity 嵌入中一样。托管应用会按照实现单一应用 Activity 嵌入的相同方式实现跨应用 Activity 嵌入,但出于安全原因,被嵌入的应用必须同意并选择加入。如果您想优化您的应用在不同设备类型上的用户体验,Jetpack WindowManager 便是您应该学习的最重要的库之一。自 Android 13 (API 级别 33) 起,应用可以嵌入来自其他应用的 Activity。转载 2024-10-30 17:47:57 · 60 阅读 · 0 评论 -
[Android翻译]解除对WindowManager的束缚
发布时间:2021年8月20日 - 6分钟阅读为可折叠设备和大屏幕设备优化应用程序Android的屏幕尺寸正在迅速变化,随着平板电脑和可折叠设备的不断普及,了解你的应用程序的窗口尺寸和状态对于开发一个响应式的UI至关重要。现在处于测试阶段,它是一个库和API,提供类似于Android框架的功能,包括对响应式UI的支持、检测屏幕变化的回调适配器以及窗口测试API。但Jetpack WindowManager还提供了对新型设备的支持,如可折叠设备和Chrome OS等窗口环境。转载 2024-10-30 17:39:14 · 42 阅读 · 0 评论 -
布局背景区域扩展到状态栏
布局背景区域扩展到状态栏原创 2024-10-16 19:52:48 · 127 阅读 · 0 评论 -
Jetpack PDF库:解锁Android应用中的PDF功能
在 Android 开发中,加载 PDF 文件是一个比较常见的需求,但就是这么一个比较常见的功能,原生并没有提供一个比较好的方案,而隔壁 IOS 中实现却是很方便的。。。下面是当前在 Android 应用浏览 PDF 的几种方式:在之前大部分选择的还是第二种和第三种方案来实现 PDF 文件的预览,但现在,大家又多了一种额外的选择!转载 2024-10-08 11:21:14 · 385 阅读 · 0 评论 -
你对插件化有什么了解
本文是一篇入门插件化的文章,主要回答了插件化是什么,有什么难点,又是怎么解决的,其中没有涉及到很多代码,非常适合入门。文中很多的篇幅来自腾讯Bugly团队的,感兴趣可以阅读原文:《Android插件化技术-原理篇》最近团队中的很多代码很多涉及了插件化,之后结合具体的插件化代码和大伙分析一下流程。参考文章:《Android插件化技术-原理篇》《聊聊陈旧的插件化》《【Android 修炼手册】常用技术篇 -- Android 插件化解析》面试官:你对插件化有什么了解?转载 2024-10-08 11:15:10 · 204 阅读 · 0 评论 -
android 各国语言对应的缩写
(加拿大) en_GB 英文 (英国) en_IE。加泰罗尼亚文 (西班牙) ca_ES_EURO。西班牙文(西班牙):values-es-rES。意大利文(意大利):values-it-rIT。葡萄牙文(葡萄牙):values-pt-rPT。英文(澳大利亚):values-en-rAU。西班牙文(美国):values-es-rUS。意大利文(瑞士):values-it-rCH。葡萄牙文(巴西):values-pt-rBR。西班牙文 (西班牙) es_ES_EURO。转载 2024-09-30 17:32:33 · 979 阅读 · 0 评论 -
你可能不知道的Android Context动态升降级与Context权限范围限定
Android 的 Context 大家肯定是不陌生了,它是安卓开发中不可或缺的概念,它允许我们访问系统资源,管理应用程序的生命周期,并与系统交互。实际开发中我们在使用 Toast,使用 Dialog,启动 Activity 与 Service ,加载资源,操作数据库,获取 App 相关的文件路径,创建 View 等操作时,都会涉及到一个 Context 引用。转载 2024-09-02 11:01:46 · 609 阅读 · 0 评论 -
就想下载个文件到SD卡,怎就这么难?快把代码拿走吧
本文简单的介绍了 Android 系统权限收紧的介绍,并且对于如何写入文件方面做了几种适配案的探讨。再次强调,本文只针对文件的写入,对于文件的读取是不适用的,那是另外的事情,对于多媒体图片视频等文件的写入和读取又是另另外的事了,万不可混为一谈。对于文件的写入其实除了以上的方案还可以用 MANAGE_DOCUMENTS 的权限,但是但是个人强烈不推荐使用 android.permission.MANAGE_DOCUMENTS 这样的危险权限方案。转载 2024-08-13 10:10:58 · 187 阅读 · 0 评论 -
别滥用FileProvider了,Android中FileProvider的各种场景应用
有部分同学只要是上传或者下载,只要用到了文件,不管三七二十一写个 FileProvider 再说。不是每一种情况都需要使用 FileProvider 的,啥?你问行不行?有没有毛病?这... 写了确实可以,没毛病!但是这没有必要啊。如果不需要FileProvider就不需要定义啊,如果定义了重复的 FileProvider,还会导致清单文件合并失败,需要处理冲突,从而引出又一个问题,解决 FileProvider 的冲突问题,当然这不是本文的重点,网上也有解决方案。转载 2024-08-08 14:37:33 · 1880 阅读 · 0 评论 -
Android 8.0 App内切换语言不生效的问题记录 resources.updateConfiguration
更该语言之后调用方法更改APP的更改语言配置的方法,该方法是全局变化,然后再发送广告,每个Activity都动态注册了广告,监听到语言更换的广播之后,调用recreate方法,则每个存活的Activity都会重启一下更换成了设置的语言。之前的设置语言代码,都是保存设置的语言在手机本地,在application启动时读取保存的语言设置进行设置,一旦手动更改设置了,后续再去获取语言都是获取到设置了之后的,所以需要在启动程序application初始化中,先获取系统语言保存后再把app设置为显示其他语言。转载 2024-07-26 15:27:57 · 728 阅读 · 0 评论 -
聊聊陈旧的插件化: 类加载 &资源加载
之前写过一篇给自己填了坑,聊聊陈旧的插件化,还有小伙伴催更,连夜干了一篇。话不多说开始。先大概了解下整个Apk的构成。AndroidManifest.xml:用于描述APK包的组件和权限信息。classes.dex:这是一个包含Java字节码文件的文件。resources.arsc:会把资源打包编译成该格式,被为每份资源分配一个ID。。lib 目录:这个目录中包含了应用程序的所有本地代码库文件。(so文件)assets 目录:文件和资源,该目录下文件不会分配资源ID。转载 2024-06-06 16:18:54 · 127 阅读 · 0 评论 -
Serializable和Parcelable序列化权威指南
本文围绕与Parcelable展开了一系列高级疑难的面试问题,并提供了详细解答。了解并掌握这两种序列化方式的原理、优劣势以及适用场景对于Android开发者来说至关重要。必读!Android序列化权威面试指南,资深面试者的秘诀。转载 2024-03-06 10:15:38 · 114 阅读 · 0 评论 -
探索Android多屏互动技术:构建无缝交互体验
在当前移动设备和智能家居应用中,多屏互动技术已经成为一个备受关注的话题。随着移动设备(如智能手机、平板电脑)和智能家居设备的普及,用户对于多屏协同工作、娱乐和生活体验需求日益增加,多屏互动技术也得到了广泛的关注和应用。多屏互动技术旨在实现不同设备之间的无缝连接和互动,让用户可以在不同屏幕上共享内容、控制设备、实现协同工作等功能。比如,用户可以在手机上浏览一段视频,并将其无线投射到电视上进行观看;用户可以在平板电脑上编辑文档,并将其实时同步到笔记本电脑上进行进一步处理;转载 2024-02-29 19:16:28 · 1077 阅读 · 0 评论 -
colorPrimary、colorPrimaryDark、colorAccent的区别
版权声明:本文为优快云博主「小鱼儿211」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.youkuaiyun.com/l707941510/article/details/93772581。Android开发中,我们可以通过控制属性的值,改变界面的颜色来自定义界面主题。2、在AndroidManifest,xml使用该主题,给出文件的部分截图。1、在style.xml文件中,自定义主题AppTheme.White。转载 2024-01-16 17:43:36 · 94 阅读 · 0 评论 -
ip地址与整数的相互转化
经常有同学私信或留言询问相关问题,V号bitcarmanlee。github上star的同学,在我能力与时间允许范围内,尽可能帮大家解答相关问题,一起进步。转载 2023-11-16 14:56:39 · 649 阅读 · 0 评论 -
【玩转Android自动化】布局节点速查器
这样我们的元素检测小工具就算全部写完了,以后想看某个页面查看节点信息就可以直接打开我们的APP,开启无障碍服务后,启动悬浮窗,打开指定APP某个页面,点一下悬浮窗就可以在控制台看到美化后的具体的节点信息了。后续如何有需求我们可以把打印的节点信息直接在APP中查看,但是看出节点这种事情还是在PC端大屏上看着才舒服,所以暂时就不展示在手机端喽刀已磨好,接下来就开始在微信中实操吧感兴趣的可以下载demo体验一下,在阅读源码过程遇到任何问题欢迎提Issues,如果对你有帮助,希望动动你的发财小手。转载 2023-09-11 10:44:41 · 1606 阅读 · 0 评论 -
【玩转Android自动化】开篇序言
对其中的僵尸好友检测的方法比较感兴趣,我印象中一般检测都是通过拉群的方式做的,大佬给出了假转账的检测方式,让我眼前一亮,精心研读了大佬的文章,确定这种方案确实是可行的,又在网上搜了一下微信僵尸好友检测都有哪些方法,发现确实有假转账的说法,而且这种方式已经提出来很久了,哎,只能说自己孤陋寡闻了。服务实现自动化的可玩性太强了,太TM好玩了,不过也不能只顾写代码,把自己做的过程中遇到的问题记录一下,以文章的方式分享分享,当做其他小伙伴的垫脚石也是不错的,就整理了一下也算是对自己代码的回顾吧。转载 2023-09-11 10:36:14 · 111 阅读 · 1 评论 -
14张图带你了解Android14中的酷炫的功能
在近期的几次更新中,Android系统经历了重要的升级。Android 12通过Material UI改变了外观,使界面更加优化。随后,Android 13在Android 12的基础上进一步提升了用户体验,使系统更加流畅。现在,尽管Android 14看起来是一个小幅升级,但其中蕴藏了许多优化,全面提升了Android系统。本文将介绍Android 14的14个最重要特性,从微小的改进到巧妙的技巧,都让日常手机使用更加顺畅,让我们一起深入了解Android 14的亮点所在。转载 2023-08-28 09:55:06 · 447 阅读 · 0 评论 -
Android 13 媒体权限适配指南
此外,从 PickVisualMedia 和 PickMultipleVisualMedia 的源码可以看到,Android 13 内置的图片选择器对应的是 MediaStore.ACTION_PICK_IMAGES 这个新增的 Intent,而如果当前设备不支持媒体选择器功能的话,就会改为通过调用 Intent.ACTION_OPEN_DOCUMENT 来选择媒体资源,这种情况下 PickMultipleVisualMedia 设定的数量上限自然也就失效了。Android 13。转载 2023-08-17 10:20:54 · 3900 阅读 · 0 评论 -
Android10/11/12/13 Uri与真实路径转换--全适配
发出一个action为Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION的Intent,引导用户手动授权。原文链接:https://blog.youkuaiyun.com/houdada_/article/details/107587762。需要增加:Manifest.permission.MANAGE_EXTERNAL_STORAGE 权限。在AndroidManifest.xml中声明MANAGE_EXTERNAL_STORAGE权限。转载 2023-07-31 19:45:01 · 1808 阅读 · 0 评论 -
android player通过rtp协议接收h264视频数据播放
一、接收数据rtp包的组包与拆包已经由rtp 库完成,这里可以从rtp库的回调直接接收到原始发送的数据。我们可以看到rtp payload指定的类型是96,96代表的就是h264视频数据类型。这里监听的是偶数端口40018,奇数端口留给rtcp使用。我们接收到的数据是nalu分片数据,我们还需要把分片数据组成完整的nalu数据。转载 2023-06-06 18:35:21 · 804 阅读 · 0 评论 -
录音功能实现实例(MediaRecorder、AudioRecord)
Android提供了两个API用于录音的实现:MediaRecorder 和 AudioRecord,各有优劣。音频编码可以根据自己实际需要自己设定,文件名防止重复,使用了日期_时分秒的结构,audioSaveDir 是。语音数据,如果保存成音频文件,是不能够被播放器播放的,所以必须先写代码实现数据编码以及压缩。总结:MediaRecorder 实现录音还是比较简单的,只是不能暂停。已经集成了录音、编码、压缩等,支持少量的录音音频格式,大概有.优点:语音的实时处理,可以用代码实现各种音频的封装。转载 2023-03-21 17:49:27 · 865 阅读 · 0 评论 -
MediaRecorder实现录音的功能
MediaRecorder实现录音的功能转载 2023-03-21 17:39:34 · 182 阅读 · 0 评论 -
2023年插件化学习,从Activity开始
2使用 DexClassLoader 加载插件的 Apk。通过代理的 Activity 去执行插件中的 Activity,加载对应的生命周期。通过反射调用 AssetManager 的 addAssetPath 来加载插件中的资源。7本文主要是根据我自身实际投产的 插件组件化 实践,分享一些动态加载 SDK 插件 时需要考虑的问题。插件有风险,使用须谨慎!参考链接沐小晨曦VirtualApk 插件化2023年插件化学习,从Activity开始。转载 2023-03-08 10:05:49 · 329 阅读 · 0 评论 -
基于 Android 系统方案适配 Night Mode 后,老板要再加一套皮肤?
上面只对background属性进行了处理,其他需要进行换肤的属性也是同样的处理逻辑。如果是自定义的控件,可以在初始化时调用方法先获取资源 id,再通过context去获取对应资源,而不是使用类似方法直接获取资源对象,这样可以确保换肤成功。而第三方控件也可通过background属性同样的处理逻辑进行适配。这个方案在原本使用系统方式适配暗黑主题的基础上,通过拦截Resources相关获取资源的方法,替换换肤后的资源 id,以达到换肤的效果。针对 XML 布局换肤不成功的问题,复制。转载 2023-02-10 11:26:40 · 428 阅读 · 0 评论 -
插件化?好像也就那么回事
想必大家都知道,在 Android 系统中,应用是以 Apk 的形式存在的,应用都需要安装才能使用。但实际上Android 系统安装应用的方式相当简单,其实就是把应用 Apk 拷贝到系统不同的目录下、然后把 so 解压出来而已。:系统应用。:系统应用。/data/app:用户应用。:Java 代码字节码。res:资源文件。lib:so 文件。assets:静态资产文件。:清单文件。转载 2023-01-12 10:40:39 · 243 阅读 · 0 评论 -
插件化换肤原理(2)—— 实现思路、主流框架分析
本篇博客将以上一篇博客为基础,分享换肤功能的实现思路以及对主流换肤框架的源码简单分析。插件化换肤的整体思路非常简单,对 View 的创建流程、资源文件获取熟悉后,找到合适的切入点即可,Android-skin-support 换肤框架写的非常优秀,作者很多地方使用了弱应用避免内存泄漏,合理的对象缓存等等,博客中只对重点思路部分进行了分析,框架内还有很多代码设计值得学习(换肤策略等等)。作者:孙先森Blog链接:https://juejin.cn/post/7154205345462616077。转载 2022-12-21 10:42:55 · 306 阅读 · 0 评论 -
Android图形系统(三)系统篇:当我们点击“微信”这个应用后,它是怎么在屏幕上显示出来的
本文把Android图形子系统分为两个部分:静态部分和动态部分在静态部分中,硬件驱动和Google组件库为应用提供了绘图的能力在动态部分中,介绍了VSync信号是如何把系统打理的井井有条的,着重分析了各个进程是如何请求和处理VSync信号当我们点击“微信”这个应用后,它是怎么在屏幕上显示出来的?•Launcher进程拉起微信的默认启动页:WeChatSplashActivity•。转载 2022-11-10 10:16:25 · 2980 阅读 · 2 评论 -
全局替换字体的 4 种方式
最后回顾一下我们讲的重点知识:1、通过遍历 ViewTree,全局替换字体,这种方式每次都需要递归遍历,有性能问题。2、通过 LayoutInflater 设置自定义 Factory 全局替换字体,效率高。3、通过配置应用主题全局替换默认字体,简单高效。4、通过反射全局替换默认字体,相对于 3,性能会差点,使用步骤也相对复杂。5、我在项目实践过程中的一个选择。Android 全局替换字体的 4 种方式。转载 2022-10-29 13:57:50 · 1108 阅读 · 0 评论 -
换肤方案大比拼!Demo 送上
修改项目中已有的主题文件,定义我们的皮肤资源,因为主题是可以继承的,所以我们直接继承,然后修改我们需要自定义的即可,如下面的Theme.Style1转载 2022-10-21 10:29:31 · 164 阅读 · 0 评论 -
别滥用FileProvider了,Android中FileProvider的各种场景应用
打印Uri:content://com.guadou.kt_demo.fileprovider/myroot/storage/emulated/0/Android/data/com.guadou.kt_demo/cache/pos/naixiao-1122.jpg。查询了目前市场上的主流App,微信,支付宝,闲鱼,美团,等App,例如在保存文件的时候都没有存在自己的沙盒中了,都是默认在DCIM或Pictures中,并存入 MediaStore 保存到图库中。代码的注释很详细,大家可以参考参考。转载 2022-10-13 11:32:01 · 10204 阅读 · 0 评论 -
17个XML布局小技巧
如上,本文一共介绍了17个在日常编写xml的过程中对提升效率和提升性能的属性。转载 2022-10-08 15:08:42 · 442 阅读 · 0 评论 -
XML中的字体(27) font ttf
文级别26)引入了一项新功能,即XML中的字体,它允许您将字体用作资源。您可以在font文件res/font/夹中添加文件以将字体捆绑为资源。这些字体在您的R文件中编译,并在Android Studio中自动提供。您可以借助新资源类型访问字体资源font。例如,要访问字体资源,请使用@font/myfont或R.font.myfont。要在运行Android 4.1(API级别16)及更高版本的设备上使用字体功能,请使用支持库26.有关使用支持库的更多信息,请参阅 使用支持库部分。转载 2022-10-07 13:39:02 · 597 阅读 · 0 评论 -
字体系列 (三):Xml中的字体 font ttf
Google 在 Android Support Library 26 引入了 Xml 中设置字体这项新功能,它可以让你将字体当成资源去使用,你可以在 res/font/ 文件夹中添加 font 文件,将字体捆绑为资源。复制代码注意:要使用 Xml 字体功能,需引入 Android Support Library 26 及更高版本且要在 Android 4.1 及更高版本的设备回顾下本篇文章我们讲的一些重点内容:1、将字体放在 res 的 font 目录下,这样我们就可以在 Xml 中使用字体了。转载 2022-09-07 13:43:07 · 2656 阅读 · 0 评论 -
字体系列 (二):Typeface完全解析
在本系列的上一篇文章中,我们介绍了关于 Android 字体的一些基础知识,还没有看过上一篇文章的朋友,建议先去阅读Android字体系列 (一):Android字体基础,你会发现,我们设置的那三个属性最终都会去构建一个 Typeface 对象,今天我们就好好的来讲讲它注意:本文所展示的系统源码都是基于Android-30 ,并提取核心部分进行分析Typeface 负责 Android 字体的加载以及对上层提供相关字体 API 的调用。转载 2022-09-07 13:33:38 · 2331 阅读 · 0 评论 -
谁动了我的内存,揭秘 OOM 崩溃下降 90% 的秘密
不知道小伙伴们有没有经历过,相同的优化方案,A 应用上线之后,崩溃率下降很多,但是 B 应用上线只有一点点收益,每个优化方案,在不同的 App 上所得到的优化效果未必一样,因为每个 App 在不同的国家和地区面对的用户群体不一样,因此机型也都不一样,所以我们需要了解内存相关的知识点,结合线上和线下数据,对自己的 App 进行归因,对症下药,才能取得较大的收益。内存是极其稀缺的资源,不合理的使用会导致可用内存越来越少,可能会引发卡顿、ANR、OOM 崩溃、Native 崩溃等等,严重影响用户的体验。转载 2022-08-24 14:55:43 · 206 阅读 · 0 评论 -
Notification(状态栏通知)详解
本节带来的是Android中用于在状态栏显示通知信息的控件Notification,相信大部分学Android都对他都很熟悉,而网上很多关于Notification的使用教程都是基于2.x的,而现在普遍的Android设备基本都在4.x以上,甚至是5.0以上的都有;(boolean)设置为ture,表示它为一个正在进行的通知。表示相应的PendingIntent已经存在,则取消前者,然后创建新的PendingIntent,这个有利于数据保持为最新的,可以用于即时通信的通信场景。...转载 2022-07-25 10:40:44 · 3045 阅读 · 0 评论 -
支持刘海屏
刘海屏是指某些设备显示屏上的一个区域延伸到显示面,这样既能为用户提供全面屏体验,又能为设备正面的重要传感器留出空间。Android在搭载Android9(API级别28)及更高版本的设备上正式支持刘海屏。请注意,设备制造商也可以选择在搭载Android8.1或更低版本的设备上支持刘海屏。本主题介绍如何实现对带刘海屏的设备的支持,包括如何处理“刘海区域”,即显示面上包含刘海的无边框矩形。...转载 2022-07-21 10:26:15 · 626 阅读 · 0 评论