
Android开发知识汇总
文章平均质量分 79
大耳猫
这个作者很懒,什么都没留下…
展开
-
【解决】编译时出现A problem occurred evaluating initialization script.
本文给出了编译时出现A problem occurred evaluating initialization script.问题的怀疑原因并且给出了实际的解决办法原创 2025-04-26 09:56:06 · 52 阅读 · 0 评论 -
Android Build Variants(构建变体)详解
Android 构建变体(Build Variants)是强大且灵活的机制,由构建类型(如 debug、release)和产品风味(如免费版、付费版)组合而成。借助它,开发者能从同一代码库生成多个定制化的 APK 版本。在配置方面,可在 build.gradle 文件中定义构建类型和产品风味,同时能设置不同的属性和资源。通过构建变体,不仅能针对不同应用市场、客户群体、功能特性等定制应用,还能优化应用性能和大小,方便开发和测试。原创 2025-04-24 22:19:33 · 835 阅读 · 1 评论 -
Android HandlerThread
HandlerThread 是 Android 中一个非常实用的类,用于创建一个带有消息队列的后台线程,并通过 Handler 机制实现线程间的通信。可以方便地处理消息队列。它的主要目的是在一个单独的线程中处理耗时任务,避免阻塞主线程(UI 线程),从而提高应用的性能和流畅度。原创 2025-01-24 17:16:34 · 580 阅读 · 0 评论 -
Gson枚举序列化实现
众所周知,Json是无法传递枚举类型的,在对Json处理的过程中,可能大家或多或少都会遇到对于枚举处理的问题,当然解决方式也有很多种,本篇仅针对使用Gson处理Json时对于枚举问题给出一种解决方式,可能并不能适用于小伙伴们实际应用的所有场景,但作为借鉴也算是一个不错的选择。原创 2025-01-23 20:16:40 · 1036 阅读 · 0 评论 -
SO库符号冲突
SO库符号冲突是指在链接或运行时,多个动态库(.so 文件)中存在相同名称的全局符号(如函数名、变量名等),导致链接器或运行时无法确定应该使用哪个符号的定义。本文原创 2025-01-22 20:13:23 · 584 阅读 · 0 评论 -
Flutter 和 Compose Multiplatform对比
Flutter和ComposeMultiplatform跨平台实现的简单选型对,对于有需要的同学可以进行参考,选择哪个框架取决于具体项目需求、团队技术栈和开发者的个人偏好。如果项目需要高性能和丰富的插件生态,Flutter是一个不错的选择。如果项目需要在多个平台上共享UI代码,并且团队熟悉Kotlin,ComposeMultiplatform也是一个很好的选择。原创 2025-01-19 16:33:20 · 1043 阅读 · 0 评论 -
Jetpack 介绍
Jetpack是一个由多个库组成的套件,可帮助开发者遵循最佳实践、减少样板代码并编写可在各种Android版本和设备中一致运行的代码,让开发者可将精力集中于真正重要的编码工作。原创 2025-01-19 16:24:39 · 987 阅读 · 0 评论 -
Android 屏幕采集并编码为H.264
在Android平台上实现屏幕采集并编码为H.264,需要通过MediaProjection API请求用户授权屏幕采集,适配不同安卓版本,使用MediaCodec进行视频硬编码,配置编码参数,并通过链式调用和配置将采集的屏幕数据编码为H.264格式,最后可以将编码后的视频数据推送到RTMP或RTSP服务,用于直播或视频会议等应用场景。原创 2024-12-06 20:39:08 · 1640 阅读 · 0 评论 -
Android H.264解码实现
Android MediaCodec 是安卓系统中处理音视频编解码的关键组件,其工作流程涵盖配置、数据输入、解码及输出等环节,具备利用硬件加速提升性能、接口统一便于开发等优势,广泛应用于视频播放、音视频编辑、实时通信等场景,但使用时需注意不同安卓版本的兼容性以及做好资源管理,避免出现适配和资源相关问题。原创 2024-12-04 20:27:21 · 1349 阅读 · 0 评论 -
Android Camera2采集并编码为H.264
Camera2与MediaCodec的结合在Android平台上提供了一种强大的视频处理解决方案。Camera2 API负责高效地从摄像头采集原始视频帧,而MediaCodec API则负责将这些帧实时编码为H.264格式,这是目前最广泛支持的视频编码标准之一。这种组合不仅利用了硬件加速来提高编码性能,减少CPU负担,还确保了视频的高质量输出和良好的兼容性。通过精确控制编码参数,可以根据应用需求调整视频的比特率、帧率和分辨率,实现定制化的视频录制和处理。原创 2024-11-30 08:43:10 · 1448 阅读 · 0 评论 -
Android 基于Camera2 API进行摄像机图像预览
Android Camera2 API 是从 Android 5.0(Lollipop)开始引入的,用以取代旧的 Camera API。Camera2 提供了更强大和灵活的相机控制能力,允许开发者实现更多的相机功能,如手动对焦、手动曝光、原生 RAW 图像捕获等。该博文是博主近期准备实现摄像机编解码系列中的第一篇、如果对此感兴趣的话,欢迎大家关注或者留言,共同进步。原创 2024-11-23 10:10:40 · 1394 阅读 · 0 评论 -
Jetpack 之 Ink API初探
近期看到谷歌官方推文有一篇关于Jetpack Ink API的文章,随即进行了了解和研究,该SDK主要就是低延时的手写绘制,比如通过手指或者触控笔在安卓设备上面进行笔记记录或者在安卓设备上面进行素描之类类似于纸张上面的操作。当然了可能现在市场上已经存在了此类APP,或者此类的SDK,具体实现方式可能不一,有通过Canvas实现的或者OpenGL实现的,但如果没有系统层面支持的话,一般书写延迟都会相对较高,特别是屏幕越大,越明显,但博主对该SDK书写进行了验证,确实非常丝滑。原创 2024-11-14 21:31:13 · 1359 阅读 · 0 评论 -
主动测量View的宽高
熟知UI显示流程的同学可能都知道,View要获取到尺寸,必须经过测量才能拿到,而测量则是UI显示流程的一个环节,所以按照成正常情况想要获取到View的尺寸,就需要至少等到View显示过程中的测量环节结束才能拿到。但是在开发过程中,可能有一些小众场景,为了显示效果,需要在View显示流程触发之前,对未固定尺寸的View根据内容获取其宽高,进而做其他显示上处理,如果有这样需求的同学,那么通过本篇你将学会如何在View显示流程触发之前获取View的宽高。原创 2024-11-13 20:08:10 · 428 阅读 · 0 评论 -
Android Studio 多工程公用module引用
在项目开发的过程中,有时候一个外部Module可能会被多个工程依赖,如果按照正常的安卓导入Module的方式的话,会将外部Module拷贝到本工程,然后引入,实际上已经与原Module没关系了,这样本身没有什么问题,但是如果想要通过一处修改多处生效的话,可能就需要来回拷贝代码了,这样就会非常的麻烦。那么如果您也有这样需求的话,那么该篇文章肯定会帮到你。原创 2024-11-05 22:02:10 · 426 阅读 · 0 评论 -
Android 依赖统一配置管理(Version Catalogs)
通过依赖统一配置管理(Version Catalogs),您能够以可扩容的方式添加和维护依赖项和插件。使用 Gradle 版本目录,您可以在拥有多个模块时更轻松地管理依赖项和插件。您不必对各个 build 文件中的依赖项名称和版本进行硬编码,也不必在每次需要升级依赖项时都更新每个条目,而是可以创建一个包含依赖项的中央版本目录,各种模块可在 Android Studio 协助下以类型安全的方式引用该目录。原创 2024-11-05 21:57:22 · 1701 阅读 · 0 评论 -
Dijkstra算法初探
Dijkstra算法是由荷兰计算机科学家艾兹格·戴克斯特拉(Edsger W. Dijkstra)在1956年提出的,用于在图中找到单个源点到所有其他顶点的最短路径的算法。这个算法特别适用于具有非负边权重的图,它可以有效地解决单源最短路径问题(Single-Source Shortest Path Problem, SSSP)。Dijkstra算法在许多领域都有应用,例如在网络路由在网络中找到数据传输的最短路径或者在地图服务中计算两点之间的最短行驶路线等。原创 2024-11-01 07:30:00 · 645 阅读 · 0 评论 -
Android 部署web服务器
AndServer 是一个轻量级的 Android Web 服务器库,它允许开发者在 Android 设备上构建和运行 Web 应用程序。AndServer 是由严振杰开发的一个轻量级 Android Web 服务器库,它类似于 Apache 或 Tomcat,但是专门为 Android 设计,无需额外的第三方库或硬件编译。它体积小、使用简单,支持动态网站、静态网站以及 HTTP API。原创 2024-10-29 21:35:06 · 2041 阅读 · 0 评论 -
Android NSD局域网发现服务
网络服务发现(NSD)是一种机制,它允许设备在本地网络上相互发现并提供服务。在Android平台上,NSD API使得应用可以轻松地发现和注册网络上的服务。原创 2024-10-28 20:01:17 · 688 阅读 · 0 评论 -
Android Gradle
Gradle 是一款强大的自动化构建工具,广泛应用于 Android 应用开发。它通过灵活的配置和丰富的插件系统,为项目构建提供了极大的便利。本文只是简单的介绍 Gradle 在 Android 开发中的使用,包括其核心概念、构建配置、依赖管理、以及性能优化等方面的内容,其实完整的Android Gradle涵盖的内容非常多,后续如果有机会,我将完整的整理一篇出来,感谢大家观看,喜欢的可的可以加关注、收藏或者点赞,后续我将继续努力,以更新出更高质量的文章。原创 2024-10-24 21:14:05 · 839 阅读 · 0 评论 -
Android Studio 工程目录结构描述
在Android开发中,理解项目的目录结构是非常重要的,因为它帮助你组织代码和资源,确保项目的可维护性和可扩展性。可能有很多同学,搞了多年但都没有能够完全理解工程下所有文件的作用与意义,所以在这里我系统的会总了整个安卓工程的目录结构及其作用,一个是自己对这些基础知识的一个查漏补缺的过程,另一个也希望能够给刚入门的安卓小朋友或者已经奋斗多年的安卓同学一些帮助。原创 2024-10-24 20:25:52 · 276 阅读 · 0 评论 -
Android Studio Gradle版本、插件以及Android API对应关系(持续更新)
Android Studio 构建系统以 Gradle 为基础,而 Android Gradle 插件添加了几项专用于构建 Android 应用的功能。在这里我汇总了Android Gradle版本、插件以及Android API之间的对应关系,主要是为了自己后面方便查找,另外也希望能够给有需要的同学提供帮助。原创 2024-10-23 21:07:01 · 2301 阅读 · 0 评论 -
一文搞懂Android主题和样式
本篇介绍了Android中的主题(Theme)和样式(Style)的概念、作用及其区别。主题用于定义应用的整体视觉风格,影响整个应用或特定Activity的外观,而样式则主要应用于单个视图,定义其外观属性。也还探讨了如何创建和应用主题,强调了动态主题支持的重要性,尤其是在深色模式下的应用。此外,还提到了Material Design 3(Material You)的动态颜色功能,强调其个性化和用户体验的提升。通过合理使用主题和样式,开发者可以创建一致且吸引人的用户界面。原创 2024-10-21 20:44:23 · 2544 阅读 · 0 评论