![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
文章平均质量分 79
程序员小何SS
这个作者很懒,什么都没留下…
展开
-
【车企招聘】2023最新车载系统应用指南
想要做一名合格的车载工程师,掌握基本技能和坚定的学习态度是必不可少的,希望这份资料能给正在阅读文章的你有所帮助。原创 2023-03-13 22:29:53 · 204 阅读 · 0 评论 -
2023年最新Android Jetpack Compose开发指南
Jetpack Compose 首次亮相于 2019 年的 Google I/O 大会,到2021年初,Google 突然加大了对 Compose 的推广力度,Compose 的关注度迅速升温,成为 Android 领域目前最火热的新技术之一。Jetpack Compose是Google开发的用于构建原生应用的UI工具包,它使用kotlin语言进行开发,基于声明式编程描述UI。原创 2023-03-10 17:15:58 · 211 阅读 · 0 评论 -
Android Framework中关于Binder的浅认识
如果你想要深入系统的学习Android Framework框架,这里可以分享一份《Android Framework源码开发揭秘》,其中记录了从系统启动流程到WMS全部源码解析,相信你能优秀地学习整个Framework框架。因文章篇幅原因,只放了部分内容,完整版文末卡片领取。原创 2023-01-07 16:28:13 · 158 阅读 · 0 评论 -
2023 年,Android 神经网络能做什么?
在过去 10 年的时间里,“神经网络”一词已经超越了科学和专业环境。神经网络组织理论出现于上世纪中叶,但直到 2012 年计算机能力才达到足以训练神经网络的值。由于这一点,它们开始广泛使用。神经网络越来越多地用于移动应用程序开发。德勤报告显示,发达国家成年人安装的应用程序中有 60% 以上使用了神经网络。据统计,Android 的普及率已经连续数年领先于竞争对手。识别和处理声音(现代语音助手),识别和处理对象(计算机视觉),识别和处理自然语言(自然语言处理),查找恶意程序,原创 2023-01-05 17:25:04 · 237 阅读 · 0 评论 -
春招来袭,你是否还在为面试发愁?
一年一度的春招又快来临了~不知道各位小伙伴准备的怎么样了呢?在这个紧要关头,如果想要找到自己满意的工作,拿份高薪工作,可千万不能放松呀~面对艰难的就业环境,我们是否能为自己争取Android岗位的一席之地呢?现在Android岗位对面试的要求都不低,只有自己准备充分,多刷面试题,时刻不松懈,才能为自己能找到满意工作多增加一份可能!所以在这里为各位有梦想的程序员们准备好了一份面试宝典,帮助伙伴们在这个卷的时代能多一份成功的希望!Android面试大致可以分为。原创 2023-01-03 15:53:05 · 133 阅读 · 0 评论 -
彻底理解Android应用无响应机制
有了现场信息,可以调试分析,先定位发生ANR时间点,然后查看trace信息,接着分析是否有耗时的message、binder调用,锁的竞争,CPU资源的抢占,以及结合具体场景的上下文来分析,调试手段就需要针对前面说到的message、binder、锁等资源从系统角度细化更多debug信息,这里不再展开,后续再以ANR案例来讲解。因为在向中控系统汇报广播接收者工作执行完成前,该进程的优先级为Foreground级别,高优先级下进程不但不会被杀,而且能分配到更多的CPU时间片,加速完成SP持久化。原创 2022-11-21 17:53:59 · 959 阅读 · 0 评论 -
WatchDog工作原理
Android系统中,有硬件WatchDog用于定时检测关键硬件是否正常工作,类似地,在framework层有一个软件WatchDog用于定期检测关键系统服务是否发生死锁事件。WatchDog功能主要是分析系统核心服务和重要线程是否处于Blocked状态。监视reboot广播;监视mMonitors关键系统服务是否死锁。Watchdog运作过程,当阻塞时间超过1分钟则触发一次watchdog,会杀死system_server,触发上层重启;原创 2022-11-10 22:34:14 · 383 阅读 · 0 评论 -
深度剖析APP保活案例
什么是保活?保活就是在用户主动杀进程,或者系统基于当前内存不足状态而触发清理进程后,该进程设法让自己免于被杀的命运或者被杀后能立刻重生的手段。保活是”应用的蜜罐,系统的肿瘤“,应用高保活率给自己赢得在线时长,甚至做各种应用想做而用户不期望的行为,给系统带来的是不必要的耗电,以及系统额外的性能负担。提升进程优先级,降低被杀概率比如监听SCREEN_ON/OFF广播 启动一像素的透明Activity启动空通知,提升fg-service进程被杀后,重新拉起进程监听系统或者第3方广播拉起进程。原创 2022-11-08 22:29:59 · 2089 阅读 · 0 评论 -
深入分析 Android 系统返回手势的实现原理
Android 10 正式引入了全屏手势导航(Gesture Navigation),Home 键和 History 键的功能借助上滑和悬停手势得以保留,而 Back 键则以返回手势(Back Gesture)重新与大家见面。本文就这个系统功能一探其实现原理,了解之后:1、作为 FW 开发者可以在 SystemUI 中优化 AsIs 的手势效果:包括图标、动画等角度2、还可以知道 InputMonitor 和 InputManager 的作用,在需要的时候去监视和注入事件。原创 2022-11-04 21:37:17 · 655 阅读 · 0 评论 -
Application的启动流程
获取applicationThread,AMS这两个Binderattach时,将获取applicationThread对象也传递到AMS进程,请求远程调用通知AMS应用进程想要创建Application,此时AMS为服务端AMS收到消息,请求调用applicationThread的远程接口,此时AMS为客户端applicationThread收到AMS的请求,通过Handler发起创建Application的处理任务,后面就没有远程接口调用了。原创 2022-10-31 22:14:26 · 866 阅读 · 0 评论 -
使用新API请求android上的权限
在android中启动一个活动并获得结果是一个常见的模式,这种模式已经存在很长时间了。你开始一项活动,然后倾听结果,然后根据你得到的东西做一些事情。例如,您可以启动一个活动来选择一个文档,然后获得结果(在本例中是Uri)以你的应用程序需要的方式使用它。另一种方法是使用此模式请求对某些API级别的权限。按照上述过程的方式,所使用的api是允许您使用的startActivityForResult()和 onActivityResult()在你的UI中。原创 2022-10-30 15:49:32 · 496 阅读 · 0 评论 -
枚举与密封类的使用方法
当我们想表示一组固定的常量时,我们倾向于使用枚举。例如,一周中的几天、网络状态、颜色集等。原创 2022-10-27 20:00:35 · 116 阅读 · 0 评论 -
Android APK的打包流程
Android的包文件APK分为两个部分:代码和资源,所以打包方面也分为资源打包和代码打包两个方面,这篇文章就来分析资源和代码的编译打包原理。具体说来:1.通过AAPT工具进行资源文件(包括AndroidManifest.xml、布局文件、各种xml资源等)的打包,生成R.java文件。2.通过AIDL工具处理AIDL文件,生成相应的)ava文件。3.通过Javac工具编译项目源码,生成Class.文件。原创 2022-10-25 18:49:48 · 4128 阅读 · 0 评论 -
Android如何使用Recylerview和api获取列表
这里我们使用了api,根据数据进行解析,因此它是modelclass.java。在activitymain.xml中添加回收器视图。现在打开MainActivity.java。完整Mainactivity.java。让我们从依赖关系开始。回收适配器.java。原创 2022-10-24 17:40:38 · 202 阅读 · 0 评论 -
Android学习之Serializable和Parcelable
序列化本质上就是把对象内存中的数据按照一定规则,变成一系列的字节数据(二进制数据),然后在把这些字节数据写入到流中。而反序列化的过程相反,先读取字节数据,然后在重新组装成Java对象。原创 2022-10-21 18:16:14 · 157 阅读 · 0 评论 -
Flutter HTTP POST请求教程
在本教程的这一部分中,我们将用一个简单的例子来处理flutter HTTP POST请求方法,以便您更好地理解在以前的教程中我们已经看到通过改型库发出的请求可以检查它们。post请求的最好例子是字典应用程序、youtube、google、facebook等搜索引擎,在这些搜索引擎中,你可以搜索数据,并基于这些搜索结果返回结果。在body小部件中,声明一个列,我们在其中提供一个textfield来获取用户输入,并抛出按钮将输入发布到api并监听输出。获取数据后,使用此方法将数据解析到屏幕上。原创 2022-10-20 20:08:36 · 1392 阅读 · 0 评论 -
Android阴影绘制的方式
不管是自定义View也还是自定义ViewGroup,都是一样的效果,我们都是通过Paint画笔自己画出阴影,本质都是操作onDraw方法。核心类就是 BlurMaskFilter 类,它的兼容性比较好,它通过一个模糊的遮罩来实现几个重要参数:mMaskRadius:扩散的半径BlurMaskFilter.Blur.NORMAL:整个图像都被模糊掉BlurMaskFilter.Blur.SOLID:图像边界外产生一层与图像颜色一致阴影效果。原创 2022-10-19 22:37:20 · 1525 阅读 · 0 评论 -
Android中常见的内存泄漏以及解决方法
Android中的ART虚拟机是一个托管内存环境。垃圾回收器负责内存分配,并在不再使用该内存时将其释放回堆。当应用程序不再使用对象,但垃圾回收器无法删除它们,因为它们仍在被引用时,就会发生内存泄漏。因此,这些对象被保存在内存中,并且不必要地消耗资源。最终,内存泄漏将导致频繁的垃圾回收和内存不足错误。在本文中,我们将讨论Android中最常见的一些内存泄漏以及避免它们的方法。原创 2022-10-17 13:42:30 · 905 阅读 · 0 评论 -
使用 OkHttp 拦截器和改造进行缓存
先让我们了解将如何在Android应用程序中帮助我们:当我们进行网络调用以从服务器获取数据时,它将从服务器获取数据,并将在客户端上缓存HTTP响应。然后,如果我们再次进行相同的API调用,它将立即从缓存中返回数据。这样,我们的:即使没有互联网连接也可以工作,这将有助于我们构建离线优先的应用程序。由于响应在本地缓存,因此工作速度更快。现在,让我们学习如何在 OkHttp 和改造中启用缓存。原创 2022-10-14 18:42:34 · 328 阅读 · 0 评论 -
Android实现APP跳转
经过研究,必须每次都要打开启动的Activity才能接收到,因为传递过来的参数就是送到启动的Activity(android.intent.action.MAIN),在其他Activity怎么能拿到参数数据。所以必须每次跳转过来都要第一个打开启动的Activity,这是一种解决方法。这里的bundle如果为空,就说明不是跳转过来的,可能是用户收到点击桌面图标打开app,这样肯定就没有参数值。这里每次都可以拿到参数了,可以做自己想做的事情了,可以保存到ShareMamager或者数据库,做相应地操作。原创 2022-10-13 18:39:21 · 3345 阅读 · 0 评论 -
Android适配器和适配器视图
适配器是实现接口的类的对象。它充当数据集和适配器视图之间的链接,适配器视图是扩展抽象类的类的对象。数据集可以是以结构化方式呈现数据的任何内容。数组、对象和对象是常用的数据集。适配器负责从数据集中检索数据并基于该数据生成对象。然后,生成的对象用于填充绑定到适配器的任何适配器视图。您可以从头开始创建自己的适配器类,但大多数开发人员选择使用或扩展 Android SDK 提供的适配器类。原创 2022-10-12 17:38:51 · 595 阅读 · 0 评论 -
Android的性能优化,全方面给你讲明白
作为Android系统的使用者,我们经常会遇到一些问题,这些都是Android开发师需要进一步改进的地方,正是如此,公司对安卓项目开发的质量要求也只会越来越高,性能优化自然是不可逾越的一道关卡。虽然Android的性能优化是一个老生常谈的内容,但其中涉及的众多内容大家还不一定都能弄明白,比如在面试中经常问到的内存泄露,你可能背到了,那内存管理机制会吗?我跟不少Android工程师交流过,他们普遍认为,。Android性能优化包括。原创 2022-10-07 21:37:46 · 856 阅读 · 0 评论 -
通过示例理解带有接收器的 Kotlin 函数字面量
本文提供了一些简单的代码示例,使用函数字面量和接收器(也称为 lambda/匿名函数和接收器)。我遇到了这种 lambda 语法——NavGraphBuilder.() -> Unit结果它被称为Function Literal with Receiver,也称为Lambda/Anonymous Function with Receiver。语法如下所示:下面显示了一些使用带有接收器的函数文字构建自定义字符串的示例。原创 2022-09-27 16:50:12 · 154 阅读 · 0 评论 -
kotlin:Lateinit 和 Lazy
如果你对kotlin感兴趣,但却不知道如何学习,怎么去学习,在这里为了帮想学习Kotlin 的小伙伴,不烦看看这份《高级Kotlin强化实战学习手册(附Demo)》供Android开发者进阶学习 Kotlin,内容涵盖 Kotlin 入门教程、Kotlin实战避坑指南、Kotlin Jetpack 实战三大模块。解决方案:不要继续命名它可能是懒惰的名字,但它证明它在使用时是值得的。问题1: 我们希望声明一个变量,但不想在创建过程中对其进行初始化,因为我们确定在执行之前,它肯定会在程序中的某个时刻被初始化。原创 2022-09-24 10:27:05 · 798 阅读 · 0 评论 -
Kotlin 中的分区过滤功能
如果你觉得kotlin很有意思,但却不知如何去学习,那么为了帮助想学习 Kotlin ,我近日整理发布一份《高级Kotlin强化实战学习手册(附Demo)》供Android开发者进阶学习 Kotlin,内容涵盖 Kotlin 入门教程、Kotlin实战避坑指南、Kotlin Jetpack 实战三大模块。在本篇文章中,我们将了解 Kotlin 过滤功能 - partition. 它通过谓词过滤集合,并将不匹配的元素保存在单独的列表中。partition通过谓词过滤集合,并将不匹配的元素保存在单独的列表中。原创 2022-09-22 10:02:51 · 398 阅读 · 0 评论 -
玩弄 Kotlin 的Context Receivers
Kotlin 在 1.6.20 版本中加入了 Context Receivers 的想法。在这篇文章中,我想玩弄它们以了解它们的用处。请注意,如果您想一起玩,则需要使用context-receivers标志进行编译。Context Receivers背后的主要思想是将附加参数传递给函数,而无需显式执行。原创 2022-09-17 10:13:05 · 256 阅读 · 0 评论 -
如何为 Flutter 开发优化低端 PC
在低端 PC 上开始Flutter开发非常令人沮丧。今年早些时候,当我想用 Flutter 学习移动开发时,我很难只打开我的 IDE,甚至不尝试打开另一个窗口(例如浏览器),我的笔记本电脑只会死机😢,因为我使用的是联想 V130 -15IGM 笔记本电脑,配备 Intel Celeron N4000 1.1ghz 双处理器和 4 GB 内存。在这篇文章中,我将分享一些技巧,让您可以开始使用 Flutter 开发出色的应用程序😉。这里所说的所有技巧都对我有用,所以它可能不适合你。原创 2022-09-15 14:26:55 · 282 阅读 · 0 评论 -
带有 Android Studio 模板的快速 RecyclerView 适配器
在本文中,我将向您展示如何利用该解决方案生成带有 ViewBinding/DataBinding 的 RecyclerView Adapter,并节省一些击键和时间。因此,通过按下打开 Android Studio 设置,command + ,然后在选项File and Code Templates下Editor选择并单击加号图标以添加新模板并将以下代码复制到文件中。在该Name字段中,输入您想为模板命名的任何名称;就我而言,我将其命名为RecyclerView Adapter;原创 2022-09-13 15:31:35 · 378 阅读 · 0 评论 -
Kotlin:多维(2D、3D 等)数组初始化
kotlin 中的简单一维数组是使用arrayOf()标准库函数声明的。它将值列表作为参数并返回一维数组。这将创建一个包含 5 个元素的整数值数组:1、2、3、4、5。类型声明是可选的arrayOf(),这使数组变得灵活。如果未定义数组类型,那么您可以在数组中存储任何类型的元素。它会工作得很好。}/*Output:*/但这违背了 Kotlin 中类型安全的目的。我们不想将字符串存储在整数数组中。为了保证类型安全,我们在初始化时声明了数组的类型,以保证数组的元素是相同的类型。否则,他们会抛出错误。原创 2022-09-09 10:16:49 · 2523 阅读 · 0 评论 -
Android 中 Recycler View 的使用
很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从那里入手去学习,需要一份小编整理出来的。如果你看到了这里,觉得文章写得不错就给个赞呗?最后,如果大伙有什么好的学习方法或建议欢迎大家在评论中积极留言哈,希望大家能够共同学习、共同努力、共同进步。不论遇到什么困难,都不应该成为我们放弃的理由!,有兴趣的伙伴们可以看看~这是适配器类的示例代码。原创 2022-09-07 10:34:43 · 375 阅读 · 0 评论 -
Android:通过集成 3rd 方 SDK 使用平台渠道的深入指南
在这里,我们将在 Android 端集成相同的 SDK,看看我们如何使用我们的平台通道在 Dart 和 Android 之间传输数据。原创 2022-09-05 09:39:19 · 197 阅读 · 0 评论 -
为什么在 Kotlin-Coroutines 中不建议使用 GlobalScope?
这是因为我正在处理片段。正如您已经知道的那样,协程是轻量级的,但Will Consume Some Memory Resources在它肯定运行时仍然如此,这可能会导致您的应用程序中的内存泄漏。很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从那里入手去学习,需要一份小编整理出来的学习资料的。正如你所看到的,即使第一个片段已经死了,我们的循环仍然继续,因为我们声明了我们的范围,GlobalScope{…}它将继续运行,直到我们的应用程序死了。.原创 2022-09-01 14:33:30 · 1128 阅读 · 0 评论 -
Android Extension Functions与静态 Utility Class
Extension Functions:这些就像附加到 kotlin 中的任何类的扩展属性。它为该类提供了额外的方法,而无需手动继承该类。例如,比方说,我们有视图,我们需要在其中使用视图的可见性。因此,我们可以为视图创建扩展功能,例如,}}为了使用它,我们使用,比如,在这里,您可以看到我们在 android 的视图中附加了 hide() 和 show() 的附加功能。在这里,以上两个扩展函数只能被 View Type 使用,不能被其他任何类型使用。例如,String 不能使用这里的函数。...原创 2022-08-27 10:00:14 · 156 阅读 · 0 评论 -
这些工具将使 Android 开发更有趣
但有时您必须使用物理设备而不是模拟器,例如测试需要蓝牙的功能,或者在最坏的情况下,您的笔记本电脑没有足够的 RAM 来运行模拟器。在这里,您可以使用 scrcpy 镜像您的手机。在开发/调试应用程序时,您需要撤销应用程序的所有权限,或者清除应用程序缓存和存储,甚至卸载应用程序。所以这个插件来帮助,你可以撤销应用程序的权限,清除应用程序缓存和存储,卸载应用程序,从你的 IDEA 中杀死甚至重新启动应用程序,只需几个按钮快捷方式组合。您需要做的就是为您想要的语言添加新的实时模板及其缩写、描述和代码。原创 2022-08-25 09:54:11 · 343 阅读 · 0 评论 -
如何使用 Kotlin Multiplatform 构建跨平台应用程序
KMM 或 Kotlin Multiplatform Mobile 是用于开发跨平台应用程序的 SDK。可以创建多平台应用程序并与 android 和 iOS 平台共享它们。然而,Kotlin Multiplatform Mobile 的常见用例包含原生 UI 的实现或使用特定于平台的 API。开发和维护移动应用程序需要投入大量精力和精力。但是,在为不同平台(例如(iOS、Android 等)创建和测试跨平台移动应用程序时)存在各种挑战。在当今的数字世界中,跨平台构建应用程序是最苛刻的应用程序开发过程。原创 2022-08-23 10:14:57 · 1703 阅读 · 0 评论 -
将Android RecycleView 转换为 LazyColumn - Jetpack Compose
如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。最后针对Android程序员,我这边给大家整理了一些资料,包括不限于高级UI、性能优化、移动架构师、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter等全方面的Android进阶实践技术;希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!原创 2022-08-20 10:25:07 · 405 阅读 · 0 评论 -
避免 StateFlow 中的竞争条件
当您的 StateFlow 值分配取决于先前的值时,请使用 mutableState.update { previousState -> previousState.copy() } 来避免竞争条件。这里我就分享一份资料,希望可以帮助到大家提升进阶。Android学习PDF+架构视频+面试文档+源码笔记,高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料这几块的内容。分享给大家,非常适合近期有面试和想在技术道路上继续精进的朋友。如果你有需要的话,可以。...原创 2022-08-18 09:38:32 · 331 阅读 · 0 评论 -
Kotlin 中优化的棋盘图案 VectorDrawable
在我开始编写上面的第三个版本之前,我在想潜在的等价v-2物比 长V8,但同时v-2比 短V10。}}}只保存了 5 个字符,很明显,我们看到了收益递减法则的影响,但我还是接受了它。已经花时间了,没有明显的缺点……最后两个可能的优化(我没有检查aapt2是否在做)是将androidxml 命名空间重命名为a,并删除所有非强制空格和换行符。无论如何,我在那里节省了 81 个字节(与上一次迭代相比减少了 20% 以上)。...原创 2022-08-16 11:42:31 · 258 阅读 · 0 评论 -
Kotli N — 如何创建自定义 Toast
本文在本人文档中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…原创 2022-08-12 10:46:31 · 529 阅读 · 0 评论 -
将视图模型转换为使用 Hilt 依赖注入
如果我将已安装的模块更改为另一个组件,例如ViewModelComponentor ActivityComponent,它将无法编译,并且我不知道如何修复它,我想这是我下一步要解决这个问题Hilt。为了创建 Hilt MainViewModel,您需要使用@HiltViewModel. @Inject constructor也用于告诉 Hilt 如何创建依赖项。要创建依赖项,我们使用@Provides和@Binds。下面的数据库创建也可以删除,因为它是由@Provides上面的 hilt 提供的。...原创 2022-08-10 11:41:32 · 467 阅读 · 0 评论