自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(2796)
  • 资源 (6)
  • 收藏
  • 关注

转载 多媒体处理中ByteBuffer使用注意事项

ByteBuffer是 Java 中用来操作原始字节数据的类,它提供了一种灵活的方式来读取、写入和操作字节数据。以下是关于ByteBuffer。

2024-04-25 10:21:43 3

转载 如何爬出 Kotlin 协程死锁的坑

但是 JVM 生态毕竟历史包袱太重, 大量的老代码都是基于线程写的, 所以 Kotlin 就提供了这个方法, 在文档中也说 "设计上仅仅用于桥接传统线程代码与协程上下文"(参考[1])。其设计思想在于, Default 是用于 CPU 密集型任务的, 这种任务的并发度和 CPU 核数相同是最合适的, 太多就会导致上下文切换开销了。从线程的思维看, 容易误认为以上代码会死锁。相比别的死锁问题, 这一类问题的坑点在于, 因为线程池的实现问题, jstack 等 jvm 工具无法对其自动诊断, 只能肉眼看出。

2024-04-25 10:19:46 1

转载 系统native进程之我是installd进程

这是Android系统进程系列的第五篇文章,本文同样以自述的方式带您了解installd进程,通过本文您将了解到linstalld进程为啥存在?以及在安装/卸载apk中发挥了哪些作用。(文中的代码是基于android13Android系统native进程之我是init进程Android系统native进程之属性能力的设计魅力Android系统native进程之进程杀手--lmkdAndroid系统native进程之日志系统--logd、logcat上面提到的这些能力基本都是基于凭据加密 (CE) 存储空间。

2024-04-25 10:06:38 1

转载 用Animation类来创建动画,打开(开始)和关闭(取消)

以下是如何打开(开始)和关闭(取消)一个简单的动画的例子。对象,它是一个淡入效果的动画。关闭动画时,我们可以调用。上所有正在运行的动画,或者调用动画本身的。在这个例子中,我们首先创建了一个。在Android中,你可以使用。方法来停止特定的动画。

2024-04-25 10:03:03 2

转载 Kotlin之密封类与枚举

不同点:枚举只能有一个实例,而密封类的子类可以有多个实例,密封类的子类可以携带自己独有的状态参数以及行为方法来记录更多的实现信息以完成更多的功能,这是。如下实例:密封类的所有成员都继承本类,但是允许个别成员拥有自己特殊属性如 EXCELLENT_MARKS。当某个成员需要特殊属性的时候,用枚举就比较难实现这个需求,密封类就是为了解决这个问题而出现的。如下实例:当我们想知道优秀学生的名字的时候,只用枚举去实现就不好实现。相同点:所有成员都属于本类本身。进行判断类型,跟枚举类相似。

2024-04-25 10:00:07

转载 啊 ?用BuildSrc管理Android 依赖版本已经过时了?Catalogs才是版本答案?我不信!gradle统一依赖

本文介绍了三种比较推荐的做法,BuildSrc + Kotlin DSL ,Catalogs + Groovy DSL,Catalogs + Kotlin DSL并且这三种方式各有利弊。BuildSrc + Kotlin DSL 的方案的主要特点是编译会稍慢,可能需要处理依赖版本冲突问题,好处是熟悉的Kotlin语法,与良好的代码导航支持。

2024-04-25 09:52:21

转载 轻松6步,让Android项目替换成鸿蒙

如:安卓项目使用了Android Support库中的某些类或方法,需找到鸿蒙中相应的类或方法进行替换。此外,还需要根据鸿蒙的UI框架进行界面布局的调整和修改。同时,可以使用鸿蒙提供的调试工具来调试项目。将命令生成一个名为helloHarmony.hap的安装包,可以将其安装在鸿蒙设备上进行测试或分发给用户。这些命令将在当前目录下创建一个名为helloHarmony的鸿蒙项目。鸿蒙项目中,某些安卓特有的API和功能需要适配。将这些命令编译,项目部署到连接的设备或模拟器上。目录中的资源文件移动到。

2024-04-25 09:46:28 5

转载 现在去开发一款App需要投入多少资金?

本文主要探讨跨平台应用的开发成本,原生与小程序不在探讨范围之内,为什么呢?请接着往下看~

2024-04-24 19:07:25 2

转载 使用maven publish插件发布产物(aar)全过程实践

原因:当打包aar时候直接依赖本地的aar是不被允许的。解决方案:通过把依赖的aar放到单独的模块中,让直接依赖本地aar变成依赖模块。新建一个文件夹aar-lib新建一个libs文件夹,把放入到libs目录中3. 新建build.gradle文件,写入如下内容在项目的settings文件中引入该模块删除报错模块中的aar文件,替换原来依赖方式// implementation files('libs/oaid_sdk_1.0.30.aar') 旧的方式。

2024-04-24 19:03:37 12

转载 解密:Gradle 如何使用Maven本地缓存库(mavenLocal()默认路径)

-x:在 中或者一个扩展文件中设置的属性,如:java.home;− − s e t t i n g s . x : 在 s e t t i n s . x m l 中 包 含 的 对 应 元 素 的 值 , 如 : < s e t t i n g s > < o f f l i n e > f a l s e < / o f f l i n e > < / s e t t i n g s > 可 以 通 过 {project.version}引用;仓库是两种主要构件的家。

2024-04-24 18:02:07 3

转载 AndroidStudio使用localMaven

有时候开发一个三方库,开发阶段并不希望提交到服务器maven,只想提供给本地的其他项目使用的时候,可以使用localMaven,将三方库提交到本地计算机仓库,然后其他项目将localMaven配置到仓库查找列表,这样,可以避免不断的往服务器提交三方库而需要不断的提升版本号的问题。

2024-04-24 17:50:59 3

转载 Java时区处理 TimeZone.getTimeZone(“UTC“)

通用协调时(UTC, Universal Time Coordinated),格林尼治平均时(GMT, Greenwich Mean Time) 由于历史原因,这两个时间是一样的。北京时区是东八区,领先UTC八个小时,在电子邮件信头的Date域记为+0800。UTC + 时区差 = 本地时间。

2024-04-24 17:47:24 2

转载 Java时间处理(UTC时间和本地时间转换)TimeZone.getTimeZone(“UTC“)

协调世界时,又称世界标准时间或世界协调时间,简称UTC(从英文“Coordinated Universal Time”/法文“TempsUniversel Coordonné”而来),是最主要的世界时间标准,其以原子时秒长为基础,在时刻上尽量接近于格林尼治标准时间。本文主要对UTC、GMT、CST等时间概念做简单的介绍,比较实用的在于本文最后一个小知识点:带时区格式的时间和本地时间格式两者之间的转换方法,再次只是对简单情况做处理,如果需要处理复杂的时间转换,可以百度找一下jar包。3 CST(北京时间)

2024-04-24 17:45:42 1

转载 Kotlin技巧:作用域函数let、run、with、apply和also

关于Kotlin的作用域函数:let、run、with、apply和also。它们有一个共同点:它们都在对象上调用,在这些函数的作用域内,可以访问对象本身,而无需其名称。

2024-04-24 17:39:36 2

转载 -UTC时间及时区获取

可以采用多种方法获取,这里只简单介绍两种:直接获取零时区时间、根据本地时间计算得出。UTC时间:世界统一时间,世界标准时间又称格林尼治平时或格林尼治时间。PS:UTC时间+时区差=本地时间。

2024-04-24 17:32:57 3

转载 时区TimeZone.getTimeZone(“GMT-8:00“)和TimeZone.getTimeZone(“America/Los_Angeles“)的区别

2)进一步测试发现,两个时区对同一个时间进行解析获取到UTC 时间戳是不一样的,进入夏令时时后者比前者少了3600000毫秒(夏令时的值),不进入夏令时时两者则相等。版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。从上面的结果可以看到"GMT-8:00"获取不到夏令时偏移,但是"America/Los_Angeles"可以获取到夏令时偏移量。这说明java,在获取时间戳时,会根据时区里的夏令时偏移自动减去多余的偏移量,获取到正确的UTC时间戳。

2024-04-24 17:29:41 3

转载 创建SharedViewModel

Shared ViewModel 在Android应用中在不同组件之间共享数据是一个常见的需求。使用ViewModels是实现这一点的有效方式。在这个指南中,我们将探索在Android中创建SharedViewModel的各种方法。

2024-04-24 17:27:33 2

转载 正确的在 Android 上使用协程 ViewModelScope、LiveData、LifecycleScope

你还记得是哪一年的 Google IO 正式宣布Kotlin成为 Android 一级开发语言吗?是。如今两年时间过去了,站在一名 Android 开发者的角度来看,Kotlin 的生态环境越来越好了,相关的开源项目和学习资料也日渐丰富,身边愿意去使用或者试用 Kotlin 的朋友也变多了。常年混迹掘金的我也能明显感觉到 Kotlin 标签下的文章慢慢变多了(其实仍然少的可怜)。今年的 Google IO 也放出了的口号,许多新的 API 和功能特性将优先提供 Kotlin 支持。

2024-04-24 17:24:26

转载 Kotlin-如何创建一个好用的协程作用域

kotlin中使用协程,是一定要跟协程作用域一起配合使用的,否则可能协程的生命周期无法被准确控制,造成内存泄漏或其他问题.我们一般在安卓项目中使用协程作用域,可能会在BaseActtivity中new 一个MainScope(),并在onDestory时cancel掉,或者只在ViewModel中使用viewModelScope,然后会在ViewModel的onClose中自动cancel掉.

2024-04-24 17:18:31 1

转载 Android中的SPI推送

在Android开发中,我们经常需要使用不同的推送服务,比如Firebase Cloud Messaging(FCM)、Amazon Device Messaging(ADM)、华为云消息推送(HCM)和百度推送SDK。但是,在一个应用中同时集成多个推送服务并不容易。解决这个问题的方法之一是使用服务提供者接口(Service Provider Interface,SPI)。SPI是一种API,可以让我们在应用程序中找到某个接口的实现。

2024-04-24 17:07:26 2

转载 android控制台中文乱码问题解决

下面根据我日常工作的经验总结,排序的先后即为我们需要注意修改的先后。在每次进行修改之后。

2024-04-24 17:04:05 2

转载 RootEncoder引领实时流媒体传输革新

RootEncoder for Android(rtmp-rtsp-stream-client-java)是一个功能强大的流编码器,旨在通过多种协议(包括RTMP、RTSP、SRT和UDP)将视频和音频推送到媒体服务器。该编码器完全用Java和Kotlin编写,为Android应用程序提供了广泛的多媒体流传输功能。

2024-04-24 16:57:32 3

转载 编译优化之Gradle最佳配置实践

本文先是介绍了为什么要做编译优化,然后分析了影响编译速度的因素有哪些,从最少、复用的构建原则入手,详细的为大家介绍了一些低成本且实用的最佳实践指南。如果你还没有优化过,可以实操起来了~

2024-04-17 20:13:57 33

原创 Cause: defaultConfig contains custom BuildConfig fields, but the feature is disabled.

解决Cause: defaultConfig contains custom BuildConfig fields, but the feature is disabled.

2024-04-16 19:26:31 112

转载 RecyclerView宫格拖拽效果实现

本篇到这里就结束了,我们利用RecyclerView实现了宫格图片的拖拽效果,主要是借助ItemTouchHelper实现,从ItemTouchHelper中我们能看到很多巧妙的的设计,里面有很多值得我们学习的技巧,特别是对事件的处理、绘制顺序调整的方式,如果做吸顶,未尝不是一种方案。作者:时光少年链接:https://juejin.cn/post/7348707728921853971来源:稀土掘金著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

2024-04-16 17:02:26 17

转载 Kotlin自定义View

说说Kotlin和Java感觉差异比较大的地方。首先是变量的生命,Kotlin声明时必须赋值或者初始化,java则不用,开始有点不习惯。Kotlin不需要分号结尾,Kotlin的循环用起来简直爽YY。首先是这次自定义View的效果图,是一张饼图。如果是用java写的话也就几十行,觉得换成Kotlin的话可能会更少。主要的功能是可以任设定数据的个数,我这里是4个数据,可以任意设定每个数据的颜色。#####首先上Kotlin代码##########相同功能Java代码#####

2024-04-15 15:19:47 22

转载 优雅地实现 Dialog 弹窗

可能早就有人已经发现了,我们现在对话框的调用方式跟 Compose,React 很相似,也就是最近很流行的声明式 UI,为什么说它流行,比我们传统的命令式UI好用,主要的差别就在于声明式UI调用方只需要在乎视图的描述就可以,而真正视图如何渲染,如何测量,调用方不需要关心。

2024-04-15 14:38:30 30

转载 自定义控件之自定义属性

上篇介绍了自定义控件的基本要求以及绘制的基本原理,本篇文章主要介绍如何给自定义控件自定义一些属性。本篇文章将继续以上篇文章自定义圆形百分比为例进行讲解。有关原理知识请参考Android自定义控件之基本原理(一)这篇文章。Android自定义控件之基本原理Android自定义控件之自定义属性Android自定义控件之自定义组合控件Android自定义控件之自定义ViewGroup实现标签云。

2024-04-15 14:22:49 8

转载 自定义控件之基本原理

在日常的Android开发中会经常和控件打交道,有时Android提供的控件未必能满足业务的需求,这个时候就需要我们实现自定义一些控件,今天先大致了解一下自定义控件的要求和实现的基本原理。Android自定义控件之基本原理Android自定义控件之自定义属性Android自定义控件之自定义组合控件Android自定义控件之自定义ViewGroup实现标签云1. 应当遵守Android标准的规范(命名,可配置,事件处理等)。2. 在XML布局中可配置控件的属性。

2024-04-15 14:11:49 4

转载 ViewPager2的介绍,以及它的使用示例

ViewPager2 是 Android 官方提供的一个用于实现页面滚动视图的库。它是 ViewPager 的增强版,基于 RecyclerView 实现,提供了更多的功能和更好的。ViewPager2 能够更有效地处理页面切换,并且支持垂直方向的滑动。可以实现页面滚动视图,常用于展示图片画廊、应用主界面标签页等场景。由于基于 RecyclerView,可以充分利用 RecyclerView 的各种配置功能,如 ItemDecoration、LayoutManager 等。

2024-04-12 17:58:58 28

转载 Viewpager的使用

写一个自定义的PagerAdapter适配器类,继承自AndroidX的ViewPager库中的PagerAdapter类(想用时直接调取,就不用那么麻烦每次写一遍)原文链接:https://blog.csdn.net/weixin_65399034/article/details/134618922。这里我让它每2秒就过一张图片,当手指触碰图片时,则让它停止自动轮播,放开图片则让它继续自动轮播。之后就可以写Activity.java文件了。引导页,图片浏览器,广告轮播,,应用导航,软件教程等等用途。

2024-04-12 17:47:25 15

转载 ViewPager控件

ViewPager可以实现多个界面的左右滑动。广告页长被用于首页,可以自己切换,也可以手动切换。使用ViewPager实现广告页,主要是要判断是否在手动切换,可以添加来判断。Handler类处理自动切换事件@Overrideitem = 0;

2024-04-12 17:36:47 13

转载 获取亮灭屏状态

​在android应用程序获取亮灭屏状态的常用方法有:使用PowerManager提供的API函数注册Broadcast监听​

2024-04-12 15:58:36 10

转载 从熄屏唤醒屏幕

从熄屏唤醒屏幕

2024-04-12 15:51:03 8

转载 Android布局优化:include 、merge、ViewStub详细总结

另外需要注意的是,如果我们想要在标签当中覆写layout属性, 必须要将layout_width和layout_height这两个属性也进行覆写,否则覆写效果将不会生效 2,一个xml布局文件有多个include标签需要设置ID,才能找到相应子View的控件,否则只能找到第一个include的layout布局,以及该布局的控件。同样我们通过一个小demo说明一下,比如我们需要保存一个用户信息,用户名是必须保存的,但是其余信息是不必要的,这是其余信息就可以一开始不显示出来,用户想输入的时候在现实出来。

2024-04-12 09:50:47 12

转载 Android布局总结四:Merge总结

可以看到,这里我们将ok_cancel_layout最外层的LinearLayout布局删除掉,换用了merge标签,这就表示当有任何一个地方去include这个布局时,会将merge标签内包含的内容直接填充到include的位置,不会再添加任何额外的布局结构。接下来的部分就有问题了,在最外层的LinearLayout当中包含了两个元素,一个是EditText,另一个又是一个LinearLayout,然后在这个内部的LinearLayout当中才包含了确定和取消这两个按钮。看上去效果非常不错对吗?

2024-04-11 20:33:51 66

转载 git stash命令详解

git stash命令用于将更改储藏在脏工作目录中。Shell。

2024-04-11 17:29:06 16

转载 git stash 用法总结和注意点

命令恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num} ,比如应用并删除第二个:git stash pop stash@{1}: 显示第一个存储的改动,如果想显示其他存存储,命令:git stash show stash@{$num} -p ,比如第二个:git stash show stash@{1} -p。

2024-04-11 17:27:41 16

原创 gradle maven-publish发布aar避免出现版本号unspecified情况

maven-publish发布aar避免出现版本号unspecified情况

2024-04-11 16:45:04 114

转载 EventBus混淆its super classes have no public methods with the @Subscribe annotation

遇到问题先不要慌,也不要盲目搜索答案,这样会浪费时间,且可能混淆你的视线先认真仔细的看一下日志,一般日志都会给你提示结合一切可用信息,快速准确的定位问题如果非要搜,建议先去官方文档找答案根据日志提示,我定位到问题是EventBus查看使用教程,并没有发现什么问题在EventBus的issues中看看是否有同样的问题,果然是有的,并知道了是R8压缩导致的去google官网查看R8相关介绍,并知道了原因,且提供了解决方案举一反三,也适用其他的问题。

2024-04-11 15:42:16 12

二维码扫描ZxingDemo

一个二维码扫描例子

2016-04-06

ormlite-4.48

Android中用ormlite实现持sqlite持久化 共含三个jar包 ormlite-android-4.48.jar ormlite-core-4.48.jar ormlite-jdbc-4.48.jar

2014-11-29

jdk-6u45-linux-x64.part2

如标题示,此为linux下64位java 1.6jdk,经验可以安装运行:我的linux为64 位ubuntu: uname -a Linux kevin-virtual-machine 3.5.0-17-generic #28-Ubuntu SMP Tue Oct 9 19:31:23 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

2013-07-31

jdk-6u45-linux-x64.part1

如标题示,此为linux下64位java 1.6jdk,经验可以安装运行:我的linux为64 位ubuntu: uname -a Linux kevin-virtual-machine 3.5.0-17-generic #28-Ubuntu SMP Tue Oct 9 19:31:23 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

2013-07-31

空空如也

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

TA关注的人

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