过去两年,我们在掘金平台上发表过一些文章,小彭也收到了大家的意见和鼓励。最近,我会陆续搬运到公众号上。
https://developer.android.com/topic/libraries/view-binding
kotlin-android-extensions插件可能算得上是我最喜欢的一个Kotlin在Android上的特性了。
在我们的开发过程中,需要获取XML布局文件中的ViewId,以便其赋值显示,我们习惯使用findViewById进行操作,可这样会导致很多的模版代码出现。
写这篇文章是因为有读者想看看Kotlin中怎么操作低功耗蓝牙,再加上我也想写一些关于Kotlin的内容,对于低功耗蓝牙的Java版的,我写了两篇,一个是扫描、连接,另一篇就是数据交互,而这篇Kotlin文章我会减少讲解的环节,更多的注重业务逻辑和UI以及Kotlin的语法。
首先感谢这位读者的提议,让我抽出时间细看视图绑定的内容,也打算在项目中使用该功能。当然,还有其他读者提议的内容我已记录,后期有时间也会陆续更新。话不多说,我们开始学习吧!
好久没有更新文章了,之前一阵子都在准备公司内部的技术分享。也就偷懒没有更新自己的技术博客了,而且感觉也没有啥好玩的技术可以和大家分享的。前一阵子我们在使用viewbinding的委托的时候碰到了点crash问题,然后发现了一个比较有意思的解决方案,就和大家展开聊聊。
我们在Android开发的过程中总是需要获取XML布局中的ViewId,以便给其赋值进行显示,早期我们只能使用 findViewById 这个API,会导致很多的模版代码出现。2013年左右Android界大神 Jake Wharton开源了Butter Knife框架,通过Bind(“viewid”)方式方便开发者获取ViewId。近两年由于谷歌对Kotlin的支持,我们开始使用 Android Kotlin extensions。 在文件中导入布局文件直接引用viewId。无需做其他额外操作,最为方便。
链接:https://juejin.cn/post/7357546247849197606 本文由作者授权发布
手机厂商还没卷完Android 12,Android 13就悄然声息地来了,距离Google 2008年9月22日发布Android 1.0,已过去13个年头。
嗨,我是写博客满脑子骚东西的哈利迪~今天和大伙聊聊Android中的xml和view的那些事,首先会分析一下xml布局解析inflate的流程,然后会介绍一些业内的方案,如:
从 Android Studio 3.6 开始,视图绑定能够通过生成绑定对象来替代 findViewById,从而可以帮您简化代码、移除 bug,并且从 findViewById 的模版代码中解脱出来。
我们以前获取xml中的View,通常通过findViewById但是样板代码太多,而且容易引用错误发生崩溃。
升级到AS 4.0以后,出现如下的预警,对于我这种有代码洁癖的人是不能忍的,必须解决
View Binding是一项功能,使您可以更轻松地编写与视图交互的代码。在模块中启用视图绑定后,它将为该模块中存在的每个XML布局文件生成一个绑定类。绑定类的实例包含对在相应布局中具有ID的所有视图的直接引用。
前几天看到邮件说 Kotlin 1.4.20-M2(https://github.com/JetBrains/kotlin/releases/tag/v1.4.20-M2) 发布了,于是打开看了看更新,发现有个新的用于 Parcelize 的插件。要知道这个功能一直都是集成在 KAE 当中的,那 KAE 呢?
整体上看,这一年,Android 只专注一件事,就是帮助开发者提高生产效率。(developer productivity)
然天下苦客户端久矣,一个需求不论是Android还是iOS,各端的实现都不一样,开发难度也不一样,实现效果也不一样,开发时间double,bugfix也是double,所以,跨端的开发应运而生,从H5的探索到RN的探索,这些跨平台方案始终都没逃出原生开发的桎梏,直到Flutter的出现,让跨平台开发进入了全新的时代,自渲染引擎的跨平台方案,打开了跨平台的阳光大道,从目前来看,Flutter已经算是成功了。
即便在如今这个变幻莫测的时势里,我们依然看到来自世界各地开发者们的佳作——那就是 Android 上一个又一个精彩的应用。不论您是在厨房里用一台笔记本工作,还是在家中有更好的办公环境,您都需要更好的、与时俱进的趁手工具: Android Studio 4.0。更高效的代码编写、更快捷的编译速度,让您尽情地为用户们设计最棒的应用,即刻下载正式版开始使用吧!
在当前这个充满不确定性的时期,来自世界各地的无数开发人员依旧在想方设法继续做自己最擅长的工作——为 Android 创建出色的应用,这让我们感动不已。无论你是已经复工回到办公室,还是依旧在家远程办公,都需要得心应手的工具。为此我们发布了 Android Studio 4.0,为大家带来全新的工具和现有工具的诸多改进,帮助开发人员更智能地编程,更快地构建,并设计出用户信赖的应用。
之前我们与视图交互的方式有findViewById、kotlin中引入Android Kotlin Extensions后直接通过id进行访问
中国电信电子渠道运营中心,属于中国电信三大主渠道之一,负责电信线上渠道的管理与运营。电信营业厅 app 则是中国电信线上渠道的主要入口。目前该应用的注册用户超过 2 亿,月活跃用户接近 6,000 万,月交易额在 10 亿以上。
最近放寒假了,终于有空做项目了,想着把之前的一些项目重构一下,碰巧重构到 view Binding 这块,之前都是用 kotlin 的那个扩展,其实刚开始做项目的时候这个就已经废弃了,由于当时自己有点懒,没去学习这个新的代替方案,所以就成为一个历史遗留的问题,参考官方文档
最近我司正在做关于kotlin和jetpack版本升级的工作。我这次就被分派到了jetpack的升级工作了,这次目标版本就是谷歌最新的release版本。
新的 Android Studio 4.0 更换了全新的启动界面,最近 Google I/O 中官方发布了 Android Studio 3.5 的 beta 版,一个月之后发布了 Android Studio 3.6 beta 版,而最近的 Android Dev Summit 中为我们带来了 Android Studio 4.0 预览版,今天我们就来看一下,新的 Android Studio 4.0 为开发者带来了哪些新体验!
Android Studio稳定版发布了3.6版本,带来了一些新变化:首先外观,启动页变了,logo改了,更显现代化;增加Multi Preview功能,能同时预览多个尺寸屏幕的显示效果;模拟器支持多屏;也终于支持全新的视图绑定组件View Binding;等。
欢迎大家来到 Now in Android 栏目,本栏目将专注于为开发者们提供近期值得关注的 Android 开发热点内容。
现在无论走到哪儿,如果Android开发者说自己不了解Jetpack,怕是会被人”鄙视“的看一眼,从今天开始,我会写一系列Jetpack的文章,让我们一起来学习强大的Jetpack吧。
下载google CodeLab的程序时,提示要更新3.6版本才能运行程序,于是更新了一下,看看有什么新功能。
最近业务同学需要接入谷歌推的Hilt框架。因为哔哩哔哩的业务上很容易出现业务层面的交叉,而因为项目完成了大量的组件化拆分。由于不希望业务之间产生相互引用,所有在技术评估完成之后我们决定由我们部门来对Hilt进行接入。
这里是 重学 Kotlin 系列第二篇,本文永久更新地址 :https://xiaozhuanlan.com/topic/0846175293 。
真的要细说 Gradle,恐怕目前能力还是有限,仅仅了解皮毛,简单分享,欢迎交流~
从早期令人惊艳的ButterKnife,到后来的以ARouter为首的各种路由框架,再到现在谷歌大力推行的Jetpack组件,越来越多的第三方框架都在使用编译期注解这门技术,可以说不管你是想要深入研究这些第三方框架的原理 还是要成为一个Android高级开发工程师,编译期注解都是你不得不好好掌握的一门基础技术。
在Android开发中,注解是非常多的,如果不去了解,你可能感受不到注解的存在,一些框架用到的注解是很多的,例如Butterknife、Retrofit、Dagger2、Hilt、ViewBinding、DataBinding等等,下面简单的来了解一下注解。
Activity 获取布局组件方式 : 在之前的 Activity 代码中 , 使用 findViewById ( ) 方法 , 或者 Butter Knife 的 @BindView 注解方式获取 Layout 布局中的组件对象 ;
主要有以下几个,其他这几个 API 都比较好理解。其中 addCallback(LifecycleOwner, callback) 会在生命周期持有者 LifecycleOwner 进入 Lifecycle.State.STARTED 状态,才会加入分发责任链,而在 LifecycleOwner 进入 Lifecycle.State.STOP 状态时,会从分发责任链中移除。
在没有使用DataBinding之前,我的项目都是使用ButterKnife,当然对于ButterKnife大家估计都熟悉的不要太熟悉了。本文我也就当自己的一个总结。
DataBinding 是 2016 年的 Android Studio 2.0 版本 开始使用的 , 其作用是实现 数据模型 Model 与 视图 View 的绑定 , 该绑定是双向的绑定 ;
1 . 视图绑定模块默认为全部布局生成绑定类 ; 视图绑定 ( ViewBinding ) 模块一旦启用 , 应用的全部布局都会默认自动生成一个视图绑定类 , 如果生成了视图绑定模块 , 是否对于已经使用的 findViewById 或者 @BindView @BindViews 代码是否有影响 ;
有一段时间没有去写过框架了,最近新的框架MVI,其实出来有一段时间了,只不过大部分项目还没有切换过去,对于公司的老项目来说,之前的MVC、MVP也能用,没有替换的必要,而对于新建的项目来说还是可以替换成功MVVM、MVI等框架的。本文完成后的效果图:
关于低功耗的蓝牙介绍我已经做过很多了,只不过很多人不是奔着学习的目的去的,拿着源码就去运行,后面又发现连接设备后马上断开,然后不会自己看问题,这个现象就是快餐式的,你不了解里面的知识内容,自然就不知道是怎么回事,重复的问题我回答了好多次了。而我也是觉得写的有问题,本意上来说我是希望读者可以参考来写,能看一看文章内容,而结果绝大多数,看个标题看个运行效果,下载源码就运行,运行有问题就问你,没有什么思考。 针对这个情况,我决定做了系列性的Ble蓝牙App,尽可能的避免在你运行的时候出现bug,所以这是一个低功耗蓝牙工具App,可以让你了解到一些东西。注意是低功耗,不是经典蓝牙,如果你不知道两者之间的区别,建议你先了解一下。本文的效果:
领取专属 10元无门槛券
手把手带您无忧上云