![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
安卓
文章平均质量分 54
_蓝橙
日拱一卒无有尽,功不唐捐终入海
展开
-
安卓将子模块打aar包,并将其远程依赖打包进去
这时你会发现aar包并不大,甚至只有几十kb,如果你的子moudle 没使用第三方依赖的话,你会发现使用时没什么问题,如果有第三方依赖的话,它还是不大,甚至编译期也不会报错 ,但你运行时就会报错依赖找不到。如果要在项目中依赖的话,确实没什么问题,因为它如果依赖了别的文件的话,会自动下载的,而打包成aar文件它就不会下载了,这时候就缺少了相关文件,怎么办呢?代码写的,好家伙,源码的和说明文档的写法不一样,懵了,就试着搞了一下,编译通过🤭,如过你照着使用文档弄,可以通过的话就忽略下面代码把!原创 2024-08-03 17:03:09 · 617 阅读 · 0 评论 -
Android 生成 AAR 包
当我们需要在 Android 项目中引用第三方库或模块时,常常会使用 AAR(Android Archive)包。AAR 包是一种包含了编译后代码、资源文件和清单文件等的二进制文件。原创 2024-06-27 17:19:19 · 698 阅读 · 0 评论 -
使用 ADB 查看 Android 设备的 CPU 使用率(详解)
希望这篇文章对你在 Android 开发过程中监控 CPU 使用率有所帮助。原创 2024-06-26 15:43:45 · 3333 阅读 · 0 评论 -
Android Room数据库使用介绍
Room是Google提供的Android架构组件之一,旨在简化数据库操作。它是SQLite的一个抽象层,提供了更易用和安全的API。// tableName 指定了数据库中对应的表名为 "users"。如果不指定,默认使用类名作为表名// 使用默认值 0,autoGenerate = true 表示自动生成主键// 如果不使用 @ColumnInfo 注解,默认情况下 Room 将使用属性名作为数据库中的列名。原创 2024-06-14 12:07:38 · 1473 阅读 · 2 评论 -
聊聊App在安卓设备中所使用的内存
文章用来记录及分享本人对安卓程序中内存使用的个人见解,如有错误 不吝赐教。先简单浏览下面代码,看看对它们是否熟悉👇${${在开发安卓应用时,内存管理一直是一个关键的考虑因素。良好的内存管理不仅可以提高应用的性能,还能避免内存泄漏和崩溃,由于项目所需,特来恶补相关知识。原创 2024-06-07 18:11:05 · 746 阅读 · 0 评论 -
在Android中使用 MQTT 服务实现消息通信
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是一种轻量级的、基于发布/订阅()模式的通信协议,最初由 IBM 在1999年开发。它设计用于在低带宽、不稳定的网络环境下进行通信,适用于物联网(IoT)和机器对机器(M2M)通信。通过 MqttAndroidClient 和 MqttConnectOptions 初始化 MQTT 客户端。配置 MQTT 客户端的连接选项,包括用户名、密码、自动重连、清除会话、超时设置和心跳包发送间隔等。原创 2024-06-07 16:33:58 · 1303 阅读 · 0 评论 -
无法加载类‘org.gradle.api.publication.maven.internal.MavenPomMetaInfoProvider‘
【代码】无法加载类'org.gradle.api.publication.maven.internal.MavenPomMetaInfoProvider‘原创 2024-05-30 10:17:45 · 743 阅读 · 0 评论 -
在Android中解析XML文件并在RecyclerView中显示
定义一个数据类Item和一个RecyclerView的适配器ItemAdapter。原创 2024-05-29 17:57:14 · 630 阅读 · 1 评论 -
记一次安卓“Low on memory“崩溃问题
最近再调人脸识别算法相关demo,发现调试期间总是偶发性崩溃,捕获不到异常的那种,看日志发现原因是,一开始还疑惑 App内存不够应该是OOM啊,怎么会出现这种问题,百思不得其解,直到我打开了 Android studio中的Profiler不要好奇为什么这么频繁GC,因为不GC我的程序才不正常。最后提醒一下,大家记得处理好子线程异常情况呀,拜拜ヾ(•ω•`)o。原创 2024-05-25 16:53:54 · 351 阅读 · 0 评论 -
一个用Kotlin编写简易的串行任务调度器
灵活性:允许动态添加任务,并根据任务负载需要创建或关闭执行器,从而管理执行器的生命周期。单线程限制:当前实现使用单线程执行器,这意味着任务是顺序执行的,而不是并行执行。这可能是CPU密集型任务的瓶颈。原创 2024-05-14 10:39:43 · 563 阅读 · 0 评论 -
在安卓应用中实现Socket通信:创建服务端和客户端
此片文章用来记录学习,方便大家拿来即用,知识点不多,注释已经尽可能详细了,收工,下班!原创 2024-05-09 19:00:36 · 423 阅读 · 0 评论 -
Android 生成Excel文件保存到本地
本文用来记录在安卓中生成Excel文件并保存到本地操作,在网上找了好久,终于找到一个可以用的,虽然代码已经很老的,但亲测可用!格式有问题,直接用的话会导致文件生成不成功,记得修改一下!可以下载下来修改直接用,该项目主要是依赖一个叫。代码很简单没什么解释的,关键点就是创建。需要注意下原项目传的。原创 2024-03-22 17:37:54 · 592 阅读 · 0 评论 -
cannot access an invalid/free’d bitmap here!
我出现这个问题的原因是bitmap 显示在dialog 上面,而在这个Dialog还未消失时,就调用 bitmap.recycle() 回收bitmap 造成的。解决办法就是在Dialog 设置 setOnDismissListener 监听,消失的时候调用。之前看到这种崩溃日志的时候,我都要崩溃了,还好里面有关键信息,可以帮助排查。所以 所以,一定确保bitmap不再使用,再去回收它。原创 2023-07-19 19:10:34 · 486 阅读 · 0 评论 -
Android 选择联系人并返回手机号等信息(适配安卓11+)
【代码】Android 选择联系人并返回手机号等信息(适配安卓11+)原创 2023-06-13 16:04:01 · 2014 阅读 · 0 评论 -
一文读懂Activity、Fragment和Service的生命周期
了解不同组件的生命周期有助于开发人员更好地掌握应用程序的行为,从而优化应用程序的用户体验和性能。例如,当用户旋转设备时,Activity 会重新创建,因此开发人员需要保存活动状态并在必要时还原它们。类似地,当内存不足时,系统可能会销毁 Activity、Fragment 和 Service,因此应用程序需要能够正确地处理这种情况,以避免崩溃和数据丢失。理解生命周期还有助于开发人员有效地管理资源。例如,使用 Service 可以在后台操作,而无需活动存在。原创 2023-05-24 14:36:01 · 736 阅读 · 0 评论 -
关于安卓11 sdk30 分区存储的一些适配
targetsdk = 29 (安卓10)可以在清单文件中 application 标签加上android:requestLegacyExternalStorage=“true”禁用分区存储,就可以正常使用老存储功能了targetsdk ≥ 30 (安卓11+)此时禁用分区存储 也没啥用了,强制开启分区存储适配内部存储:外部存储:缓存文件:媒体文件:查询可用内存:相关细节详见官方:访问应用专属文件 | Android 开发者 | Android Developers (google.cn)原创 2022-12-06 18:13:18 · 3282 阅读 · 0 评论 -
安卓EditText InputType格式
【代码】安卓EditText InputType格式。转载 2022-11-22 16:30:48 · 281 阅读 · 0 评论 -
自定义View - Paint
介绍Paint(画笔)负责在Canvas(画布)上画出各种图形常量或不过并不建议使用setFlags方法,这是因为setFlags方法会覆盖之前设置的内容构造方法公开方法(常用)内部类Style指定绘制的图元是否被填充,描边或两者均有(以相同的颜色)。Cap指定了描边线和路径(Path)的开始和结束显示效果。Join指定线条和曲线段在描边路径上连接的处理。...原创 2022-08-01 12:55:53 · 422 阅读 · 0 评论 -
记一次 android studio 4.2以上版本要求jdk 11运行环境问题
找到图片里的路径,打开相应文件,把1.8的路径改为你最新的jdk路径就行了。原创 2022-07-20 14:13:54 · 2888 阅读 · 0 评论 -
谈谈项目中的内存泄露
提示以下是本篇文章正文内容,下面案例可供参考1.内存泄露就一句话,长生命周期对象持有短生命周期对象,造成内存不可被回收。2.上面没写Handler导致内存泄露,是因为在项目中真不是那么容易写出来的,写Android听过最多的就是Handler导致内存泄露,就算写出来编译器也给你报一片黄,这个应该是每个安卓开发者都会留意的地方3.出现问题往往是使我们放松警惕的地方,其实编码中稍加留意,上面问题都是可以避免,最后祝大家写代码永远没有bug。你浸淫于程序的迷城,坚持心中的梦想。...原创 2022-07-18 20:10:57 · 485 阅读 · 0 评论 -
安卓自定义View - 基础
自定义View的最基本的三个方法分别是View在Activity中显示出来,要经历测量、布局和绘制三个步骤,分别对应三个动作measure、layout和draw。测量onMeasure()决定View的大小;布局onLayout()决定View在ViewGroup中的位置;绘制onDraw()决定绘制这个View。提示以下是本篇文章正文内容,下面案例可供参考以上就是自定义view的基础内容,本文仅仅简单介绍了自定义view的执行流程,仅供参考,如有错误,不吝赐教。https。......原创 2022-07-17 16:56:08 · 619 阅读 · 0 评论 -
ListView 的getView方法被频繁调用问题
废话少说,没有标题## 出现的原因分下面几种:项目1因ListView的宽度或高度设为了wrap_content,导致系统需要不断地测量。解决:固定宽高设个具体值,或设置match_parent,或fill_parent,因情况不确定,没有标准答案,这几个可以都试试。项目2父布局的宽度或高度设为了wrap_content,再加上ListView 宽高更不确定。解决:一般只固定宽高,ListView再根据(1)试试就行了。如果父布局是FrameLayout 好像给他具体宽高也没用,我的是把原创 2022-01-18 10:09:04 · 2093 阅读 · 0 评论 -
Fatal signal 11 (SIGSEGV) at 0x0000130f (code=1), thread xxx (Thread-xx)
导致应用程序崩溃问题分析与解决:--复现--分析--解决最后先展示与问题相关的代码片:09-04 13:26:32.826 F/libc ( 572): Fatal signal 11 (SIGSEGV) at 0x0000130f (code=1), xxxx 844 (Thread-46)09-04 13:26:32.936 I/DEBUG ( 103): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***原创 2021-09-04 16:48:30 · 249 阅读 · 0 评论 -
Android Intent打开指定网页【问题与方法】
方法 一.Intent intent; PackageManager packageMgr = getPackageManager(); intent = packageMgr.getLaunchIntentForPackage("com.android.chrome"); intent.setPackage(null); intent.setAction(Intent.ACTION_VIEW); intent.addCategory(Intent.CAT原创 2021-08-18 10:08:29 · 1055 阅读 · 0 评论 -
java.lang.IllegalArgumentException: Receiver not registered:
问题:广播接受器没有注册;复现:在onCreate()中注册广播,在onStop()中进行反注册,在该Activity中,设备进入屏保状态 执行onStop(),此时广播已经被反注册,点击屏幕回到界面,不再执行onCreate(),如果再次进入屏保界面此时就会产生异常。解决:Receiver注册和反注册 放在onResume和onPause中,这两个过程肯定会成对出现,能避免此异常发生。...原创 2021-05-31 17:17:39 · 1627 阅读 · 1 评论 -
Long monitor contention with owner Timer-90
主线程卡死,安卓设备控件仅有点击效果原因之一:定时器Timer 不用时没有及时销毁,反复创建,Timer里的代码高并发解决: if(timer != null){ if(task != null){ task.cancel(); } timer.cancel(); timer.purge(); timer = null; }tim原创 2021-05-12 15:57:34 · 1964 阅读 · 2 评论 -
Error:No resource identifier found for attribute ‘directBootAware‘ in package ‘android‘
build.gradle里面的sdk版本号太小了加粗文本android:directBootAware=“true” 属性安卓7.0才支持就是sdk最小需要24android { compileSdkVersion 25 buildToolsVersion "30.0.0"原创 2021-04-22 18:22:54 · 247 阅读 · 0 评论 -
java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/view/KeyEventCompat;
在build.gradle中更新下库:我的是把compile 'com.android.support:appcompat-v7:25.1.1+'更新到compile'com.android.support:appcompat-v7:26.0.0-alpha1'亲测有效!原创 2021-03-31 13:22:23 · 249 阅读 · 0 评论 -
安卓-关于插拔U盘apk概率性崩溃问题分析-随笔
在公司项目中有一个插U盘升级apk,和解析U盘文件安装第三方app的功能,发现 如果插拔U盘频率快的时候,apk很容易崩溃,还有我后台有个定时器,会每隔一段时间去检查一遍是否有U盘,如果有,则去解析,没有则跳过。刚开始遇到这个问题的时候,各种百度搜索,遇到最多的解释就是,拔掉U盘后要释放项目中占用的U盘资源,道理都懂,就是不知道该怎么做, 当然找问题还得从代码入手,测试中发现,当拔掉U盘后,有一小段时间,U盘在项目中的状态还是存在,我猜测既然是存在 接下来肯定会去解析,然后apk就崩了,于是带着这个思路去原创 2021-03-26 11:26:46 · 1220 阅读 · 0 评论 -
**使用安卓控件GridView关于getView()方法不执行问题**
使用安卓控件GridView关于getView()方法不执行问题1.检查getCount返回值为是否为0,为0则不执行;2.检查该控件在布局中的空间位置,比如高度为0dp则不执行;3.要确认adapter在核实的时间和位置去实例化,比如说在异步任务的onPostExecute()方法中去实例化adapter的话,甚至会导致该方法也不会被执行到,当然getview更执行不到了;4.在Fragment中使用GridView,要注意不能在Fragment 所依附的Activity中去初始化Adapter,原创 2021-03-24 10:29:37 · 538 阅读 · 0 评论