自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(115)
  • 资源 (3)
  • 收藏
  • 关注

原创 React中Redux数据流

主流的数据流框架:Flux/reFlux/Redux简单/单一的状态树用户所有的Action由统一的Dispatcher分发到若干个store里面去这个store保存着数据也保存着当前页面的一个状态,只能向后向视图层传递信息。actions/用户操作componentscontainerreducer store里面负责分发action的行为,响应index

2018-01-03 23:35:45 514

原创 React组件的生命周期

React renderComponent()1. Mounted组件被render解析生成对应的DOM节点并被插入浏览器的DOM结构中的一个过程。(看见效果)2. Update一个Mounted的组件被重新render的过程。setState() or setProps() ---- render()3. Unmounted --- React.unmountAndR

2018-01-03 22:43:00 340

原创 为啥要使用Gradle Wrapper

每一个Wrapper都会绑定到一个特定版本的Gradle,当用户第一次执行如下的命令时,Wrapper会自动地下载并安装对应版本的Gradle,方便用户构建项目。./gradlew [task] (UNIX/Linux) gradlew [task] (Windows)会读取gradler-wrapper.properties配置下载。distributionB

2017-11-09 16:46:19 1002

原创 grade优化加速打包总结

1. Android Studio安装路径下bin目录 在studio.vmoptions文件中添加如下配置:-Xms512m  JVM初始分配的堆内存 -Xmx2048m  JVM最大允许分配的堆内存,按需分配 -XX:MaxPermSize=2048m  JVM初始分配的非堆内存-XX:ReservedCodeCacheSize=1024m JVM最大允许分配的非堆内存,按需分

2017-11-09 16:17:54 1048

转载 -bash :gradlew command not found

mac下执行gradlew命令时,提示-bash :gradlew command not found,主要原因是Android Project根目录下地gradlew文件没有执行权限。打开终端,执行以下命令:sudo chmod +x gradlew1为gradlew增加可执行权限。值得一提的是,mac下执行当前目录下的命令需要在前面加上“./”,否则会到环境变量下找相应命令

2017-11-09 15:48:18 2271

原创 Grade编译错误 java.util.zip.ZipException: duplicate entry的解决方法

1.项目多模块开发难免遇到一些jar,第三方库依赖冲突的情况,出现很奇怪的错误 类似duplicate entry,有些时候真是某些类冲突,可以通过 双击shift按键,查找到并解决。dependency 可通过exclude方式排除,自行百度。2. 大部分时候,并不是真的冲突,这种情况往往是gradle的缓冲,或者apt,androidprocessor,butterknife,

2017-11-09 15:21:10 3518

转载 进程,线程区别简介

定义:进程:是程序运行的实例,是系统进行资源分配和调度的一个独立单位,它包括独立的地址空间,资源以及1个或多个线程。线程:可以看成是轻量级的进程,是CPU调度和分派的基本单位。 区别:1.调度 :从上面的定义可以看出一个是调度和分派的基本单位,一个是拥有资源的基本单位2.共享地址空间,资源:进程拥有各自独立的地址空间,资源,所以共享复杂,需要用IPC

2017-08-31 11:31:12 285

原创 插件化的理解

为啥要引入插件化业务逻辑的复杂,导致代码急速膨胀,很多大厂的App,方法数超过 65536/64k。实现功能模块的解耦,维护团队的分离,不同团队负责不同的业务模块,如果每个模块升级新功能,都需要对整个app升级,那发布效率太低了。H5/Hibrid形式也可以解决部分问题,但毕竟效果不如Native的实现,Facebook推出的 RN框架,但国内还是比较流行插件化。插件化要解决的问题

2017-08-27 23:37:04 967

原创 算法基础

链表相关算法:1.链表删除指定节点2.删除指定数值的节点Java.util.Stack这个类不难,但需要注意其中的peek()方法: 查看栈顶对象而不移除它。而pop会把栈顶的值删除。queue 队列为空 peek()的结果为null,而stack为空,则抛出EmptyStackException

2017-08-24 14:16:41 351

原创 Http的理解总结

1,基础概念协议:指计算机通信网络中两台计算机之间进行通信所必须遵守的规定或规则。HTTP协议:超文本传输协议是一种通信协议,它允许将超文本标记语言HTML文档从web服务器传输到客户端的浏览器。URI:unform resource identifier,统一资源标识符,用来唯一的标识一个资源。例如file://xxx:test/test.txt  主机 端口 目录 文件 三个组

2017-08-19 09:26:15 379

转载 Unity StartCoroutine 和 yield return 深入研究

StartCoroutine和yield return表面意思很好理解,StartCoroutine就是开启一个协程,yield return 是迭代器块返回调用迭代的地方。是吧?不知道你什么感觉,反正我觉得,还是需要深入研究一下的。OK,here we go! 首先,先看一下StartCoroutine在Unity官方的解释。意思是:一个协程的执行可以在任何地方用yield语句来暂停,yie

2017-06-19 17:16:09 715

转载 Unity3D中yield协程的使用

1. 协程  在Unity 3D中,我们刚开始写脚本的时候肯定会遇到类似下面这样的需求:每隔3秒发射一个烟花、怪物死亡后20秒再复活之类的。刚开始的时候喜欢把这些东西都塞到Update里面去,就像下面这样写。 1 float nowTime = 3.0f; 2 bool isDead = true; 3 float deadTime = 20.0f; 4 5 void start

2017-06-14 09:55:58 703

原创 C#中 --- Func 委托

Func 委托,封装一个方法,该方法不具有参数,且返回由 TResult 参数指定的类型的值。内部已经定义了:public delegate TResult Func()当您使用 Func 委托时,您无需显式定义一个委托,用于封装无参数的方法。using System;using System.IO;public class TestDelegate{ public st

2017-06-13 17:10:44 585

原创 C#中 --- Action 委托

Action委托的用法,它封装一个了方法,该方法不具有参数且不返回值。当你使用Action委托,则不需要显式定义一个委托封装的无参数的过程。下面的代码显式声明一个名为的委托ShowValue并将分配到的引用Name.DisplayToWindow实例给其委托实例的方法。using System;using System.Windows.Forms;public del

2017-06-13 16:32:16 994

转载 Unity Android Plugin 开发指南

本文将介绍如何在Unity工程中使用Android或者Java的库,包括: 如何在Unity项目中使用Android Plugin Unity-Android相互调用 Unity接口设计的最佳实践 如何构建Unity-Android混合项目 如何调试Unity和Android代码 附录:跨虚拟机调用的实现 如何在Unity项

2017-06-12 15:15:59 1413

转载 C#高级参数{out,ref,params}

转自:http://www.cnblogs.com/linfenghp/p/6618580.htmlC#中有三个高级参数,分别是out,ref,params.out,用于在方法中返回多余值。(可以理解为让一个方法返回不同的类型值),我们通过例子来理解例子的功能:用一个方法,判断用户是否登陆成功(布尔类型),同时提示用户是否登陆成功(字符串类型)    using System;u

2017-06-08 11:23:23 446

原创 C#泛型介绍

在公共语言运行时和 C# 语言的早期版本中,通用化是通过在类型与通用基类型 之间进行强制转换来实现的,泛型提供了针对这种限制的解决方案。 通过创建泛型类,您可以创建一个在编译时类型安全的集合。使用非泛型集合类的限制可以通过编写一小段程序来演示,该程序使用 .NET Framework 类库中的 集合类。 是一个使用起来非常方便的集合类,无需进行修改即可用来存储任何引用或值类型。C

2017-06-05 14:51:09 384

原创 Gradle配置非Module文件下的子项目资源

有些时候,想不以module方式引入一个文件夹里的项目的时候,我们如何配置gradle:以我kotlin的实验项目为例:apply plugin: 'com.android.application'apply plugin: 'kotlin-android'android { compileSdkVersion 25 buildToolsVer

2017-06-05 11:44:22 1343

原创 Gradle报disposed错误解决方法

Android studio 当删除或者移除原有的module 后,编译会出不通过,Console提示 "Gradle failed: already disposed xxxx " 进入 File -- Invalidate Cache/Restart  。清理缓存并且重启。

2017-06-05 10:59:17 1097

原创 Kotlin -- 函数

函数函数声明Kotlin 中的函数使用 fun 关键字声明fun double(x: Int): Int {}函数用法调用函数使用传统的方法val result = double(2)调用成员函数使用点表示法Sample().foo() // 创建类 Sample 实例并调用 foo中缀表示法函数还可以用中缀表示法调用,当

2017-05-31 17:54:47 374

转载 Kotlin -- 委托

概述所谓委托模式 ,就是为其他对象提供一种代理以控制对这个对象的访问,在Java开发过程中,是继承模式之外的很好的解决问题的方案,不熟悉委托模式的,可以参考博委托模式。对于Kotlin而言,其直接支持委托模式,从而避免为了实现模式而不得不写那些常规的代码。又不得不赞叹,Kotlin的优雅,简洁。byKotlin中,委托的实现依靠于关键字 by ,by表示将抽象主题的

2017-05-31 15:25:39 515

原创 Kotlin -- 对象表达式和对象声明

有时候,我们需要创建一个对某个类做了轻微改动的类的对象,而不用为之显式声明新的子类。 Java 用匿名内部类处理这种情况。  Kotlin 用对象表达式和对象声明对这个概念稍微概括了下。对象表达式要创建一个继承自某个(或某些)类型的匿名类的对象,我们会这么写:window.addMouseListener(object : MouseAdapter() { overri

2017-05-31 15:05:30 1058

原创 Kotlin -- 数据类

数据类我们经常会创建一些数据类, 什么功能也没有, 而仅仅用来保存数据. 在这些类中, 某些常见的功能经常可以由类中保存的数据内容即可自动推断得到. 在 Kotlin 中, 我们将这样的类称为 数据类, 通过 data 关键字标记:data class User(val name: String, val age: Int)编译器会根据主构造器中声明的全部属性, 自动推断产生以

2017-05-27 17:21:19 414

原创 Kotlin--基本

内部表达在 Java 平台中, 数值的物理存储使用 JVM 的基本类型来实现, 但当我们需要表达一个可为 null 的数值引用时(比如. Int?), 或者涉及到泛型时, 我们就不能使用基本类型了. 这种情况下数值会被装箱(box)为数值对象.注意, 数值对象的装箱(box)并不保持对象的同一性(identity):val a: Int = 10000print(a ===

2017-05-25 17:37:54 1948

原创 Unity读取windows和Android SDcard文件

全部都是路径惹的祸读取 windows D: 盘下的  test.txt 文件,在编辑器里运行,console上可以查看:windows上 路径  / 要写成 \\  写一个也不行,可能会被转义,反正也无法读取内容 string windowsUrl = "file://D:\\test.txt"; WWW w = new WWW(windowsUrl);

2017-05-24 16:30:47 4563

原创 Kotlin-Null 值安全性

Kotlin 类型系统的设计目标就是希望消除代码中 null 引用带来的危险。Kotlin 的类型系统致力于从我们的代码中消除 NullPointerException. 只有以下情况可能导致 NPE:明确调用 throw NullPointerException()使用 !! 操作符, 详情见后文外部的 Java 代码导致这个异常初始化过程中存在某些数据不一致 (在构造器中使

2017-05-22 17:42:11 1741

原创 如何依赖多个aar-Gradle配置

在Android Studio创建的主module app 依赖aar文件。build.gradle中配置:android { compileSdkVersion 25 buildToolsVersion "25.0.2" defaultConfig { minSdkVersion 23 targetSdkVersion 25

2017-05-19 14:40:27 2852 1

原创 Android Stuido导出AAR 给Unity3D调用注意事项

1. 导出 AAR过程需要注意,依赖的文件并没有打进去,所以要收到拷入到 Unity项目中,如下图中的 support包,是我项目中要用到的:2.删除aar包中重复的 libs下的 jar文件和 jni下的  .so文件,否则调用的时候会报错。3. Manifest文件也要拷到 Unity项目中的 Plugin/Android下,因为会有一些 权限的

2017-05-16 19:29:16 8444

原创 Unity3D调用Android提供的接口

需求:Android提供相关的接口,android只提供接口,没有相关的界面,android接口打包以jar包的形式供Unity3D调用1.编写相关的android接口 在studio中新建工程,并设置为library,编写相关的接口 ex:在Android中提供录音的接口 android中有一个service负责实现录音相关的工作,对外提供的接口是 Recorder.Java 中的两个接口

2017-05-12 14:27:32 2065

原创 Tanks Unity Tutorial - Phase 8 Audio Mixing

Youtube地址 :https://www.youtube.com/watch?v=h1vWeglOS_wAudio Mixer,Duck volume的使用group add 下面可以添加 Duck volume ,或者 send  设置group之间的衰减影响Output 指定 group:

2017-05-09 17:03:04 501

原创 Tanks Unity Tutorial - Phase 7 Managers

Youtube地址 :https://www.youtube.com/watch?v=M4bH9lWOJE4主要理解 协程的应用.注意 class  TankManager的 [Serializable]属性,才能显示到 Inspector上面。[HideInInspector] 表示的属性,只能脚本调用。using System;us

2017-05-09 16:41:31 536

原创 Tanks Unity Tutorial - Phase 6 Shooting

YouTube地址:https://www.youtube.com/watch?v=_In3KT97aTw实现射击的效果:using UnityEngine;using UnityEngine.UI;public class TankShooting : MonoBehaviour{ public int m_PlayerNumber = 1;

2017-05-09 16:26:39 433

原创 Tanks Unity Tutorial - Phase 5 Shells

YouTube地址:https://www.youtube.com/watch?v=rkQmXcQRpTwCollider . IsTrigger means it doesn't have a solid surface to it can intersect,but it can send a callback to script ,i've now entered another

2017-05-08 17:38:20 459

原创 Tanks Unity Tutorial - Phase 4 Tank Health

Youtube地址:https://www.youtube.com/watch?v=XRzGfRkZrNM题外Tips:Unity Editor中可以设置是 Pivot模式 或者 Center 模式 Alt + click 视图里的GameObject,可展开所有子项。实现效果:Canvas 渲染模式选择 World Space,Rect 才可以调整

2017-05-08 16:04:09 629

原创 Tanks Unity Tutorial - Phase 3 Camera Control

YouTube地址:https://www.youtube.com/watch?v=llEJtLuQyPMWhat should camera do:1.Follow The tanks 2.Resize to fit the tanks on screen Camera:难点理解 :Vector3 desiredPosToTarget =

2017-05-05 16:56:14 843

转载 Audio Source 音频源

转自:http://www.ceeger.com/Components/class-AudioSource.html音频源(Audio Source)在场景中播放音频剪辑(Audio Clip)。如果音频剪辑(Audio Clip)是一个3D剪辑,音频源是在一个给定的位置,并会随距离衰减这样的方式进行播放。Properties 属性Audio Clip 音频剪辑

2017-05-05 14:59:02 2804

原创 Tanks Unity Tutorial - Phase 2

Tank CreationYoutube地址:https://www.youtube.com/watch?v=noXtT_zN-84&spfreload=5TankMovement脚本:重点学习 脚本里面的刚体处理运动和转向,以及音效。Edit —>project setting —>Input查看默认设置:所以才可以通过  w a s d 控制tank

2017-05-04 19:16:27 1403

原创 Tanks Unity Tutorial - Phase 1

Unite Training DayPurposeYoutube地址:https://www.youtube.com/watch?v=paLLfWd2k5APhase 11.Asset文件下载:在Unity工程中 Asset Store中搜索Tanks 下载并导入资源文件。2.创建新

2017-05-04 15:49:52 916

转载 Unity 3D中yield协程与消息传递

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2017-05-02 15:27:43 785

原创 C#中委托(Delegate)

委托(Delegate)特别用于实现事件和回调方法。所有的委托(Delegate)都派生自 System.Delegate 类。委托声明决定了可由该委托引用的方法:public delegate int MyDelegate (string s);上面的委托可被用于引用任何一个带有一个单一的 string 参数的方法,并返回一个 int 类型变量。声

2017-04-28 17:40:18 1033

ViewFlow的例子

ViewFlow,以包的方式 移植到项目中,而不是以第三方库那种方式加载

2014-03-13

TestViewPager

通过反射对Viewpager的的属性做了修改,实现滑动效果的控制,实现动态添加导航圆点和滑动。

2013-12-25

Setup Server on Ubuntu(汇总)

一些常用server在Ubuntu system 上的搭建方法。

2012-03-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除