- 博客(364)
- 资源 (3)
- 问答 (1)
- 收藏
- 关注
原创 Android媒体播放框架 MediaSessionCompat与MediaControllerCompat
【代码】Android媒体播放框架 MediaSessionCompat与MediaControllerCompat。
2024-12-05 10:51:38
1589
1
原创 Android Jetpack WorkManager 基础
hl=zh-cnWorkManager是一个Android Jetpack库,用于在满足特定约束条件下,在后台执行可延迟的、异步的任务。它能够有效地管理后台工作任务,确保任务在合适的时机执行,同时也考虑到了电池优化、设备资源管理等因素。立即执行:必须立即开始且很快就完成的任务,可以加急。长时间运行:运行时间可能较长(有可能超过 10 分钟)的任务。可延期执行:延期开始并且可以定期运行的预定任务。
2024-11-20 16:36:53
990
原创 Android Activity 基础接口知识和常见问题
按HOME键隐藏程序,但点击桌面图标,重新进入程序后,发现界面跟刚安装进入时是一样的,相当于程序重新初始化加载了。举个明显的例子:比如我的应用是定时器,有倒计时功能,我第一次打开程序时,已经启动了倒计时,当我按HOME键隐藏程序,让程序进入后台,之后我从桌面点击图标进入,发现倒计时重新开始了,这很明显是个bug。原文链接:Android解决点击桌面图标,就重新启动应用程序问题。原因很可能是intent携带的信息不一样导致的。
2024-11-19 20:19:18
1163
原创 Android 国际化多语言标点符号的适配
在Android多语言场景下,标点符号的适配是一个重要的细节,以下是关于这方面的详细内容:语言习惯差异符号形式差异而在中文的中可以写成:格式化文本时注意标点符号当在代码中动态格式化文本时,要考虑语言环境。例如,使用方法时,确保插入的文本部分与所在语言的标点符号规则相匹配。示例:假设要显示一个包含价格和商品名称的句子。在英语中可能是:在中文中可以是:使用格式化工具和库(如ICU4J)ICU4J(International Components for Unicode)是一个强大的工具
2024-11-15 17:54:50
1102
原创 Android LiveData 处理数据倒灌的几种措施
在observe/observeForever时创建新的LiveData,并且根据observer保存该LiveData到mObserverMap中,而且该LiveData订阅相关的observer;其思路也很清晰,为每个传入的observer对象携带一个布尔类型的值,作为其是否能进入observe方法的开关。数据变化的通知会同时传递给两个页面中的观察者,导致它们的内部逻辑可能因为共享的数据处理而出现混乱,互相影响。每次setValue后,打开所有Observer的开关,允许所有observe执行。
2024-11-15 17:22:25
1330
原创 Android onConfigurationChanged 基础配置
当用户将设备从竖屏旋转到横屏,或者从横屏旋转到竖屏时,系统会检测到屏幕方向的配置变化。在这种情况下,方法会被调用,使得开发者可以在该方法中对布局进行重新调整,以适应新的屏幕方向。例如,对于一个新闻阅读应用,竖屏时文章内容可能以单列形式显示,而在横屏时可以将文章内容和相关图片以双列形式更好地呈现。在Activity类中重写onConfigurationChanged方法在Activity类中重写方法来处理屏幕方向改变后的逻辑。以下是一个简单的示例代码:在上述代码中,当屏幕方向改变时,方法会被调
2024-11-11 13:51:46
2130
1
原创 Android View 的焦点控制基础
在这种复杂的 RecyclerView 嵌套场景中,要解决内层 item 的焦点获取问题,需要全面考虑多种因素,对焦点机制在遥控器和触摸操作下的行为有深入的理解,并仔细排查可能存在的问题。在 RecyclerView 嵌套 RecyclerView 且需同时支持遥控器和触摸操作的复杂情境中,获取内层 item 的焦点可能会遇到困难。当直接请求焦点无效时,我使用。在 Android 中,是有一套自己的焦点查找的算法,简单来说,就近原则,就是按方向就近查找下一个符合条件的 View。用户是否指定寻址规则。
2024-11-07 14:37:47
1978
原创 Android 使用自定义注解标注当前类
举个例子1. 自定义注解`FragmentSetting`2. 抽象基类`BaseFragment`3. 具体的`Fragment`类4. 测试类自定义注解是如何定义的定义语法基础在Java中,自定义注解是通过@interface关键字来定义的。例如,就定义了一个名为的注解。注解本质上是一种特殊的接口,它的成员变量(也称为元素)默认是publicstatic和final的。元注解的使用@Target这个元注解用于指定自定义注解可以应用的目标元素类型。例如。
2024-11-06 15:23:13
734
原创 Android 左右舵镜像支持
是一个在Android应用开发中非常重要的属性,用于控制应用是否支持从右到左(Right - to - Left,RTL)布局。它主要是为了方便应用适配那些使用RTL文字书写方向的语言,如阿拉伯语、希伯来语等。当设置为true时,Android系统会自动根据用户设备的语言设置来调整应用的布局方向。例如,如果用户设备的语言是阿拉伯语(一种RTL语言),应用中的视图布局会尽可能地以从右到左的方式呈现,从而为用户提供更自然、符合语言习惯的界面显示。在 Android 中,scaleX。
2024-11-06 14:15:48
1057
原创 Android AndroidManifest 文件内标签及属性
adb restore 容许用户指定一个恢复的数据来源(即备份的应用数据)来恢复应用程序数据的创建。因此,当一个应用数据被备份之后,用户即可在其他 Android 手机或模拟器上安装同一个应用,以及通过恢复该备份的应用数据到该设备上,在该设备上打开该应用即可恢复到被备份的应用程序的状态。允许用户备份系统应用和第三方应用的 apk 安装包和应用数据,以便在刷机或者数据丢失后恢复应用,用户即可通过 adb backup 和 adb restore 来进行对应用数据的备份和恢复。时,系统不会备份该应用的数据。
2024-11-01 15:58:16
1484
原创 Android @Volatile
Volatile是Java中的一个关键字,用于修饰变量。它主要用于解决多线程环境下变量的可见性问题。当一个变量被声明为volatile时,这意味着该变量的值在多个线程之间是“可见”的。
2024-11-01 14:09:27
1144
原创 Android Kotlin和Java相互调用使用的注解
Kotlin和Java相互调用使用的注解`@JvmName`、`@JvmField`、`@JvmStatic`、`@Throws`、`@JvmOverloads`
2024-11-01 11:21:01
533
原创 Android Pair
Pair是一种用于存储两个值的容器,这两个值可以是不同的数据类型。它就像是一个简单的包裹,把两个相关的东西放在一起方便携带和处理。例如,你可以使用Pair来存储一个用户的姓名(String类型)和年龄(Int类型),或者一个坐标中的x和y值等。
2024-11-01 10:02:17
1116
原创 Android drawable selector
Android 可绘制选择器(drawable selector)是一种可根据不同状态显示不同可绘制对象的 XML 资源。它通常用于实现按钮、列表项等控件的状态变化效果。在这个示例中,当按钮按下时,可绘制选择器将显示。一个可绘制选择器由多个。
2024-03-01 09:25:32
833
原创 Android AIDL RemoteCallbackLIst
RemoteCallbackList 是 Android SDK 中的一个类,用于帮助管理进程之间的回调。它专为进程间通信 (IPC) 场景而设计,在该场景中,应用程序的不同部分甚至不同的应用程序可能在不同的进程中运行。RemoteCallbackList 可用于在进程之间传递回调。这意味着您可以将一个进程中的回调注册到另一个进程中的对象。当该对象发生更改时,它会调用回调以通知第一个进程。是一个简单的服务,它提供一个。方法来通知所有注册的回调。是一个活动,它绑定到。
2024-02-26 15:31:47
1184
原创 android:excludeFromRecents
从这段说明可以看出,excludeFromRecents 属性的作用是将该 Activity 启动的任务排除在最近使用的应用列表之外。因此,如果将 excludeFromRecents 属性设置为 true,则该 Activity 启动的所有后续 Activity 都将不会出现在最近使用的应用列表中。也就是说,如果设置了 excludeFromRecents 属性,那么该 activity 启动的后续 activity 也会被排除在最近使用的应用列表之外。其中,应用的优先级是最重要的因素。
2024-01-24 11:18:31
2416
原创 Android App 启动状态有几种?
温启动的场景可以使用:onSaveInstanceState去保存需要的数据状态,在重建的时候可以在onCreate和onRestoreInstanceState中的参数去获取销毁前保存的数据。后台启动指的是当应用在后台运行,而不在前台显示时触发的启动方式。这不仅可以为用户提供启动反馈,还可以让应用在后台进行一些初始化工作,从而减少用户感知的启动时间。当应用已经在内存中运行,但用户在应用中导航到其他界面或按下 Home 按钮后,再次返回应用时,会触发热启动。精简布局文件,避免过度嵌套和不必要的层次结构。
2023-11-17 14:25:51
559
原创 Android App 启动流程学习
在 Android 应用的启动过程中,这个短暂的背景通常是由系统自动创建和管理的,不需要开发者直接介入。具体来说,这个背景的创建和显示是由 Android 系统的窗口管理服务和系统框架负责处理的。也就是说,Main Thread实例是存在的,只是创建它的代码我们不可见。每个应用都运行在其自己的应用进程中,这意味着每个应用都有独立的内存空间,独立的虚拟机(Dalvik 或 ART),以及独立的运行环境。总之,这个短暂的背景是由 Android 系统自动创建和管理的,以提供用户反馈和平滑的应用启动过渡。
2023-11-17 13:58:43
1896
1
原创 Android 源码学习地址
清华大学开源软件镜像站:mirrors.tuna.tsinghua.edu.cn/中国科学技术大学开源软件镜像站:mirrors.ustc.edu.cn/
2023-11-03 11:35:37
652
原创 React 组件点击事件
当使用函数组件内的 useState Hook 创建点击事件时,你可以轻松地管理组件的状态。这个箭头函数在函数组件内部的某个函数中定义,然后在按钮的点击事件处理程序中调用它以显示消息。所以,如果你使用React 16.3.0或更新版本,你可以更轻松地使用类属性或箭头函数来处理事件,而不必显式使用。从React 16.3.0开始,类属性和箭头函数的使用变得更加普遍,因为它们使代码更简洁、易读,并且自动绑定了。时,通常是在类组件中,以确保在事件处理程序中访问组件的。函数组件内部的某个函数中使用箭头函数。
2023-10-31 14:34:24
1474
原创 React 组件的3大属性: props
</div>// 子组件render() {// 子组件通过 this.props.message 访问父组件传递的数据return (<div>
2023-10-31 11:29:39
1049
原创 React 组件的3大属性: refs
字符串 Refs 是 React 中的一种创建 Refs 的方式,但自 React 16.3 版本开始,官方不再推荐使用它,因为它存在一些潜在的问题,比如性能问题和可维护性问题。以下是一个简单的 React 示例,演示如何使用 Refs 来管理焦点,具体是将焦点从一个输入框移动到另一个输入框。回调 Refs 的优点是它们在更早的 React 版本中是有效的,并且能够很好地用于访问 DOM 元素或子组件的实例。钩子可以在函数式组件中方便地创建和访问Refs,以及执行与Refs相关的操作,而无需使用类组件。
2023-10-31 11:20:40
442
原创 React 组件的3大属性: state
需要注意的是,自 React 16.8 版本引入的 Hooks 之后,你也可以在函数组件中使用 useState 来初始化和管理状态。使用 state 来管理组件的内部状态,当状态变化时,React 会重新渲染组件以反映最新的数据。它是一种在组件中跟踪状态变化的方式,以便在数据发生变化时,React 可以更新用户界面以反映这些变化。如果你的应用中有多个组件需要共享一些数据,你可以将这些数据存储在共同的祖先组件的。发生变化时,React 会自动重新渲染相关的组件部分,以便显示最新的数据。将数据传递给子组件。
2023-09-01 13:50:41
936
原创 React 组件化是什么?
React 是一个用于构建用户界面的JavaScript库,它采用了组件化的开发模式,使得开发者可以将界面划分为独立的、可重用的组件,以便更轻松地管理和维护复杂的应用程序。组件化开发是一种将应用程序拆分为小块、可重用的部分的方法。在React中,每个组件都有自己的状态(state)和属性(props),它们用于描述组件的行为和外观。在React中,组件是构建用户界面的基本单元。组件可以是功能性的,也可以是有状态的。每个组件都可以包含自己的逻辑、渲染方法和样式。
2023-09-01 10:48:14
924
1
原创 React 生命周期
在 React 中,组件的声明周期是指组件在被创建、更新和销毁的过程中所经历的一系列阶段。这些阶段允许你在不同的时间点执行特定的代码,以便管理组件的状态、数据和用户界面。在早期版本的 React 中,存在三个主要的声明周期阶段:Mounting(挂载)、Updating(更新)和Unmounting(卸载)。然而,随着 React 的发展,声明周期方法已经逐渐被推荐为不建议使用,取而代之的是使用 React Hooks。不过,了解声明周期方法仍然有助于理解 React 组件的工作原理。
2023-08-25 11:16:24
1522
原创 了解一下脚本语言
脚本语言(Scripting Language)是一种用于编写脚本(脚本是一系列按照特定顺序执行的命令或指令)的计算机编程语言。与编译型语言不同,脚本语言的代码不需要事先通过编译生成机器码,而是在运行时由解释器逐行解释执行。
2023-08-24 19:49:58
3039
原创 Android ndk 配置基础
配置NDK路径:在右侧窗格的"Properties"(属性)选项卡中,找到"NDK location"(NDK位置)字段。“按钮,然后浏览到您安装的NDK目录,选择NDK的根目录文件夹,然后单击"OK”(确定)。使用 NDK,你可以直接与这些硬件资源进行交互。应用更改并同步项目:单击"Apply"(应用)或"OK"(确定)按钮,然后Android Studio将应用您的更改并开始同步项目。选择您的应用模块:在项目结构对话框中,选择左侧的"Modules"(模块)选项卡,然后选择您的应用模块。
2023-08-21 10:12:03
240
原创 React 入门学习
React 使用称为 JSX(JavaScript 和 XML)的 HTML-in-JavaScript 语法。熟悉 HTML 和 JavaScript 可以帮助您学习 JSX,并更好地确定应用程序中的错误是与 JavaScript 还是与 React 的更特定领域相关.React 是一个用于构建用户界面的库。React 不是一个框架 —— 它的应用甚至不局限于 Web 开发,它可以与其他库一起使用以渲染到特定环境。例如,React Native 可用于构建移动应用程序;
2023-08-09 14:02:33
1068
原创 Flexbox
Flexbox(弹性盒子布局)是一种用于在网页中进行灵活的布局的CSS模块。它提供了一种简单而强大的方式来对网页元素进行排列、对齐和分布,适应不同屏幕大小和设备的需求。Flexbox 使用一维的布局模型,可以在水平或垂直方向上创建弹性的容器和项目。弹性容器(Flex Container)是父元素,用于包含弹性项目弹性项目(Flex Item)是子元素,放置在弹性容器内align-self 会覆盖 align-items 属性如下,start 会覆盖掉 last baseline。
2023-08-02 18:53:37
899
原创 android avd
通过环境变量设置是可以修改的,如果使用的是windows就要修改,否则会占用C盘。改变屏幕尺寸和密度比,貌似只是此次生效,我看文件里的数值没变。包含:编码格式、AVD路径、名称、目标版本。
2023-07-14 17:33:19
1347
原创 TypeScript 类型
联合类型表示一个值可以是多个类型之一,而交叉类型表示一个值同时具有多个类型的属性。类型保护(Type Guards):TypeScript 提供了类型保护的机制,通过一些语法和模式来缩小变量的类型范围,从而在特定的代码块中获取更具体的类型。类型安全性(Type Safety):TypeScript 强调类型安全性,通过类型检查在编译时捕获潜在的类型错误,避免在运行时出现类型相关的错误。此外,还有许多高级类型和类型操作符,如映射类型、条件类型、infer 关键字等,用于更复杂的类型操作和推导。
2023-06-29 10:25:29
1080
5
cer200706.7z
2020-07-07
cer-jitpack.cer
2020-04-20
网络请求结果的解析问题
2021-01-11
TA创建的收藏夹 TA关注的收藏夹
TA关注的人