自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Kotlin-13.数据类(data class)

官方文档: http://kotlinlang.org/docs/reference/data-classes.html2.copy函数3.componentN函数-解构声明(Destructuring Declarations)4.两个等号==和三个等号===简书:http://www.jianshu.com/p/cb807bf83e44CSDN博客: http://blog.csdn.net/qq_32115439/article/details/73611829

2024-05-09 11:21:05 7

转载 Kotlin中data class构造函数的问题

无参构造函数不是我想要的,这里需要的是一个有两个long类型参数的构造函数,已经找到解决办法了。

2024-05-09 11:15:17 7

转载 项目到底要不要引入单元测试

有些同学看到这里紧张了,以为我要开始搬定义了。然而并非如此,接下来我要分享的所有都是我自己的心路历程,也是我自己对单元测试从完全不 care 到至少入门的过程。所谓“单元测试”,顾名思义就是对软件的一个个最小单元进行模块化测试。在《给安卓开发小白们的unit test指南 - 这也能测?这也要测?这篇文章里,阿庆哥给出了一张软件工程金字塔结构图,可以清楚看到单元测试直接位于这座金字塔的最底层!常言道万丈高楼平地起,可见如果单元测试做得很稳健的话,对于整个软件项目的稳健性一定是收益最大的。

2024-05-09 11:00:43 3

原创 rgb转jpg

最近工作需要,业务上要把rgb文件转换成jpg图片格式,找到一网址,可以先预览效果,再看程序写的结果,是不是正确,在此记录一下。

2024-04-30 18:08:57 228

转载 技术能力重要还是业务能力重要

如果你是业务团队,为了应付工作,你应该多搞点业务。富有余力,那可以考虑补一补短板,提升一下技术水平,以免将来团队、公司发生变化,自己应付不来。如果你在技术团队就反过来理解,当下已经游刃有余了,就弥补短板,当下捉襟见肘,还是应该追求效率。,如果你当前技术强就多钻研钻研业务,想想怎么把技术应用起来带动业务发展,给公司、团队和个人创造价值。如果你现在技术很烂,只能应付简单的业务需求,稍微复杂一点的问题就搞不定,那显然应该多研究研究技术,给自己加点本事。,如果你打算接下来去往更好的平台,那么还是应该多搞搞技术。

2024-04-30 18:05:08 17

转载 Apk安装之谜

前期准备阶段又划分为拷贝完整性验证解析apk提取native libs、版本号验证五步,每一步都在为后一步做准备。拷贝会把安装的apk拷贝到。完整性验证会对进行验证,如果修改过则停止安装,同时还会提取签名信息到对象,如果apk没有签名信息则会停止安装,对象会在后面的安装流程用到。解析apk会从的AndroidManifest中把包名、版本号、安装路径、是否是debug等信息提取出来放入对象,若解析中发生错误也会停止安装。提取native libs的时候会用到对象,会把中的so库提取到。

2024-04-30 18:02:00 13

转载 你应该掌握的Android窗口基础

其实这样的理解放到如今来看也不能说错,只是需要一个更准确的说法:Activity包含我们可见的界面,但是可见的界面不一定是Activity。Activity界面中的根View叫做DecorView,它是View的根布局,里面包含了我们定义的View树,当然也有状态栏和导航栏。ViewRootImpl不能看名字进行理解,它不是View,更不是根View,而是View树和WindowManager之间的连接者,负责View的测量、布局和绘制工作,是整个View系统里面非常重要的类。

2024-04-28 13:26:18 20

转载 Perfetto 系列 3:熟悉 Perfetto View

上面分享了 Perfetto 基本的界面和操作,以及分享了一些比较常用的 Perfetto 的技巧。Google 目前在积极推广和维护 Perfetto,很多新功能指不定哪天就蹦出来了,到时候觉得有用我也会更新上来。至此 Perfetto 基础篇就结束了,后续就是通过 Perfetto 这个工具,来了解 Android 系统运行的基本流程,以及使用 Perfetto 以及 Perfetto SQL 来分析遇到的性能、功耗等问题。

2024-04-28 11:27:30 24

转载 凡猿修仙传:斩杀HardwareRenderer.nSetStopped ANR

HardwareRenderer.nSetStopped 是我们App ANR中战力第四的大妖,每天殃及用户8000余人,我们一直都想除之而后快。奈何此妖修为极深,从堆栈上只能看出其是在主线程渲染帧过程中,在View的三大流程的最后一步performDraw时候作案。从表面找出其破绽并不容易,但ANR率长期居高不下,用户苦其久矣,我们痛定思痛,定要斩杀这大妖。

2024-04-28 11:20:16 22

转载 5 分钟带你搞懂 ArkTs

ArkTS 是 HarmonyOS 首选的开发语言,它在 TypeScript 的基础上做了一些优化和扩展,继承了 TypeScript 的优点,屏蔽了 TypeScript 的缺点,和 ArkUI 框架一起构建了鸿蒙应用,这篇文章我们主要介绍 ArkTS。ArkTS 设计初衷旨在提高开发效率、代码质量和性能,所以需要满足以下场景。在实际工作中,代码阅读频率远远高于编写频率,因此 ArkTS 代码需非常容易阅读和理解以最小功耗快速执行代码。

2024-04-28 11:09:05 107

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

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

2024-04-25 10:21:43 14

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

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

2024-04-25 10:19:46 9

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

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

2024-04-25 10:06:38 8

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

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

2024-04-25 10:03:03 10

转载 Kotlin之密封类与枚举

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

2024-04-25 10:00:07 3

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

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

2024-04-25 09:52:21 16

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

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

2024-04-25 09:46:28 45

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

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

2024-04-24 19:07:25 20

转载 使用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 41

转载 解密: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 98

转载 AndroidStudio使用localMaven

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

2024-04-24 17:50:59 15

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

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

2024-04-24 17:47:24 22

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

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

2024-04-24 17:45:42 24

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

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

2024-04-24 17:39:36 7

转载 -UTC时间及时区获取

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

2024-04-24 17:32:57 27

转载 时区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 22

转载 创建SharedViewModel

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

2024-04-24 17:27:33 12

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

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

2024-04-24 17:24:26 24

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

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

2024-04-24 17:18:31 4

转载 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 6

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

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

2024-04-24 17:04:05 5

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

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

2024-04-24 16:57:32 9

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

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

2024-04-17 20:13:57 50

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

转载 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 28

转载 优雅地实现 Dialog 弹窗

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

2024-04-15 14:38:30 39

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

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

2024-04-15 14:22:49 12

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

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

2024-04-15 14:11:49 8

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

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

2024-04-12 17:58:58 52

二维码扫描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关注的人

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