Android App
文章平均质量分 75
Android App
micro9981
我有多年软件开发经验。
软件开发定制请联系我,https://github.com/micro3721
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
主要的软件设计模式及其在Kotlin中的实现示例
提供一个接口,用于创建相关或依赖对象的家族,而不需要指定具体类原创 2024-07-30 12:04:59 · 1025 阅读 · 0 评论 -
RxJava 面试题及其答案
操作符是用于变换、组合、过滤 Observable 数据流的方法。map:对数据进行转换。flatMap:将数据转换为多个 Observable 并合并。filter:过滤数据。zip:组合多个 Observable 的数据。concat:顺序连接多个 Observable。Scheduler 是 RxJava 中用于指定代码在哪个线程执行的组件。:用于 I/O 操作(网络请求、文件读写等)。:用于 CPU 密集型计算。:为每个任务创建一个新线程。:在单个线程中执行。原创 2024-07-25 11:40:41 · 2743 阅读 · 0 评论 -
调试 RxJava 代码
有些调试工具专门用于 RxJava,如 RxJava2 Debugger,它可以为 RxJava 提供更加详细的错误栈信息,便于定位问题。如果你的 RxJava 链条较长,可以将链条拆分成多个部分,每个部分进行单独调试。通过这些方法,你可以更有效地调试 RxJava 代码,找到潜在的问题并解决它们。方法有多个重载版本,可以传入不同的回调函数来处理数据项、错误和完成事件。可以用来设置全局的钩子函数,捕获所有的未处理错误或进行其他全局配置。操作符来创建自定义的调试操作符,便于在多个地方复用相同的调试逻辑。原创 2024-07-25 11:27:55 · 660 阅读 · 0 评论 -
Android Navigation 组件原理和使用教程
Android Navigation 组件是用于简化导航相关操作的框架,允许你在应用中管理应用内各个部分之间的导航。该组件是Android Jetpack的一部分,主要包含三个部分:导航图(NavGraph)、NavHost和NavController。原创 2024-07-19 00:34:16 · 2236 阅读 · 0 评论 -
在 Android 中定义和使用自定义属性
首先,我们需要在文件中定义自定义属性。这些属性可以是颜色、尺寸、字符串等。创建或打开</</在上面的代码中,标签定义了一组与CustomView关联的属性。每个attr标签定义了一个属性及其数据类型(这里我们定义了一个颜色属性和一个尺寸属性customSize接下来,我们将在布局 XML 文件中使用这些自定义属性。假设我们有一个自定义视图CustomView。在布局文件中(例如),我们可以这样使用自定义属性:在这里,和是我们在attrs.xml中定义的自定义属性。原创 2024-07-13 17:59:22 · 1211 阅读 · 0 评论 -
如何编写Android应用的测试代码
通过这些示例和工具,你可以编写出高效的单元测试和UI测试,提高应用的质量和稳定性。虽然编写测试程序可能会有一定的学习曲线,但掌握这些技巧后,能够为你的开发过程带来显著的质量提升和开发效率的提高。该项目展示了一个使用Clean Architecture的Android应用,并包含了使用JUnit、Mockito和Espresso进行测试的示例。在GitHub上,有许多示例项目展示了如何使用不同的测试框架进行Android应用测试。项目包含一个基本的Android应用,并使用JUnit进行测试。原创 2024-07-12 09:58:50 · 1609 阅读 · 0 评论 -
注解的原理和解析
注解(Annotation)是一种用于为代码中的元素(类、方法、变量等)添加元数据的机制。它们不直接参与程序的逻辑操作,但可以在编译时或运行时被读取和处理,以实现特定的功能或行为。定义一个注解很简单,只需使用@interface关键字。@Retention:指定注解的保留策略,有SOURCECLASSRUNTIME三种。@Target:指定注解的作用目标,如METHODFIELDTYPE等。@Inherited:允许子类继承父类的注解。:将注解包含在Javadoc中。原创 2024-07-07 22:33:33 · 1281 阅读 · 0 评论 -
Android 注解的语法原理和使用方法
当注解只有一个元素时,我们可以简化其使用方式。特别是当这个元素名为value时,可以直接使用该注解,而不需要显式指定元素名。Retention;当注解有多个元素时,需要显式指定每个元素的值。在这种情况下,不能省略元素的名称。Retention;@Inject// 构造函数实现} }Module;Provides;原创 2024-07-07 21:50:02 · 1826 阅读 · 0 评论 -
依赖注入和没有依赖注入代码对比,直观理解依赖注入功能
通过上述对比,可以直观地看到使用 Dagger Hilt 进行依赖注入的优势。Hilt 简化了依赖的创建和管理,减少了手动编写的样板代码,提高了代码的可维护性和可测试性。Hilt 的底层原理通过编译时代码生成和运行时依赖注入,提供了一种模块化、可测试且可维护的依赖管理方式。原创 2024-07-06 23:34:18 · 1086 阅读 · 0 评论 -
依赖注入的优点、解决的问题以及其底层原理和逻辑
依赖注入(Dependency Injection, DI)是一种设计模式,用于实现控制反转(Inversion of Control, IoC)。它通过将对象的依赖关系从类内部转移到外部配置或注入,从而提高代码的可维护性、可测试性和可扩展性。以下是依赖注入的优点、解决的问题以及其底层原理和逻辑。提高代码可维护性和可读性:提高代码可测试性:简化对象创建过程:提高代码灵活性:依赖管理复杂性:测试困难:紧耦合:依赖注入的实现通常包括以下几个核心概念和步骤:注入点(Injection Point):依赖图(Dep原创 2024-07-06 13:07:47 · 1353 阅读 · 0 评论 -
ProGuard 规则指南
关于我ProGuard 是一个优化和混淆 Java 和 Android 应用程序的工具。它通过缩小、优化和混淆代码,减少应用程序的大小并提高安全性。ProGuard 规则用于控制这些操作,确保某些类、方法和字段在混淆过程中被保留或处理特定方式。以下是一些常用的 ProGuard 规则及其解释:保留 类,不对其进行混淆。保留 类及其所有字段和方法。保留 类中所有公共字段。保留 类中所有公共方法。保留所有继承自 的类。保留所有实现 的类。保留所有枚举类的 和 方法,这对于正常使用枚原创 2024-07-01 15:58:32 · 1056 阅读 · 0 评论 -
android studio 改变avd虚拟机路径
android studio avd默认路径是C盘,一个虚拟机文件10G左右,很占用C盘空间。但可以修改配置文件改变avd虚拟机的保存路径。C:\Users\micro\.android\avd\Pixel_4_API_28.ini的内容改为如下:avd.ini.encoding=UTF-8path=D:\AndroidIDEA\.android\avd\Pixel_4_API_28.avdpath.rel=avd\Pixel_4_API_28.avdtarget=android-28原创 2022-02-13 22:49:20 · 2745 阅读 · 0 评论 -
android studio 改变.gradle默认目录
android studio 的默认目录是c盘,占用C盘空间。按照下面方式将.gradle默认目录改在D盘下。修改的文件是D:\Program Files\Android\Android Studio\bin\idea.properties然后重启android studio 生效。修改后的完整idea.properties文件如下:# Use ${idea.home.path} macro to specify location relative to IDE install..原创 2022-02-13 22:30:18 · 6071 阅读 · 0 评论 -
去掉Android is starting...
frameworks\base\core\res\res\values\strings.xml<!-- [CHAR LIMIT=40] Title of dialog that is shown when system is starting. --> <string name="android_start_title">Android is starting...原创 2019-06-14 16:28:01 · 4280 阅读 · 10 评论 -
error: expected reference but got (raw string)
环境:Android Studio 3.2.1Build #AI-181.5540.7.32.5056338, built on October 9, 2018JRE: 1.8.0_152-release-1136-b06 amd64JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.oWindows 7 6.1错误:app\buil...原创 2019-03-14 14:44:13 · 4763 阅读 · 0 评论 -
android studio 编译后 app-debug.apk 和 app-release.apk 的区别
AS版本:Android studio 3.2.1app-debug.apk 和 app-release.apk 的核心区别在AndroidManifest.xml 。生成app-debug.apk时,编译器会自动在该apk的AndroidManifest.xml中添加 android:debuggable="true"生成app-release.apk时,编译器会自动在该apk的And...原创 2018-12-26 12:16:13 · 16109 阅读 · 4 评论 -
Android Studio 加载第三方jar包并提高framework.jar包优先级
android studio 版本 3.2.1framework源码编译出来的jar路径如下:out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jardroidlogic源码编译(vendor/amlogic/frameworks/core/java)出来的jar路径:out/target/comm...原创 2018-12-26 12:12:04 · 1688 阅读 · 2 评论 -
android studio lint检查
android studio 3.2.1android:debuggable="true" 即编译生成debug版时,不会lint检查。编译生成release版时才会lint检查,一般提示如下:Lint found fatal errors while assembling a release target.To proceed, either fix the issues ide...原创 2018-12-27 12:02:16 · 1410 阅读 · 0 评论
分享