![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Kotlin--将Android进行到底
文章平均质量分 93
职场007
共享共赢,互利共生,尊重原创,勇于创新
展开
-
Android gradle kts 8.0以上版本配置签名和修改APK输出名字
之前写过一篇文章是通过Kotlin的Dsl结合gradle编写的插件来管理项目依赖,我是从一个开源项目叫DanDanPlayAndroid项目上学到的,那时还没有使用toml文件来管理项目依赖的技术。不过虽然现在有了toml文件管理依赖的技术,但我觉得使用插件的方式也很好,读者自己选择吧。这里提这个插件的原因就是在插件中涉及到修改输出的APK名字和签名配置的问题,在最新的gradle kts 版本中,这些配置有点小变化,所以在此处记录下。原创 2024-06-05 20:42:41 · 1120 阅读 · 1 评论 -
Android JetPack Compose+Room----实现搜索记录功能
搜索功能是很多APP都会重点维护的功能,因为搜索功能可以很好的帮助用户找到自己需要的内容,与此同时,为了增强用户体验,引入了搜索记录的功能,本文就是介绍一个基于Compose+Room搜索记录功的实现原创 2024-04-16 22:09:59 · 1293 阅读 · 0 评论 -
Android Jetpack Compose 沉浸式状态栏的实现
说到沉浸式状态栏,很多小伙伴可能不太熟悉,其实让Android的状态栏的颜色和APP的主题颜色相同,给人感觉状态栏和APP就是一体的。沉浸式的状态栏让页面看起来更舒服,实现沉浸式状态栏也很简单,首先就是配置主题,然后设置状态栏的颜色,之前的博客中实现沉浸式状态栏是通过将状态栏的颜色设置成页面背景的颜色,这样状态栏就和背景融为一体了,但是这种办法在每个页面都需要设置一遍,非常废了,最好的 方式就是将状态栏设置成透明的颜色,然后将我们的页面"顶"到屏幕的顶部,而不是位于状态栏下面。原创 2024-02-05 13:18:26 · 2429 阅读 · 11 评论 -
Android Jetpack Compose之底部导航栏的实现
写过一段Android jetpack compose 界面的小伙伴应该都用过Compose的脚手架Scaffold,利用它我们可以很快的实现一个现代APP的主流界面架构,即一个带顶部导航栏和底部导航栏的界面架构,我们基于这个架构可以快速的搭建出我们想要的页面效果。而今天的文章就是要介绍如何实现一个有特点的底部导航栏。原创 2024-02-01 14:58:18 · 2606 阅读 · 0 评论 -
使用Android Compose实现网格列表滑到底部的提示信息展示
目前大多数的APP都会使用列表的方式来呈现内容,例如淘宝,京东,腾讯体育的评论区等都会使用列表布局。在Android传统的View中主要是使用RecyclerView控件来实现大量数据的展示。而在Compose中使用的是LazyColumn或者是LazyGrid组件。这些组件的使用都很简单,网上有很多的例子,不是本文的重点,本文的重点是介绍实现当我们需要展示的数据展示完了后,即列表滑动到最底部的时候,我们需要展示给用户一个提示信息:比如:”已经到底“。原创 2024-01-09 14:09:45 · 1382 阅读 · 0 评论 -
Jetpack Startup 优雅完成库的初始化和方法接口简化
Startup允许库的开发者和App的开发者共享一个ContentProvider,用于完成各自的初始化逻辑,并且支持设置组件之间的初始化顺序。因此可以做到无需用户调用初始化方法就能获取到安卓上下文原创 2023-12-13 20:19:53 · 942 阅读 · 0 评论 -
Android Jetpack Compose之生命周期与副作用
借助于Kotlin的DSL语言特性,Compose可以很形象地描述UI的视图结构,视图结构对应的是一棵视图树的数据结构,这棵树在Compose中称为Composition,Composition会在Composable初次执行时被创建,当在Composable中访问State时,Compose记录其引用,当State变化时,Composition触发对应的Composable进行重组,更新视图树中的节点,然后达到刷新UI的目的。原创 2023-10-11 13:22:41 · 751 阅读 · 0 评论 -
Android 使用Kotlin封装RecyclerView
在一个开源项目上看到了一个Android Kotlin版的RecyclerView封装,个人觉得非常方便,所以就将这个封装摘了出来,记录下,方便以后使用,这个开源的项目叫[DanDanPlayForAndroid](https://github.com/xyoye/DanDanPlayForAndroid)点击链接可以查看具体的开源项目代码。原创 2023-09-30 22:58:48 · 1621 阅读 · 0 评论 -
Android Jetpack Compose之确定重组范围并优化重组
Composable函数在进行重组时会尽可能的跳过不必要的重组,只对需要变化的UI进行重组。那Compose是如何认定UI需要变化呢?或者换句话说Compose是如何确定重组的范围呢。如果重组随意的发生,那么对UI的性能会是一个很不稳定的状态,时而好,时而坏。而且如果编写的UI代码有问题,那么重组将会带来状态的混乱,导致UI显示出错。所以弄清楚Compose重组的范围确定才能更好的避免重组的坑,并且可以针对具体的范围做优化,所以本文将介绍如何确定Compose重组及性能的优化原创 2023-09-26 13:23:55 · 428 阅读 · 0 评论 -
Android Jetpack Compose之UI的重组和自动刷新
在传统的View中,若要改变UI,需要我们修改View的私有属性,比如要修改一个TextView的文字,我们需要通过它的setText(“xxx”)方法去修改。而Compose 则是通过重组来刷新UI。在之前的状态管理的文章中也提到过重组的概念。本章主要就是介绍Compose的重组和刷新相关的内容。原创 2023-09-20 13:14:17 · 422 阅读 · 0 评论 -
Kotlin使用infix关键字构建高可读性代码
相比于Java语言,kotlin集各家所长,可以使用更少的代码,实现更复杂的需求,还能保持高可读性,infix 函数就是Kotlin提供了一种高级语法糖特性。可以增加代码的可读性原创 2023-09-17 10:58:15 · 135 阅读 · 0 评论 -
Android Jetpack Compose 用计数器demo理解Compose UI 更新的关键-------状态管理(State)
假如我们把Composable的执行看成是一个函数的运算的话,那么状态就是函数的参数,输出就是生成的布局。由于唯一的参数决定唯一的输出,所以只有当函数的参数发生了变化,生成的布局才会相应的跟着变化。原创 2023-09-06 15:00:09 · 1375 阅读 · 1 评论 -
Android使用Gradle kotlin dsl 优雅配置构建项目
Gradle的出现可以说是为Android的项目构建插上了翅膀,让Android的apk打包构建更简单高效。但是Gradle是使用Groovy语言开发的,虽然说是和JAVA语言差不多,语法啥的差异也不大,但是终究他们两个还是不同的语言,开发者要想做Android打包的配置,还需要去了解Groovy语言,这无疑增加了开发者的负担。而使用Kotlin gradle dsl可以有效的解决这一痛点,只使用kotlin一种语言就可以完成Android的编写、构建、,本文将介绍基于Kotlin DSLgradle的使用原创 2023-08-14 08:52:03 · 3989 阅读 · 15 评论 -
框架开发使用注解处理器APT优雅提效
注解处理器(Annotation Process Tool)顾名思义就是一种处理注解的工具,它可以极大的优化我们平时写的冗余代码,比较典型的就是Android开发者经常写的findViewById,这原创 2023-07-16 12:25:21 · 127 阅读 · 0 评论 -
Android Compose UI实战练手----Google Bloom 主页实现(完结)
主页的页面比前面的欢迎页和登录页面要复杂得多,假设使用传统的view,即使用xml布局的方式,我们可能需要书写很多的代码,但是使用Compose UI,这一切都会变得很简单,有了前面的页面开发经验,我们拿到这个主页的页面时首先想到的第一步就是拆分页面。然后将拆分后的页面使用Compose UI中对应的组件来实现。原创 2023-07-08 14:05:08 · 399 阅读 · 3 评论 -
Android Compose UI实战练手----Google Bloom登录页实现
在之前的章节中我们已经介绍了如何实现Google Bloom练手项目的欢迎页,本文介绍如何使用Compose UI实现登录页,登录页使用传统的View去开发的时候需要先去使用XML定义好布局界面,然后在Activity中去加载布局界面,最后拿到对应的输入框ID,按钮ID等去实现登录功能,但是使用Compose UI来实现这些就显得很简单,我们只需要使用Compose UI 的相关组件根据Compose提供的布局组件,组合到一起就可以了,最主要的是拆分页面,让其分成不同的小组件,然后分别用Compose U原创 2023-06-29 13:20:19 · 974 阅读 · 0 评论 -
Android Compose UI实战练手----Google Bloom欢迎页
在之前的博客中,我已经介绍了Compose 的基础UI和布局组件,现在我们就利用这些基础UI和布局组件去做一个实战项目。Bloom是Google提供的一个假想产品,我们可以作为练手项目使用,这个产品的详细UI设计稿大家可以自行去百度下,个人决定这里主要是熟练去使用Compose UI,不必要纠结设计稿,文末我会贴出项目的github地址,供读者参考。原创 2023-06-16 13:18:34 · 1199 阅读 · 0 评论 -
将Android进行到底之内容提供者(ContentProvider)
随着现在的应用越做越大,出现了多进程的架构,因为Android的应用能申请的内存是有限制的,所以很多APP为了能够最大程度的保证自己的应用能够逃脱系统的围杀,设计出多进程架构,让App可以多使用几份内存。但是由于进程间内存是不共享的。所以需要做进程间的通信(IPC)。而Android进程间的通信有很多种。比如socket,基于Binder的AIDL以及ContentProvider等,而本章内容要介绍的就是内容提供者(ContentProvider)原创 2023-01-02 16:35:34 · 1460 阅读 · 0 评论 -
将Android进行到底之广播(Broadcast)
在VR的开发中,Android的广播扮演着很重要的角色,因为我们的VR开发中显示的Launcher界面通常是使用Unity3d开发的,所以很多时候当我们想要在VR眼镜中,去调试我们的功能的时候。想象下,以前我们是直接在Android上显示,在Activity中写个Button就行了,但是遇到咱们到了VR眼镜中,要调试的时候,就不能直接在眼镜中让Unity3d的同事给你加个调试的按钮吧,人家也没那时间给你加下图就是使用Unity3d渲染出来的Launcher 界面。原创 2022-11-12 23:17:49 · 2676 阅读 · 0 评论 -
将Android进行到底之Activity
在现在的VR行业中,大多数都是基于Android系统,但是曾经使用频率很高的组件ACTIVITY现在在VR中基本不用,因为VR眼镜的显示大多数使用的是Unity3D 来做的3D 页面。Activity更多的是做一些测试页面。尽管这样我们还是需要简单的看看这个组件,刚入行的小萌新一定要看这个组件。本文中只是简单粗暴的例举了Activity中的一些概念,不熟悉的读者需要自己多去写,多熟悉。基础一定要打牢,这样在后面的工作中才能事半工倍。原创 2022-06-26 00:16:23 · 959 阅读 · 0 评论 -
将Android进行到底之服务(service)
我们都知道,字节最近发布了PICO4VR眼镜,我买了一个,体验还行。因为我也是做VR眼镜的Android应用层开发的,所以想把自己项目中遇到的一些Android技术分享给读者。近些年随着VR眼镜的兴起,Android的的服务(Service)和广播(Broadcast)以及内容提供者(Content Provider)越来越被重用,相反Activity这个曾经很吃香的组件在VR眼镜的开发过程中却用的不多。原创 2022-11-07 00:30:43 · 1760 阅读 · 8 评论 -
将Android进行到底之Sqlite
这里的SQLiteOpenHelper是Google对SQLiteDatabase的又一层封装,方便咱们开发者使用,使用SQLiteDatabase这个也是可以的。只是稍微复杂点,咱们这里主要讲SQLiteOpenHelper方式) {} }这时我们会发现在类中需要重写onCreate和onUpgrade,onCreate是当我们第一次创建数据库时会调用,而onUpgrade是我们数据库升级的时候会调用。原创 2022-10-15 17:15:21 · 1062 阅读 · 0 评论 -
将Android进行到底之Kotlin语言基础(五)
kotlin就好比李小龙创建的截拳道,集百家之长,来使自己更加强大和完善,Java因为面向对象的编程思想,变成很多大型软件的首要编程语言选择,kotlin自然会继承这个优秀的思想。我们都知到面向对象编程在Java中主要就是类的出现,每一个对象都可以被定义成一个类,类中封装了这个对象的信息和操作。但......原创 2022-07-11 21:50:18 · 409 阅读 · 0 评论 -
将Android进行到底之Kotlin语言基础(四)
不管学什么语言,我觉得都是在学一个工具,都是了解这个工具的特性,以及用这个工具能做啥。然后利用这个工具造出自己想要的东西。其实咱们都知道,自己想要的东西,很多工具都能造,面对选择,咱们肯定要选好用的工具,就比如咱们需要完成一个钉钉子的工作,咱们可以用石头完成,武艺高强的可以用徒手完成,但是这样的人好像不多,也可以用锤子。相信大家都会选择锤子。因为它好...原创 2022-07-09 22:28:27 · 694 阅读 · 0 评论 -
将Android进行到底之Kotlin语言基础(三)
前面的文章主要写了kotlin语言的基本使用,其实kotlin还有很多很好用的内置函数以及操作符,这些操作符使我们能用很简洁的代码完成一些很复杂的功能。本章会讲一些kotlin的操作符以及常用的内置函数,一起来看看吧。在Java中我们写代码的时候,如果涉及到用哪一个实例变量的时候要注意判空,比如:这样的操作,如果不加空判断,那么假如咱们的 xxx对象没有实例化的话,或者在某个地方被赋值为...原创 2022-07-08 23:37:45 · 359 阅读 · 0 评论 -
将Android进行到底之Kotlin语言基础(二)
在上一章将Android进行到底之Kotlin语言基础中我们了解了kotlin的基本使用,本章我们将继续探索kotlin语言的高端(装x)用法,让我们一起出发吧,恶龙咆哮~~~嗷匿名函数,也叫闭包函数,允许临时创建一个没有指定名称的函数。咱们先看例子:上面的代码块中就是一个匿名函数的声明和调用,代码中的:的方式就是匿名函数的定义,这句的意思是匿名函数接收一个Int类型的参数,箭头后面是匿名函数的返回值String类型。需要注意的是:**匿名函数不用写return,最后一行就是它的返回值。这个返回值的类型,原创 2022-07-07 22:40:30 · 335 阅读 · 0 评论 -
将Android进行到底之Kotlin语言基础(一)
开启Android kotlin 语言的修炼之路原创 2022-07-06 22:32:26 · 304 阅读 · 0 评论