自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

嗯...

对爱情的渴望,对知识的追求,对人类苦难不可遏制的同情心

  • 博客(364)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

原创 Android 网络判断

【代码】Android 网络判断。

2025-01-02 14:08:29 576

原创 Android媒体播放框架 MediaSessionCompat与MediaControllerCompat

【代码】Android媒体播放框架 MediaSessionCompat与MediaControllerCompat。

2024-12-05 10:51:38 1589 1

原创 Kotlin学习:1.7.语言基础之空安全

【代码】Kotlin学习:1.7.语言基础之空安全。

2024-12-04 16:59:31 400

原创 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 阴影实现留存

ScardView/ShadowLayout

2024-11-19 17:00:36 913

原创 Android ConstraintLayout 基础

首先,在 Android 项目的布局 XML 文件中,将根布局设置为。

2024-11-19 14:27:14 1386

原创 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 View 调用基础 通用属性基础 方法场景说明

【代码】Android View 调用基础 通用属性基础 方法场景说明。

2024-11-15 15:57:45 1127

原创 Android onConfigurationChanged 基础配置

当用户将设备从竖屏旋转到横屏,或者从横屏旋转到竖屏时,系统会检测到屏幕方向的配置变化。在这种情况下,方法会被调用,使得开发者可以在该方法中对布局进行重新调整,以适应新的屏幕方向。例如,对于一个新闻阅读应用,竖屏时文章内容可能以单列形式显示,而在横屏时可以将文章内容和相关图片以双列形式更好地呈现。在Activity类中重写onConfigurationChanged方法在Activity类中重写方法来处理屏幕方向改变后的逻辑。以下是一个简单的示例代码:在上述代码中,当屏幕方向改变时,方法会被调

2024-11-11 13:51:46 2130 1

原创 Android 项目模型配置管理

【代码】Android 项目模型配置管理。

2024-11-07 17:07:40 593

原创 Android View 的焦点控制基础

在这种复杂的 RecyclerView 嵌套场景中,要解决内层 item 的焦点获取问题,需要全面考虑多种因素,对焦点机制在遥控器和触摸操作下的行为有深入的理解,并仔细排查可能存在的问题。在 RecyclerView 嵌套 RecyclerView 且需同时支持遥控器和触摸操作的复杂情境中,获取内层 item 的焦点可能会遇到困难。当直接请求焦点无效时,我使用。在 Android 中,是有一套自己的焦点查找的算法,简单来说,就近原则,就是按方向就近查找下一个符合条件的 View。用户是否指定寻址规则。

2024-11-07 14:37:47 1978

原创 Android HandlerThread 基础

是Android中的一个类,它继承自Thread,主要用于在一个单独的线程中处理消息队列

2024-11-07 10:25:18 1343

原创 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 原子性类型都有哪些

【代码】Android 原子性类型都有哪些。 AtomicInteger

2024-11-01 13:24:22 1025

原创 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 fragment 转场动画

在 Android 中,可以使用。

2024-02-26 16:29:04 2051

原创 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

notepad++7.8.8

notepad++

2022-11-27

cer200706.7z

Android Studio 内配置Maven库后并不能完全解决依赖不下来的问题,因为公司的代理的问题还是浏览器的证书比JDK更新,依赖可以在浏览器上下载,但是不能在AS中下载,这时候可以通过JDK鉴权的方式或者通过导入证书的方式来解决。压缩包内是为第二种需要的证书,20200707这个时间证书尚未过期。

2020-07-07

cer-jitpack.cer

在AS里GitHub依赖有下载不成功的情况,这个时候就需要我们为Jdk添加证书,这是一种解决方式,我还是挺好用的。再来一遍,凑下字:在AS里GitHub依赖有下载不成功的情况,这个时候就需要我们为Jdk添加证书,这是一种解决方式,我还是挺好用的。

2020-04-20

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除