- 博客(2787)
- 资源 (6)
- 收藏
- 关注
转载 解密: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 1
转载 AndroidStudio使用localMaven
有时候开发一个三方库,开发阶段并不希望提交到服务器maven,只想提供给本地的其他项目使用的时候,可以使用localMaven,将三方库提交到本地计算机仓库,然后其他项目将localMaven配置到仓库查找列表,这样,可以避免不断的往服务器提交三方库而需要不断的提升版本号的问题。
2024-04-24 17:50:59 2
转载 Java时区处理 TimeZone.getTimeZone(“UTC“)
通用协调时(UTC, Universal Time Coordinated),格林尼治平均时(GMT, Greenwich Mean Time) 由于历史原因,这两个时间是一样的。北京时区是东八区,领先UTC八个小时,在电子邮件信头的Date域记为+0800。UTC + 时区差 = 本地时间。
2024-04-24 17:47:24 1
转载 Java时间处理(UTC时间和本地时间转换)TimeZone.getTimeZone(“UTC“)
协调世界时,又称世界标准时间或世界协调时间,简称UTC(从英文“Coordinated Universal Time”/法文“TempsUniversel Coordonné”而来),是最主要的世界时间标准,其以原子时秒长为基础,在时刻上尽量接近于格林尼治标准时间。本文主要对UTC、GMT、CST等时间概念做简单的介绍,比较实用的在于本文最后一个小知识点:带时区格式的时间和本地时间格式两者之间的转换方法,再次只是对简单情况做处理,如果需要处理复杂的时间转换,可以百度找一下jar包。3 CST(北京时间)
2024-04-24 17:45:42
转载 Kotlin技巧:作用域函数let、run、with、apply和also
关于Kotlin的作用域函数:let、run、with、apply和also。它们有一个共同点:它们都在对象上调用,在这些函数的作用域内,可以访问对象本身,而无需其名称。
2024-04-24 17:39:36 1
转载 -UTC时间及时区获取
可以采用多种方法获取,这里只简单介绍两种:直接获取零时区时间、根据本地时间计算得出。UTC时间:世界统一时间,世界标准时间又称格林尼治平时或格林尼治时间。PS:UTC时间+时区差=本地时间。
2024-04-24 17:32:57 1
转载 时区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 1
转载 创建SharedViewModel
Shared ViewModel 在Android应用中在不同组件之间共享数据是一个常见的需求。使用ViewModels是实现这一点的有效方式。在这个指南中,我们将探索在Android中创建SharedViewModel的各种方法。
2024-04-24 17:27:33 1
转载 正确的在 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
转载 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
转载 RootEncoder引领实时流媒体传输革新
RootEncoder for Android(rtmp-rtsp-stream-client-java)是一个功能强大的流编码器,旨在通过多种协议(包括RTMP、RTSP、SRT和UDP)将视频和音频推送到媒体服务器。该编码器完全用Java和Kotlin编写,为Android应用程序提供了广泛的多媒体流传输功能。
2024-04-24 16:57:32 1
转载 编译优化之Gradle最佳配置实践
本文先是介绍了为什么要做编译优化,然后分析了影响编译速度的因素有哪些,从最少、复用的构建原则入手,详细的为大家介绍了一些低成本且实用的最佳实践指南。如果你还没有优化过,可以实操起来了~
2024-04-17 20:13:57 30
原创 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 109
转载 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 20
转载 优雅地实现 Dialog 弹窗
可能早就有人已经发现了,我们现在对话框的调用方式跟 Compose,React 很相似,也就是最近很流行的声明式 UI,为什么说它流行,比我们传统的命令式UI好用,主要的差别就在于声明式UI调用方只需要在乎视图的描述就可以,而真正视图如何渲染,如何测量,调用方不需要关心。
2024-04-15 14:38:30 29
转载 自定义控件之自定义属性
上篇介绍了自定义控件的基本要求以及绘制的基本原理,本篇文章主要介绍如何给自定义控件自定义一些属性。本篇文章将继续以上篇文章自定义圆形百分比为例进行讲解。有关原理知识请参考Android自定义控件之基本原理(一)这篇文章。Android自定义控件之基本原理Android自定义控件之自定义属性Android自定义控件之自定义组合控件Android自定义控件之自定义ViewGroup实现标签云。
2024-04-15 14:22:49 7
转载 自定义控件之基本原理
在日常的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 26
转载 Viewpager的使用
写一个自定义的PagerAdapter适配器类,继承自AndroidX的ViewPager库中的PagerAdapter类(想用时直接调取,就不用那么麻烦每次写一遍)原文链接:https://blog.csdn.net/weixin_65399034/article/details/134618922。这里我让它每2秒就过一张图片,当手指触碰图片时,则让它停止自动轮播,放开图片则让它继续自动轮播。之后就可以写Activity.java文件了。引导页,图片浏览器,广告轮播,,应用导航,软件教程等等用途。
2024-04-12 17:47:25 14
转载 ViewPager控件
ViewPager可以实现多个界面的左右滑动。广告页长被用于首页,可以自己切换,也可以手动切换。使用ViewPager实现广告页,主要是要判断是否在手动切换,可以添加来判断。Handler类处理自动切换事件@Overrideitem = 0;
2024-04-12 17:36:47 11
转载 Android布局优化:include 、merge、ViewStub详细总结
另外需要注意的是,如果我们想要在标签当中覆写layout属性, 必须要将layout_width和layout_height这两个属性也进行覆写,否则覆写效果将不会生效 2,一个xml布局文件有多个include标签需要设置ID,才能找到相应子View的控件,否则只能找到第一个include的layout布局,以及该布局的控件。同样我们通过一个小demo说明一下,比如我们需要保存一个用户信息,用户名是必须保存的,但是其余信息是不必要的,这是其余信息就可以一开始不显示出来,用户想输入的时候在现实出来。
2024-04-12 09:50:47 11
转载 Android布局总结四:Merge总结
可以看到,这里我们将ok_cancel_layout最外层的LinearLayout布局删除掉,换用了merge标签,这就表示当有任何一个地方去include这个布局时,会将merge标签内包含的内容直接填充到include的位置,不会再添加任何额外的布局结构。接下来的部分就有问题了,在最外层的LinearLayout当中包含了两个元素,一个是EditText,另一个又是一个LinearLayout,然后在这个内部的LinearLayout当中才包含了确定和取消这两个按钮。看上去效果非常不错对吗?
2024-04-11 20:33:51 59
转载 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 112
转载 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
转载 Java 线程池调度周期性任务“异常“探究
在某个性能采集功能上线后,偶然发现一些用户采集的数据异常,跟踪异常用户采集的性能日志发现,这些性能日志上报的时间异常,本来是10S执行一次的任务,但从收集的日志上看,1S内执行了几百次(出现异常的概率较低,平均每天1个设备左右)。从上文中的实现中,可以发现Java线程池对于周期性任务,下一次的任务调度会依赖于上一次任务的执行结束,如果任务的执行时间,超过任务设置的间隔时间,那么后续任务执行的间隔,会变成任务的执行耗时为间隔。另外由于是一个周期性任务,任务执行后,并不会把该Task的状态设置为。
2024-04-11 10:02:57 12
转载 Kotlin Flow:为何它在 Android 应用中成为 LiveData 的强大对手?
在 Android 应用开发中,有效地管理 UI 相关数据对于提供出色用户体验至关重要。长期以来,LiveData 一直是这一任务的首选工具之一,但随着 Kotlin Flow 的崛起,开发者们开始重新评估选择。虽然 LiveData 仍然是一个强大而可靠的工具,但是在某些方面,Kotlin Flow 提供了更加灵活和功能强大的解决方案。
2024-04-11 09:47:49 14
转载 ART虚拟机内存分配原理浅析
简单总结了一下art虚拟机内存分配的原理,通过这些点我们可以对安卓里这些java对象如何分配有一个简单的认知,对排查内存相关问题,研究一些内存性能优化方案建立一个基础。ART虚拟机内存分配原理浅析。
2024-04-10 11:13:40 10
转载 java的finalize方法
我们通常用构造器来创建对象,而Finalize正好相反,构造方法执行对象的初始化操作,finalize方法执行对象的销毁操作.那我们什么时候需要使用finalize方法呢,我们都知道Java里垃圾回收器可以回收对象使用的内存空间,但是对象可能会持有很多资源比如Socket、文件句柄等,垃圾收集器无法回收这些资源,因此你需要使用finalize方法帮助GC回收这些资源,比如关闭打开的文件或者网元资源,删除临时文件等.
2024-04-10 11:05:41 8
转载 内存大户Bitmap相关
阅读到这里,我们总结几个有用的结论:Android Bitmap 内存占用和图片的尺寸,质量强相关,日常治理大图的时候要对这些参数适当做降级方案。Android8以下图片分配在 Java 堆内,容易 OOM,可以通过一些 hook 方案把内存移到堆外。并且虽然 Bitmap 有自己兜底的内存释放机制,但是主动及时调用recycle也不是坏事。
2024-04-10 10:47:17 22
转载 用IdleHandler进行性能优化
了解什么时候主线程被认为是空闲的至关重要。一般情况下,Android系统认为主线程在处理完所有消息后即处于空闲状态。IdleHandler通过这个定义,能够在保证不影响用户体验的前提下执行一些耗时的操作。// 没有消息,判断是否有IdleHandlercontinue;....// 执行IdleHandleri++) {try {if (!keep) {通过深度解析的原理和高级应用,让我们更好地利用这一工具进行性能优化。在实际项目中,灵活运用。
2024-04-09 15:19:02 16
转载 Android Studio中使用ImageButton时显示“Missing contentDescription”的处理方法
当点击该ImageButton后,就会有语音功能,提示的内容为图2中所示的contentDescription的值,即“Hello World”。对于ImageButton这种没有文字的控件,那些视力有障碍的用户就没办法使用,因此需要语音来提示这些用户,当前控件的作用。contentDescription属性就可以实现以上功能,如图2所示。在华为手机中打开TalkBack功能的方法是,选择“设置->辅助功能->无障碍->TalkBack”,之后打开TalkBack功能开关,如图3所示。
2024-04-09 15:03:06 19
转载 android:contentDescription 的用途的用途
android系统会自动使用人声朗读控件上android:contentDescription属性说指向的内容。但是对于一些视力有障碍的用户,android提供给用户一个很有用的功能,可以帮助使用app。3.由于这个控件没有text属性,对于一些用户来说,无法理解这个控件是做什么的。这个属性必须在用户的Accessible 中的相应属性开启后才能使用。这个属性的主要功能就是为视力有障碍的人增加对控件的解释。这样用户就可以知道这个控件是做什么用的。一般来说,用户很少使用这个属性。2.在应用中添加这个属性。
2024-04-09 14:59:11 55
ormlite-4.48
2014-11-29
jdk-6u45-linux-x64.part2
2013-07-31
jdk-6u45-linux-x64.part1
2013-07-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人