gradle

组件化之开发总结

喜欢而已 提交于 2020-05-04 19:22:54
Android组件化探索与实践 在Android开发中,随着业务复杂性不断的增加,项目的代码量会不断的增大,这对于项目的维护提出了更大的挑战。Android的组件化开发就是旨在解决大型项目的可维护性、可扩展性的难题。 一、组件化简介 组件化是大型Android项目的一个好的解决方案。通过对项目工程进行组件化,利于代码的维护与扩展,特别是在多团队协作开发的模式中,尤其有效。 对于Android组件化的讨论其实已经持续很长的一段时间了,也产生了很多种的组件化方案,不同的组件化方案有不同的利弊,但是其组件化目标基本一致,只是实现思路可能不同。本篇文章就是讲解我们实现的一种组件化方案。 首先需要了解什么是组件化?简单来说,组件化就是对项目依据业务功能拆分成不同的模块,这些业务功能模块彼此独立,不相互依赖,既可以独立编译运行,也可一起打包成一个app。通过下图来对比一下组件化的特点。 图1.1传统项目组织方式 图1.2 Android组件化方式 通过上图可以明显的看出,传统的项目组织形式,不同模块之间会相互引用,造成耦合。而在组件化工程中,不同业务模块之间是没有相互引用关系的,彼此项目独立。 二、组件化目标 在了解了组件化的定义之后,需要明确组件化的目标主要是什么。组件化的目标主要是解决如下几方面的问题。 解耦合 随着项目不断的迭代,代码越来越庞大、臃肿,这时代码的维护就会显得极其繁重

Android_AndroidX简介&Junit4

好久不见. 提交于 2020-05-04 06:03:26
AndroidX简介: Android 9.0(API level 28)发布时, AndroidX也作为一个新的支持库 发布出来了。AndroidX时Jetpack的一部分,它包含了现有的支持库和最新的Jetpack组件。 AndroidX 与 Android 操作系统分开提供,并与各个 Android 版本向后兼容。 AndroidX 完全取代了支持库(android.support.v7或android.support.v4),不仅提供同等的功能,而且提供了新的库。所以对于使用AndroidX后,不需要因为使用v4还是v7库而烦恼了。 修改项目中的gradle.properties文件中将下面两个属性置为true就能完全使用AndroidX的库了。 android.useAndroidX :使用相应的 AndroidX 库,而非支持库 android.enableJetifier :重写其二进制文件,自动迁移现有的第三方库以使用 AndroidX 更多具体信息及如何使用请到android官网查看文档: https://developer.android.google.cn/jetpack/androidx Junit4: 这里简单记录分享下 背景:Android Studio中调试Room相关时碰到的问题(如 java.lang.ClassNotFoundException:

Flutter Build apk 错误(一)

ε祈祈猫儿з 提交于 2020-05-04 03:46:49
FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ': shared_preferences :verifyReleaseResources'. > A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade > Android resource linking failed D:\android\.gradle\caches\transforms-2\files-2.1\0a271e99b6771ad4a84318244d532fb7\core-1.0.0\res\values\values.xml:57:5-88:25: AAPT: error: resource android:attr/fontVariationSettings not found. D:\android\.gradle\caches\transforms-2\files-2.1\0a271e99b6771ad4a84318244d532fb7\core-1.0.0\res\values\values.xml:57:5-88:25: AAPT: error:

Kotlin基础学习笔记 (一)

会有一股神秘感。 提交于 2020-05-04 02:53:45
引言 Kotlin 和 java 都是一种 静态类型 的编程语言。表达式的类型在编译期已经确定,编译期能验证对象是否包含想访问方法或是字段,维护正确性与性能的同时保持源代码的简洁 静态类型的优点: 性能——方法调用速度更快,因为不需要在运行时才来判断调用的哪个方法 可靠性——编译器验证了程序的正确性,因而运行时崩溃的概率更低 可维护性——抹身代码更容易维护,因为你可以看到代码中用到的对象的类型 工具支持——静态类型使IDE能提供可靠的重构,精确的代码补全特性 ps:动态类型 编程语言:Groovy、Ruby 允许定义可以存储任何数据类型的变量,或者返回任何数据类型的函数,并在运行时才解析方法和字段引用。 优点:减少代码量增加创建数据结构的灵活性 缺陷:在编译期不能通过编译期发现拼写类错误,继而导致在运行时出现错误 Kotlin 的特点 一门务实、简洁、安全的语言,专注于互操作性。 Kotlin 语言的优势 1、简洁 相对于Android、java会减少很多代码;可以通过类型推导的方式判断对象的数据类型 2、安全 kotlin是空安全的处理的,在编译期就处理了各种null的情况避免空指针时出现在运行时,通过“?”字符 kotlin在类型转换的时候会将检查和转换被组合成一次操作,一旦检查过类型,就不需要额外的转换就能直接引用属于这类的成员 3、扩展函数 即使没有权限去访问某个类

react-native 框架升级 安卓第三方插件报错 Android resource linking failed

偶尔善良 提交于 2020-05-04 02:08:10
亲自经历react-native从0.55升级到0.58的过程,有点坎坷,ios出现的问题还算不多,但是android这里,随着gradle和buildTool的使用升级,导致第三方插件出现各种问题,大部分就能够修改 报错内容 我这里报错的插件有两个 react-native-fetch-blob react-native-orientation 在node_modules文件夹下找到插件位置, android/build.gradle可以看到: 主要是 compileSdkVersion buildToolsVersion minSdkVersion targetSdkVersion 这几个配置冲突的问题吧,修改为 android { compileSdkVersion rootProject.ext.compileSdkVersion buildToolsVersion rootProject.ext.buildToolsVersion defaultConfig { minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion versionCode 1 versionName "1.0" ndk { abiFilters "armeabi-v7a",

SpringBoot学习(学习过程记录)

纵饮孤独 提交于 2020-05-04 01:50:46
关于微服务和SOA 这,仅是我学习过程中记录的笔记。确定了一个待研究的主题,对这个主题进行全方面的剖析。笔记是用来方便我回顾与学习的,欢迎大家与我进行交流沟通,共同成长。不止是技术。 官网教程学习 https://www.martinfowler.com/microservices/ 关于微服务的认识 马丁福乐的论文学习 DDD 领域驱动设计 component 组件 微服务数据治理与去中心化 任何的服务调用都会出现失败的情况 熔断器 微服务的优点和缺点 测试和向后兼容会变的更加的复杂 微服务与传统单体应用项目的区别 微服务宏观把控与深度剖析 ESB(企业服务总线) SOA(面向服务架构)主要针对于企业级,单用ESB,需要序列化和反序列化,采用XML格式传输。 微服务架构主要用于互联网公司。可以独立运行。HTTP+REST+JSON 单体架构存在的缺点: 复杂性高,无法按需伸缩,阻碍技术创新,部署速度逐渐编码,技术债务逐渐上升。 什么是微服务? 简而言之,微服务架构风格这种开发方法,是以开发一组小型服务的方式来开发一个独立的应用系统。其中每个小型服务都运行在自己的进程中,并经常采用HTTP资源API这种轻量的机制来相互通信。这些服务为夭折业务功能进行构建通过全自动的部署机制来进行独立部署。这些服务可以用不同的语言来编写,并且可以使用不同的数据存数技术。 微服务是一种架构风格

《精通并发与Netty》学习笔记(02

别等时光非礼了梦想. 提交于 2020-05-02 18:31:20
上节我们介绍了开发netty项目所必需的开发环境及工具的使用,这节我们来写第一个netty项目 开发步骤 第一步:打开https://search.maven.org 找到netty依赖库 第二步:打开上节创建的项目,修改build.gradle文件如下图: 第三步:新建类com.ssy.netty.MyServer.class package com.ssy.netty; import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.ChannelFuture; import io.netty.channel.EventLoopGroup; import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.socket.nio.NioServerSocketChannel; /** * netty作为长连接的服务器基于websoket,实现客户端与服务器端长连接。 */ public class MyServer { public static void main(String[] args) { // 负责接收客户端连接 EventLoopGroup bossGroup = new NioEventLoopGroup(); //

JetBrains2020 全系列激活【转】

给你一囗甜甜゛ 提交于 2020-05-02 17:38:02
JetBrains2020 全系列激活 转: https://www.dongyunit.com/jetbrains2020-activation.html 支持软件范围( 持续更新:2020年4月10日 ) IntelliJ IDEA 2020.1及以下 WebStorm 2020.1及以下 AppCode 2019.3.7及以下 CLion 2019.3.5及以下 DataGrip 2020.1及以下 GoLand 2020.1及以下 PhpStorm 2019.3.4及以下 PyCharm 2020.1及以下 Rider 2019.3.4及以下 RubyMine 2019.3.4及以下 JetBrains官网 下载Ultimate(For web and enterprise development)版本 本文提供两种激活方式,如果您经常在局域网工作(无因特网)的情况下,建议使用激活码方式,若果您在有因特网的环境下工作,建议您使用激活补丁方式。 第二种不会激活的,可加QQ群518769000联系站长,远程协助激活(需提前下载好TeamViewer最新版) 小站能力有限,觉得好用的话,右侧捐助一下吧,感激不尽 一分也是爱,么么哒~ 一、激活码方式 激活码1(激活至2021.1)【推荐】 鼠标移至激活码右侧,点击copy按钮复制 E70JHCOV2H -

SpringBoot 集成Swagger2自动生成文档和导出成静态文件

血红的双手。 提交于 2020-05-02 14:19:52
目录 1. 简介 2. 集成Swagger2 2.1 导入Swagger库 2.2 配置Swagger基本信息 2.3 使用Swagger注解 2.4 文档效果图 3. 常用注解介绍 4. Swagger2文档导出成pdf 4.1 生成pdf的格式 4.2 生成静态文档步骤 4.2.1 配置gradle 4.2.2 生成swagger json文件 4.2.3 生成swagger markdown文件 4.2.4 markdown转pdf 1. 简介 今天是五一的一天,武汉因为疫情不能随意出去,写篇博客打发时间。今天介绍一款非常热门的API开发工具-----Swagger,其遵循OpenAPI规范。使用简单、可以自动化生成API文档、可以模拟HTTP接口请求等强大的功能。它可以节省 我们 的开发时间,从而提高工作效率。不仅如此,Swagger还支持生成静态文档的功能,可以用来交付一些对文档要求并不是很高的客户。 2. 集成Swagger2 SpringBoot 集成Swagger也非常简单,同样也是简单的三个步骤:导包、配置和使用。 2.1 导入Swagger库 swaggerVersion = '2.6.1' compile("io.springfox:springfox-swagger2:${swaggerVersion}") compile("io.springfox

Android开发-Android Studio问题以及解决记录

与世无争的帅哥 提交于 2020-05-02 04:52:40
[Android开发] Android Studio问题以及解决记录 http://blog.csdn.net/niubitianping/article/details/51400721 1、真机运行报错Multi dex requires Build Tools 21.0.0 / Current: 19.1 解决: 在项目 build.gradle 里面把classpath ‘com.android.tools.build:gradle:1.5.0’ 改为1.5.0 或者1.3.0 2、导入第三方包运行报错:前言不允许有内容 解决 一般是包的位置错误,请放到main目录下的libs 文件夹里面,再右键 add as library 3、运行错误: finished with non-zero exit valule 2 1. 包冲突 例如可能你v7支持包,v4支持包都有这个类,一编译就冲突了,或者你complie了包,然后又手动add as library了,或者重复add了,等等。 (反正我出现这个问题几乎都是包冲突) 2. 其他错误 这个一般会有错误提示,在编译的日志上面,例如图片不正确,看看是不是重新添加了图片,然后在Android studio 里面双击打开这个图片看看 是否能正常打开,打不开就重新保存一下格式(这个情况一般是出现在自己一个搞项目时候乱搞图片会出现的问题