自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

嗯...

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

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

原创 Android drawable selector

Android 可绘制选择器(drawable selector)是一种可根据不同状态显示不同可绘制对象的 XML 资源。它通常用于实现按钮、列表项等控件的状态变化效果。在这个示例中,当按钮按下时,可绘制选择器将显示。一个可绘制选择器由多个。

2024-03-01 09:25:32 646

原创 Android fragment 转场动画

在 Android 中,可以使用。

2024-02-26 16:29:04 1192

原创 Android AIDL RemoteCallbackLIst

RemoteCallbackList 是 Android SDK 中的一个类,用于帮助管理进程之间的回调。它专为进程间通信 (IPC) 场景而设计,在该场景中,应用程序的不同部分甚至不同的应用程序可能在不同的进程中运行。RemoteCallbackList 可用于在进程之间传递回调。这意味着您可以将一个进程中的回调注册到另一个进程中的对象。当该对象发生更改时,它会调用回调以通知第一个进程。是一个简单的服务,它提供一个。方法来通知所有注册的回调。是一个活动,它绑定到。

2024-02-26 15:31:47 928

原创 android:excludeFromRecents

从这段说明可以看出,excludeFromRecents 属性的作用是将该 Activity 启动的任务排除在最近使用的应用列表之外。因此,如果将 excludeFromRecents 属性设置为 true,则该 Activity 启动的所有后续 Activity 都将不会出现在最近使用的应用列表中。也就是说,如果设置了 excludeFromRecents 属性,那么该 activity 启动的后续 activity 也会被排除在最近使用的应用列表之外。其中,应用的优先级是最重要的因素。

2024-01-24 11:18:31 1411

原创 Android App 启动状态有几种?

温启动的场景可以使用:onSaveInstanceState去保存需要的数据状态,在重建的时候可以在onCreate和onRestoreInstanceState中的参数去获取销毁前保存的数据。后台启动指的是当应用在后台运行,而不在前台显示时触发的启动方式。这不仅可以为用户提供启动反馈,还可以让应用在后台进行一些初始化工作,从而减少用户感知的启动时间。当应用已经在内存中运行,但用户在应用中导航到其他界面或按下 Home 按钮后,再次返回应用时,会触发热启动。精简布局文件,避免过度嵌套和不必要的层次结构。

2023-11-17 14:25:51 338

原创 Android App 启动流程学习

在 Android 应用的启动过程中,这个短暂的背景通常是由系统自动创建和管理的,不需要开发者直接介入。具体来说,这个背景的创建和显示是由 Android 系统的窗口管理服务和系统框架负责处理的。也就是说,Main Thread实例是存在的,只是创建它的代码我们不可见。每个应用都运行在其自己的应用进程中,这意味着每个应用都有独立的内存空间,独立的虚拟机(Dalvik 或 ART),以及独立的运行环境。总之,这个短暂的背景是由 Android 系统自动创建和管理的,以提供用户反馈和平滑的应用启动过渡。

2023-11-17 13:58:43 715 1

原创 Android 源码学习地址

清华大学开源软件镜像站:mirrors.tuna.tsinghua.edu.cn/中国科学技术大学开源软件镜像站:mirrors.ustc.edu.cn/

2023-11-03 11:35:37 290

原创 React 组件点击事件

当使用函数组件内的 useState Hook 创建点击事件时,你可以轻松地管理组件的状态。这个箭头函数在函数组件内部的某个函数中定义,然后在按钮的点击事件处理程序中调用它以显示消息。所以,如果你使用React 16.3.0或更新版本,你可以更轻松地使用类属性或箭头函数来处理事件,而不必显式使用。从React 16.3.0开始,类属性和箭头函数的使用变得更加普遍,因为它们使代码更简洁、易读,并且自动绑定了。时,通常是在类组件中,以确保在事件处理程序中访问组件的。函数组件内部的某个函数中使用箭头函数。

2023-10-31 14:34:24 714

原创 React 组件的3大属性: props

</div>// 子组件render() {// 子组件通过 this.props.message 访问父组件传递的数据return (<div>

2023-10-31 11:29:39 557

原创 React 组件的3大属性: refs

字符串 Refs 是 React 中的一种创建 Refs 的方式,但自 React 16.3 版本开始,官方不再推荐使用它,因为它存在一些潜在的问题,比如性能问题和可维护性问题。以下是一个简单的 React 示例,演示如何使用 Refs 来管理焦点,具体是将焦点从一个输入框移动到另一个输入框。回调 Refs 的优点是它们在更早的 React 版本中是有效的,并且能够很好地用于访问 DOM 元素或子组件的实例。钩子可以在函数式组件中方便地创建和访问Refs,以及执行与Refs相关的操作,而无需使用类组件。

2023-10-31 11:20:40 284

原创 React 组件的3大属性: state

需要注意的是,自 React 16.8 版本引入的 Hooks 之后,你也可以在函数组件中使用 useState 来初始化和管理状态。使用 state 来管理组件的内部状态,当状态变化时,React 会重新渲染组件以反映最新的数据。它是一种在组件中跟踪状态变化的方式,以便在数据发生变化时,React 可以更新用户界面以反映这些变化。如果你的应用中有多个组件需要共享一些数据,你可以将这些数据存储在共同的祖先组件的。发生变化时,React 会自动重新渲染相关的组件部分,以便显示最新的数据。将数据传递给子组件。

2023-09-01 13:50:41 838

原创 React 组件化是什么?

React 是一个用于构建用户界面的JavaScript库,它采用了组件化的开发模式,使得开发者可以将界面划分为独立的、可重用的组件,以便更轻松地管理和维护复杂的应用程序。组件化开发是一种将应用程序拆分为小块、可重用的部分的方法。在React中,每个组件都有自己的状态(state)和属性(props),它们用于描述组件的行为和外观。在React中,组件是构建用户界面的基本单元。组件可以是功能性的,也可以是有状态的。每个组件都可以包含自己的逻辑、渲染方法和样式。

2023-09-01 10:48:14 817 1

原创 React 生命周期

在 React 中,组件的声明周期是指组件在被创建、更新和销毁的过程中所经历的一系列阶段。这些阶段允许你在不同的时间点执行特定的代码,以便管理组件的状态、数据和用户界面。在早期版本的 React 中,存在三个主要的声明周期阶段:Mounting(挂载)、Updating(更新)和Unmounting(卸载)。然而,随着 React 的发展,声明周期方法已经逐渐被推荐为不建议使用,取而代之的是使用 React Hooks。不过,了解声明周期方法仍然有助于理解 React 组件的工作原理。

2023-08-25 11:16:24 874

原创 了解一下脚本语言

脚本语言(Scripting Language)是一种用于编写脚本(脚本是一系列按照特定顺序执行的命令或指令)的计算机编程语言。与编译型语言不同,脚本语言的代码不需要事先通过编译生成机器码,而是在运行时由解释器逐行解释执行。

2023-08-24 19:49:58 695

原创 NDK 的配置记录~

配置NDK路径:在右侧窗格的"Properties"(属性)选项卡中,找到"NDK location"(NDK位置)字段。“按钮,然后浏览到您安装的NDK目录,选择NDK的根目录文件夹,然后单击"OK”(确定)。使用 NDK,你可以直接与这些硬件资源进行交互。应用更改并同步项目:单击"Apply"(应用)或"OK"(确定)按钮,然后Android Studio将应用您的更改并开始同步项目。选择您的应用模块:在项目结构对话框中,选择左侧的"Modules"(模块)选项卡,然后选择您的应用模块。

2023-08-21 10:12:03 145

原创 React 入门学习

React 使用称为 JSX(JavaScript 和 XML)的 HTML-in-JavaScript 语法。熟悉 HTML 和 JavaScript 可以帮助您学习 JSX,并更好地确定应用程序中的错误是与 JavaScript 还是与 React 的更特定领域相关.React 是一个用于构建用户界面的库。React 不是一个框架 —— 它的应用甚至不局限于 Web 开发,它可以与其他库一起使用以渲染到特定环境。例如,React Native 可用于构建移动应用程序;

2023-08-09 14:02:33 794

原创 Flexbox

Flexbox(弹性盒子布局)是一种用于在网页中进行灵活的布局的CSS模块。它提供了一种简单而强大的方式来对网页元素进行排列、对齐和分布,适应不同屏幕大小和设备的需求。Flexbox 使用一维的布局模型,可以在水平或垂直方向上创建弹性的容器和项目。弹性容器(Flex Container)是父元素,用于包含弹性项目弹性项目(Flex Item)是子元素,放置在弹性容器内align-self 会覆盖 align-items 属性如下,start 会覆盖掉 last baseline。

2023-08-02 18:53:37 283

原创 android avd

通过环境变量设置是可以修改的,如果使用的是windows就要修改,否则会占用C盘。改变屏幕尺寸和密度比,貌似只是此次生效,我看文件里的数值没变。包含:编码格式、AVD路径、名称、目标版本。

2023-07-14 17:33:19 773

原创 TypeScript 类型

联合类型表示一个值可以是多个类型之一,而交叉类型表示一个值同时具有多个类型的属性。类型保护(Type Guards):TypeScript 提供了类型保护的机制,通过一些语法和模式来缩小变量的类型范围,从而在特定的代码块中获取更具体的类型。类型安全性(Type Safety):TypeScript 强调类型安全性,通过类型检查在编译时捕获潜在的类型错误,避免在运行时出现类型相关的错误。此外,还有许多高级类型和类型操作符,如映射类型、条件类型、infer 关键字等,用于更复杂的类型操作和推导。

2023-06-29 10:25:29 895 4

原创 TypeScript + React 环境搭建

一顿下一步,npm 也会直接安装上,现在的版本环境变量也无需自己配置。当前目录编译,编译成JS代码。然后再检测是否安装成功。

2023-06-29 09:09:49 664

原创 位运算(Java 二进制运算)

无符号右移是一种位运算操作,用于将一个整数的二进制表示向右移动指定的位数,右侧空出的位用0填充。它不考虑符号位,直接将位移出整数的右侧。表示,对两个操作数的对应位进行逻辑或操作,只要两个操作数对应位的其中一个为1,结果位就为1,否则为0。表示,对两个操作数的对应位进行逻辑与操作,只有在两个操作数对应位都为1时,结果位才为1,否则为0。表示,对两个操作数的对应位进行异或操作,只有在两个操作数对应位不同时,结果位才为1,否则为0。表示,将一个操作数的二进制位向右移动指定的位数,左侧空出的位用原来的符号位填充。

2023-06-25 17:04:45 288

原创 WebP 转换工具

压缩后的大小通常会随着画质而增加,但对于某些图片(例如屏幕截图、纯色等),无损算法会生成较小的文件。警告:对于大图片和/或大量的压缩工作,图形界面在启用此功能时可能会变慢/无响应。对于动画(多个名称中具有时长的图层,例如“Frame1 (123 ms)”),滑块会选择当前帧,并显示其预览和时长。)下载适用于您的操作系统的预编译二进制文件,或者使用包管理器进行安装(例如在Ubuntu上使用。要将图像转换为WebP格式,您可以使用Google提供的。是您要转换的输入图像文件的路径和文件名,

2023-06-16 10:50:08 1160

原创 Android 蓝牙权限(更新到 Android 12)

访问设备位置的权限。在 Android 6.0 及以上版本中,需要获取位置权限才能扫描附近的蓝牙设备。:管理蓝牙适配器的权限,包括启用/禁用蓝牙、扫描设备和进行配对等操作。:在后台访问设备位置的权限。该权限通常在后台扫描蓝牙设备时使用。:访问蓝牙适配器的权限,用于执行蓝牙操作。需要手机开启定位服务。

2023-06-15 15:11:47 5767

原创 macos 操作知识和命令行常规操作

这些是一些基本的命令和技巧,可以帮助你在 macOS 终端中切换位置。使用 tab 键自动补全路径:在输入路径时,按下 tab 键可以自动补全目录或文件名,这样可以减少输入错误的机会。使用绝对路径切换:一旦你知道了其他盘的名称,你可以使用绝对路径来切换到该盘。你可以使用绝对路径(从根目录开始的完整路径)或相对路径(相对于当前目录的路径)。确定其他盘的名称:首先,你需要确定你要切换到的盘的名称。来列出当前系统中挂载的所有卷(包括其他盘),找到你想要切换到的盘的名称。进入你的家目录,也可以使用。

2023-06-15 15:11:45 6150

原创 Android 蓝牙广播

蓝牙广播广播蓝牙状态变化(开关状态)广播蓝牙设备发现广播蓝牙配对(配对操作)广播ACL 连接状态变化广播蓝牙绑定状态变化(配对状态)广播蓝牙服务启动广播蓝牙服务停止广播蓝牙连接状态广播蓝牙扫描模式广播蓝牙音频状态广播蓝牙数据传输广播蓝牙操作模式(开关操作)广播扩展ACLA2DPSDP广播蓝牙状态变化(开关状态)广播(BluetoothAdapter.ACTION_STATE_CHANGED):当蓝牙状态发生变化时发送,可以用于检测蓝牙的开启或关闭状态。提供了以下 Extra 值来描述相关信息:

2023-06-14 17:16:38 2990

原创 Android 微件(Widget)

在该方法中,你可以更新 Widget 的视图和内容。Widget 可以注册相应的广播接收器,接收来自 app 发送的广播,并根据接收到的广播内容更新数据。请注意,在这些方法中不应该进行耗时的操作或阻塞主线程,因为 Widget 的更新和事件处理是在主线程中进行的。这些方法可以根据你的需求和具体情况选择适合的方式来实现 Widget 和 app 之间的数据共享。类中进行重写的,你可以根据需要实现这些方法,并在其中编写自定义的逻辑来处理 Widget 的生命周期和事件。你可以在这里执行一些最终的清理操作。

2023-06-13 15:49:48 1084

原创 Android 8~8.1(Oreo) 版本变更总览(API 级别 26~27)

MediaMetadataRetriever 类拥有一个新方法 getScaledFrameAtTime(),它能够在给定时间值附近找到一个帧,并返回一个与源帧具有相同宽高比的位图,但会对该位图进行缩放,使其能够嵌入具有特定宽高度的矩形。为节约电池电量、保持良好的用户体验和确保系统健康运行,在运行 Android 8.0 的设备上使用后台应用时,降低了后台应用接收位置更新的频率。如果您的应用的网络安全性配置选择退出对明文流量的支持,那么您的应用的 WebView 对象无法通过 HTTP 访问网站。

2023-06-12 15:41:43 1323

原创 Android 9(Pie) 版本变更总览(API 级别 28)

Android 9 新增了对 High Dynamic Range (HDR) VP9 Profile 2 的内置支持,因此,现在您可以在支持 HDR 的设备上为用户提供来自 YouTube、Play Movies 和其他来源的采用 HDR 的影片。在以 Android 9 或更高版本为目标平台的应用中,系统会统计并非当前默认网络的网络流量(例如,当设备连接到 WLAN 时的蜂窝流量),并在 NetworkStatsManager 类中提供查询该流量的方法。Android 9 扩展和改进了该 API。

2023-06-12 10:57:33 1410

原创 Android 10(Go) 版本变更总览(API 级别 29)

在搭载 Android 10 或更高版本的设备上,如果用户首次运行以 Android 5.1(API 级别 22)或更低版本为目标平台的应用,则会看到警告。用户启用后,手势导航会影响设备上的所有应用,无论应用是否以 API 级别 29 为目标平台。如果应用以 Android 10 或更高版本为目标平台并使用涉及全屏 intent 的通知,则必须在应用的清单文件中请求。这是因为绘制叠加层窗口会使用过多的内存,这对低内存 Android 设备的性能十分有害。针对权限模型和要求的一些变更。

2023-06-09 10:56:03 1032

原创 Android 14 版本变更总览

对隐式 intent 和待处理 intent 的限制 (针对从后台启动 activity 的其他限制 (在运行时注册的广播接收器必须指定导出行为 (文章基于官方资料上提取。-路径现在可查询和插值。更安全的动态代码加载。

2023-06-08 16:06:39 954

原创 反编译未加固代码(Mac)

反编译未加固代码(Mac)

2023-06-01 15:02:37 110 1

原创 Android 13 版本变更总览 (API 级别 32)

文章基于官方资料上提取。

2023-05-31 15:43:34 1519

原创 Android 11 版本变更总览 (API 级别 30)

单次授权、自动重置未使用的应用的权限、权限对话框的可见性、系统提醒窗口变更、电话号码。应用使用情况统计信息(UsageStatsManager)#1:对 IME 出现/关闭屏幕做出反应(API 21+)JobScheduler API 调用限制调试。单次授权、权限对话框的可见性、数据访问审核()、系统提醒窗口权限、永久 SIM 卡标识符。单次访问权限、在后台访问位置信息的权限(#2:控制输入法 (API 30+) (将自动填充功能与键盘集成(文章基于官方资料上提取。改进了 IME 转换。

2023-05-26 11:04:15 1414

原创 Android 12 版本变更总览 (API 级别 31)

文章基于官方资料上提取。

2023-05-24 09:49:23 1479

原创 线程池过载

不合理的线程池配置:线程池的配置参数,如核心线程数、最大线程数、任务队列容量等,需要根据系统的特性和负载情况进行合理的设置。为了避免线程池过载,需要合理地进行线程池的配置和任务管理。外部资源限制:线程池的过载也可能是由于外部资源的限制导致的,例如数据库连接池的连接数有限,当线程池中的线程需要大量的数据库连接时,可能会受到数据库连接数的限制而导致线程池过载。资源限制:系统的资源(如CPU、内存、I/O等)是有限的,当线程池中的线程数量过多时,系统可能无法同时满足所有线程的资源需求,导致资源竞争和效率下降。

2023-05-15 14:52:51 588

原创 Semaphore(信号量)

每个线程完成任务后,会释放许可证,以便其他等待的线程可以获取许可证并执行任务。例如,如果有多个线程需要同时访问某个共享资源,可以使用Semaphore来限制同时访问的线程数量,以避免资源冲突或过度竞争。在这种情况下,初始时没有可用的许可证,线程将被阻塞,直到条件满足并有其他线程释放许可证。需要注意的是,在使用Semaphore时,当初始许可证数量为0时,如果没有其他线程释放许可证,调用。综上所述,当在Semaphore的构造方法中传递0作为参数时,表示初始时没有可用的许可证,调用。

2023-05-15 13:55:02 694

原创 Android 签名文件

Android系统要求每一个Android应用程序必须要经过数字签名才能够安装到系统中,也就是说如果一个Android应用程序没有经过数字签名,是没有办法安装到系统中的!应用签名验证:Android 系统在安装应用时会验证应用的签名信息。如果应用的数字签名被篡改,系统将无法验证应用的真实性,从而导致安全风险。如果应用的签名在运行过程中发生了变化,系统将认为应用已被篡改,可能会中止应用的运行。系统应用签名:Android 系统中的核心组件和系统应用都使用预先定义的签名来验证其身份。上述命令会生成一个名为。

2023-05-12 16:58:43 1006

原创 byte、hex、string 格式转换

【代码】byte、hex、string 格式转换。

2023-05-12 16:24:54 1127

原创 每天记录学习的新知识:CRC16

当接收到数据时,接收器可以使用相同的算法计算自己的校验和,并将其与接收到的数据一起进行比较。如果两个校验和匹配,数据被认为是无误的。CRC16(16位循环冗余校验)是一种用于检测数字数据中错误的编码方式。它通过对一个数据块(通常是消息或信息包)生成一个校验和,然后将其附加到数据的末尾来实现。该算法将数据视为一系列位,并对该序列执行位分割运算,使用多项式进行除法运算。这个除法的余数就是CRC16校验和,它被附加到原始数据的末尾。最常见的变体是CRC-16-CCITT和CRC-16-ANSI。

2023-05-05 10:10:18 4835

原创 Kotlin学习:3.7、数据类

在Kotlin中,数据类(data class)是一种用于存储数据的特殊类型。数据类自动生成许多通用的方法,如equals()、hashCode()、toString()、copy(),可以减少编写样板代码的工作量。在这个例子中,我们定义了一个数据类Person,包含了name和age两个属性。由于在类声明前添加了"data"关键字,Kotlin会自动为我们生成equals()、hashCode()、toString()和copy()方法,让我们可以轻松地使用这些方法来比较、打印、复制和更改数据类的实例。

2023-04-23 14:46:28 599

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关注的人

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