自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 《Android开发艺术探索》笔记目录

该笔记以《Android开发艺术探索》为基础,结合Android 9.0代码和官方文档,修正了原书中表述不明确和过时的部分,同时加入了大量的个人理解。13章,14章,15章是总结性的章节,没有列出,建议直接看原书。Android开发艺术探索 - 第1章 Activity的生命周期和启动模式Android开发艺术探索 - 第2章 IPC机制Android开发艺术探索 - 第3章 View的事...

2019-06-18 12:12:20 660

原创 Unity3d - 为何需要Time.deltaTime

初学Unity3D,第一次接触Time.deltaTime这个变量,以下是个人的一些理解,如有错误,欢迎拍砖。先说下Unity3d脚步中常用的两个方法:Update():每帧被调用一次FixedUpdate():每隔Time.fixedDeltaTime被调用一次。Time.fixedDeltaTime默认是0.02s,可以通过Edit->ProjectSettings->Ti...

2017-06-18 17:48:23 19769

原创 eclipse中新建Java工程的三个JRE选项区别

 本文的主角就是这个十分令人纠结地方,至少令我这个初学者十分纠结…  先来看看官方的解释(链接)Use default JRE:When selected, the New Java Project Wizard creates a new Java project which uses the workspace default JRE. The default J...

2014-12-22 21:38:58 56452 19

原创 Android开发艺术探索 - 第12章 Bitmap的加载和cache

1.Bitmap高效加载加载Bitmap的方法:使用BitmapFactory的decodeFile/decodeResource/decodeStream/decodeByteArray可以分别从,文件/资源/输入流/字节数组中加载一个Bitmap。decodeFile/decodeResource会间接调用decodeStream。通过采样率控制加载出的Bitmap的大小,以提高加载效率:...

2019-06-18 11:55:01 321

原创 Android开发艺术探索 - 第11章 Android的线程和线程池

Android的主线程主要是运行四大组件以及处理其与用户的交互;而子线程用于执行耗时任务,如网络请求,I/O操作。1.Android中的线程形态AsyncTask在线程池中执行后台任务,其封装了Thread和Handler,通过execute方法执行AsyncTask。关键方法:onPreExecute:在执行execute方法的线程中运行,一般为主线程,用于执行在开始异步任务之前的一...

2019-06-18 11:54:51 700

原创 Android开发艺术探索 - 第10章 Android的消息机制

1.概述Handler的作用是将一个任务切换到指定的线程去执行。UI操作只能在主线程进行,这个限制是在ViewRootImpl#checkThread中实现的:void checkThread() { if (mThread != Thread.currentThread()) { throw new CalledFromWrongThreadException( ...

2019-06-17 17:06:33 190

原创 Android开发艺术探索 - 第9章 四大组件的工作过程

1.Activity启动过程 ref从Activity的startActivity方法开始。startActivity的多个重载方法,最终都会调用startActivityForResult方法。mParent代表的是ActivityGroup,API 13之前用于在一个界面中嵌入多个Activity,之后被Fragment替代,所以这里一般为null。该方法中主要调用了Instrumentat...

2019-06-17 17:04:34 255

原创 Android开发艺术探索 - 第8章 理解Window和WindowManager

一些说明:refWindow和View很多时候会彼此混杂,概念模糊不清。比如windowManager.addView实际上将View添加到WM对应的Window当中,并不是添加了一个新的Window,但是为其指定的LayoutParams的type含义却是Window的类型。Window的存在意义,实际上是将View的创建、ViewRootImpl和View交互的操作,从Activity/...

2019-06-17 17:03:50 320

原创 Android开发艺术探索 - 第7章 Android动画深入分析

Animation resourcesProperty Animation Overview1.View动画Tween补间动画四种动画效果,平移TranslateAnimation、缩放ScaleAnimation、旋转RotateAnimation和透明度AlphaAnimation,xml中对应四种标签的定义方式(res/anim/xxx.xml):<?xml version=...

2019-06-17 17:03:00 252

原创 Android开发艺术探索 - 第6章 Android的Drawable

Drawable表示了可绘制对象。getIntrinsicWidth/getIntrinsicHeight获取固有的宽高。对于BitmapDrawable来说,该方法返回其图片的宽高,对于shape类型的,默认返回-1。显示在View中的drawable会被拉伸或缩小为View的大小,固有宽高和其最终显示在View中的宽高不一定相等。一部分Drawable中用到的level的范围是0-1000...

2019-06-17 17:01:22 243

原创 Android开发艺术探索 - 第5章 理解RemoteViews

1.RemoteViews应用RemoteViews remoteViews = new RemoteViews(getPackageName(), R.layout.layout_notication);remoteViews.setTextViewText(R.id.text, "text");remoteViews.setImageViewResource(R.id.image, R....

2019-06-17 16:58:49 199

原创 Android开发艺术探索 - 第4章 View的工作原理

1.ViewRoot和DecorViewViewRoot对应ViewRootImpl,实现了DecorView和WindowManager之间的交互。View的绘制流程从ViewRoot#performTraversals开始,经过measure、layout、draw最终将一个View绘制出来:例,measur过程:performMeasure->measure->onMea...

2019-06-17 16:58:12 183

原创 Android开发艺术探索 - 第3章 View的事件体系

1.基础知识位置参数:left/top/right/bottom是左上和右下的原始坐标位置,不会改变。translation*是相对于left和top的偏移量,默认是0。x/y是左上角当前(所看到的)的坐标。x = left + translationXy = top + translationYMotionEvent:触摸事件ACTION_DOWN/ACTION_...

2019-06-17 16:55:54 223

原创 Android开发艺术探索 - 第2章 IPC机制

1.多进程模式给四大组件指定android:process。命名方式:“:”开头,该process将是application的私有进程,最终的process名会加上package前缀;小写字母开头,该process将是全局进程,多个application可以共享该process。多进程造成的问题:静态成员和单例模式失效线程同步机制失效SharedPreferences可靠性下降App...

2019-06-17 16:53:57 248

原创 Android开发艺术探索 - 第1章 Activity的生命周期和启动模式

第1章 Activity的生命周期和启动模式1. 生命周期基本情况onStart和onStop根据是否可见被回调;onResume和onPause根据是否在前台被回调。实际使用中没有其他区别。onRestart当由不可见变为可见时回调。由A启动B,在A的onPause执行完之前,B不会被创建。所以在onPause中不能执行过多的操作。异常情况设备配置改变或者内存不足时,Act...

2019-06-17 16:52:24 180

转载 通过快慢指针判断链表成环的原理

转自How does Floyd’s slow and fast pointers approach work?We have discussed Floyd’s fast and slow pointer algorithms inDetect loop in a linked list.The algorithm is to start two pointers, slo...

2019-05-10 23:00:13 578

转载 什么是P问题、NP问题和NPC问题

转自 什么是P问题、NP问题和NPC问题 这或许是众多OIer最大的误区之一。你会经常看到网上出现“这怎么做,这不是NP问题吗”、“这个只有搜了,这已经被证明是NP问题了”之类的话。你要知道,大多数人此时所说的NP问题其实都是指的NPC问题。他们没有搞清楚NP问题和NPC问题的概念。NP问题并不是那种“只有搜才行”的问题,NPC问题才是。好,行了,基本上这个误解已经被澄...

2019-04-29 22:52:22 230 1

转载 主流浏览器内核介绍(前端开发值得了解的浏览器内核历史)

转自主流浏览器内核介绍(前端开发值得了解的浏览器内核历史)内核首先得搞懂浏览器内核究竟指的是什么。浏览器内核又可以分成两部分:渲染引擎(layout engineer 或者 Rendering Engine)和 JS 引擎。它负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入 CSS 等),以及计算网页的显示方式,然后会输出至显示器或打印机。浏览器的内核的不同对于网页的语法解释会...

2018-02-27 10:03:08 279

转载 各主流浏览器内核介绍

转自各主流浏览器内核介绍所谓的“浏览器内核”无非指的是一个浏览器最核心的部分——“Rendering Engine”,直译这个词汇叫做“渲染引擎”,不过我们也常称其为“排版引擎”、“解释引擎”。这个引擎的作用是帮助浏览器来渲染网页的内容,将页面内容和排版代码转换为用户所见的视图。注:有时候我们所说的“浏览器内核”甚至“渲染引擎”,其实除了渲染引擎,也悄悄包含了javascript引擎,如WebKi...

2018-02-27 10:01:57 541

转载 将代码保持高亮复制到word中

转自将代码保持高亮复制到word中第一种:在vim编辑器下,用:TOhtml先转换成html,然后保存后用浏览器打开,在浏览器里复制,到word里面去粘帖,就可以保存住代码的高亮。第二种:使用notepad++,这里有几种将代码保持高亮复制到word中的方法。1.选中当前要复制的代码2.使用插件,这2个选项都可以将代码保持高亮复制到剪切板中,

2017-11-24 18:34:51 7523 1

原创 Android 透明状态栏

写这篇文实在是因为网上流传了太多鱼龙混杂的文章,各种东拼西凑,而且只讲方法不讲道理。所以我尽量做到,最后给出的解决方案是能看得懂的。这里不讨论”沉浸式“”沉浸式状态栏“”透明状态栏“的定义,能知道我这篇讲的是”透明状态栏“,说明这些概念你已经搞清楚了。真正意义上的(全)透明状态栏,只有Android 5.0及以上才支持关于windowTranslucentStatu

2017-11-06 23:00:05 511

原创 Android EditText在界面恢复时数据出现重复问题

我们在自定义组合控件,或者在ListView/RecyclerView的Item中使用EditText的时候,在屏幕旋转或者在Fragment间切换返回时,会出现一种状况:当前界面上具有同一ID的EditText被填充了相同的数据。具体的原因和解决办法可以看这里:Why does Android change the value of EditTexts with same id?

2017-11-05 00:20:41 1296 3

转载 Serif和Sans-serif字体的区别

转自Serif和Sans-serif字体的区别在西方国家罗马字母阵营中,字体分为两大种类:Sans Serif和Serif,打字机体虽然也属于Sans Serif,但由于是等宽字体,所以另外独立出Monospace这一种类,例如在Web中,表示代码时常常要使用等宽字体。   Serif的意思是,在字的笔划开始及结束的地方有额外的装饰,而且笔划的粗细会因直横的不同而有不同

2017-10-24 10:44:43 13348

转载 Java中普通代码块,构造代码块,静态代码块区别及代码示例

转自 Java中普通代码块,构造代码块,静态代码块区别及代码示例//执行顺序:(优先级从高到低。)静态代码块>mian方法>构造代码块>构造方法。其中静态代码块只执行一次。构造代码块在每次创建对象是都会执行。1 普通代码块 1 //普通代码块:在方法或语句中出现的{}就称为普通代码块。普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--“先出现

2017-10-10 21:59:46 840

转载 钢笔工具进阶技巧!如何画出完美的贝塞尔曲线?

转自钢笔工具进阶技巧!如何画出完美的贝塞尔曲线?上次有个同学抱怨钢笔工具特别难用,描轮廓花了一个多小时,好在这篇教程及时拯救了他,一看就懂,马上会用,强烈推荐哟。另外,这篇教程可能就是文中作者说说的那篇外文文章:《干货!设计师必须掌握的贝塞尔曲线的秘密》在力力初学 UI 的时候,临摹了很多作品,每次临摹基本都可以分为两个步骤,第一步是用钢笔工具和形状工具把物体勾勒出来,

2017-08-28 12:07:08 1462

转载 贝塞尔曲线扫盲

转自贝塞尔曲线扫盲相信很多同学都知道“贝塞尔曲线”这个词,我们在很多地方都能经常看到。但是,可能并不是每位同学都清楚地知道,到底什么是“贝塞尔曲线”,又是什么特点让它有这么高的知名度。贝塞尔曲线的数学基础是早在 1912 年就广为人知的伯恩斯坦多项式。但直到 1959 年,当时就职于雪铁龙的法国数学家 Paul de Casteljau 才开始对它进行图形化应用的尝

2017-08-28 12:03:18 481

转载 Unity3D - Animation System Overview

转自Animation System OverviewAnimation System OverviewUnity has a rich and sophisticated animation system (sometimes referred to as ‘Mecanim’). It provides:Easy workflow and setu

2017-08-02 21:05:38 587

转载 Unity3D之Mecanim动画系统学习笔记(九):Blend Tree(混合树)

转自Unity3D之Mecanim动画系统学习笔记(九):Blend Tree(混合树)认识Blend Tree我们在Animator Controller中除了可以创建一个State外还可以创建一个Blend Tree,如下:那么我们看下新创建的Blend Tree和State有什么区别:唯一的区别就是Montion指向的类型变成了Blen

2017-08-01 11:12:19 976 1

转载 Unity3D - Auto Layout

转自Auto LayoutAuto LayoutThe Rect Transform layout system is flexible enough to handle a lot of different types of layouts and it also allows placing elements in a complete free

2017-07-25 16:38:15 434

转载 Unity3D - Creating and Using Materials

转自Creating and Using MaterialsCreating and Using MaterialsTo create a new Material, use Assets->Create->Material from the main menu or the Project View context menu.By default,

2017-07-24 12:06:04 642

转载 Unity3D - RigidBody vs Collider

转自RigidBody vs ColliderYou can indeed have a collider with no rigidbody. If there's no rigidbody then Unity assumes the object is static, non-moving. Unity does not bother testing for collisions

2017-07-06 17:04:44 344

转载 Unity3D - Transform.TransformPoint VS TransformDirection

转自Transform.TransformPoint VS TransformDirectionThat's the tricky part of Vector3's, they can store any 3 component value. So in this case, the values returned mean different things but you

2017-07-06 15:10:40 847

转载 Unity3D中使用git

参考自How to use Git for Unity source control?1.首先在项目根目录新建一个.gitignore文件,可以从https://github.com/github/gitignore/blob/master/Unity.gitignore 这里获取2.然后在Unity3D中进行设置:For versions of Unity 3D

2017-06-30 10:24:36 1403

转载 C# 接口的隐式与显示实现

转自C# 接口的隐式与显示实现通俗的来讲,“显示接口实现”就是使用接口名称作为方法名的前缀;而传统的实现方式称之为:“隐式接口实现”。费话不说,例子如下:        interface IAnimal    {       void Dog();    }    class Animal:IAnimal    {      public vo

2017-06-23 16:20:07 317

转载 C#特性详解

特性(attribute)是被指定给某一声明的一则附加的声明性信息。在C#中,有一个小的预定义特性集合。在学习如何建立我们自己的定制特性(custom attributes)之前,我们先来看看在我们的代码中如何使用预定义特性。 using System;public class AnyClass{    [Obsolete("Don't use Old

2017-06-23 14:03:03 216

转载 C# Lambda表达式

转自C# Lambda表达式每次写博客,第一句话都是这样的:程序员很苦逼,除了会写程序,还得会写博客!当然,希望将来的一天,某位老板看到此博客,给你的程序员职工加点薪资吧!因为程序员的世界除了苦逼就是沉默。我眼中的程序员大多都不爱说话,默默承受着编程的巨大压力,除了技术上的交流外,他们不愿意也不擅长和别人交流,更不乐意任何人走进他们的内心!   题外话说多了,咱进入正题

2017-06-22 16:02:47 540

转载 C# 匿名方法

转自C# 匿名方法每次写博客,第一句话都是这样的:程序员很苦逼,除了会写程序,还得会写博客!当然,希望将来的一天,某位老板看到此博客,给你的程序员职工加点薪资吧!因为程序员的世界除了苦逼就是沉默。我眼中的程序员大多都不爱说话,默默承受着编程的巨大压力,除了技术上的交流外,他们不愿意也不擅长和别人交流,更不乐意任何人走进他们的内心,他们常常一个人宅在家中!废话说多了,咱进

2017-06-22 16:01:58 366

转载 C#中的扩展方法

转自C#中的扩展方法学习总结什么是扩展方法?  扩展方法从字面上理解是指扩展的方法,而对应到面向对象编程这个格局中则是指为一个类提供的扩展方法。按照我们通常的理解,我们首先需要获得某个类的源代码,然后在这个类代码中增加成员方法,这样就可以达到为一个类提供扩展方法的目的。可是不幸地是,这种方法在没有源代码的情况下就无法奏效了,而且我们人为地去改变源代码有可能会破坏整个

2017-06-21 18:00:16 271

转载 Unity3D基础知识梳理

转自Unity3D基础知识梳理美术部分:       Unity的话主要还是分两块吧,第一块是美术(自己都不懂~这里允许我稍微带过一下吧~),美术的话主要包括3d模型、材质、纹理(贴图)这几部分吧,当然你也可以说还有shader(着色器),Unity本身拥有几十种shader,也可以根据自己的需要使用shaderLab语言来编写shader,这个对我来说相当有难度,所以一般只用Un

2017-06-17 17:41:15 496

转载 Unity3D中手机陀螺仪的使用

转自Unity3D中手机陀螺仪的使用使用手机陀螺仪,可以获取手机的3D姿态,这在开发中是很有用的。当然现在的手机内置的陀螺仪都是比较廉价的,精度不高,但是作为实验设备看看效果还是可以的。本文将给出调用手机陀螺仪的简单方法。       首先,我们需要在场景中添加大量方块,作为观察对象。       控制陀螺仪的脚本:[csharp] 

2017-06-02 11:14:48 5717

IIS5.0(提取自WIndows 2000)

用于Windows Xp Home Edition 安装的IIS版本

2014-04-26

VMware Uninstal Documents

安装,卸载或重装Vmware Workstation时失败的官方解决方案

2014-04-25

VMware_Install_Cleaner

用于解决Workstation 4.x及更低版本的无法卸载问题

2014-04-25

空空如也

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

TA关注的人

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