![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android
文章平均质量分 78
安卓
蜗牛、Z
技术共享,技术分享;有技术需要帮助,可以私聊
展开
-
Android Viewpager2 remove fragmen不生效解决方案
Android Viewpager2 remove fragmen不生效解决方案原创 2024-07-14 15:22:35 · 1030 阅读 · 0 评论 -
Android TabLayout+ViewPager2如何优雅的实现联动详解
Android开发过程中,我们经常会遇到滑动+导航栏的做法,之前的做法就是我们通过ViewGroup来转动,然后通过大量的自定义来完成,将导航栏item与viewpage滑动,达到业务需求。原创 2024-07-14 15:19:33 · 515 阅读 · 0 评论 -
Android 系统应用 pk8签名文件转jks或keystore教程
Android 系统应用 pk8签名文件转jks或keystore教程原创 2024-03-25 14:57:04 · 1766 阅读 · 0 评论 -
okHttp MediaType MIME格式详解
在okhttp中,请求是通过RequestBody来完成封装,额外的数据封装,RequestBody也可以多层封装,将一些文件等通过RequestBody进行二次封装。我们在做数据上传时,经常会用到Okhttp的开源库,okhttp开源库也遵循html提交的MIME数据格式。我们通过okhttp所有的post提交都是需要指定mime数据格式的,否则导致服务端无法解析等。上面就是常见的MIME格式的封装,大家可以通过这个自己查找。通过上面的介绍,我们知道post提交需要MIME指定的类型。原创 2024-03-06 15:47:21 · 1253 阅读 · 0 评论 -
Android Room数据库升级Migration解决方案
不可以,即使你表发生了很大的变化,你也不能随便删除之前修改的,如果删除了,会导致之前有很多用户表有升级到最新,导致后期升级上来,丢了中间的表变化,这样早执行Dao的时候,直接crash。在使用Room数据的时候,一定要小心,如果你的数据库发生了变化,一定要及时新增migration,否则时间一长,可能改的面目全非。这个版本号会记录当前表的信息,如果表发生了变化,在初始化表的时候,并没有通过升级版本,修改表结构,就会导致在Dao执行事务的时候报错。在修改表结构,Room也提供了合并的支持。原创 2024-01-06 12:47:55 · 1864 阅读 · 0 评论 -
Java 语法糖的介绍
"语法糖"并不是Java语言的一部分,而是一种编程技巧。它利用了Java编译器对某些代码结构的优化处理,使得我们的代码看起来更加简洁、易读。虽然这些"糖"并不会改变程序的执行逻辑,但它确实能使我们的代码更加优雅。语法糖是Java编程中的一种强大工具,它可以帮助我们编写更加简洁、优雅的代码。通过了解语法糖的种类和使用方法,我们可以更好地利用这一技巧来提升自己的编程技能。在实践中不断反思和总结经验,积极参与开源项目和社区交流,将使我们在这条甜蜜的诱惑之路上越走越远。原创 2024-01-01 13:15:41 · 513 阅读 · 0 评论 -
Jenkins在window下配置Android打包配置
Jenkins在window下配置Android打包详解原创 2023-12-19 11:12:54 · 799 阅读 · 0 评论 -
Android Uri scheme协议file转content
在处理这些资源时,我们可能会遇到不同的Uri协议,如file和content。本文将详细介绍如何从file协议的Uri转换到content协议的Uri,并解释这个转换过程中的关键步骤和注意事项。首先,我们需要了解file和content两种协议的基本概念。file协议的Uri通常以"file://"开头,用于标识本地文件系统上的文件路径。而content协议的Uri则以"content://"开头,用于访问通过内容提供者(Content Provider)暴露的数据。一、了解file和content协议。原创 2023-12-19 10:29:28 · 2350 阅读 · 0 评论 -
Android gradle动态配置不同打包环境参数值
Android gradle动态配置不同打包环境参数值原创 2023-10-19 14:48:18 · 622 阅读 · 0 评论 -
Android kotlin内联函数(inline)的详解与原理
内联函数很好的配合了程序的解耦工作。解耦就是将复杂的程序或者共用的模块抽取出来,这样也牺牲了一部分性能,考虑到寻址这个问题。但是在kotlin中又通过inline方式,解决了性能问题,同样也带来了空间问题。这就是程序中经典的空间换时间,这个只针对如今内存条向对便宜的时候可以忽略,计算机起步的时候,空间换时间是一件不可想象的事。注意:内联函数不是百分百会被插入到调用的地方,这是c++的概念。kotlin的内联也遵守c++的设计原则。原创 2023-10-08 16:32:52 · 964 阅读 · 0 评论 -
Android虚拟机 Java虚拟机JVM常见问答分析与总结
JVM是JavaVirtualMachine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的原创 2023-09-04 16:07:52 · 761 阅读 · 0 评论 -
Android Mvvm设计模式的详解与实现
目前在做有UI展示的一些项目或者端,都在说MVVM设计模式。MVVM全程view-viewModel-Model。还是分为三层,View层,viewModel:view与业务层,Model数据业务层View:是我们fragment或者Activity界面,主要处理UI渲染和交互的viewModel:介于view与Module之前,处理数据与逻辑上的,将Model请求的结果返回给view层Model:与viewModel打交道,将view需要的数据通过Model层来请求,然后将请求到的结果返回原创 2023-08-26 14:08:25 · 2365 阅读 · 0 评论 -
Java与Kotline Funcation函数与参数函数的详解
在现在以IDE为开发工具的时代,各种开发语言都有,kotlin的语法势头比较强,今天我们将介绍在项目中出现比较多的两种函数,一种是参数函数,还有一种就是Function函数原创 2023-08-04 16:49:52 · 533 阅读 · 0 评论 -
Kotlin 内联函数语法之let、apply、also、run、with的用法与详解
Kotlin 内联函数语法之let、apply、also、run、with的用法与详解原创 2023-07-27 11:15:01 · 1062 阅读 · 0 评论 -
Android kotlin高阶函数与Java lambda表达式介绍与实战
目前在Java JDK版本的不断升高,新的表达式已开始出现,但是在Android混淆开发中,kotlin的语言与Java的语言是紧密贴合的。所以Java lambda表达式在kotlin中以新的身份出现:高阶函数与lambda表达式特别类似。接下来我讲会先讲Java的lambda,再介绍kotlin的高阶函数。原创 2023-07-26 18:00:19 · 735 阅读 · 0 评论 -
Android ObjectBox数据库的使用与详解
objectBox数据库是一个新的产品,底层是以C和C++完成的数据库引擎。属于插件化东西,比Room接入要复杂一些,这是一款NOsql的数据库,也就是说,这个数据库不需要sql语句就可以使用,是以对象为实体的操作数据库。原创 2023-07-22 10:48:19 · 1803 阅读 · 7 评论 -
Android ConstrainLayout布局中View位置的介绍与使用
ConstrainLayout是一款布局View,再Design库中,现已被大家广泛接受并使用。ConstrainLayout的布局采用的方式和其他都不同,他的对其方式是类似RelativeLayout,但是和RelativeLayout有明显的区别。在布局渲染的时候,ConstrainLayout的子View是通过在一个容器中找到自己的位置,通过位置和对其方式来固定,所以在布局优化中,尝尝被提起到。原创 2023-07-02 12:36:25 · 851 阅读 · 0 评论 -
Android 安卓开发语言kotlin与Java该如何选择
通过kotlin的自身问题,其实kotlin就是一种插件语言,最终还是翻译成Java,只是目前来看,通过翻译的目标类,还是Java本身,但是增加了特别多的校验,导致写法和Java有很大的不同。这种不同来自我们的习惯问题。有人提前判空,有人喜欢丢在使用出判空,调用处让语法自然一些。Android应用不像PC,空指针是致命的BUG,出现一个就会导致崩溃。所以,kotlin对空指针校验特别严格,也对使用埋下了隐患,新手可以绕开校验,但是对于绕开的原理不够理解,就会引起崩溃。原创 2023-06-25 16:13:12 · 7151 阅读 · 1 评论 -
Java面试常见算法--持续更新
java常见的面试算法,持续更新原创 2023-06-21 14:14:44 · 608 阅读 · 0 评论 -
Android kotlin序列化之Parcelable详解与使用(二)
通过原生手写和注解两种对比,我还是建议大家不要通过注解去完成,因为出现问题无法排查,浪费时间。特别是新手,很容易被绕进去,找不到问题。原创 2023-06-09 17:55:31 · 1751 阅读 · 0 评论 -
Android kotlin序列化之@Parcelize详解与使用
如果在使用过程中,通过注解发生了数据异常,需要检查对象是否序列化了,如果通过构造器的,查看方法体是否参与了,如果是很简单的数据建议构造器,如果是复杂的数据,建议抛弃构造器如果采用了注解,就不能使用类中定义类这种用法,否则对象获取为null。那用什么?接下来我会介绍抛弃注解,直接使用手写。原创 2023-06-09 17:22:44 · 6995 阅读 · 2 评论 -
Android Cannot resolve symbol 找不到资源解决方案
在android开发中,我们经常会发现依赖了系统提供的库,但是无法引用,或者找不到,Cannot resolve symbol '@style/Theme.AppCompat.NoActionBar' ,报红。这些最经典的无法加载。原创 2023-06-02 14:05:32 · 1877 阅读 · 0 评论 -
Android H5拉起原原生混合方案的介绍与实战
如今,在APP应用中,消息大多数采用推送方式比较多,到达率很低或者说无法满足业务的需求。在一些大型活动中,依然需要短信的参与,短信的准确度和到达率几乎是百分百的。短信的富文本格式有限,想要快速的让接收人到达业务线,常常是通过短信内容描述+地址连接。在短信内容中,连接是比较好的一种媒介。但是H5的链接也是有限的,大多数开发者还是想通过H5的链接,拉起原生,跳转到原生页面,这样会达到打开原生页面的效果。在现在的业务中,我们也经常收到银行、电商等平台的短信,打开这些链接,如原创 2023-06-01 16:49:11 · 962 阅读 · 0 评论 -
Android 应用快捷ShortcutManager与ShortcutManagerCompat详解与实战(二)
创建快捷方式后,您需要在应用生命周期内对其进行管理。例如,您可能需要确定用户使用您的快捷方式完成特定操作的频率,以此来优化应用。在其他情况下,您可能会决定停用某个固定快捷方式,以防止应用执行过时或缺失的操作。ShortcutManager与ShortcutManagerCompat是快捷的大管家,即使我们不通过xml去配置,也能通过代码去动态的完成。原创 2023-05-31 16:18:43 · 2495 阅读 · 2 评论 -
Android 应用Icon快捷(shortcut)功能的详解(一)
快捷方式可帮助用户快速访问您的应用的某些部分,从而为他们呈现特定类型的内容如何以快捷方式来呈现内容取决于您的用例,以及快捷方式的上下文是属于应用驱动型还是用户驱动型。虽然静态快捷方式的上下文不会更改,而动态快捷方式的上下文会不断变化,但这两种情况下的上下文都由您的应用驱动。如果用户选择了希望应用以哪种方式(例如使用固定快捷方式)向其呈现内容,则此时的上下文是由用户定义的。以下场景展示了各类快捷方式的一些用例:静态快捷方式最适合在用户与应用互动的整个生命周期内使用一致结构链接到内容的应用。原创 2023-05-30 11:43:07 · 3589 阅读 · 0 评论 -
Android 页面滑动悬浮资源位动画+滑动监听解决方案
Android 页面滑动悬浮资源位向左或者向右隐藏解决方案原创 2023-05-08 16:56:58 · 1066 阅读 · 1 评论 -
Android Dialog之DialogFragment详解与使用
看到DialogFragment,从单词可以看到是Dialog与Fragment组合而成,但是在DialogFragment中,DialogFragment其实是一个fragment,内部持有一个Dialog,这样方便了开发者的管理。fragment在碎片管理中其实就是一个View,最终view的显示是通过dialog来完成。原创 2023-05-08 16:07:42 · 4174 阅读 · 0 评论 -
Android 各大厂面试题汇总与详解(持续更新)
目前网络中出现了好多各种面试题的汇总,有真实的也有虚假的,所以今年我将会汇总各大公司面试比较常见的问题,逐一进行解答。会一直集成,也会收集大家提供的面试题,如有错误,请大家指出,经过排查存在,会及时更新原创 2023-04-26 17:02:04 · 1674 阅读 · 2 评论 -
Android Fragment懒加载机制分析与详解
Fragment是Android3.0以后引进,称为碎片。它与Activity非常相似,用一个Activity中描述一些行为或者一部分用户界面,使用多个Fragment可以在一个单独的Activity中建立多个UI面板,也可以在多个Activity中使用Fragment原创 2023-04-21 09:44:39 · 2392 阅读 · 0 评论 -
Android View的坐标获取详解以及动画坐标分析
在平面图形中,图形都是由点坐标确定的。同样,Android的设备屏幕也是一个,如果非3D图形,正常的view就是一个二维坐标屏幕的左上角的坐标A(0,0),如果屏幕的宽为:width,高:height 那么右下角的坐标是D(width,height)坐标的顶点从A点,向右和向下两个方向延伸。所有横坐标为X轴,中坐标是Y轴,变成坐标。原创 2023-04-11 11:13:22 · 2931 阅读 · 0 评论 -
Android Service与IntentService详解与使用
直接通过通过快捷键new一个。创建完,删除里面生成的代码,写入自己的代码,记住:AIDL是接口,所有在使用要小心,准好以后,build->make一下项目,IDE会自动创建对象的JAVA文件。Android Binder,AIDL跨进程通讯详解与实现,看一遍就懂_蜗牛、Z的博客-CSDN博客) {showToast("add收到你的${msg}")info = msg!!return "我已收到你的${info}") {bind.add("发送消息")) {原创 2023-04-07 16:55:29 · 1474 阅读 · 0 评论 -
Android 图片加载库之Coil的详解与使用
Android 图片加载库之Coil的详解与使用原创 2023-04-03 08:30:00 · 5167 阅读 · 1 评论 -
Android kotlin实战之协程suspend详解与使用
Kotlin 是一门仅在标准库中提供最基本底层 API 以便各种其他库能够利用协程的语言。与许多其他具有类似功能的语言不同,async与await在 Kotlin 中并不是关键字,甚至都不是标准库的一部分。此外,Kotlin 的挂起函数概念为异步操作提供了比 future 与 promise 更安全、更不易出错的抽象。原创 2023-03-02 14:38:42 · 2825 阅读 · 0 评论 -
Android Kotlin实战之高阶使用泛型扩展协程懒加载详解
通过前面几篇文章,我们已基本掌握kotlin的基本写法与使用,但是在开发过程中,以及一些开源的API还是会出现大家模式的高阶玩法以及问题,如何避免,接下来讲解针对原来的文章进行一些扩展,解决大家在工作中遇到的问题,如何去解决原创 2023-03-01 18:05:20 · 1523 阅读 · 0 评论 -
Android JetPack之启动优化StartUp初始化组件的详解和使用
startup库,实现一种在应用启动时初始化组件的简单而高效的方法。借助 App Startup 库,可在应用启动时简单、高效地初始化组件。库开发者和应用开发者都可以使用 App Startup 来简化启动序列并显式设置初始化顺序。原创 2023-02-26 15:03:43 · 1962 阅读 · 0 评论 -
Android Handler的内存抖动以及如何在子线程创建Handler详解
Handler,作为一个在主线程存活的消息分发工具,在App开发过程使用频率很高,也是面试问的比较多的。 面试常见的比如:子线程如何创建?Handler的机制是什么?内存抖动等,接下来我们会针对Handler的使用进行总结与指导原创 2023-02-20 16:19:01 · 1143 阅读 · 0 评论 -
Android DataStore Proto框架存储接入AndroidStudio教程详解与使用
Jetpack datastore proto存储接入与proto基本语法与对象的生成原创 2023-02-17 17:22:08 · 1187 阅读 · 0 评论 -
Android Jetpack组件DataStore之Proto与Preferences存储详解与使用
Jetpack DataStore 是一种数据存储解决方案,允许您使用协议缓冲区存储键值对或类型化对象。DataStore 使用 Kotlin 协程和 Flow 以异步、一致的事务方式存储数据。如果您当前在使用 SharedPreferences 存储数据,请考虑迁移到 DataStore,Datastore在存储安全和性能都是有保障的。原创 2023-02-17 14:49:34 · 1960 阅读 · 0 评论 -
Android Jetpack组件之WorkManager高级概念介绍与使用(三)
在您的应用启动时,WorkManager 会使用自定义自行初始化。此代码位于内部类中,并使用默认。自动使用默认初始化程序(除非明确停用它默认初始化程序适合大多数应用.build()原创 2023-02-11 21:36:19 · 2985 阅读 · 0 评论 -
Android Jetpack组件之WorkManager后台任务管理的介绍与使用(二)
我们可以弄清楚workmanager从接入到使用的基本流程。基本可以满足我们日常。那只是简单的入门。如果遇到更复杂的功能,那简单的就无法满足原创 2023-02-11 18:40:07 · 1953 阅读 · 0 评论