资源操作
文章平均质量分 82
锐湃
这个作者很懒,什么都没留下…
展开
-
Serializable和Parcelable序列化权威指南
本文围绕与Parcelable展开了一系列高级疑难的面试问题,并提供了详细解答。了解并掌握这两种序列化方式的原理、优劣势以及适用场景对于Android开发者来说至关重要。必读!Android序列化权威面试指南,资深面试者的秘诀。转载 2024-03-06 10:15:38 · 21 阅读 · 0 评论 -
探索Android多屏互动技术:构建无缝交互体验
在当前移动设备和智能家居应用中,多屏互动技术已经成为一个备受关注的话题。随着移动设备(如智能手机、平板电脑)和智能家居设备的普及,用户对于多屏协同工作、娱乐和生活体验需求日益增加,多屏互动技术也得到了广泛的关注和应用。多屏互动技术旨在实现不同设备之间的无缝连接和互动,让用户可以在不同屏幕上共享内容、控制设备、实现协同工作等功能。比如,用户可以在手机上浏览一段视频,并将其无线投射到电视上进行观看;用户可以在平板电脑上编辑文档,并将其实时同步到笔记本电脑上进行进一步处理;转载 2024-02-29 19:16:28 · 128 阅读 · 0 评论 -
colorPrimary、colorPrimaryDark、colorAccent的区别
版权声明:本文为CSDN博主「小鱼儿211」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/l707941510/article/details/93772581。Android开发中,我们可以通过控制属性的值,改变界面的颜色来自定义界面主题。2、在AndroidManifest,xml使用该主题,给出文件的部分截图。1、在style.xml文件中,自定义主题AppTheme.White。转载 2024-01-16 17:43:36 · 22 阅读 · 0 评论 -
ip地址与整数的相互转化
经常有同学私信或留言询问相关问题,V号bitcarmanlee。github上star的同学,在我能力与时间允许范围内,尽可能帮大家解答相关问题,一起进步。转载 2023-11-16 14:56:39 · 323 阅读 · 0 评论 -
【玩转Android自动化】布局节点速查器
这样我们的元素检测小工具就算全部写完了,以后想看某个页面查看节点信息就可以直接打开我们的APP,开启无障碍服务后,启动悬浮窗,打开指定APP某个页面,点一下悬浮窗就可以在控制台看到美化后的具体的节点信息了。后续如何有需求我们可以把打印的节点信息直接在APP中查看,但是看出节点这种事情还是在PC端大屏上看着才舒服,所以暂时就不展示在手机端喽刀已磨好,接下来就开始在微信中实操吧感兴趣的可以下载demo体验一下,在阅读源码过程遇到任何问题欢迎提Issues,如果对你有帮助,希望动动你的发财小手。转载 2023-09-11 10:44:41 · 576 阅读 · 0 评论 -
【玩转Android自动化】开篇序言
对其中的僵尸好友检测的方法比较感兴趣,我印象中一般检测都是通过拉群的方式做的,大佬给出了假转账的检测方式,让我眼前一亮,精心研读了大佬的文章,确定这种方案确实是可行的,又在网上搜了一下微信僵尸好友检测都有哪些方法,发现确实有假转账的说法,而且这种方式已经提出来很久了,哎,只能说自己孤陋寡闻了。服务实现自动化的可玩性太强了,太TM好玩了,不过也不能只顾写代码,把自己做的过程中遇到的问题记录一下,以文章的方式分享分享,当做其他小伙伴的垫脚石也是不错的,就整理了一下也算是对自己代码的回顾吧。转载 2023-09-11 10:36:14 · 80 阅读 · 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 · 263 阅读 · 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 · 2409 阅读 · 0 评论 -
Android10/11/12/13 Uri与真实路径转换--全适配
发出一个action为Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION的Intent,引导用户手动授权。原文链接:https://blog.csdn.net/houdada_/article/details/107587762。需要增加:Manifest.permission.MANAGE_EXTERNAL_STORAGE 权限。在AndroidManifest.xml中声明MANAGE_EXTERNAL_STORAGE权限。转载 2023-07-31 19:45:01 · 1104 阅读 · 0 评论 -
android player通过rtp协议接收h264视频数据播放
一、接收数据rtp包的组包与拆包已经由rtp 库完成,这里可以从rtp库的回调直接接收到原始发送的数据。我们可以看到rtp payload指定的类型是96,96代表的就是h264视频数据类型。这里监听的是偶数端口40018,奇数端口留给rtcp使用。我们接收到的数据是nalu分片数据,我们还需要把分片数据组成完整的nalu数据。转载 2023-06-06 18:35:21 · 540 阅读 · 0 评论 -
录音功能实现实例(MediaRecorder、AudioRecord)
Android提供了两个API用于录音的实现:MediaRecorder 和 AudioRecord,各有优劣。音频编码可以根据自己实际需要自己设定,文件名防止重复,使用了日期_时分秒的结构,audioSaveDir 是。语音数据,如果保存成音频文件,是不能够被播放器播放的,所以必须先写代码实现数据编码以及压缩。总结:MediaRecorder 实现录音还是比较简单的,只是不能暂停。已经集成了录音、编码、压缩等,支持少量的录音音频格式,大概有.优点:语音的实时处理,可以用代码实现各种音频的封装。转载 2023-03-21 17:49:27 · 673 阅读 · 0 评论 -
MediaRecorder实现录音的功能
MediaRecorder实现录音的功能转载 2023-03-21 17:39:34 · 111 阅读 · 0 评论 -
2023年插件化学习,从Activity开始
2使用 DexClassLoader 加载插件的 Apk。通过代理的 Activity 去执行插件中的 Activity,加载对应的生命周期。通过反射调用 AssetManager 的 addAssetPath 来加载插件中的资源。7本文主要是根据我自身实际投产的 插件组件化 实践,分享一些动态加载 SDK 插件 时需要考虑的问题。插件有风险,使用须谨慎!参考链接沐小晨曦VirtualApk 插件化2023年插件化学习,从Activity开始。转载 2023-03-08 10:05:49 · 282 阅读 · 0 评论 -
基于 Android 系统方案适配 Night Mode 后,老板要再加一套皮肤?
上面只对background属性进行了处理,其他需要进行换肤的属性也是同样的处理逻辑。如果是自定义的控件,可以在初始化时调用方法先获取资源 id,再通过context去获取对应资源,而不是使用类似方法直接获取资源对象,这样可以确保换肤成功。而第三方控件也可通过background属性同样的处理逻辑进行适配。这个方案在原本使用系统方式适配暗黑主题的基础上,通过拦截Resources相关获取资源的方法,替换换肤后的资源 id,以达到换肤的效果。针对 XML 布局换肤不成功的问题,复制。转载 2023-02-10 11:26:40 · 298 阅读 · 0 评论 -
插件化?好像也就那么回事
想必大家都知道,在 Android 系统中,应用是以 Apk 的形式存在的,应用都需要安装才能使用。但实际上Android 系统安装应用的方式相当简单,其实就是把应用 Apk 拷贝到系统不同的目录下、然后把 so 解压出来而已。:系统应用。:系统应用。/data/app:用户应用。:Java 代码字节码。res:资源文件。lib:so 文件。assets:静态资产文件。:清单文件。转载 2023-01-12 10:40:39 · 194 阅读 · 0 评论 -
插件化换肤原理(2)—— 实现思路、主流框架分析
本篇博客将以上一篇博客为基础,分享换肤功能的实现思路以及对主流换肤框架的源码简单分析。插件化换肤的整体思路非常简单,对 View 的创建流程、资源文件获取熟悉后,找到合适的切入点即可,Android-skin-support 换肤框架写的非常优秀,作者很多地方使用了弱应用避免内存泄漏,合理的对象缓存等等,博客中只对重点思路部分进行了分析,框架内还有很多代码设计值得学习(换肤策略等等)。作者:孙先森Blog链接:https://juejin.cn/post/7154205345462616077。转载 2022-12-21 10:42:55 · 220 阅读 · 0 评论 -
Android图形系统(三)系统篇:当我们点击“微信”这个应用后,它是怎么在屏幕上显示出来的
本文把Android图形子系统分为两个部分:静态部分和动态部分在静态部分中,硬件驱动和Google组件库为应用提供了绘图的能力在动态部分中,介绍了VSync信号是如何把系统打理的井井有条的,着重分析了各个进程是如何请求和处理VSync信号当我们点击“微信”这个应用后,它是怎么在屏幕上显示出来的?•Launcher进程拉起微信的默认启动页:WeChatSplashActivity•。转载 2022-11-10 10:16:25 · 1688 阅读 · 2 评论 -
全局替换字体的 4 种方式
最后回顾一下我们讲的重点知识:1、通过遍历 ViewTree,全局替换字体,这种方式每次都需要递归遍历,有性能问题。2、通过 LayoutInflater 设置自定义 Factory 全局替换字体,效率高。3、通过配置应用主题全局替换默认字体,简单高效。4、通过反射全局替换默认字体,相对于 3,性能会差点,使用步骤也相对复杂。5、我在项目实践过程中的一个选择。Android 全局替换字体的 4 种方式。转载 2022-10-29 13:57:50 · 783 阅读 · 0 评论 -
换肤方案大比拼!Demo 送上
修改项目中已有的主题文件,定义我们的皮肤资源,因为主题是可以继承的,所以我们直接继承,然后修改我们需要自定义的即可,如下面的Theme.Style1转载 2022-10-21 10:29:31 · 128 阅读 · 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 · 5220 阅读 · 0 评论 -
17个XML布局小技巧
如上,本文一共介绍了17个在日常编写xml的过程中对提升效率和提升性能的属性。转载 2022-10-08 15:08:42 · 350 阅读 · 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 · 482 阅读 · 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 · 1977 阅读 · 0 评论 -
字体系列 (二):Typeface完全解析
在本系列的上一篇文章中,我们介绍了关于 Android 字体的一些基础知识,还没有看过上一篇文章的朋友,建议先去阅读Android字体系列 (一):Android字体基础,你会发现,我们设置的那三个属性最终都会去构建一个 Typeface 对象,今天我们就好好的来讲讲它注意:本文所展示的系统源码都是基于Android-30 ,并提取核心部分进行分析Typeface 负责 Android 字体的加载以及对上层提供相关字体 API 的调用。转载 2022-09-07 13:33:38 · 1925 阅读 · 0 评论 -
谁动了我的内存,揭秘 OOM 崩溃下降 90% 的秘密
不知道小伙伴们有没有经历过,相同的优化方案,A 应用上线之后,崩溃率下降很多,但是 B 应用上线只有一点点收益,每个优化方案,在不同的 App 上所得到的优化效果未必一样,因为每个 App 在不同的国家和地区面对的用户群体不一样,因此机型也都不一样,所以我们需要了解内存相关的知识点,结合线上和线下数据,对自己的 App 进行归因,对症下药,才能取得较大的收益。内存是极其稀缺的资源,不合理的使用会导致可用内存越来越少,可能会引发卡顿、ANR、OOM 崩溃、Native 崩溃等等,严重影响用户的体验。转载 2022-08-24 14:55:43 · 156 阅读 · 0 评论 -
Notification(状态栏通知)详解
本节带来的是Android中用于在状态栏显示通知信息的控件Notification,相信大部分学Android都对他都很熟悉,而网上很多关于Notification的使用教程都是基于2.x的,而现在普遍的Android设备基本都在4.x以上,甚至是5.0以上的都有;(boolean)设置为ture,表示它为一个正在进行的通知。表示相应的PendingIntent已经存在,则取消前者,然后创建新的PendingIntent,这个有利于数据保持为最新的,可以用于即时通信的通信场景。...转载 2022-07-25 10:40:44 · 2175 阅读 · 0 评论 -
支持刘海屏
刘海屏是指某些设备显示屏上的一个区域延伸到显示面,这样既能为用户提供全面屏体验,又能为设备正面的重要传感器留出空间。Android在搭载Android9(API级别28)及更高版本的设备上正式支持刘海屏。请注意,设备制造商也可以选择在搭载Android8.1或更低版本的设备上支持刘海屏。本主题介绍如何实现对带刘海屏的设备的支持,包括如何处理“刘海区域”,即显示面上包含刘海的无边框矩形。...转载 2022-07-21 10:26:15 · 386 阅读 · 0 评论 -
让一套代码完美适配各种屏幕
区别于iOS,android设备有不同的分辨率大小以及不同厂商的系统,目前市场的分辨率可以看下相关统计。可以看到主流的分辨率有10多种,当不做适配时,一套代码在不同设备上的效果偏大、偏小、截断以及留白严重,那一套代码如何完美的展示在不同的设备上,可以看下面的一些适配方案。...转载 2022-07-21 10:12:53 · 613 阅读 · 0 评论 -
根据壁纸修改App主题,它真的来了
1、前言曾经产品经理的奇思妙想,现在终于可以实现了…2、效果效果中,原本是红色壁纸对应的红色App主题,在改成绿色壁纸之后,App主题也相应的变成绿色了。模拟器演示略微小卡…3、介绍这个效果主要是使用了Material You中的动态颜色功能。3.1、什么是Material YouMaterial You也称Material3或M3,是第三代Material Design设计语言。Material You将颜色重新定义为更加个性化的体验,助力于构建出色且富有表现力的应转载 2022-05-06 10:57:20 · 1041 阅读 · 0 评论 -
Databinding+LiveData轻松实现无重启换肤
最近项目需要用到无重启动态换肤功能,本来打算用github上star最多的 Android-skin-support但仔细一看发现太复杂而且2年没维护+大量issues没解决,最终放弃经过探索,发现 Databinding+LiveData 能低成本实现无重启换肤无重启动态换肤(不需要recreate()) 无需制作皮肤包 无额外依赖(Databinding+LiveData本身几乎开发必备) 低侵入性 AppCompat和Material组件默认支持(少量属性需要额外支持或适配) 自转载 2022-04-15 16:07:59 · 204 阅读 · 0 评论 -
支持Android 12,全版本保存图片到相册方案
背景由于Google对用户隐私和系统安全做的越来越完善,应用对一些敏感信息的操作越来越难。比如最常见的共享存储空间的访问,像保存图片到相册这种常见的需求。Android 6.0 以前,应用要想保存图片到相册,只需要通过File对象打开IO流就可以保存; Android 6.0 添加了运行时权限,需要先申请存储权限才可以保存图片; Android 10 引入了分区存储,但不是强制的,可以通过清单配置android:requestLegacyExternalStorage="true"关闭分区存储;转载 2022-03-14 10:26:13 · 2705 阅读 · 3 评论 -
Android Studio 国际化插件
一键生成多国语言资源https://github.com/Airsaid/AndroidLocalizePlugin转载 2022-01-21 10:45:36 · 577 阅读 · 0 评论 -
SharedPreferences 告别了这个时代?
数据持久化需求在Android开发过程中,我们避不开持久化key-value数据需求。目前实现Android本地数据持久化有以下三种最常用的形式: 文件存储数据 SQLite数据库存储数据 使用SharedPreferences存储数据 其中,SharedPreferences(以下简称 SP) 是Android系统提供的一种轻量级的Key-Value数据存取方式,使用起来非常方便。SharedPreferences的问题在初始化 SP 的时候,..转载 2021-07-27 09:46:31 · 116 阅读 · 0 评论 -
屏幕适配插件:ScreenMatch基本使用和pad中注意事项
1背景因为Android开源,屏幕碎片化最严重的,所以app就避免不了进行各种机型适配的。screenmatch插件提供了一套解决方案。2screenmatch配置2.1screenmatch安装打开Android studio Setting/plugin,选择marketplace 在搜索框中输入screenmatch,在搜素结果中直接单击安装,等待成功即可(我是安装了几次才成功,要是有梯子打开它试试)。2.2生成配置文件右击项目找到screenmatch,如下图:单击之后转载 2021-07-07 21:03:02 · 1021 阅读 · 0 评论 -
UNICODE,GBK,UTF-8区别
一、编码历史与区别 一直对字符的各种编码方式懵懵懂懂,什么ANSI UNICODE UTF-8 GB2312 GBK DBCS UCS……是不是看的很晕,假如您细细的阅读本文你一定可以清晰的理解他们。Let's go! 很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们看到8个开关状态是好的,于是他们把这称为"字节"。 再后来,他们又做了一些可以处理这些字节的机器,机器开动了,可以用字节来组合出很多状态,状态开始变来变去。他们看到...转载 2021-05-28 23:47:09 · 213 阅读 · 0 评论 -
Span 有多强大?玩转各种文字特效
作者:徐宜生本文转自:Android 群英传Span的基础性概念分析国际惯例,官网镇楼,这是对Span最好的全局概览。https://developer.android.com/guide/topics/text/spansSpan种类Span通常按照下面两个区别进行分类,即根据Span修改Text外观或者尺寸和Span影响的Text范围来进行分类,在Android中,默认提供了20多种Span。影响Text的外观和尺寸...转载 2021-04-09 11:16:11 · 1847 阅读 · 0 评论 -
Android中获取资源的id和url方法总结
Android中获取资源的id和url方法总结获取android工程里面的各种资源的id; String型 color型 dimens型 图片类 获取Android系统里面的资源id 获取Android工程资源的Uri路径,一般是图片,res或者asset下的获取android工程里面的各种资源的id;String型<< string name="OK">> 客户端请求成功 << / string>>/.转载 2021-02-24 14:06:43 · 181 阅读 · 0 评论 -
android选择图片,通过uri获取路径
/** * 选择相册图片 */public void choosePhoto() { Intent intent = new Intent(); intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*"); intent.setAction(Intent.ACTION_PICK); startActivityForResult(intent, ALBU.转载 2021-02-09 16:31:50 · 1442 阅读 · 0 评论 -
图片区域解码BitmapRegionDecoder
问一个简单的问题:如何加载一张图片?可能很多朋友会说使用Glide,Picasso等图片加载库来加载图片,或者使用BitmapFactory来加载图片。但是,大家应该知道,无论是使用Glide还是使用BitmapFactory加载图片,加载的图片都是需要做压缩的,不然会导致oom。那么,如果我不允许压缩,要加载一张高清的大图,那么如何实现?这就需要使用图片区域解码BitmapRegionDecoder。一、前言 在大多数情况下,我们加载图片并不需要加载高清大图,这样我们完全可以使用G...转载 2021-02-09 15:23:43 · 707 阅读 · 1 评论 -
android中color-selector的使用
selector选择器,常用来做组件的背景,可以用代码来控制组件在不同状态的背景颜色或图片的切换。常用的是color-selector和drawable-selector,下面主要来介绍color-selector的使用。Color-Selectorcolor-selector用来实现颜色状态列表,使用方法和color一样,颜色会随着组件的状态而改变。color-selector文件存储在如下目录://文件路径/res/color/filename.xml语法<?xml v转载 2021-01-31 23:43:10 · 2320 阅读 · 0 评论