2.2-Java之设计模式与项目构建
文章平均质量分 96
fei20121106
这个作者很懒,什么都没留下…
展开
-
(2.2.8.12)子module中的aar 找不到
问题描述问题原因原因1:flatDir.dirs 配置了什么?原因2:Application要找到所有依赖的依赖解决途径途径1:全工程下的路径穷举途径2:所有依赖 Module baseapp 的 Module/build.gradle中 都添加参考文献问题描述创建项目后,会生成第一个module:app。 module:app 依赖了 module:...原创 2018-06-19 16:16:15 · 1556 阅读 · 0 评论 -
(2.2.8.2)Gradle的命令详解
Android Studio + Gradle的组合用起来非常方便,很多第三方开源项目也早都迁移到了Studio,为此今天就来介绍下查看、编译并导入第三方开源项目的方法。Sublime + Terminal编译并查看源码首先来给大家介绍一种简便并且个人最喜欢的一种办法。很多时候我们在GitHub上看到一个不错的开源项目,一般有两种需求,阅读源码和查看运行效果,如果是单纯的查看源码我转载 2016-04-23 20:38:28 · 647 阅读 · 0 评论 -
(2.2.8)Android Gradle信息一览
什么是Gradle?Gradle是一种依赖管理工具,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的内部领域特定(DSL)语言。它为您提供了:一个像 ant 一样,通用的灵活的构建工具一种可切换的,像 maven 一样的基于约定约定优于配置的构建框架强大的多工程构建支持强大的依赖管理(基于 Apache转载 2016-04-23 20:35:31 · 563 阅读 · 0 评论 -
(2.2.7.3)MyEclipse + Maven开发Web工程的详细配置过程
MyEclipse + Maven开发Web工程的详细配置过程好久没做Web方面的开发,今天突然想弄弄SpringMVC,因为不久前又学了点Maven觉得非常好,所以在弄SpringMVC这个Web框架时想使用Maven来做,但是问题又来了,我一直是在Eclipse中使用Maven,而我以前一直用MyEclipse做Web开发(在Eclipse中做web开发个人认为一点都没MyEclips转载 2016-04-22 23:02:11 · 625 阅读 · 0 评论 -
(2.2.7.2)Maven的安装、配置及使用入门
第1章 Maven简介 1.1 何为Maven 1.1.1 何为构建1.1.2 Maven是优秀的构建工具1.1.3 Maven不仅仅是构建工具1.2 为什么需要Maven 1.2.1 组装PC和品牌PC1.2.2 IDE不是万能的1.2.3 Make1.2.4 Ant1.2.5 不重复发明轮子1.3 Maven与极限编程 第2章 M转载 2016-04-22 23:00:16 · 1063 阅读 · 0 评论 -
(2.2.7.1)Maven 简介
1. Maven 是优秀的构建工具。 Maven 最大化地消除了构建的重复,抽象了构建生命周期,并且为绝大部分的构建任务提供了已实现的插件,我们不再需要定义过程,甚至不需要再去实现这些过程中的一些任务。 2. Maven 不仅是构建工具,还是一个依赖管理工具和项目信息管理工具。它提供了中央仓库,能帮我们自动下载构件。 Maven 通过一个坐标系统准确地定位每转载 2016-04-22 22:58:38 · 609 阅读 · 0 评论 -
(2.2.8.5) Android proguard 详解和常见错误
Java代码是非常容易反编译的。为了很好的保护Java源代码,我们往往会对编译好的class文件进行混淆处理。ProGuard是一个混淆代码的开源项目。它的主要作用就是混淆,当然它还能对字节码进行缩减体积、优化等,但那些对于我们来说都算是次要的功能。官网网址是:http://proguard.sourceforge.net/。我现在用的AndroidStudio , 只需要在 build.grade转载 2016-05-27 15:33:25 · 934 阅读 · 0 评论 -
(2.2.4.1)Java Observable 模式
一、Observer模式的意图: 在对象的内部状态发生变化时,自动通知外部对象进行响应。 二、Observer模式的构成: ·被观察者:内部状态有可能被改变,而且又需要通知外部的对象 ·观察者:需要对内部状态的改变做出响应的对象 三、Observ转载 2016-05-26 12:01:11 · 475 阅读 · 0 评论 -
(2.2.2)Java之美[从菜鸟到高手演变]之设计模式一:创建型模式
设计模式(Design Patterns) ——可复用面向对象软件的基础(1)简单工厂模式:建立一个工厂类,根据传入值得不同,对实现了同一接口的一些实体类进行实例的创建。接口:实体类的公共接口(2)多个工厂方法模式:在普通工厂方法模式中,如果传递的字符串出错,则不能正确创建对象,而多个工厂方法模式是不转载 2015-03-15 17:40:49 · 763 阅读 · 0 评论 -
(2.2.8.3)Gradle 多渠道打包
由于国内Android市场众多渠道,为了统计每个渠道的下载及其它数据统计,就需要我们针对每个渠道单独打包,如果让你打几十个市场的包岂不烦死了,不过有了Gradle,这再也不是事了。友盟多渠道打包废话不多说,以友盟统计为例,在AndroidManifest.xml里面会有这么一段:<meta-data android:name="UMENG_CHANNEL" an转载 2016-04-23 20:39:25 · 620 阅读 · 0 评论 -
(2.2.8.4 & 4.4.15.1)Gradle:multiDexEnabled之DEX 方法超过64K限制和gradle编译OOM问题解决
DEX 方法超过64K限制UNEXPECTED TOP-LEVEL EXCEPTION:com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536 at com.android.dx.merge.DexMerger$6.updateIndex(DexMerger.java:502) a转载 2016-05-27 13:08:47 · 2018 阅读 · 0 评论 -
(2.2.8.6)读懂 Android 中的代码混淆
在Android开发工作中,我们都或多或少接触过代码混淆。比如我们想要集成某个SDK,往往需要做一些排除混淆的操作。本文为本人的一些实践总结,介绍一些混淆的知识和注意事项。希望可以帮助大家更好的学习和使用代码混淆。序列化 和 gson 是两个完全不同的概念前者是java的将对象实例转化为字节码,后者是将对象实例转化为 String前者是android自有的,需要实转载 2016-09-13 15:14:07 · 610 阅读 · 0 评论 -
(2.2.8.11) Android Studio 中 Gradle 依赖的统一管理
为什么要对 Gradle 统一管理使用脚本 config.gradle使用不足之处为什么要对 Gradle 统一管理在实际项目中,经常会出现一个 Project 中有多个 Module 的情况,如果每个 Module 又同时拥有相同的依赖,比如 v4 包,那么,每次 v4 包升级的时候修改多个 Module 中的 build.gradle 文件,更新其版本都是一件麻烦...原创 2018-06-01 15:20:19 · 235 阅读 · 0 评论 -
(2.2.8.10) Android多module下的构建版本区分
一、背景二、之前的临时性解决方案三、BuildConfig研究四、解决方案4.1 添加module自定义字段4.2 被依赖的 Module 提供其他版本4.3 获取主App的BuildConfig4.4 使用 ApplicationInfo.FLAG_DEBUGGABLE五、结论参考文献细微之处,杜绝隐患,提升效率一、背景在Android的实际开发中,...原创 2018-03-15 15:42:53 · 1163 阅读 · 0 评论 -
(2.2.8.7) Android中BuildConfig类的那些事
声明本文章都只是在AndroidStudio基于Gradle构建项目开发的验证,所以不保证其它开发环境与构建项目方式也是这样BuildConfig身在何处了解一个东西前,至少先要知道这东西在哪里吧!而我们今天要了解的这个类又在哪里了,我相信应该还有一些安卓开发人员没见过此类的身影。那么这类在哪里了? 答案:一般情况是在applicationId.BuildConfig;如:我的转载 2017-06-29 15:25:16 · 1556 阅读 · 0 评论 -
(2.2.11.1)Android全新CI平台——Jenkins构建入门
一、安装Ubuntu系统win7下通过easyBCD引导安装Ubuntu14.04U盘 + UltraISO 装机参考文献 ubuntu的su初始密码设置 设置相关密码如下:moa-android-server 123456su 123456常见命令sudo nautilus root方式开启文件系统sudo gedit /etc/profile 环境变量配置ls -al 显原创 2017-06-27 17:51:12 · 723 阅读 · 0 评论 -
(2.2.11)Android全新CI平台——Jenkins
公司其实有现有的打包平台,然而该平台承载的工作量很少,例如并未承担自动化定时构建、执行gradle命令、自动化运行测试用例等功能。并且在构建项目方面时间较慢,且在失败状态下不能及时通知对应人员因此从其实际运用方面,它只是一个远端打包平台,而非一个CI平台一、全新CI平台预期承载功能自动化定时构建项目手动构建与定时构建的兼容原创 2017-06-27 17:49:47 · 1025 阅读 · 0 评论 -
(2.2.8.1)关于Android Studio里的Gradle,你所需要知道的都在这里了
欢迎转载,转载请注明出处http://blog.csdn.net/l664675249/article/details/50556133前言你是不是有这种感觉,每当你使用Android Studio的时候,总会被她的优雅和便捷深深的吸引,但是一旦打开build.gradle文件就有一种想死的冲动,这尼玛都是什么啊,老子看不懂啦(ノಠ益ಠ)ノ彡┻━┻ ,不要着急,这篇文章就是来解转载 2016-04-23 20:51:39 · 1862 阅读 · 0 评论 -
(2.2.8.9) 解决被依赖module中BuildConfig.DEBUG的值总为false问题
在Android的实际开发中,一般会有这样的需求,debug和release版本不同,接口地址不同,同时控制日志是否打印等,系统为我们提供了一个很方便的类BuildConfig可以自动判断是否是debug模式。 有了BuildConfig.DEBUG之后,你在代码中可以直接写入 if (BuildConfig.DEBUG) { Log.d(TAG, "output转载 2017-06-29 15:26:18 · 1153 阅读 · 0 评论 -
(2.2.8.8)Gradle依赖项学习总结,dependencies、transitive、force、exclude的使用与依赖冲突解决
Gradle是一个非常好用的编译工具,特别是继承了maven的依赖项管理功能,需要的Library不需要像传统IDE一样手动下载复制到项目中,只需要简单的写一行gradle脚本,就能自动下载下来并编译。但是有时候会出现各种不明情况的报错,最常见的一种原因就是依赖项版本冲突。每个模块都可能依赖其他模块,这些模块又会依赖别的模块。而一个项目中的多个模块,对同一个模块的不同版本有依赖,就转载 2017-01-09 21:01:36 · 1049 阅读 · 0 评论 -
(2.2.7)构建工具Maven的选择
一个新的Java项目行将开始,自动化是要纳入考量的一项重要工作,于是,构建工具的选型提上了日程。固然,我可以不明就里从Java世界Ant和Maven两大天王中,择一从之,但稍微整理一下内心的需要,也不会糊涂僧断糊涂案。作为构建工具,基本构建功能自然是必备的,此外,我还有一些非分之想。在这个Convention over Configuration的年代,要是每次都从头开始手工打造一转载 2016-04-17 15:18:23 · 496 阅读 · 0 评论 -
(2.2.6)用Ant实现Java项目的自动构建和部署
本文请勿转载! Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能。在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作。一. 安装与配置下载地址:http://ant.apache.org/,在本文中下载的是1.7.0版本。解压到某个目录(例如E:"apache-ant-转载 2016-03-14 20:00:43 · 497 阅读 · 0 评论 -
(2.2.9.1)Groovy一些前提知识
为了后面讲述方面,这里先介绍一些前提知识。初期接触可能有些别扭,看习惯就好了。Groovy 注释标记和 Java 一样,支持//或者/**/Groovy 语句可以不用分号结尾。Groovy 为了尽量减少代码的输入,确实煞费苦心Groovy 中支持动态类型,即定义变量的时候可以不指定其类型。Groovy 中,变量定义可以使用关键字 def。注意,虽然 def 不是必须的,但是为了代码清晰,建转载 2016-04-25 20:30:18 · 536 阅读 · 0 评论 -
(2.2.9)Groovy 介绍
Groovy 是一种动态语言。这种语言比较有特点,它和 Java 一样,也运行于 Java 虚拟机中。恩??对头,简单粗暴点儿看,你可以认为 Groovy 扩展了 Java 语言。比如,Groovy 对自己的定义就是:Groovy 是在 java 平台上的、 具有像 Python, Ruby 和 Smalltalk 语言特性的灵活动态语言, Groovy 保证了这些特性像 Java 语法一样被 J转载 2016-04-25 20:28:06 · 494 阅读 · 0 评论 -
(2.2.2.1)设计模式--单例模式(一)懒汉式和饿汉式
本文是设计模式学习笔记的第二篇文章,主要分析的是单例模式。包括懒汉式,饿汉式,登记式,以及懒汉式的改进型,还有一个关于读取propertoes配置文件的实例。预计分为三节。这是第一节,先分析最简单的懒汉式和饿汉式。单例模式是设计模式中比较简单的一种。适合于一个类只有一个实例的情况,比如窗口管理器,打印缓冲池和文件系统,它们都是原型的例子。典型的情况是,那些对象的类型被遍及一个软件系统的不同转载 2015-09-15 09:00:01 · 657 阅读 · 0 评论 -
(2.2.2.3)设计模式--单例模式(三)改进型懒汉式-线程安全型
本文是设计模式学习笔记的第二篇文章,主要分析的是单例模式。包括懒汉式,饿汉式,登记式,以及懒汉式的改进型,还有一个关于读取propertoes配置文件的实例。这是第三节,本来想把这这节和上一节放在一起的,但是内容太多了,于是拆成了2次上一节分析了在数量上有所扩展的单例模式--登记式。这次我们来看一下在第一节中提到的,具有懒汉式和饿汉式俩种特点的解决方案。这个解决方案的名字是Lazy initi转载 2015-09-15 09:06:30 · 656 阅读 · 0 评论 -
(2.2.2.2)设计模式--单例模式(二)登记式
本文是设计模式学习笔记的第二篇文章,主要分析的是单例模式。包括懒汉式,饿汉式,登记式,以及懒汉式的改进型,还有一个关于读取propertoes配置文件的实例。现在看来要写四节了。这是第二节,上一节分析了最基本的懒汉式和饿汉式,这次我们来看一下登记式。登记式实际对一组单例模式进行的维护,主要是在数量上的扩展,通过map我们把单例存进去,这样在调用时,先判断该单例是否已经创建,是的话转载 2015-09-15 09:03:35 · 537 阅读 · 0 评论 -
(2.2.1)设计模式一览
设计模式(Design Patterns) ——可复用面向对象软件的基础设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真原创 2015-03-15 18:02:05 · 624 阅读 · 0 评论 -
(2.2.4)Java之美[从菜鸟到高手演变]之设计模式三:行为型模式
(15)策略模式(16)模板方法模式(17)观察者模式(18)迭代子模式(19)责任链模式(20)命令模式(21)备忘录模式(22)状态模式(23)访问者模式(24)中介者模式(25)解释器模式 本章是关于设计模式的最后一讲,会讲到第三种设计模式——行为型模式,共11种:策略模式、模板方法模式、观察者模式、迭代转载 2015-03-15 18:19:11 · 731 阅读 · 0 评论 -
(2.2.3)Java之美[从菜鸟到高手演变]之设计模式二:结构型模式
(8)适配器模式:(9)装饰器模式:(10)代理模式:(11)外观模式:(12)桥接模式:(13)组合模式:(14)享元模式:在阅读过程中有任何问题,请及时联系:egg。邮箱:xtfggef@gmail.com 微博:http://weibo.com/xtfggef如有转载,请说明出处:http://blog.csdn转载 2015-03-15 18:09:28 · 773 阅读 · 0 评论 -
(2.2.9.2)Groovy 中的数据类型
Groovy 中的数据类型我们就介绍两种和 Java 不太一样的:一个是 Java 中的基本数据类型。另外一个是 Groovy 中的容器类。最后一个非常重要的是闭包。放心,这里介绍的东西都很简单基本数据类型作为动态语言,Groovy 世界中的所有事物都是对象。所以,int,boolean 这些 Java 中的基本数据类型,在 Groovy 代转载 2016-04-25 20:31:27 · 2706 阅读 · 0 评论 -
(2.2.9.3)groovy的闭包
闭包的样子闭包,英文叫 Closure,是 Groovy 中非常重要的一个数据类型或者说一种概念了。闭包的历史来源,种种好处我就不说了。我们直接看怎么使用它!闭包,是一种数据类型,它代表了一段可执行的代码。其外形如下:def aClosure = {//闭包是一段代码,所以需要用花括号括起来.. String param1, int param2 -> //这个箭头很转载 2016-04-25 20:32:31 · 658 阅读 · 0 评论 -
(2.2.9.4)grovy脚本类、文件 I/O 和 XML 操作
最后,我们来看一下 Groovy 中比较高级的用法。脚本类1.脚本中 import 其他类Groovy 中可以像 Java 那样写 package,然后写类。比如在文件夹 com/cmbc/groovy/目录中放一个文件,叫 Test.groovy,如图 10 所示:你看,图 10 中的 Test.groovy 和 Java 类就很相似了。当然,如果不声明转载 2016-04-25 20:34:01 · 855 阅读 · 0 评论 -
(2.2.6.4)Jenknis+Ant+SVN+Tomact 持续构建
我们公司现在的开发环境是这样的,在本地开发完一个新的功能,测试无误直接上传到SVN;接下来就是将这次开发的功能从界面到后面理一遍,理清晰了就开始一点点的复制到服务器上的IDE中编译和发布。 上面的情况已经很繁琐了,下面这种情况会更糟糕。上线的系统,后期维护中会对很多功能进行完善,系统也会有周期性的测试。我们公司就是这样的,公司每个组转载 2016-04-17 15:11:43 · 960 阅读 · 0 评论 -
(2.2.6.3)构建工具Ant(二)—实践
Ant是Java平台下非常棒的批处理命令执行程序,能非常方便地自动完成编译,测试,打包,部署等等一系列任务,大大提高开发效率。 Ant是 Java领域领先的构建工具,而Eclipse是主要针对Java程序员的集成开发环境(IDE)。Eclipse在可视化方面做得非常优秀,而Ant却提供了极强的构建功能。 安装下载Ant工具包环境变量Path中添加解压后转载 2016-04-17 15:10:07 · 529 阅读 · 0 评论 -
(2.2.6.2)构建工具Ant(一)—入门
Ant是一个构建工具,它通过自动完成所有的编译代码,运行测试以及打包重新部署的结果等繁琐费力的任务来帮助软件团队开发大程序。目标 自动完成所有的构建过程:编译、打包、测试……优点 使用Java编写,跨平台,易使用且可伸缩。 基于XML,比脚本好维护安装 下载Ant工具包 环转载 2016-04-17 15:08:50 · 509 阅读 · 0 评论 -
(2.2.6.1)Ant入门基础教程
一 Ant 介绍Ant是构建工具,用来实现软件的自动化的构建,类似于VisualStudio的project文件,Linux上构建C++的makefile,Ant通常用来构建Java程序。Ant是基于XML的文件,所以更容易阅读;Ant是用Java实现的,本身支持跨平台;Ant基于插件的方式开发,本身内置了常用的大部分的插件,而且第三方的扩展也很容易;Ant除了用来构建Java程序转载 2016-04-17 15:06:37 · 519 阅读 · 0 评论 -
(2.2.10.3)Gradle 编程模型及 API 实例详解
希望你在进入此节之前,一定花时间把前面内容看一遍!!!https://docs.gradle.org/current/javadoc/org/gradle/api/Project.html。加载插件是调用它的 apply 函数.apply 其实是 Project 实现的 PluginAware 接口定义的:来看代码:[apply 函数的用法] apply 是一个转载 2016-04-25 20:39:21 · 823 阅读 · 0 评论 -
(2.2.10.2)Gradle 工作流程
Gradle 的工作流程其实蛮简单,用一个图 26 来表达:图 26 告诉我们,Gradle 工作包含三个阶段:首先是初始化阶段。对我们前面的 multi-project build 而言,就是执行 settings.gradleInitiliazation phase 的下一个阶段是 Configration 阶段。Configration 阶段的目标是解析每个 proj转载 2016-04-25 20:38:16 · 667 阅读 · 0 评论 -
(2.2.10.1)gradl基本组件
Gradle 是一个框架,它定义一套自己的游戏规则。我们要玩转 Gradle,必须要遵守它设计的规则。下面我们来讲讲 Gradle 的基本组件:Gradle 中,每一个待编译的工程都叫一个 Project。每一个 Project 在构建的时候都包含一系列的 Task。比如一个 Android APK 的编译可能包含:Java 源码编译 Task、资源编译 Task、JNI 编译 Task、转载 2016-04-25 20:37:16 · 531 阅读 · 0 评论