越来越多第三方库使用apt技术,如DBflow、Dagger2、ButterKnife、ActivityRouter、AptPreferences。在编译时根据Annotation生成了相关的代码,非常高大上但是也非常简单的技术,可以给开发带来了很大的便利。
DI (依赖项注入) 是一种在程序设计中被广泛使用的技术,非常适合 Android 开发,该技术可以将依赖项提供给类,从而让类不必自己创建这些依赖。通过遵循 DI 原则,您将为良好的应用架构、更高的代码复用性和便捷的测试奠定基础。您是否尝试过在应用中进行手动依赖项注入?即使使用了当今许多现有的依赖项注入库,随着您的项目越来越大,这些库仍需要大量模板代码,因为您必须手动构造每个类及其依赖项,并创建容器用来复用和管理依赖项。
我们很高兴发布了 Android Studio 4.1 稳定版,为大家带来一系列针对常见的编辑、调试和优化工作的功能。4.1 版本的重点诉求之一是帮助您在使用 Android Jetpack 库 (即 Android 的开发库套件) 时遵循最佳实践和提升代码编写效率。基于大家的反馈,我们直接在 IDE 中集成了诸多常用的 Android 库,从而改善了编写代码的体验。
Hilt 是 Jetpack 推荐使用的 Android 应用 依赖项注入 (DI) 解决方案,现已 稳定。这意味着 Hilt 已经完全可以在 生产环境 中使用。Hilt 相比 Dagger 更加便捷,同时也能帮您减少模板代码,它专为 Android 而生,并集成了多个 Jetpack 依赖库。很多公司已在他们的应用中使用了 Hilt 并从中获益。
Android Studio 4.1 主要是包含了各种新功能和改进,其中 Android Gradle 插件也升级为 4.1.0,要了解更多信息请查看完整的 Android Gradle 插件发行说明:https://developer.android.com/studio/releases/gradle-plugin#4-1-0
近日,Android Studio 4.1 版本正式发布,本文翻译自 Android 开发者博客。
一、项目配置 1、根目录下的build.gradle 中添加 maven { url "https://www.jitpack.io" } 如下: classpath 'com
昨天发了上篇:「堪比阿里插件的Android Studio插件集合(IDE通用)(上)」大家都觉得挺不错,今天带来下篇,希望大家同样喜欢。
地址丨https://blog.csdn.net/u013872857/article/details/109045686
在Android开发中,合理的使用Android Studio插件不但可以提高开发效率,还能从整体上提高代码的质量。下面就Android开发中常见的一些插件做一个整理。 1,GsonFormat Gs
俗话说得好,工欲善其事,必先利其器。做开发时间长了,总想找一些快捷方法,只有拥有好用的工具,才能节省开发时间,提高工作效率。我就是一个 追(喜)求(欢)高(偷)效(懒) 的开发人员,正好趁着国庆假期,把平日用到的一些 Android Studio开发插件 整理了一下,分享给大家。 有人会问了,网上也有很多博客在讲Android Studio的插件总结,为什么你还要弄一篇博客呢?我可以告诉大家,网上讲的那些很多都是文字,要么就是给你一个链接,有些还是过时的,有些博客讲的比较全面,可是并没有分门别类去区分,很杂乱;有的博客做了分类,但是都是文字和链接,打开某些链接只是一些简单的图片,很简单。
在使用 Dagger 的项目中,您是否因为要弄清楚 Dagger 的依赖关系而产生疑惑?依赖项来自 @Inject 修饰的构造器、@Binds 还是 @Provides 修饰的方法?它有限定符吗?要搞清楚这个并非易事。
最近在做项目中,用到了Dagger2,所以找了一些博客和其他的一些学习资源,算是知道如何使用了,但是对其理解还相差很远。所以这篇文章重点针对与使用,和使用中常见的一些问题。对更深层的东西我就不再这里不懂装懂了。如果以后有机会或需要会在以后学习更加深入后在另写文章。
转载自http://www.jianshu.com/p/99239b9c1630 看完后感觉满满的干货,信息量太大。(让我静静呆一会儿,消化消化) 值得一看 前言 在开发中,一个良好的开发习惯以及一个开发规范可能会让你少走很多弯路,也会一定程度上的提高代码的可读性,可维护性和可拓展性。当随着需求的不断变更,需要维护项目的时候。当随着项目的代码量的提升,需要重构的时候。你会明白一个好的开发规范多么多么的重要。 这里整理一下自己android开发中的一些规范。希望对各位有帮助。 命名规范 包命名规范 包名全
写作背景 这几天在学习Dagger、MVP、Agera,这里所说的Dagger即Google接手的Dagger,也被称作Dagger 2。跟着demo与一些技术博客学习,发现对于一个未曾使用过类似框架的人来说上手很困难,因此撰 初学Dagger 系列学习笔记,以一名初学者的视角来分享自己的学习经验,希望让大家上手更顺利。本文集将随Winter的学习进度更新。
原文链接:从零开始搭建android框架系列 前言 在开发中,一个良好的开发习惯以及一个开发规范可能会让你少走很多弯路,也会一定程度上的提高代码的可读性,可维护性和可拓展性。当随着需求的不断变更,需要维护项目的时候。当随着项目的代码量的提升,需要重构的时候。你会明白一个好的开发规范多么多么的重要。 这里整理一下自己android开发中的一些规范。希望对各位有帮助。 ---- 命名规范 包命名规范 包名全部采用小写 主包名采用[公司性质].[公司名称].[项目名称]的命名方式 如果根据不同情况进行
WorkManager 是一个 Android Jetpack 扩展库,它可以让您轻松规划那些可延后、异步但又需要可靠运行的任务。对于绝大部分后台执行任务来说,使用 WorkManager 是目前 Android 平台上的最佳实践。
因为gradle大幅升级至5 , as gradleplugin升级至3.6,导致一些旧的项目基本重新编译时会出现各种错误,经过各种尝试后,得出一个付出成本最低,又能兼容旧项目的解决方法:
Android Studio从3.0版本新增了许多功能,当然首当其冲就是从3.0版本新增了对 Kotlin 开发语言的支持,除此之外还有其他一些新功能,例如:Android Profiler (其中包含了: CPU Profiler、Memory Profiler、Network Profiler ),APK Debugger,Device File Explorer,Java 8 Language Features等。
大家好,我是秉心说。最新一期的 Now in Android 又更新啦,原文地址如下:
今天,我们发布 Android 11 Beta 版,并为开发者们带来了众多重磅更新。这些更新包括 Kotlin 协程、Jetpack Compose 工具包的最新进展、在 Android Studio 中更快地完成构建,以及 Play Console 的全新改版。
最近公司的项目是用mvp+dagger2搭的框架,由于之前没接触过dagger2,改bug和做需求总是一脸懵逼,看了些文档介绍,和大多数学习者一样从Dependency Injection、注解概念等等开始了解,然后敲代码上手,在此记录下学习心得。既然是入门,那些概念和注解的历史就不介绍了,Google一下你就知道,直接介绍最最基本的使用以及具体实现原理。
原文地址: http://www.jianshu.com/p/4bbecd0bb027
Dagger 和 Koin 无疑是 Android 中最流行的两个依赖注入框架。这两个库具有相同的用途,而且看起来非常相似,但它们在底层的工作方式却非常不同。
Dagger2是Dagger1的分支,由谷歌公司接手开发,目前的版本是2.0。Dagger2是受到AutoValue项目的启发。 刚开始,Dagger2解决问题的基本思想是:利用生成和写的代码混合达到看似所有的产生和提供依赖的代码都是手写的样子。
原文地址: http://www.jianshu.com/p/48e66e879061
Android Jetpack 是一套帮助你轻松构建高质量应用,兼容旧版本系统的类库套件。在 Jetpack 发布两年之后的现在,我们已经看到了很多 app 的广泛采用,并且更多的开发者开始使用了。这只是一个开始:今天,我们将发布过去一年的工作成果,一些新的类库以及现有类库的重大更新。
嗨,我是哈利迪~《看完不忘系列》将以从树干到细枝的思路分析一些技术框架,本文将对开源项目dagger进行介绍。
本文介绍了如何通过自定义APT生成Java代码,并分析了生成代码的过程和具体实现。同时,本文还提供了关于自定义APT的代码示例和具体应用场景的详细说明。
在组件化AwesomeGithub项目中使用了Dagger来减少手动依赖注入代码。虽然它能自动化帮我们管理依赖项,但是写过之后的应该都会体会到它还是有点繁琐的。项目中到处充斥着Component,这让我想起了传统MVP模式的接口定义。
在往期 #11WeeksOfAndroid 系列文章中我们介绍了 联系人和身份 、隐私和安全 、 Android 11 兼容性 、 开发语言 、 Jetpack ,本期将聚焦 Android 开发者工具 。我们将为大家陆续带来 #11WeeksOfAndroid 内容,深入探讨 Android 的各个关键技术点,您不会错过任何重要内容。
今天从gaithub上下载了一个项目,一直提示apt报错,网上找了很久才找到答案,在这里给大家整理一下
去往gradle安装目录(File- Other Settings- Default Settings,然后可以搜索gradle,右侧有Service directory path可以看到你gradle目录),.gradle\wrapper\dists目录下找到和项目的gradle-wrapper.properties里版本号一致的文件(比如gradle-3.3-all)删除,重新编译即可
开发环境:PHP7.1.3+ / Nginx 1.10+ / Mysql 5.7+
Hilt 是Google 最新的依赖注入框架,其是基于Dagger研发,但它不同于Dagger。对于Android开发者来说,Hilt可以说专门为Android 打造,提供了一种将Dagger依赖项注入到Android应用程序的标准方法,而且创建了一组标准的组件和作用域,这些组件会自动集成到Android应用程序的各个生命周期中,以简化开发者的上手难度。
原来项目在Android studio 2.3一切正常,升级3.0之后报如下错误:
在前几篇文章中都是讲解关于MVVM框架中各个控件的使用,本篇文章中将使用JetPack中的Hlit组件对项目进行一次解耦。这样我们的MVVM框架会更加的合理
https://github.com/EasyKotlin/Kotlin-for-Android-Developers
Android 开发作为“安身立命”的资本,在面对如今“移动要凉”的氛围,我们在沉住气“纵向进修”的同时,有时也希望横向拓展自身的能力,而 Android 开发在这一方面有着先天的优势,Java 和良好的开放氛围给予了我们更多可能。
Dagger2 确实比较难学,我想每个开发者学习的时候总是经历了一番痛苦的挣扎过程,于是就有了所谓的从入门到放弃之类的玩笑,当然不排除基础好的同学能够一眼看穿。本文的目的尝试用比较容易理解的角度去解释 Dagger2 这样东西。
与其他依赖注入框架相比,Dagger 2 最大的优点是他不使用反射,严格的生成实现类,这意味着他可以使用在 Android 应用上。但是在Android上使用仍有一些注意事项。
参考资料: https://www.jianshu.com/p/1d84ba23f4d2 https://mp.weixin.qq.com/s/lh3dgJK95cgbG-bUZfvbFA
笔者在项目中实际有写过单元测试的代码,也用过一些单元测试的框架,但对单元测试的理解都很浅显,直到有一次在InfoQ编辑徐川主导的微信群里面看了蘑菇街小创同学的分享,加深了我对单元测试的兴趣和理解,他针对android平台的单元测试写了一个系列的文章,从什么是单元测试、单元测试的意义、各种方法怎样做单元测试、单元测试和集成测试的区别、各种测试框架和开源库在写单元测试时如何很好地被使用、以及如何mock、在PC上运行需要依赖android设备环境的测试等方面都做了非常详细的介绍,下文中的很多观念都是看了他的文章吸收得来的。
简介 什么是组件化? 项目发展到一定阶段时,随着需求的增加以及频繁地变更,项目会越来越大,代码变得越来越臃肿,耦合会越来越多,开发效率也会降低,这个时候我们就需要对旧项目进行重构即模块的拆分,官方的说法就是组件化。 组件化带来的好处 那么,采用组件化能带来什么好处呢?主要有以下两点: 1、现在Android项目中代码量达到一定程度,编译将是一件非常痛苦的事情,一般都需要编译5到6分钟。Android Studio 推出 instant run 由于各种缺陷和限制条件(比如采用热修复tinker)一般情况
欢迎大家来到 Now in Android 栏目,本栏目将专注于为开发者们提供近期值得关注的 Android 开发热点内容。
您是否曾希望 Android Studio 可以速度更快、性能更优、效率更高?如是的话,请立即下载最新的 Android Studio 3.5!您将会体验到前所未有的稳定版 Android Studio。在过去的 8 个月中,Android Studio 团队暂缓了新特性的开发工作,专心提升 Studio 的产品质量,只为让您享受到速度更快的日常开发体验!我们把这项工作命名为 Project Marble 计划。该计划围绕系统健康、特性优化和错误修复三大核心领域,力图在 Android Studio 与 Android 模拟器中构建功能强大且稳定的基础特性与流。我们会在 Project Marble 计划中直接整合收到的开发者反馈,欢迎大家继续向我们提交反馈,分享您的想法与感受。
Android Studio是采用gradle来构建项目的,gradle是基于groovy语言的,如果只是用它构建普通Android项目的话,是可以不去学groovy的。当我们创建一个Android项目时会包含两个Android build.gradle配置详解文件,如下图:
随着 Android 的碎片化越来越严重,适配成为一个开发中一个痛点。如果 UI 只切一套图,但是在一些特定机型上难免会出现模糊或者变形的情况,如果切多套不同分辨率的图,虽然能解决适配问题,但是造成安装包过大的问题,很多开发者都会为这个问题感到头疼。终于,Android 的 Vector 的出现,可以解决这个问题了。
首先先给出结论。控制反转是一种软件设计思想,它被设计出来用于降低代码之间的耦合,而依赖注入是用来实现控制反转最常见的手段。
领取专属 10元无门槛券
手把手带您无忧上云