
Android开发
文章平均质量分 87
小陈乱敲代码
这个作者很懒,什么都没留下…
展开
-
23道Android高频面试必考题(含答案)
Fragment从创建到销毁整个生命周期中涉及到的方法依次为:onAttach()→onCreate()→onCreateView()→onActivityCreated()→onStart()→onResume()→onPause()→onStop()→onDestroyView()→onDestroy()→onDetach(),其中和Activity有不少名称相同作用相似的方法,而不同的方法。Service默认并不会运行在子线程中,也不运行在一个独立的进程中,它同样执行在主线程中(UI线程)。原创 2023-08-07 14:19:01 · 6113 阅读 · 0 评论 -
年中Android应用性能优化技能大盘点
在接下来的文章中,我们将深入剖析如何优化Android应用的性能和内存管理,为开发者提供实用的技巧和方法,帮助他们在应用开发过程中达到更好的性能和内存管理效果。用户对于应用的启动速度、页面加载速度、操作流畅性等都有较高的期望,如果应用在这些方面表现不佳,用户可能会选择切换到其他更加流畅的应用,从而影响应用的用户留存和活跃度。性能优化是如今竞争激烈的移动应用市场中必不可缺的需求,在 Android 平台上,优化应用的性能是一个复杂的任务,涉及到多个方面,包括应用的布局、数据存储、网络请求等等。原创 2023-07-17 15:49:46 · 139 阅读 · 0 评论 -
这一份优秀的简历,疯狂拿下10份offer,至少要做到……
马上就要秋招了(或者说有的同学已经开始秋招了),不知道大家简历准备得怎么样了?简历的重要性不言而喻,无论是校招、海投还是找人帮助内推,一份像样的简历都是求职必备的。小编今天就和大家唠唠一份优秀的简历,都具备哪些要素。原创 2023-07-10 21:14:21 · 119 阅读 · 0 评论 -
1000道+Android面试题合集(附答案),实力解读,技术栈覆盖率达80%
上述约计30个知识点,囊括了目前互联网企业的主流应用技术以及能让你成为“香饽饽”的高级架构知识,每个笔记里面几乎都带有实战内容。很多人担心学了容易忘,这里教你一个方法,那就是重复学习。打个比方,假如你正在学习 Binder机制,突然发现了一个用户运行态,不知道干什么用的,你可能会去查看源码或者通过博客学习,花了半小时终于弄懂了,下次又看到用户运行态 了,你有点郁闷了,上次好像在哪哪哪学习,你快速打开网页花了五分钟又学会了。从半小时和五分钟的对比中可以发现多学一次就离真正掌握知识又近了一步。原创 2023-06-26 15:46:43 · 262 阅读 · 0 评论 -
写给迷茫的1-3年Android人的思考
今年由于大环境差,加之大家都会遇到的职场困惑期,让很多人觉得很无助,不知道要向何处去努力。我有两三位朋友正面临类似的困境,向我寻求意见。虽然我不是什么大厂的架构师,也没有多牛,但也有一些自己的思考和实践,希望能帮助到他们,也希望与大家一起探讨这个话题。原创 2023-05-19 21:23:42 · 160 阅读 · 0 评论 -
被裁现状,给找工作的同学一些建议
虽然现在市场环境不好,也不要过于焦虑,如果你还没找到工作,千万不要着急,也不要去看负面消息,保持一颗平常心,认真生活,专心准备,好的机会是留给最后准备充足的人。原创 2023-05-05 15:16:05 · 194 阅读 · 0 评论 -
Android 自定义View 基础(1)
在准备学习自定义View之前,先介绍一下相关的前置基础知识。原创 2023-03-10 15:27:08 · 166 阅读 · 0 评论 -
Java- CAS带来的 ABA问题及解决方法的代码实例
java中提供了AtomicStampedReference来解决这个问题,它是基于版本或者是一种状态,在修改的过程中不仅对比值,也同时会对比版本号。(从日志也可以看出,线程的执行并不是按照我们创建或启动的顺序的)Thread-6 已经对原始值: A 进行了修改,此时值为: B。同时使用了 CountDownLatch(类似计数器的功能)Thread-20 已经将值 B 修改成原始值: A。日志打印: A -> B, B -> A。,如有侵权,请联系删除。原创 2023-01-24 07:15:00 · 165 阅读 · 0 评论 -
2023想从事Android车载开发必看!
毫无疑问车载开发是一个正确的选择。随着近年来车载系统的发展,想要做一名合格的车载工程师,掌握基本技能和坚定的学习态度是必不可少的,以致于无意间提高了车载工程师的门槛。许多人因为资料的匮乏而无法有效学习,这里就为大家分享一份Android车载操作系统开发揭秘,帮助更多的程序员积累知识、快速提升!原创 2023-01-04 16:16:23 · 643 阅读 · 0 评论 -
如何搭建Flutter Framework开发环境?简单几步就到位!
为了帮助大家更好的理解flutter,我给大家准备了一份《Flutter进阶学习笔记》,相信大家能在它的帮助下快速掌握flutter的知识,这便完成了flutter framework的源码环境。,如有侵权,请联系删除。原创 2022-12-27 22:01:49 · 236 阅读 · 0 评论 -
看完这篇Jetpack compose开发指南,让你感觉如获至宝~
虽然现在的Android就业环境时刻都在发生改变,但只要自己有本事,掌握好技术,善于发现和学习,即使身处内卷时代,相信你也可以争得自己的一席之地!《Android Jetpack Compose开发应用指南》领取请戳下方!!原创 2022-12-13 15:54:14 · 706 阅读 · 0 评论 -
Android 数据库 Room从入门到进阶
Room 在 SQLite 上提供了一个抽象层,以便在充分利用 SQLite 的强大功能的同时,能够流畅地访问数据库。原创 2022-11-30 19:18:14 · 791 阅读 · 0 评论 -
快手Android性能优化岗位面试题分享,论文答辩都没这么难
前段时间投递了快手的移动开发工程师-性能方向,自己在先前三年的工作中做得更多的地方就是Android性能优化这块,这次面试也等于是和面试官在性能优化这个话题进行了一次深入的交谈。原创 2022-11-27 22:09:47 · 413 阅读 · 0 评论 -
Android内存优化详解
RefWatcher.watch()创建了一个KeyedWeakReference用于去观察对象。然后,在后台线程中,它会检测引用是否被清除了,并且是否没有触发GC。如果引用仍然没有被清除,那么它将会把堆栈信息保存在文件系统中的.hprof文件里HeapAnalyzerService被开启在一个独立的进程中,并且HeapAnalyzer使用了HAHA开源库解析了指定时刻的堆栈快照文件heap dump。原创 2022-11-24 16:57:39 · 507 阅读 · 0 评论 -
Android车载系统开发兴起,谷歌能否在智能汽车上再造辉煌?
随着新能源汽车的崛起,特别是在蔚来、小鹏、理想等造车新势力初露锋芒之后,各大手机厂商纷纷表明了自己造车的野心,并进行了一系列行动。如果说我们把汽车看作是一个智能终端,他可以表现的地方真的就太多了,具体可以分为语音交互、辅助驾驶、移动互联、等多个部分。。以BAT代表的互联网巨头,早在2015年前后就瞄准了车载系统。不过直到今天,智能汽车系统还处在一个发展阶段,就车企而言,他们也不会愿意把核心系统部分交给国内的互联网厂商,因而。原创 2022-11-22 15:21:26 · 282 阅读 · 0 评论 -
被称为“2022大热门”的Android车载系统开发,到底应该怎么学?
随着汽车智能化的速度不断加快,车载系统目前已经进入了混战的阶段,国产车载系统纷纷加入布局,很多车企也基于Android车载系统来开发自己的新系统,不过想要打造像安卓一样的汽车生态,还有很大的发展空间。Android Automotive OS最明显的特点有:1、界面布局更贴近手机本身,车载娱乐生态丰富,在保证用户使用习惯的同时,还能提供更多元的需求,驾驶体验优。2、高效易触,提供了语言交互和手势交互等,安全驾驶优,这也是智能化汽车发展中人们最为关心的一大内容。原创 2022-11-14 16:20:03 · 708 阅读 · 0 评论 -
解析Javac源码APT执行原理
1、APT原理是什么,怎么被执行起来的?2、APT中process方法到底执行几次?为什么这么设计?3、APT中process方法boolean返回值返回true或者false有什么影响?原创 2022-10-31 22:10:17 · 557 阅读 · 0 评论 -
Kotlin Flow 中的运算符重载任务
当我们讨论在Kotlin Flow中使用运算符重载任务时,我们将讨论以下两个运算符:retryWhenretry这两种运算符在大多数情况下都可以互换使用,今天我们将学习它们。原创 2022-10-23 19:51:21 · 301 阅读 · 0 评论 -
Android学习之zygote启动流程
在Android系统中,DVM(Dalvik虚拟机)、应用程序进程以及运行系统的关键服务的SystemServer进程都是由Zygote进程来创建的,我们也将它称为孵化器。zygote的英文名为受精卵,由于他能不断孵化进程,因此也是名字的由来。它通过fock(复制进程)的形式来创建应用程序进程和SystemServer进程,由于Zygote进程在启动时会创建DVM,因此通过fock而创建的应用程序进程和SystemServer进程可以在内部获取一个DVM的实例拷贝原创 2022-10-21 18:23:43 · 549 阅读 · 0 评论 -
Android Camera2 开发详解
1、 CameraManager摄像头管理器,用于打开和关闭系统摄像头getCameraIdList() : 返回当前设备中可用的相机列表getCameraCharacteristics(String cameraId) : 根据摄像头id返回该摄像头的相关信息openCamera(String cameraId, final CameraDevice.StateCallback callback,Handler handler): 打开指定cameraId的相机。参数callback为相机打开时的原创 2022-10-19 21:32:58 · 2188 阅读 · 0 评论 -
如何在APP中实现深色模式
最近许多应用程序在其应用程序中采用了夜间模式,所以在这里给大家分享如何应用深色主题。首先,我们需要做我们的布局,以便我们可以应用我们的黑暗主题,我们用cardview来制作布局。原创 2022-10-18 15:21:58 · 1613 阅读 · 0 评论 -
应用程序快捷方式
如何使用快捷方式传递内容取决于您的用例以及快捷方式的上下文是应用程序驱动的还是用户驱动的。不管快捷方式的上下文是否发生变化,两者静止的和动态快捷方式由应用程序驱动。如果用户选择希望应用程序向其传递内容的方式,例如使用固定的快捷方式,则用户定义上下文。:用于在用户交互的整个生命周期内具有一致结构的内容。Instagram正在使用它快速访问帖子、摄像头或直接消息。:用于上下文相关的操作。用户在应用程序中执行的操作。例如,如果您正在构建一个允许用户从当前级别开始的游戏,则需要经常更新快捷方式。原创 2022-10-16 13:18:09 · 620 阅读 · 0 评论 -
详解Android View 中的事件分发机制
这三个方法在处理View的冲突时经常遇到,所以要熟悉其机制,看完这三个方法,现在来看看事件分发机制。从以上可以看出,这三个方法的联系。原创 2022-10-11 18:18:49 · 622 阅读 · 0 评论 -
Android之InstanceState详解
本文介绍Android中关于Activity的两个神秘方法:onSaveInstanceState() 和 onRestoreInstanceState(),并且在介绍这两个方法之后,再分别来实现使用InstanceState保存和恢复数据功能、Android实现屏幕旋转异步下载效果这样两个示例。首先来介绍onSaveInstanceState() 和 onRestoreInstanceState()。原创 2022-10-10 18:19:38 · 209 阅读 · 0 评论 -
Context相关的内存泄露问题
TextView有activity的引用(Context),activity有很多东西的原因,使用静态内部类,并在它的内部创建一个对Activity的弱引用。原创 2022-10-10 18:03:09 · 864 阅读 · 0 评论 -
Handler消息机制关键类详解(二)
Handler,MessageQueue,Looper三者共同构成了android消息机制,各司其职。其中Handler主要负责发送和处理消息,MessageQueue主要负责消息的排序以及在没有需要处理的消息的时候阻塞代码,Looper负责从MessageQueue中取出消息给Handler处理,同时达到切换线程的目的。转载 2022-10-07 23:06:20 · 237 阅读 · 0 评论 -
Android 中的广播机制你了解多少?
Android 中的每个应用程序都可以对自己感兴趣的广播进行注册,这样该程序就只会接受自己所关心的广播内容,Android 提供了一整套的 API,允许应用程序自由地发送和接受广播,今天我们就来详细介绍下转载 2022-10-06 22:34:30 · 843 阅读 · 0 评论 -
如何通过代码示例在Android上制作画中画模式
近年来,智能手机在功能上越来越接近电脑,许多智能手机已经取代个人电脑成为他们工作的主要工具。个人电脑的优势在于多窗口功能,而这在智能手机上仍然不可用。但随着 Android 7.0 的发布,这种情况开始发生变化,出现了多窗口支持。当通话最小化时,很难高估带有对话者视频的小浮动窗口的便利性 - 您可以继续对话并同时做笔记或澄清一些信息。Android 有两个选项来实现此功能:支持浮动窗口中的应用程序和画中画模式。原创 2022-09-06 10:47:23 · 630 阅读 · 0 评论 -
kotlinx.coroutines.delay() 与 Thread.sleep()
kotlinx.coroutines.delay()是一个挂起函数。它不会阻塞当前线程。Thread.sleep()阻塞当前线程。Thread.sleep()这意味着该线程中的其他代码在退出之前不会执行。原创 2022-09-02 14:08:36 · 798 阅读 · 0 评论 -
在跨平台原生 Swift 应用程序中计算 SafeArea 常量
今天的文章与之前的文章有些不同。我们将研究如何处理与 Android 和 iOS 兼容的 UI 小部件,而不是制作应用程序。一个这样的例子是 SafeArea 常数的计算。我敢肯定,您一定在移动应用程序开发中遇到过 SafeaArea 概念。使用足够的填充插入其子项以避免操作系统入侵的 UI 小部件称为 SafeArea。但是为什么我们现在要讨论 SafeArea 呢?SCADE 社区报告了一些与 SafeArea 相关的问题,其中 UI 视图超出了可见区域。...原创 2022-08-31 10:18:59 · 505 阅读 · 1 评论 -
使用电容器将您的网站转换为安卓应用程序
如果没有自定义的初始屏幕和图标,应用程序将是不完整的。如果我们要创建闪屏和自定义图标,我们必须先安装电容器插件。resources/接下来,运行以下命令为您的应用生成不同大小的图标和启动画面。该命令应生成两个文件夹图标和一个启动画面。您无需进行任何配置,因为在此文件夹中生成的所有资产都将复制到您的 Android 代码文件夹中。现在要测试我们的启动屏幕,请再次执行第 4 步。...原创 2022-08-09 10:11:33 · 328 阅读 · 0 评论 -
创建 ViewModel 或 AndroidViewModel 的方法
ViewModel将其他对象传递给构造函数是很常见的。以下示例将Repository对象传递到MyViewModeland MyAndroidViewModel。}}有一个自定义的构造函数参数ViewModel有点复杂。您需要有一个自定义ViewModel工厂来创建您的ViewModel.要创建自定义ViewModel工厂,您可以继承自ViewModelProvider.NewInstanceFactory.}}}...原创 2022-08-03 16:45:08 · 4489 阅读 · 0 评论 -
使用 android、NodeJs 和 Socket.io 创建一个实时聊天应用程序
WebSockets是非常漂亮的工具,它允许我们在现代Web应用程序中建立实时通信。事实上,这个机制非常强大,它被用来构建不同类型的应用程序,如实时聊天或通知系统等。在本文中,我们将向您展示如何使用androidnodeJs和Socket.io构建一个实时聊天应用程序。...原创 2022-07-29 16:26:23 · 1125 阅读 · 0 评论 -
如何以编程方式在 Android 上截屏?
在此方法中,我们将首先创建一个空位图,我们必须将其作为函数的值返回。最后,我们返回我们创建的位图,因为它将返回视图的位图。这对于为您想要的任何视图生成位图很有用,您还可以生成任何特定小部件(如ImageView或TextView)的屏幕截图。现在,为了生成带有工具栏的完整Activity的位图,我们调用函数getScreenShot()像,在我们的代码中,我们有以id作为容器的视图。在本文中,我们将学习以编程方式截取任何视图特定视图或任何布局的屏幕截图。在活动中,我们将创建一个名为。...原创 2022-07-25 14:15:03 · 640 阅读 · 0 评论 -
在 Kotlin 中使用 Flow Builder 创建流
在这篇文章中,我们将讨论不同类型的流构建器以及如何使用流构建器创建流。让我们开始吧。流量生成器的类型使用FlowBuilder创建流。原创 2022-07-22 13:54:54 · 362 阅读 · 0 评论 -
在 Android 中使用 MediaPlayer 播放音频文件
在本篇文章中,我们将学习如何在Android中播放音频文件。音乐会代替言语说话。在Android应用程序中添加音频文件有多种方法。例如,您可以使用ExoPlayer或MediaPlayer在Android应用程序中播放音频文件。在本文中,您将学习如何在Android中使用MediaPlayer播放音频文件。媒体播放器介绍MediaPlayer的状态图准备()与准备异步()使用后释放MediaPlayer两行MediaPlayer示例更高级的例子。...原创 2022-07-20 11:42:38 · 4704 阅读 · 0 评论 -
Appium安卓自动化元素定位怎么做
无论想在 app 页面中进行怎样的操作,我们先得找到那个要操作的元素。比如你想直接点击一个按钮,那么你就必须要先找到这个按钮。如果你想在输入框当中去输入一些内容,那么你就必须要先找到这个输入框。这个寻找需要操作的元素的过程,叫做元素定位。在大多数的APP操作过程当中,首先必须先找到需要操作的元素,这个过程就叫元素定位。在Appium当中进行元素定位的函数叫 find_element,他传递两个参数。第1个参数是定位元素的方式, 第二个参数是这个方式的值。 举个例子,通过 ID 定位一个元素,第1个参数就填原创 2022-06-17 16:06:50 · 764 阅读 · 0 评论 -
Android仿同花顺自选股列表控件
RecyclerView的开发中,我们通常会遇到一行显示不下内容的情况,产品会要求我们的item是可以滚动的,并且头部是固定的。特别在股票行情类相关的app上,这样的场景是非常多的,所以封装了如下的自定义组件。首先上效果图,可以看到可以横向滚动,头部固定不动,并且支持侧滑拖出彩蛋“hello”,这里的实现效果是模仿的同花顺的自选股池 || — | — |最外层使用RecyclerView,item使用LinearLayout布局,左边是一个固定的头部,我这里使用的是TextView,右边是一个自定义的S原创 2022-06-14 21:29:55 · 1285 阅读 · 4 评论 -
Android UI-薄荷健康尺子
源码:HenCoder-CustomView: HenCoder-三篇自定义View仿写 (gitee.com)原的 仿的滑动边界与view的大小是两个概念view的内容绘制在canvas上,canvas是一块无限大的画布,View有坐标系,左上角是原点(0,0),惨van无限大,坐标系也是无限大的。View的宽高则是在无限大的canvas从原点开始圈出一块位置展示内容。如下图,用户的可视范围只是100*100,但无限大的canvas仍然存在。假设在(200,200)的位置画了一个点,虽然用户看不见,但是它原创 2022-06-10 21:16:21 · 696 阅读 · 0 评论 -
Android 协程使用指南
协程是我们在 上进行异步编程的推荐解决方案之一,通过挂起和恢复让状态机状态流转实现把层层嵌套的回调代码变成像同步代码那样直观、简洁,协程的出现很好的避免了回调地狱的出现。所谓挂起,是指挂起协程,而非挂起线程,并且这个操作对线程是非阻塞式的。当线程执行到协程的 函数的时候,对于线程而言,线程会被回收或者再利用执行其他工作,就像主线程其实是会继续 刷新工作。而对于协程本身,会根据 传入的 所指定的线程去执行任务。关于恢复,当挂起函数执行完毕后,会自动根据 切回原来的线程往下执行。其中 主要是对写原创 2022-06-08 21:39:03 · 2366 阅读 · 0 评论