自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

原创 TCP 和 UDP 的对比

tcp 和 udp 的对比

2022-11-17 23:05:49 153 1

原创 设计模式之--观察者模式(解决、解耦的钥匙)

一、观察者模式介绍 观察者模式是一个使用频率非常高的模式,它最常用的地方是 GUI 系统、订阅–发布系统。因为这个模式的一个重要作用就是解耦,将被观察者和观察者解耦,使得他们之间的依赖性更小,甚至做到毫无依赖。以 GUI 系统来说,应用的 UI 具有易变性,尤其是前期随着业务的改变或者产品的需求修改,应用界面也会经常性变化,但是业务逻辑基本变化不大,此时, GUI 系统需要一套机制来应对这种情况...

2018-02-22 17:32:08 551

原创 设计模式之--命令模式(让程序畅通执行)

一、命令模式介绍 命令模式(Command Pattern)是行为型设计模式之一。命令模式相对于其他的设计模式来说并没有那么多的条条框框,其实它不是一个很“规矩”的模式,不过,就是基于这一点,命令模式相对于其他的设计模式更为灵活多变。我们接触比较多的命令模式个例无非就是程序菜单命令,如在操作系统中,我们点击“关机”命令,系统就会执行一系列的操作,如果先是暂停处理事件,保存系统的一些配置,然后结束...

2018-02-13 17:31:18 481

原创 设计模式之--模板方法模式(抓住问题的核心)

一、模板方法模式介绍 在面向对象开发过程中,通常会遇到这样的一个问题,我们知道一个算法所需要的关键步骤,并确定了这些步骤的执行顺序,但是,某些步骤的具体实现是未知的,或者说某些步骤的实现是会随着环境的变化而改变的,例如,执行程序的流程大致如下: (1)检查代码的正确性; (2)链接相关的类库; (3)编译相关代码; (4)执行程序。 对于不同的程序设计语言,上述4个步骤都是不一样的,但...

2018-02-11 14:14:32 349

原创 3D开发知识-投影及各种变换

3D 应用程序开发中,一项很重要的工作是对场景中的物体进行各种投影与变换。相比于OpenGL ES 1.x 的封闭模式,OpenGL ES 2.0 在变换方面采取了开放模式,其 API 中不再提供完成各种变换的方法,变换所用的矩阵都由开发人员直接提供给渲染管线。因此,基于OpenGL ES 2.0 进行投影与变换的开发时,可能需要了解更多的数学知识。这样虽然增加了开发的难度,但是大大提高了开发...

2018-02-11 10:09:53 493

原创 设计模式之--迭代器模式

一、迭代器模式介绍 迭代器模式(Iterator Pattern)又称为(Cursor)模式,是行为设计模式之一。迭代器模式算是一个比较古老的设计模式,其源于对容器的访问,比如Java 中的 List、Map、数组等,我们知道对容器对象的访问必然会涉及遍历算法,我们可以将遍历的方法封装在容器中,或者不提供遍历方法。如果我们将遍历的方法封装到容器中,那么对于容器来说就承担了过多的功能,容器类不仅要

2018-02-02 17:47:11 306

原创 设计模式之--策略模式

一、策略模式的介绍软件开发中常遇到这种情况:实现某一个功能可以有多种算法或者策略,我们根据实际情况选择不同的算法或者策略来完成该功能。例如,排序算法,可以使用插入排序、归并排序、冒泡排序等。 针对这种情况,一种常规的方法是将多种算法写在一个类中。例如,需要提供多种排序算法,可以将这些算法写到一个类中,没一个方法对应一个具体的排序算法;当然,也可以将这些排序算法封装在一个统一的方法中,通过if

2018-02-01 14:30:21 197

原创 设计模式之--装饰模式

一、装饰模式的介绍 装饰模式(Decorator Pattern)也称为包装模式(Wrapper Pattern),结构型设计模式之一,其使用一种对客户端透明的方式来动态地扩展对象的功能,同时它也是继承关系的一种替代方案之一。在现实生活中也可以看见很多装饰模式的例子,或者可以大胆地说装饰模式无处不在,就拿人来说,人需要各式各样的衣着,不管你穿着怎样,但是,对于个人的本质来说是不变的,充其量只是在

2018-01-30 11:32:35 247

原创 享元模式-对象共享、避免创建多对象

一、享元模式介绍 享元模式(Flyweight-轻量级)是对象池的一种实现。享元模式用来尽可能减少内存使用量,它适用于可能存在大量重复对象的场景,来缓存可共享的对象,达到对象共享、避免创建过多对象的效果,这样一来就可以提升性能,避免内存移除等。 享元对象中的部分状态是可以共享的,可以共享的状态成为内部状态,内部状态不会随着环境变化;不可共享的状态则称之为外部状态,他们会随着环境的改变而改变。在

2018-01-25 16:44:51 309

原创 设计模式之--组合模式

一、组合模式的介绍 组合模式(Compisite Pattern)也称为部分整体模式(Part-Whole Pattern),结构型设计模式之一,它将一组相似的对象看作一个对象处理,并根据一个树状结构来组合对象,然后提供一个统一的方法去访问相应的对象,以此忽略掉对象与对象集合之间的差别。生活中一个比较典型的例子就是组织结构的树状图如下: 二、组合模式的定义 将对象组合成树形结构以

2018-01-22 23:08:59 891 1

原创 OpenGL ES 基础知识总结

一、GLSL着色器语言 1、渲染管线 渲染管线有时也被称为渲染流水线,一般是由显示芯片(GPU)内部处理图形信号的并行处理单元组成。这些并行处理单元两两之间是相互独立的,在不同型号的硬件上独立处理单元的数量也有很大的差异。一般越高端的硬件,其中独立处理单元的数量也就越多。 下图为OpenGL可编程渲染管线: 1.1 顶点着色器:顶点着色器是一个可编程的处理单元。(接收

2018-01-20 14:01:44 840

原创 设计模式之工厂方法模式

设计模式之工厂方法模式一、工厂方法模式介绍 工厂方法模式(Factory Pattern)是创建型设计模式之一,是一种结构简单的模式,在我们平时开发中应用很广泛。二、工厂方法模式的定义 定义一个用于创建对象的接口,让子类决定实例化哪个类。三、工厂方法模式的使用场景 在任何需要生成复杂对象的地方,都可以使用工厂方法模式。复杂对象适合使用工厂模式,用new就可以完成创建的对象无需使

2018-01-12 16:04:22 178

原创 设计模式之适配器模式

设计模式之适配器模式一、适配器模式介绍 适配器是将两个不兼容的类融合在一起,将不同的东西通过一种转化使得他们能够协作起来。二、适配器模式的定义 适配器模式把一个类的接口变换长客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。三、适配器模式的使用场景 1、系统需要使用现有的类,而此类的接口不符合系统需求,即接口不兼容。 2、想要建立一个可

2018-01-11 12:01:34 261

原创 c/c++面向对象编程之共用数据的保护

一、常对象定义常对象的一般形式为类名 const 对象名(实参表列)const 类名 对象名(实参表列)1)常对象必须有初值2)在所有的场合中,常对象中所有的成员的值都不能被改变,如果希望保证对象数据成员值不能被改变,就可以声明为常对象3)一个对象被声明为常对象,就不能调用非const型的成员函数(除了系统自动调用的隐式的构造函数和析构函数)4)常成员函数可以访问常对象中的数据成员,但仍然不

2017-10-13 10:34:17 585 1

原创 android xmlns:tools用法

在官方文档中有说这么一句:           These are attributes which are used when the layout is rendered inthe tool, but have no impact on the runtime. This is useful if you for examplewant to put sample data in you

2017-08-14 10:26:55 294

原创 ListView设置“android:dividerHeight“这个属性带来的困扰

当给listView设置android:divider="#f6f6f6"、android:dividerHeight="2px" 属性本来是设置listView的分割线的高度,但是当给listView 加上头部后,在listView的头布局上面就会多出来一个,分割线高度的布局?【解决办法】去掉xml listView的设置分割线的属性,在adapter的item布局中单独设置分割线,这样li

2017-08-07 11:09:47 6647

原创 cornerstone 怎么设置 忽略指定的文件不提交不更新

1、先将指定文件备份,删除目录中的文件,2、再将备份的文件复制到目录中3、然后到cornerstone找到该文件,并在该文件上右键选择”Ignore”,即可。

2017-06-15 10:14:14 3970

转载 Android RecyclerView的LayoutManager

一、Google默认为RecyclerView提供了三个LayoutManager:LinearLayoutManagerStaggeredGridLayoutManagerGridLayoutManager二、这些已经可以满足很多开发需求了,但是在实际开发中,免不了出现一些更加新颖的交互设计。所以Github上整理了一波关于RecyclerView可以使用的LayoutManager,在实

2017-03-29 11:14:10 608

原创 GLSurFaceView特性

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

2017-03-20 11:29:47 1570

原创 Android Studio 编译缓存(Build Cache)

编译缓存是 Android Studio 2.2 版本被引入的的一个功能,能够缓存项目中导入的 AAR、Libray,能够加快调试过程中的编译时间。新版本(2.3)在此基础上进一步优化,同时默认打开这个功能,在 2.2 版本上默认处于关闭状态。      Note: If your project uses Android plugin version 2.2.2 or 2.2.3, it's

2017-03-08 17:42:49 6057

转载 Android工具类库

https://github.com/jingle1267/android-utils在GitHub上发现的,感觉很全很不错,感谢作者的分享,继续扩散。。。囊括了一大部分Android应用开发过程当中常用的工具类。工具类来源整理自网络和自己编写。

2017-03-04 22:10:28 371

原创 Android中判断QQ、微信是否安装的方法

/*** 判断微信是否可用*/public static boolean isWeixinAvilible(Context context) { final PackageManager packageManager = context.getPackageManager();// 获取packagemanager List pinfo = packageManag

2016-03-29 10:53:19 2759 2

转载 app 状态栏颜色设置

app 状态栏颜色设置http://laobie.github.io/android/2016/02/15/status-bar-demo.html

2016-03-28 14:25:18 657

原创 SQLiteOpenHelper 介绍

package com.cnfol.sqlitedb;import android.content.Context;import android.database.sqlite.SQLiteDatabase; /* 为了判断数据库是否包含news_inf数据表,采用的 方法十分烦锁:程序先尝试向news_inf数据表中插入记录,如果程序 抛出异常,在异常中

2016-03-09 10:39:58 773

原创 事务

SQLiteDatabase中包含如下两个方法来控制事务①:beginTransaction():开始实务②:endTransaction():结束事务除此之外,SQLiteDatabase还提供了如下方法来判断当前上下文是否处于事务环境中。①:inTransaction():如果当前上下文处于事务中,则返回true,否则返回false.当程序执行endTransaction()

2016-03-08 16:47:14 308

原创 Android 中SQLite 增删改查的方法介绍

1、使用insert方法插入记录 long insert(String table, //代表想插入数据的表名
 String nullColumnHack, //代表强行插入null值的数据列的列名。当valus参数为
  //null或不包含任何key-valu

2016-03-08 16:04:53 468

原创 SQLiteDatabase的使用

直接上代码package com.cnfol.sqlitedb;import android.app.Activity;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteException;import and

2016-03-07 11:03:49 816

转载 ShareSDK集成第三方登录和分享的步骤

转自:http://my.oschina.net/u/1024921/blog/170588之前用过这个几次了,而每次都没有记录一下具体的步骤,这次就写一下吧1、去ShareSDK下载官方的SDK2、现在他们的服务特别人性化,解压SDK之后会发现有一个"双击此批处理文件可以生成一个快速集成ShareSDK的目录.bat"这样一个文件,打开之后按照提示输入你的应用包名

2015-06-05 17:10:22 558

转载 Android点击EditText文本框之外任何地方隐藏键盘的解决办法

转载自:http://blog.csdn.net/mad1989/article/details/250698211,实现方法一:通过给当前界面布局文件的父layout设置点击事件(相当于给整个Activity设置点击事件),在事件里进行键盘隐藏[java] view plaincopy"http://schemas.android.

2015-06-04 17:42:46 274

转载 Android 中Application的作用

转载自:http://blog.csdn.net/lieren666/article/details/7598288学习android挺长时间了,但是对于Appliction还不是很了解。今天花一些时间研究了一下Application。 What is ApplicationApplication和Actovotu,Service一样是android框架的一个系

2015-05-30 22:25:42 378

原创 android studio 更改背景和设置字体大小

android studio 更改背景和设置字体大小1,设置字体大小2,设置背景主题

2015-05-29 13:00:08 756

转载 如何把Eclipse修改为黑色主题

转载自:http://bbs.itheima.com/forum.php?mod=viewthread&tid=119345&extra=page%3d1%26filter%3dtypeid%26typeid%3d390?lt3448原帖名:如何把Eclipse修改为黑色主题?求配色方案!因为主力问题已解决,经过修改内容,已经从提问帖变成技术贴。所以修改贴名以供同学们学习!帖子内容以按

2015-05-25 11:02:21 9539 1

原创 Android中Popuwindown的使用(我的项目中扣出的代码)

if (popupwindow != null&&popupwindow.isShowing()) {popupwindow.dismiss();return;} else {initmPopupWindowView();// popupwindow.showAsDropDown(view, 0, 5);popupwindow.showAsDropDown(view, 0, PARAM.Dp2Px

2015-05-20 18:40:50 633

转载 Android的WebView控件载入网页显示速度慢的究极解决方案

转载来源自:http://hi.baidu.com/goldchocobo/ Android客户端中混搭HTML页面,会出现虽然HTML内容载入完成,标题也正常显示,但是整个网页需要等到近5秒(甚至更多)时间才会显示出来。研究了很久,搜遍了国外很多网站,也看过PhoneGap的代码,一直无解。       一般人堆WebView的加速,

2015-05-19 15:31:47 876

转载 asm.jar使用不了,Error:Could not find adb, please install Android SDK and set path to adb

转自:http://blog.csdn.net/liuzhi0724/article/details/43308923Error:Could not find adb, please install Android SDK and set path to adb环境: win7 64bit     eclipse 1.4.1android-sdk_r

2015-05-18 17:30:36 978

原创 Android中的文件读写

~案例: 记住 用户名密码 应用    1.将数据保存在手机的内部存储空间中        {利用context.getFilesDir和context.getCacheDir存储数据到手机里面}        我们可以直接以流的形式去读写文件,但是这样不好,因为将应用路径写死在了程序中,        一旦修改应用包名,所有路径都需要重新修改.        contex

2015-05-11 11:41:46 420

转载 关于android性能,内存优化

转自(http://www.starming.com/index.php?action=plugin&v=wave&tpl=union&ac=viewgrouppost&gid=74&tid=20713&pg=1)  随着技术的发展,智能手机硬件配置越来越高,可是它和现在的PC相比,其运算能力,续航能力,存储空间等都还是受到很大的限制,同时用户对手机的体验要 求远远高于PC的桌面应用程序。以上

2015-04-28 12:55:28 338

转载 onConfigurationChanged的作用

onConfigurationChanged的作用转自:http://www.cnblogs.com/lijunamneg/archive/2013/03/26/2982461.htmlAPI原文说明:android:configChangesLists configuration changes that the activity will handle itself.

2015-03-25 16:04:52 441

原创 转换流

1. InputStreamReader是Reader的子类,字符流对象,字节流向字符的桥梁。InputStreamReader有一个子类就是FileReader字节转成字符流。构造方法:InputStreamReader(InputStream in)传递字节输入流,变成字符流代码:/* * 转换流,将字节转成字符流 * 实现读取一行的功能 * System.in

2014-08-18 00:06:55 373

原创 集合框架的总结

1.1 Collection接口中的方法      1)Collection 集合存储对象,存储对象的方法(1)add(E e) 将元素存储到集合的方法  add(Object e)参数,任何对象都可以传递的(2)

2014-08-12 23:18:26 534

空空如也

空空如也

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

TA关注的人

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