- 博客(777)
- 资源 (148)
- 收藏
- 关注
原创 [Android]修改XML中定义的约束比例
报错信息指出,ConstraintLayout 中的所有子视图都必须有 ID 才能使用 ConstraintSet。这是因为 ConstraintSet 需要通过视图的 ID 来引用和修改约束。你需要确保所有直接或间接属于 ConstraintLayout 的子视图都有一个唯一的 ID。
2024-06-24 21:52:19 631
原创 [Android]下拉刷新和上拉加载更多
SwipeRefreshLayout 是一个支持下拉刷新功能的布局,它是 Android Support Library 或 AndroidX 库的一部分。BaseQuickAdapter 是一个来自开源库 BRVAH (Base RecyclerView Adapter Helper) 的功能丰富的适配器,用于简化 RecyclerView 的适配器实现。
2024-05-26 20:12:26 611
原创 [Android]在后台线程执行耗时操作,然后在主线程更新UI
Coroutines 提供了一种轻量级的线程管理方式,使得在后台线程执行任务和在主线程更新 UI 变得简单。以下是如何在 Kotlin 中使用 Coroutines 来处理耗时逻辑并更新 UI 的步骤:添加 Coroutines 依赖:首先,确保你的 Android 项目中包含了 Coroutines 的依赖。在你的 build.gradle 文件中添加:
2024-05-22 13:57:45 1232
原创 [Android]项目打包APK时报错PKCS12 keystore not in version 3 format
问题描述中提到的错误 PKCS12 keystore not in version 3 format 表明正在尝试使用一个非PKCS12格式的密钥库文件(在这种情况下是.pk8文件),而Android的签名工具期望一个PKCS12格式的密钥库文件。.pk8文件通常是一个私钥文件,而不是一个完整的密钥库文件,这也是为什么遇到了这个问题。
2024-05-21 13:57:44 713
原创 [Android]将私钥(.pk8)和公钥证书(.pem/.crt)合并成一个PKCS#12格式的密钥库文件
如下,我们有一个platform.pk8和platform.x509.pem。为了打包,需要将私钥(.pk8)和公钥证书(可能是.pem或.crt文件)合并成一个PKCS#12格式的密钥库文件。
2024-05-21 13:54:03 1863
原创 [Android]运行项目报错The application could not be installed: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
如果你的应用不需要与其他应用共享数据或资源,最简单的解决方法是从你的应用的 AndroidManifest.xml 文件中移除 sharedUserId 属性。如果你需要保留 sharedUserId(例如,你的应用确实需要与另一个使用相同 sharedUserId 的应用共享数据),则需要确保所有使用相同 sharedUserId 的应用都是用相同的证书签名的。如果适用,考虑从测试设备上卸载可能使用相同 sharedUserId 的其他应用,然后重新尝试安装你的应用。更改后,重新构建并安装你的应用。
2024-05-21 10:19:55 1355
原创 [Android]Mac电脑ADB使用
在Android开发中,ADB(Android Debug Bridge)是一个非常重要的工具,它提供了开发者与Android设备之间进行通信的多种方式。安装ADB对于任何进行Android开发的人来说都是必不可少的,尤其是在Mac电脑上进行开发时。
2024-05-21 10:11:15 5014
原创 [iOS]遇到的一个算法面试题
O(n) 表示算法的执行时间或所需空间与输入数据的大小成正比。这意味着如果输入数据的大小增加一倍,算法的执行时间或所占用的空间也大约增加一倍。
2024-05-12 12:34:34 1013
原创 [Kotlin]创建一个私有包并使用
如果你的库需要额外的依赖,可以在文件中添加依赖。: 检查文件,确保所有必要的权限和应用配置都已正确设置。创建必要的Kotlin类和功能模块,在目录下编写代码。例如,我们创建一个计算类和一个自定义组件具体介绍参考另一文在。
2024-05-07 23:14:02 1146
原创 [Android]单元测试和模块测试
在 Kotlin 开发中,单元测试和模块测试(有时也称为组件测试或服务测试)是两种关键的测试方法,它们帮助开发者确保代码的各个部分独立和整体上都按预期工作。
2024-05-07 21:05:22 1727
原创 [Android]国内流行的应用市场
由于Google Play商店服务国内不可用,有许多其它的应用商店充当Android应用的分发渠道。这些商店通常由中国的主要科技公司运营,每个商店都有自己的运营策略和用户基础。全球移动供应商市场份额中国的Android应用市场环境与全球其他地区有显著的不同,主要是由于缺乏一个统一的市场平台,如Google Play在其他许多国家所扮演的角色。
2024-05-07 15:57:36 3536 1
原创 [Android]四大组件简介
在 Android 开发中,“四大组件”(Four Major Components)是指构成 Android 应用程序的四种核心组件,它们通过各自的方式与系统交互,实现应用的多样功能。这些组件是:Activity、Service、Broadcast Receiver 和 Content Provider。每个组件都扮演着不同的角色,并且通过各自的生命周期、方法和目的与 Android 操作系统交互。
2024-05-06 23:38:32 3762 1
原创 [Flutter]配置pubspec.yaml
文件是 Dart 和 Flutter 项目的核心配置文件,用于管理项目的依赖、版本、元数据等。下面是。
2024-05-06 12:50:52 1432
原创 [Flutter]单元测试和组件测试
Matcher在某些情况下,内置的Matcher可能不足以满足你的测试需求。Flutter 允许你创建自定义的Matcher。这个自定义的Matcher检查一个整数是否是偶数,并在测试失败时提供适当的描述。
2024-05-06 11:09:25 1623 1
原创 [iOS]使用CocoaPods发布公开库
在 podspec 文件中使用标签,通常意味着你指定了一个稳定的、用于发布的版本。这是最常见的用法,因为这确保了项目的依赖是固定且可预测的。这通常用于开发阶段,当你想要使用最新的尚未发布的代码时。标签是静态的,指向特定的提交,不会随着更多的提交而变化。选择库名时,尽量选择具有描述性并且独特的名字,这不仅可以避免命名冲突,还可以帮助用户更好地理解库的用途和功能。文件,在编辑器中进行修改,以符合你的库的具体情况。将你的项目推送到一个 Git 仓库(如 GitHub),确保为发布的版本创建相应的分支或者标签。
2024-04-27 17:02:39 1967 2
原创 [iOS]使用CocoaPods发布私有库
创建私有 Spec 仓库首先,需要一个私有的 Git 仓库来存放你的 Podspec 文件,这个仓库用于索引你所有的私有 Pods。 在 GitHub 或其他 Git 服务上创建一个新的私有仓库,例如,名为 PrivatePodSpecs。 克隆这个仓库到本地:
2024-04-26 22:59:40 1711 1
原创 [iOS]组件化开发
1.组件定义在软件开发中,一个组件是指一个独立的、可替换的软件单元,它封装了一组相关的功能。组件通过定义的接口与外界交互,并且这些接口隔离了组件内部的实现细节。在Swift语言中,组件可以是一个模块、一个库或者一个框架,它们被设计来完成特定的任务,并可以在不同的项目中复用。组件的主要目的是促进大型软件系统的模块化,使得每个部分都可以独立地开发和维护。在组件化的架构中,组件作为构建应用的基本单元,彼此之间通过明确定义的接口进行通信,这有助于降低整个系统的复杂性。2.组件的特点高内聚组件内部的元
2024-04-25 23:46:35 2015 1
原创 [iOS]CocoaPods安装和使用
综上所述,Brew 是用于管理 macOS 上的软件包的包管理器,RVM 是用于管理和安装多个 Ruby 版本的工具,Ruby 是编程语言本身,Gem 是 Ruby 的软件包管理系统,而 CocoaPods 是用于管理 iOS 和 macOS 项目中的第三方库依赖项的工具,它使用 Gem 来安装和管理自己的软件包。打开您的 ~/.bash_profile 或 ~/.bashrc 文件(通常 ~/.bash_profile 用于登录 shell,而 ~/.bashrc 用于非登录 shell。
2024-04-25 12:37:11 3409 2
原创 [Android]Jetpack Compose状态管理
在 Jetpack Compose 中,状态管理是构建交互式应用程序的核心。Compose 设计思想强调了不变性和重新组合的概念,以支持高效的 UI 更新。
2024-04-24 15:54:17 1555
原创 [Android]Jetpack Compose加载图标和图片
库,这个库确实包含了大量的图标资源,但是 Android 的构建系统(包括 Gradle 和 Android Studio)使用了一种称为资源清理(resource shrinking)的技术,这可以帮助移除未使用的资源,以减少最终 APK 的大小。在 Android 开发中使用本地矢量图标是一种常见的做法,因为矢量图标(通常保存为 SVG 或 Android 的 XML vector format)具有可缩放性和较小的文件大小。是可选的,分别用于在图片加载时和加载失败时显示的图片。
2024-04-23 22:38:45 2971 1
原创 [Android]Jetpack Compose页面跳转和传值
ViewModel在实际的应用开发中,使用单一的来管理所有页面间的数据传递并不是最佳实践。这种做法可能会导致ViewModel过于臃肿和混乱,特别是在大型应用中,这可能会导致维护困难和扩展问题。理想的做法是使用多个ViewModel,每个ViewModel管理特定页面或功能模块的状态和逻辑。页面级 ViewModel:每个页面或每组相关页面可以有自己的ViewModel。这样,页面间的数据传递可以通过共享的更高级别ViewModel来实现,或者通过事件和回调来进行。共享 ViewModel。
2024-04-23 16:13:31 3352
原创 [Android]Jetpack Compose自定义主题
ColorScheme中的颜色名称是固定的, 如果你想在其中添加一个名称为“textColor”的颜色, 就办不到. 下面, 我们继续给主题添加自定义名称的颜色.这里, 我们定义成使用的方式获取颜色.) {......) {Text(",
2024-04-22 16:28:52 844
原创 [Android]使用CompositionLocal隐式传值
CompositionLocal 是定义数据的方式,而 CompositionLocalProvider 是在 Compose UI 树中传递这些数据的工具。二者合作,为 Compose 应用提供了一个强大的状态和数据流管理机制,使得数据可以在组件间按需传递,而无需通过复杂的层级传递或全局状态。这种模式非常适合于主题、语言偏好、UI配置等的全局管理,极大地简化了复杂应用中的数据传递和状态管理问题。CompositionLocalCompositionLocal 是一个特殊的类型,用于定义和存储可以
2024-04-22 11:56:52 1496
原创 [Android]SharedPreferences可视化管理key-value数据存储
创建一个用于管理的单例工具类,并使用泛型方法来简化对不同类型数据的存取操作,该类提供了泛型的get和set方法来处理各种数据类型。T?T?T?else -> {apply()/// 让 PrefKey 枚举仅包含用户定义的键(key)/// 管理默认值和类型。
2024-04-21 14:05:44 286
原创 [Android]设置尺寸时的单位选择
在使用 Kotlin 和 Jetpack Compose 进行 Android 开发时,选择正确的单位来设置视图尺寸、间距和字体大小是非常重要的。这些单位确保应用在各种设备和屏幕尺寸上都能保持良好的布局和可读性。
2024-04-19 21:47:36 652
原创 [Android]Jetpack Compose设置颜色
Jetpack Compose 提供了一系列预定义的颜色,如Color.RedColor.BlueText(",color = Color.Red // 使用预定义的红色。
2024-04-19 21:36:18 729
原创 [iOS]协议中如何添加属性?
在协议中定义属性主要是通过声明属性的 getter 和/或 setter 方法。这可以通过 Objective-C 的@property声明来完成。这样做的目的是要求任何实现该协议的类都必须实现这些属性的相应访问器方法。// 定义一个只读属性// 定义一个可读写属性@end。
2024-04-12 15:07:50 786
原创 [Android]申请成为Google Play个人开发者
我办理的,是如下这种卡,能够正常支付。网上查询到有种说法,需要不包含银联标的卡全币种卡,不然支付时会遇到“Card type not accepted”问题。登陆Google Play Console后,提示我设备不能使用,最低要求Android 10. 我手机太老无法升级了,需要重新买一台android手机。注意,不是所有全币种卡都能支付成功,办理卡时最好先在网上查询一下对应的卡能否支付。支付完成后,邮箱会收到一封邮件,要求去“验证”个人信息。这种卡,是朋友推荐的,能正常支付开发者费用。
2024-04-09 13:31:58 3382
原创 [Mac]安装App后“XX已损坏,无法打开“
终端输入sudo xattr -r -d com.apple.quarantine 后将Applications中对应的问题app拖入生成路径,然后执行。“xx.app”已损坏,无法打开。你应该将它移到废纸篓。无法打开“Reveal.app”,因为无法验证开发者。macOS无法验证此App是否包含恶意软件。进入“隐私与安全性”选择“仍要打开”
2024-04-08 17:55:45 630
原创 [iOS]事件处理
触摸事件是最为直观的用户交互形式。iOS 设备的触摸屏能够检测多点触摸,并区分各种手势。处理触摸事件的关键在于理解 UIResponder 类以及其相关的方法。: 所有能够响应用户事件的对象,比如视图(UIView)和视图控制器(UIViewController),都是 UIResponder 的子类。这个类定义了处理触摸事件的方法(如 touchesBegan:withEvent:)。: 表示触摸屏幕的手指。
2024-04-07 19:22:46 762
原创 [iOS]进程-线程-队列-任务
进程是一个执行中的程序的实例。它是系统资源(如 CPU 时间、内存空间、文件描述符等)分配的基本单位。每个进程都运行在其自己的隔离空间内,操作系统负责管理进程的生命周期以及它们对系统资源的使用。在iOS开发中,使用Grand Central Dispatch (GCD)可以创建自定义队列(Custom Queues)。自定义队列可以是串行的也可以是并行的,取决于你的需求。
2024-04-07 15:15:01 1417
原创 [Flutter]导入singular_flutter_sdk后运行到Android报错
接入归因之前,flutter项目一起正常。接入归因之后,iOS正常Android有问题。针对 Flutter 的 Singular SDK 集成指南。
2024-04-02 13:59:02 1621
原创 Apple ID在App Store登录时提示“此 Apple ID已停用”如何解决?
如图,苹果账号登录App Store时提示“此 Apple ID 已停用”我这个账号,找回密码时,提示“这个 Apple ID 没有被激活”。
2024-04-01 11:36:52 1617
GAAVPlayerViewControllerDemo.zip
2020-01-22
UIViewController+Present.zip
2019-11-01
NSString+FileSize.zip
2019-10-31
EmptyDataSet-demo.zip
2019-10-30
UIView+AZGradient.zip
2019-10-28
UIView+BorderLine.zip
2019-10-26
UITextView+Placeholder.zip
2019-10-26
GAEditDemo.zip
2019-07-16
GAHomeDemo.zip
2019-07-10
上传到阿里云OSS的图片处理
2019-01-23
从控制器中分离出View
2018-10-10
12.0 (16A366)
2018-09-28
MasonryDemo
2018-07-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人