
Android
文章平均质量分 83
小陈乱敲代码
这个作者很懒,什么都没留下…
展开
-
Android 自定义View 基础(1)
在准备学习自定义View之前,先介绍一下相关的前置基础知识。原创 2023-03-10 15:27:08 · 166 阅读 · 0 评论 -
Android里的多进程和跨进程通讯方式
进程间通信(InterProcess Communication缩写IPC)是指在不同进程之间传播或交换信息。进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元。IPC不是Android中所独有的,任何一个操作系统都需要有相应的IPC机制。只有在多进程的环境下才需要考虑使用IPC进行通讯。Android中的应用程序可以为一个进程,也可以配置成多进程,每个进程都在自己独立的空间中运行。原创 2023-02-22 15:52:24 · 2234 阅读 · 0 评论 -
kotlin基础之变量与函数详解
想要学习Kotlin,多一个大厂面试机会的朋友们,这里有一份《高级Kotlin强化实战》,能更快更好的帮助你从入门到精通Kotlin!原创 2023-02-20 14:08:43 · 419 阅读 · 0 评论 -
【金三银四】Android面试必看好吧,别到处找资料了
面对求职热潮,怎么可能少得了一份全面的面试资料呢!相信很多朋友在网上找的面试资料都是零散的,不全面的。然而这份Android面试题将会是你的必备神器!下面扫码免费送给大家!原创 2023-02-17 16:51:22 · 134 阅读 · 0 评论 -
如何在您的Flutter应用程序中添加SliverAppBar
在Flutter中,SliverAppBar是AppBar部件的继承者,它允许您创建浮动的应用栏效果。SliverAppBar在屏幕向上滚动时展开AppBar,向下滚动时折叠。当用户向下滚动一个长的列表时,你也可以完全删除或隐藏AppBar。SliverAppBar有很多自定义选项,所以你可以根据你的需要来定制它。如果你是一个视觉学习者,可以看看这个快速视频教程。下面是让SliverAppBar启动和运行的最小代码。要添加,请将,放在Scaffold widget的body部分。原创 2023-02-14 14:31:58 · 1239 阅读 · 0 评论 -
用Jetpack Compose构建更快的安卓应用
Jetpack Compose与传统的Android视图系统最明显的区别是,Compose UI完全由Kotlin编写。不再需要使用XML来进行布局、风格、排版、颜色或其他UI相关的元素。")你所熟悉的视图、TextViews、按钮、等已经不复存在。Compose应用程序是使用可组合函数而不是视图函数构建的。可组合函数被注释为,并代表单个UI元素。我们可以使用预定义的可组合函数或定义我们自己的。原创 2023-02-11 21:01:38 · 371 阅读 · 0 评论 -
来了!解放你 Flutter Assets 的双手
Flutter 中加载本地资源最原始的方式是手动添加,然后硬编码路径,这种方式使用起来极其麻烦,也是我们开发者的痛点。现在工具的更新迭代速度之快,尤其是Android开发工程师,必须不断学习最新的工具和方法,才能够适应Android项目实战的变化,所以赶紧把flutter学习起来吧,加油!在这个例子里面,如果开发者想要修改文件名字,仅仅改变常量的内容就可以了,只在 Constants 类中一处而已。这是我们最原始的方式,也是带给我们痛苦的方式 😂,我们刚开始 Flutter 的时候基本就是这样的~原创 2023-02-09 16:34:17 · 814 阅读 · 1 评论 -
Android与Flutter混合开发之flutter_boost
如果下载后请进行如下操作image.png如果还报错请重启image.png功能介绍:Android原生界面跳转Flutter界面,并传参Flutter界面跳转Android原生界面,并传参Android和Flutter在同一界面显示1.jpg2.jpg3.jpg4.jpg。原创 2023-02-03 14:28:06 · 569 阅读 · 0 评论 -
Android 之IPC详解
IPC是Inter-Process Communication的缩写,含义为进程间通信或者跨进程通信,是指两个进程之间进行数据交换的过程。按照操作系统中的描述,线程是CPU调度的最小单元,同时线程是一种有限的系统资源。而进程一般指一个执行单元,在PC和移动设备上指一个程序或者一个应用。一个进程可以包含多个线程,因此进程和线程是包含与被包含的关系。最简单的情况下,一个进程中可以只有一个线程,即主线程,在Android里面主线程也叫UI线程,在UI线程里才能操作界面元素。原创 2023-02-01 20:49:10 · 2451 阅读 · 0 评论 -
安卓音视频之-媒体提取器MediaExtactor
在之前学习如何使用MediaPlayer后,了解到Android系统提供开发者播放多媒体全家桶能力,但对于开发者希望DIY自由度更高的播放器能力也是可以利用Android内部提供组件包自行实现一个播放器的。举例实现一个视频播放这个流程,它大致流程是【多媒体文件解析提取视频文件】-> 【视频流解码】-> 【解码数据播放渲染到Render】。首要需要实现的是多媒体中需要文件提取工作,这就需要使用到Android提供类来实现提取媒体信息能力。原创 2023-01-30 15:58:57 · 266 阅读 · 0 评论 -
2023想从事Android车载开发必看!
毫无疑问车载开发是一个正确的选择。随着近年来车载系统的发展,想要做一名合格的车载工程师,掌握基本技能和坚定的学习态度是必不可少的,以致于无意间提高了车载工程师的门槛。许多人因为资料的匮乏而无法有效学习,这里就为大家分享一份Android车载操作系统开发揭秘,帮助更多的程序员积累知识、快速提升!原创 2023-01-04 16:16:23 · 643 阅读 · 0 评论 -
看完这篇Jetpack compose开发指南,让你感觉如获至宝~
虽然现在的Android就业环境时刻都在发生改变,但只要自己有本事,掌握好技术,善于发现和学习,即使身处内卷时代,相信你也可以争得自己的一席之地!《Android Jetpack Compose开发应用指南》领取请戳下方!!原创 2022-12-13 15:54:14 · 706 阅读 · 0 评论 -
高级的Android开发需要掌握哪些能力?阿里大咖亲身经历
总结一下,其实成为45K的程序员对于大多数人而言还是十分有难度的,并且程序员的职业生涯是很短暂的,我们一定要事先做好规划。同时要有危机感,要有备选方案,不要等到自己走进死胡同里之后再后悔。祝福大家都能在自己的职业生涯中走的一帆风顺。原创 2022-12-01 21:14:56 · 656 阅读 · 0 评论 -
Android 数据库 Room从入门到进阶
Room 在 SQLite 上提供了一个抽象层,以便在充分利用 SQLite 的强大功能的同时,能够流畅地访问数据库。原创 2022-11-30 19:18:14 · 791 阅读 · 0 评论 -
Android性能优化的逻辑,都藏在项目实战经验里
性能优化问题不是一两次版本就能解决的,在项目全过程中,我们都需要懂得性能优化的方法,这样才能更好地进行Android开发工作原创 2022-11-16 17:59:56 · 134 阅读 · 0 评论 -
被称为“2022大热门”的Android车载系统开发,到底应该怎么学?
随着汽车智能化的速度不断加快,车载系统目前已经进入了混战的阶段,国产车载系统纷纷加入布局,很多车企也基于Android车载系统来开发自己的新系统,不过想要打造像安卓一样的汽车生态,还有很大的发展空间。Android Automotive OS最明显的特点有:1、界面布局更贴近手机本身,车载娱乐生态丰富,在保证用户使用习惯的同时,还能提供更多元的需求,驾驶体验优。2、高效易触,提供了语言交互和手势交互等,安全驾驶优,这也是智能化汽车发展中人们最为关心的一大内容。原创 2022-11-14 16:20:03 · 708 阅读 · 0 评论 -
担任Android面试官的我,想给大家提一些面试建议
我在Android开发岗位上做了5年了,在公司也算是老前辈了,今年我申请负责秋招的技术面,在面试时确实发现了不少的问题。对于很多同学说的:“找不到工作是环境问题,不是我能力问题”这句话,我想说的是,,我们公司变大了,但是招人需求少了很多,因为业务基本成熟了。行业回暖,大家的机会少了,不少计算机同学选择离开互联网行业或者转向其他方向,,我想原因可能是Android前景不好的言论大行其道,让不少同学谨慎了很多。,这对技术扎实的同学影响并不算大,从长远来看,这种“内卷”带来的技术提高是会让我们终身受益的。原创 2022-11-09 21:06:50 · 196 阅读 · 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面试题已经整理完毕(内含字节、阿里大厂面经)
在这个信息化时代,我们可以在网络上搜索到大量Android学习资料,有时间的同学还可以去阅读经典教材,去自己运行代码慢慢摸索。但这种方法更适合有充足时间、想要入门Android的人。而面试当前,如临大敌,这样显然不太现实,尤其是近几年来,,范围更加广泛,对个人技术能力的要求更高。网上的资料一个明显的特点就是,这对于注重系统思维的编程来说并不是最佳学习方案。当前秋招正在如火如荼的进行当中,也有了不少的新鲜面经,大家必须要注意的是,对于面试题不是光知道这个会不会,需要。原创 2022-10-14 18:10:43 · 103 阅读 · 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 评论 -
可跨页字符串:使用Spans设置文本样式
Spans 是用于在字符级别(例如,更改不同单词的颜色)或在段落级别(例如,制作项目符号列表)设置文本样式的标记对象。跨度字符串:当在创建文本或标记后无需修改文本或标记时,将使用此选项。跨线字符串:当不需要修改文本但需要修改标记(即需要向文本添加一些跨度)时,可以使用此功能。可跨接字符串构建器:当您需要修改文本和标记时,将使用此选项。这是关于安卓中跨度的快速介绍。现在,让我们看看它的一些用例。原创 2022-09-28 10:46:19 · 600 阅读 · 0 评论 -
Android/iOS:通过流混合改善实时流媒体体验
如下图所示,当房间内多个用户发布流时,服务器根据布局配置将两个流合并为一个流。观众播放混流观看用户A和用户B的屏幕。原创 2022-09-21 15:41:08 · 339 阅读 · 0 评论 -
什么是 Termux,我们如何使用它?
因此,如果您对黑客技术感兴趣,那么这一定不是您第一次听说这个名为 termux 的应用程序。简而言之,termux 是一个 android 应用程序,它被定义为一个终端仿真器以及一个旨在在 android 上运行大多数 Linux 包的 Linux 环境。但是,由于 termux 应用程序不具备 Linux 的所有功能,因此用户必须将他的期望控制在一个限度内。但我建议尝试这个应用程序,因为它有一个相当不错的报价。该应用程序的用户界面缺少任何类型的图形工具,因此每次都需要编写所有命令,这当然很耗时。原创 2022-09-19 11:01:38 · 8936 阅读 · 0 评论 -
使用OkHttp拦截器和Retrofit进行缓存
在这篇博客中,我们将学习如何使用 OkHttp 拦截器和 Retrofit 在 Android 中缓存 HTTP 响应,以构建离线优先的 Android 应用程序。让我们了解缓存将如何在我们的 Android 应用程序中帮助我们。现在,让我们学习如何在 OkHttp 和 Retrofit 中启用缓存。在此之前,我们需要了解 Retrofit 使用 OkHttp 客户端进行 HTTP 操作,这意味着无论我们要启用缓存做什么,都需要使用 OkHttp。原创 2022-09-16 09:39:25 · 527 阅读 · 0 评论 -
Android:带有改造和单元测试的网络调用
Retrofit是Square开发的适用于Android、 Java和Kotlin的类型安全REST客户端。该库提供了一个强大的框架,用于验证和与API交互以及使用OkHttp发送网络请求。单元测试是一种软件测试,其中测试软件的单个单元或组件。目的是验证软件代码的每个单元是否按预期执行。单元测试由开发人员在应用程序的开发(编码阶段)期间完成。单元测试隔离一段代码并验证其正确性。一个单元可以是一个单独的函数、方法、过程、模块或对象。原创 2022-09-12 09:15:00 · 205 阅读 · 0 评论 -
如何管理 Gradle 模块之间的依赖关系?
在多模块项目中,手动管理依赖项可能具有挑战性。例如,如果您在修改另一个模块上的库版本后忘记更新库版本,您的项目将有一个重复的库。从Gradle 7.4.1开始,版本目录是管理 Gradle 项目(也称为模块)之间依赖关系的推荐方式。要使用版本目录,只需libs.versions.toml在根项目中添加文件。在toml文件中,您可以添加项目的依赖项。而已!这些依赖项在您的 Gradle 项目中可用。以下是您如何在项目的build.gradle.kts.原创 2022-09-08 09:48:34 · 1167 阅读 · 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 评论 -
将文件存储在 Flutter 中的 Android 10、11、12+ 下载文件夹中。
在Flutter中,您可能会遇到在 Android 10+ 上将文件保存在公共存储中的问题。在本文中,我们将看到如何在使用 Flutter 在 Android 上进行范围存储后将文件保存到下载文件夹中。创建一个名为的新 kt 文件FileUtils.kt并添加一个名为requestPermission.在该方法中,调用ActivityCompat.requestPermissions以请求存储运行时权限。2、在AndroidManifest.xml中添加相关的存储和网络权限。4、请求存储运行时权限。...原创 2022-08-29 14:13:05 · 2919 阅读 · 0 评论 -
使用 NativeScript 的 Android 持续后台服务
最近,我开始着手在 Android 上制作专门的语音助手。至少可以说我与 Java 关系密切,而且我还没有时间玩 Kotlin,NativeScript 似乎是显而易见的选择。现在这是一项正在进行的工作,但我已经了解了很多关于 Android 的知识,我想与您分享一些我的发现。首先,对于这项任务,我需要不断地听唤醒词并做出相应的反应。在任何平台上实现此功能的明显选择是某种后台服务或守护程序。...原创 2022-08-26 14:25:03 · 320 阅读 · 0 评论