自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

转载 Android性能优化系列之内存优化

在Java中,内存的分配是由程序完成的,而内存的释放是由垃圾收集器(Garbage Collection,GC)完成的,程序员不需要通过调用函数来释放内存,但也随之带来了内存泄漏的可能,上篇博客,我介绍了 Android性能优化系列之布局优化,本篇博客,我将介绍内存优化的相关知识。 内存的分配策...

2018-08-16 14:19:29 902 0

转载 Android性能优化系列之布局优化

在Android开发中,UI布局可以说是每个App使用频率很高的,随着UI越来越多,布局的重复性、复杂度也会随之增长,这样使得UI布局的优化,显得至关重要,UI布局不慎,就会引起过度绘制,从而造成UI卡顿的情况,本篇博客,我就来总结一下UI布局优化的相关技巧。 学会使用布局标签优化布局 (1)...

2018-08-16 14:16:34 177 0

转载 Android性能优化系列之apk瘦身

为什么APK要瘦身。APK越大,在下载安装过程中,他们耗费的流量会越多,安装等待时间也会越长;对于产品本身,意味着下载转化率会越低(因为竞品中,用户有更多机会选择那个体验最好,功能最多,性能最好,包最小的),所以apk的瘦身优化也很重要,本篇博客将讲述apk瘦身的相关内容。 包体分析 在And...

2018-08-16 13:56:23 154 0

原创 Android Studio安装插件提示was not installed: Cannot download的解决办法(仅限AS2.2版本以上)

这是报错消息:Plugin Android ButterKnife Plugin Plus was not installed: Cannot download 'http://plugins.jetbrains.com/pluginManager/?action=download&am...

2018-07-03 19:27:57 653 0

原创 获取手机的音频文件展示并播放

获取手机的音频文件展示在ListView 点击一个播放一个 /** * 获取手机上的所有音乐点击开始播放 */ public class MainActivity extends AppCompatActivity { private ListView listView; /...

2017-10-25 14:08:19 963 0

转载 IntentService使用详解和实例介绍

IntentService定义   IntentService继承与Service,用来处理异步请求。客户端可以通过startService(Intent)方法传递请求给IntentService。IntentService在onCreate()函数中通过HandlerThread单独开启一...

2017-09-20 09:29:55 335 0

原创 详解Android中IntentService的使用方法

为什么我们需要IntentService ? Android中的IntentService是继承自Service类的,在我们讨论IntentService之前,我们先想一下Service的特点: Service的回调方法(onCreate、onStartCommand、onBind、onDest...

2017-09-20 09:26:55 6506 0

原创 FragmentPagerAdapter与FragmentStatePagerAdapter区别

【ViewPager】 ViewPager 如其名所述,是负责翻页的一个View。准确说是一个 ViewGroup,包含多个View 页,在手指横向滑动屏幕时,其负责对 View 进行切换。为了生成这些 View页,需要提供一个 PagerAdapter 来进行和数据绑定以及生成最终的V...

2017-09-15 09:32:49 175 0

转载 浅谈Android中的LOG查看ANR(一)

转自:http://yinger-fei.iteye.com/blog/1533788 手机中pull处理trace.txt 进去 data/anr 再pull   一:什么是ANR                   ANR:Application Not Respon...

2017-09-01 14:48:48 2547 0

原创 Android中自定义ContentProvider及用法

一。自定义ContentProvier时,需要继承ContentProvider,并实现其中的6个方法: onCreate():一般完成数据库的创建,当指定数据库不存在时,则创建一个数据库,当已经存在时,则不再执行该方法,即该方法之执行一次; insert():插入数据; query():查...

2017-09-01 14:47:08 244 0

原创 Android 中ContentProvider的用法及用ContentProvider访问联系人

一。概念:  * ContentProvider,内容提供者,android四组件之一,可以跨程序访问数据;  * 若用ContentProvider实现不同应用程序之间数据的共享,必须借助ContentResolver(内容解析器)类,  * 1.获得ContentResolver对象:C...

2017-09-01 14:46:11 237 0

原创 Android 数据存储(三) 数据库存储

在Android的数据存储机制中,文件存储和共享参数存储只适合存储一些简单的数据,如果要存储复杂数据,就需要使用到SQLite数据库存储,在Android中系统内置了数据库,运算速度快,占用资源也比较少。 一。创建数据库: 创建数据库时,用到了SQliteOpenHelper类,这是一个抽象类...

2017-09-01 14:44:56 178 0

原创 Android 数据存储(二)文件存储

在android中数据存储分四种:文件存储,共享参数存储,外部存储,数据库存储,各自都有优势和缺点,本文章主要了解文件存储。 一。存储原理及步骤:文件存储的原理就是用IO流的原理,对数据进行写入和读出,具体步骤如下: 1.用openFileOutputStream()和openFileInpu...

2017-09-01 14:43:40 219 0

原创 Android 数据存储(一) 共享参数存储

一。原理:SharedPreferences是采用键值对对数据进行存储的,当存入数据时,给数据设置一个对应的键,取出数据时,就可以根据键获取到相应的数据。 二。步骤: 1.得到SharedPreferences对象;得到共享参数实例的方式有三种:   1.Context.getSharedP...

2017-09-01 14:42:32 695 0

原创 adb操作命令详解及大全

adb是什么?:adb的全称为Android Debug Bridge,就是起到调试桥的作用。通过adb我们可以在Eclipse中方面通过DDMS来调试Android程序,说白了就是debug工具。adb的工作方式比较特殊,采用监听Socket TCP 5554等端口的方式让IDE和Qemu通...

2016-11-24 16:28:49 271 0

转载 unity3D的面试题

第一部分 1.请简述值类型与引用类型的区别 2.C#中所有引用类型的基类是什么 3.请简述ArrayList和List的主要区别 4.请简述GC(垃圾回收)产生的原因,并描述如何避免? 5.请描述Interface与抽象类之间的不同 6.下列代码在运行中会产生几...

2016-11-16 16:04:12 10881 2

原创 Unity3D游戏开发之详解 Animation类和Animator类

Animation类 animation组件用于播放动画。可以指定动画剪辑到动画组件并从脚本控制动画播放。在的动画系统基于权重并且支持动画融合,叠加动画,动画混合,标签和完全控制动画播放的各个方面。 如果想播放一个简单的动画,可以使用Animation.Play;如果想在动画之间交叉淡入,可以...

2016-11-16 14:25:46 2318 0

原创 unity自带寻路Navmesh入门教程(三)

继续介绍NavMesh寻路的功能,接下来阿赵打算讲一下以下两个例子,先看看完成的效果:    第一个例子对于喜欢DOTA的朋友应该很熟悉了,就是不同小队分不同路线进攻的寻路,红绿蓝三个队伍分别根据三条路线进攻。 第二个例子是动态的控制道路的开关。当吊桥打开时,道路不通,当吊桥放下时,道路...

2016-11-16 11:47:10 298 0

原创 unity自带寻路Navmesh入门教程(二)

上一节简单介绍了NavMesh寻路的基本用法,这次来介绍一下稍微复杂一点点的高低落差以及跳跃的做法,首先来看看这次的目标:    由于博客相册上传GIF有限制,所以我把整个过程切开了2部分上传,第一部分是爬楼梯,第二部分是横向跳跃和往下跳落       不管是爬楼梯,还是...

2016-11-16 11:45:03 296 0

原创 unity自带寻路Navmesh入门教程(一)

unity自从3.5版本之后,增加了NavMesh寻路的功能。在此之前,unity用户只能通过第三方插件(如Astar寻路插件)等做寻路功能。阿赵我也使用过A*寻路插件,A*的原理并不复杂,有兴趣的朋友可以自己百度一下。不过由于不是自带的功能,所以在设定网格和烘焙的过程难免会出现很多不便。NavM...

2016-11-16 11:43:25 1056 0

原创 Unity3D之太空大战二

接下来,我们要使飞船能发射子弹,所以我们要创建子弹模型,在资源中找到rocket.fbx模型文件,拖到Hierarchy中,这样就创建了子弹的游戏体,当然对于重复使用的游戏体,我们要做成预设体Prefab,我们打开菜单栏Assets->Create->Prefab,来创建一个新的预设体...

2016-11-11 15:51:32 620 0

原创 Unity3D之太空大战一

这是一个简单的太空大战DEMO,整个游戏两个部分,开始游戏界面跟游戏主界面,敌人分为两种,一种是简单的敌人,只会去触碰主角,还有一种是复杂点的敌人,可以发射子弹,,OK,下面我们一步步来。 首页我们导入相关的资源,在Assets里单击弹出选择框,选择Import Package->Cust...

2016-11-11 15:49:36 1718 0

原创 unity3D游戏开发十八之NGUI动画

我们先来看下帧动画,顾名思义,就是一帧帧的图片组成的动画,我们需要用到UISprite Animation组件,它的属性如下: Framerate:播放速率,也就是每秒钟播放的帧数 Name Prefix:图片名字的前缀,可以用来过滤图片集中的图片,从而指定你需要的图片 ...

2016-11-11 15:43:14 220 0

原创 unity3D游戏开发十七之NGUI四

接下来我们讲解下UIGrid,UIGrid是用来轻松的排列众多widget到固定大小格子的脚本。 编辑时和运行时都可以使用。如果想使用可变的格子单元大小,你可以使用UITable,属性如下图: Arrangement的值决定了子节点的摆放位置。Horizonta让子节点向右排列,...

2016-11-11 15:41:12 259 0

原创 unity3D游戏开发十六之NGUI三

接下来我们看下ProgeressBar,进度条,它是UISlider和UIScrollBar的基类,属性如下图: Value:百分比 Alpha:透明度 Steps:步阀阈值 Appearance:特性 a.Foreground(前景图片) ...

2016-11-11 15:39:26 208 0

原创 unity3D游戏开发十四之NGUI一

在Unity中,可以使用代码控制其自身所携带的GUI来实现图形界面的搭建。但是这些组件的搭建效率很低,而且已经无法满足现在市场对图形用户界面美感的要求,所以,引入了NGUI来增加所要开发的图形用户界面的美感。NGUI是一个功能强大的UI系统,其事件处理通常由开发人员编写C#脚本完成,并且是一个严格...

2016-11-11 15:36:22 361 0

原创 unity3D游戏开发十三之GUI

GUI在游戏的开发中占有重要的地位,游戏的GUI是否友好,使用是否方便,很大程度上决定了玩家的游戏体验。Unity内置了一套完整地GUI系统,提供了从布局、控件到皮肤的一整套GUI解决方案,可以做出各种风格和样式的GUI界面。在Unity中使用GUI来完成GUI的绘制工作,目前Unity没有提供内...

2016-11-11 15:34:57 604 0

原创 unity3D游戏开发十二之疯狂的小球

下面我们通过一个具体的实例来了解如何使用物理引擎,该实例通过第三人称视角控制游戏中的小球对象,游戏通过是否与钻石碰撞来界定是否寻找到钻石并获得积分,获得积分满10分后,赢得游戏,当小球冲出跑道时,游戏失败,并提示是否重新开始游戏。 依次打开文件夹Assets-》object,在o...

2016-11-11 15:33:44 1141 0

原创 unity3D游戏开发十一之物理引擎

Unity内置了NVIDIA的Physx物理引擎,Physx是目前使用最为广泛的物理引擎,被很多游戏大作所采用,开发者可以通过物理引擎高效、逼真地模拟刚体碰撞、车辆驾驶、布料、重力等物理效果,使游戏画面更加真实而生动。 Rigidbody(刚体)组件可使游戏对象在物理系统的控制下来运动,刚体...

2016-11-11 15:32:11 1675 0

原创 unity3D游戏开发十之粒子系统

Shuriken粒子系统是Unity3.5版本新推出的粒子系统,它采用模块化管理,个性化的粒子模块配合粒子曲线编辑器使用户更容易创作出各种缤纷复杂的粒子效果。 依次打开菜单栏中的GameObject->Greate Other->Particle System,在场景中新建一个粒...

2016-11-11 15:31:18 1010 0

原创 unity3D游戏开发九之雾效、水效和音效

开启Fog(雾效)将会在场景中渲染出雾的效果,在Unity中,可以对雾的颜色、密度等属性进行调整。开启雾效通常用于优化性能,开启雾效后远处的物体被雾遮挡,此时便可选择不渲染距离摄像机较远的物体。这种性能优化方案需要配合摄像机对象的远裁切面设置来使用。通常先调整雾效得到正确的视觉效果,然后调小摄像机...

2016-11-11 15:30:16 993 0

原创 unity3D游戏开发八之天空盒

Unity中的天空盒实际上是一种使用了特殊类型Shader的材质,该种类型材质可以笼罩在整个游戏场景之外,并根据材质中指定的纹理模拟出来类似远景,天空等的效果,使游戏场景看起来更完整。 依次打开菜单栏Assets->Import Package->Skyboxes,如下图: ...

2016-11-11 15:29:09 780 0

原创 unity3D游戏开发七之创建基本游戏场景四

这篇文章中我们简单介绍下角色控制,依次打开菜单栏中的Assets->Import Package->Character Controller,如下图: 导入角色控制资源包,如下图: 资源包被导入后,资源包中包含两个预设体,分别是第一人称角色控制预设体...

2016-11-11 15:27:53 505 0

原创 unity3D游戏开发六之创建基本游戏场景三

这篇文章中,我们来详细介绍下Unity的地形编辑器,Unity拥有功能完善的地形编辑器,支持以笔刷绘制的方式实时雕刻出山脉、峡谷、平原、高地等地形。Unity的地形编辑器同时提供了实时绘制地表材质纹理、树木种植、大面积草地布置等功能。Unity中的地形编辑器支持LOD(Level of Detai...

2016-11-11 15:26:49 601 0

原创 unity3D游戏开发五之创建基本游戏场景二

光源是每一个场景的重要组成部分,网格模型和材质纹理决定了场景的形状和质感,光源则决定了场景环境的明暗、色彩和氛围。每个场景中可以使用一个以上的光源,合理地使用光源可以创造完美的视觉效果。 uniity提供了4种类型的光源 1、Directional light:方向光源,类似于自然界中...

2016-11-11 15:25:43 439 0

原创 unity3D游戏开发四之创建基本游戏场景一

Unity创建游戏的理念可以被简单地理解为,一款完整的游戏就是一个Project(项目工程),游戏中不同的关卡/场景对应的是项目下面的Scene(场景)。一款游戏可以包含若干个关卡/场景,因此一个项目工程下面可以保存多个Scene。 我们可以点击File菜单->New Project来...

2016-11-11 15:24:40 523 0

原创 unity3D游戏开发三之unity编辑器二

下面我们介绍下GameObject,游戏对象/物体,通过游戏对象我们可以创建游戏对象,如灯光、粒子、模型、GUI等。 GameObject菜单 通过Create Other,我们可以创建系统自带的一些游戏对象,具体如下: Particle System:创建粒子系统 ...

2016-11-11 15:20:24 250 0

原创 unity3D游戏开发二之unity编辑器一

通过官网我们可以下载最新的unity版本,这里我们是基于Mac OS系统的,安装步骤很简单,这里就略过了。安装完成后,打开unity, 主界面如下: 下面我们来看看它的界面布局,Unity界面主要包括菜单栏、工具栏以及相关的视图等内容。 1、Scene视图 ...

2016-11-11 15:18:34 432 0

原创 unity3D游戏开发一之初识unity

刚开始看到unity的编辑界面,确实给了我很大的震撼,相对于cocos2dx来说,强大了太多,当然cocos2dx主要是面对2D游戏的开发,unity主要是面对3D游戏的开发,当然它的范围不仅仅是游戏。下面简单介绍下unity Unity是由Unity Technologies公司开发的跨平...

2016-11-11 15:14:00 890 0

原创 unity3D游戏开发十五之NGUI二

接下来我们讲解下UILabel,UILabel是用来显示文本的脚本,继承自UIWidget。我们创建一个label,属性如下图: 所有的label都需要Font才可正常工作。这个字体可以使Dynamic的(引用Unity Font),也可以是Bitmap字体——嵌入到Atlas里...

2016-11-11 15:07:17 205 0

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