TechBlog
首页分类标签搜索关于
← 返回分类列表
加载中...

© 2025 TechBlog. All rights reserved.

分类

共 372 篇文章
Target 28遇到的问题

Target 28遇到的问题

Target 28遇到的问题

时间:12/25/2025

RxJava在Android开发中的实战指南

RxJava在Android开发中的实战指南

例如,在传统的异步编程中,我们可能需要使用回调函数来处理网络请求的结果,而在RxJava中,我们可以将网络请求封装成一个Observable对象,通过订阅这个对象来获取请求结果,并且可以在这个过程中对数据进行各种处理。这种基于事件驱动的编程模型,使得代码的逻辑更加清晰,也更易于维护和扩展。操作符则更加灵活,它可以将被观察者发送的每一个事件转换为一个新的Observable,然后将这些新的Observable发射的数据合并后放进一个单独的Observable中发射出去,实现一对多的转换。

时间:10/26/2025

Android-Gradle-下载后本地使用方式macOS-Windows通用

Android-Gradle-下载后本地使用方式macOS-Windows通用

摘要:在Android开发中,为了避免网络受限或加快构建速度,可以手动下载Gradle分发包(推荐gradle-x.x.x-all.zip)并配置本地使用。操作步骤包括:将下载的zip文件放入.gradle/wrapper/dists/对应版本目录,修改gradle-wrapper.properties文件指向本地路径,并在AndroidStudio中启用离线模式。这种方式适用于内网、离线开发或CI/CD环境,能显著提升构建速度并确保版本一致性,但需手动管理文件更新。

时间:10/24/2025

Aosp13-手机sim卡信号格显示修改

Aosp13-手机sim卡信号格显示修改

android13 信号格显示修改

时间:09/11/2025

Android-Zygote-源码剖析

Android-Zygote-源码剖析

Zygote 进程是由 init 启动的,Zygote 的启动是通过 init 进程完成的,init.rc 文件中定义了启动命令,启动的程序是 app_process64,它是一个 C++ 程序,是 Zygote 的 C++ 部分。app_process64 的主要任务是:初始化个启动 JVM(Java 虚拟机)注册 JNI 接口,用于桥接 Native C++ 层和 Framework Java 层调用 ZygoteInit.main() 进入 Java 层。

时间:09/04/2025

优雅草黑曼巴知识付费项目交付顺带深入剖析-WebApp-的封装原理与实践-卓伊凡

优雅草黑曼巴知识付费项目交付顺带深入剖析-WebApp-的封装原理与实践-卓伊凡

优雅草黑曼巴知识付费项目交付顺带:深入剖析 WebApp 的封装原理与实践-卓伊凡

时间:08/26/2025

Android-SystemServer-系列专题篇四SystemServerInitThreadPool线程池管理

Android-SystemServer-系列专题篇四SystemServerInitThreadPool线程池管理

本篇重点介绍一下SystemServerInitThreadPool,顾名思义此类针对SystemServer进程的提供了一套ThreadPool线程池的统一标准方案,下面从源码和日志的角度来剖析一个这个类。

时间:08/26/2025

手机开启16k-Page-Size

手机开启16k-Page-Size

我有一个pixel8的手机,系统是Android16,如下操作都是基于这个手机做的。

时间:07/23/2025

BaseActivity-和-BaseFragment-的现代化架构ViewBinding-与-ViewModel-的深度整合

BaseActivity-和-BaseFragment-的现代化架构ViewBinding-与-ViewModel-的深度整合

BaseActivity 和 BaseFragment 实现,集成了 View Binding,并增加了对 Lifecycle 和 ViewModel 的支持,同时进一步简化了代码结构,使其更易用、更灵活。在 onDestroy(Activity)和 onDestroyView(Fragment)中清理 binding 引用,避免内存泄漏。通过这种方式,可以轻松在项目中集成 View Binding 和 ViewModel,并享受其带来的便利和安全性!减少冗余代码,提高可读性和可维护性。

时间:03/16/2025

android-ConstraintLayout布局-实战打造复杂界面的最佳实践

android-ConstraintLayout布局-实战打造复杂界面的最佳实践

每个视图都需要在水平和垂直方向上至少有一个约束,否则视图会默认放置在左上角(0,0)位置。(或 **app:layout_constraintEnd_toEndOf)**约束到父布局的顶部和左右边缘。的使用,涵盖基本布局、引导线、链、屏障、组以及动态修改约束等内容。:将多个视图在水平或垂直方向上连接起来,形成一种特殊的关系。相对于其他视图的约束:将视图的边与其他视图的边对齐。动态调整位置,始终位于按钮1和按钮2的结束边。文本框位于按钮1和按钮2的下方,水平居中。动态修改按钮的约束,将其移动到右下角。

时间:03/16/2025

在Android中,子线程可以更新UI吗

在Android中,子线程可以更新UI吗

子线程直接更新UI会引发崩溃,必须通过主线程机制切换。

时间:03/16/2025

Android-百度语音合成工具类封装内存泄漏防护与简化调用

Android-百度语音合成工具类封装内存泄漏防护与简化调用

该工具类封装了百度语音合成的核心功能,适用于 Android 平台,具有高兼容性、内存泄漏防护和简化调用等优点。通过清晰的接口设计和优化,开发者可以轻松集成语音播报功能,同时避免常见的内存泄漏问题。使用 Application Context,避免持有 Activity 引用。适配 Android 6.0 及以上版本,动态权限处理和存储适配。在 release 方法中清理所有资源,避免内存泄漏。提供默认回调实现,调用方无需强制实现回调接口。使用线程池管理异步任务,确保线程安全。

时间:03/16/2025

Android-高版本兼容的原生定位工具类封装支持-Android-5.0-到-Android-14

Android-高版本兼容的原生定位工具类封装支持-Android-5.0-到-Android-14

本文提供了一个完整的 Android 原生定位工具类封装,支持从 Android 5.0 到最新的 Android 14 版本。该工具类基于 LocationManager,实现了定位权限检查、定位开关检测、实时位置更新监听以及获取最后一次已知位置的功能。针对高版本 Android 系统的权限变化和后台定位限制,工具类进行了适配优化,确保在不同系统版本上都能稳定运行。针对 Android 14 的隐私和安全增强,工具类增加了对前台服务和权限请求的适配。如果需要在后台获取位置更新,可以使用前台服务,并在。

时间:03/16/2025

特殊字符-深度实战Android-13-系统定制之-Recovery-模式瘦身指南

特殊字符-深度实战Android-13-系统定制之-Recovery-模式瘦身指南

精简 Recovery 菜单项,系统启动耗时减少 18%,并通过了 CTS/VTS 全量测试。需要完整代码 Patch 或定制化方案可私信获取!在 Android 13 商显设备开发中,需精简 Recovery 模式的菜单选项(如。出现黑屏卡死问题,需综合方案解决。

时间:03/16/2025

Android-全局工具类-AppHolder高效管理-Application-和-Activity

Android-全局工具类-AppHolder高效管理-Application-和-Activity

引言功能特性

时间:03/15/2025

AndroidRuntimeShader-应用

AndroidRuntimeShader-应用

RuntimeShader 是 Android 13(T)中新增的特性,用于逐像素渲染界面,它使用 AGSL(Android Graphics Shading Language)编写着色器代码,底层基于 Skia 图形渲染引擎。官方介绍详见 →。相较于 OpenGL ES,RuntimeShader 具有以下特点。

时间:03/15/2025

组件通信框架ARouter原理剖析

组件通信框架ARouter原理剖析

ARouter的核心工作原理路由框架的实现机制拦截器的设计思想实际项目中的应用方案规范路由路径定义合理使用拦截器注意性能优化做好降级处理至此,我们完成了对Android主流第三方库的深入分析。这些框架的设计思想和实现机制对我们的日常开发工作有很大的启发和帮助。希望通过这些文章的学习,能够帮助你更好地理解和使用这些优秀的开源框架。

时间:03/15/2025

Android启动侦探团追踪Launcher启动的最后一公里

Android启动侦探团追踪Launcher启动的最后一公里

当Android设备完成开机动画后,某些产品会陷入诡异的“黑屏时刻”——仿佛系统在玩捉迷藏。通过层层递进的“侦查”,我们锁定了Launcher启动完成的决定性瞬间——当IdleHandler在消息队列摸鱼时触发开机广播。到消息队列——这相当于在后台安插了一个“摸鱼检查员”,专等CPU空闲时行动。确认当前Activity的身份——如果是Launcher,就要搞大动作了!// 安插“摸鱼检查员”(IdleHandler)到消息队列。在Activity渲染完成后才处理启动收尾,避免“开机即卡顿”的差评。

时间:03/15/2025

Android-UI-组件系列二Button-进阶用法

Android-UI-组件系列二Button-进阶用法

在这篇博客中,我们深入探讨了 Button 的进阶用法,重点介绍了如何通过 事件处理 来响应用户的操作,如何使用 自定义样式 来提升按钮的外观,并利用 StateListDrawable 来管理按钮在不同状态下的表现。这些技巧能够帮助你打造更具交互性、视觉吸引力和动态响应的按钮,提升用户体验。

时间:03/14/2025

android.widget包介绍

android.widget包介绍

是 Android 开发中用于构建用户界面(UI)的核心包之一。它包含了大量的 UI 控件(如按钮、文本框、列表等),这些控件通常被称为“小部件”(Widget)。包中的类大多继承自,因此它们都具备视图的基本特性。以下是。

时间:03/14/2025

Android-自定义蓝牙扫描动画多波浪扩散效果

Android-自定义蓝牙扫描动画多波浪扩散效果

这是一个用于 Android 的自定义 View,模拟蓝牙扫描时的多波浪扩散动画效果。每个波浪的半径逐渐增大,透明度逐渐降低,形成连续的波纹扩散效果。通过调整动画的延迟时间和时长,确保波浪之间的间隙较小,动画流畅且美观。每个波浪之间的启动间隔为 500 毫秒,动画时长为 1500 毫秒,波浪之间的间隙较小。当一个圆圈的动画结束时,下一个圆圈的动画立即开始,形成连续的波纹效果。通过调整动画的延迟时间和动画时长,确保波浪之间的间隙较小。支持多个圆圈(波浪)依次扩散,形成连续的波纹效果。

时间:03/13/2025

Kotlin高效实现-Android-ViewPager2-顶部导航动态配置与性能优化指南

Kotlin高效实现-Android-ViewPager2-顶部导航动态配置与性能优化指南

使用或data class定义页面信息,包括标题、图标和对应的Fragment。// Page.kt通过以上优化,ViewPager2实现顶部导航的代码变得更加高效、简洁和易于维护。和扩展函数的使用使代码更具可读性和可扩展性,同时避免了硬编码和重复逻辑。运行优化后的代码,你将获得一个高效的顶部导航实现。

时间:03/13/2025

kotlin基础知识点汇总

kotlin基础知识点汇总

Java 的写法Kotlin 的写法(Unit 跟 void 一样效果)// 在 Kotlin 可以省略 Unit 这种返回值通过以上几种函数的介绍,可以很方便优化kotlin中代码编写,整体看起来几个函数的作用很相似,但是各自又存在着不同。使用的场景有相同的地方比如run函数就是let和with的结合体。

时间:03/13/2025

Android-wgs84坐标系转CGCS2000坐标系

Android-wgs84坐标系转CGCS2000坐标系

WGS84坐标系转换至UTM坐标系。wgs84坐标系转CGCS2000坐标系

时间:03/13/2025

上一页
12345...16
下一页第 1 / 16 页