- 博客(55)
- 资源 (2)
- 收藏
- 关注
原创 PHP项目开发总结
PHP技术#综合一个Http请求到响应的过程,必须注意在请求到控制器处理前经过中间件,借由中间件处理各种前置条件,如:访问权限清楚Error与Exception的本质区别#框架ThinkPHP:特性: 框架目录清晰简洁,主程序目录Apps内以模块为单元独立管理程序的准入口为Action类内部的公共方法,并且路由规则自动匹配,无需手动创建新路由规则使用以Smarty为基础二次开发的Thin
2016-08-10 16:15:32
4659
转载 ubuntu server14 虚拟机LAMP搭建记录
原帖地址:http://www.2cto.com/os/201109/102892.html基于实际情况,在原贴基础上进行了修改 环境准备因为需要本虚拟机在局域网中被其他电脑访问,所以要采用“桥接”方式,配置如下: 一、安装1. 首先安装SSHsudo apt-get install ssh2.安装MySQLsudo apt-get insta
2015-10-17 10:01:44
547
原创 AndroidStudio下BuildTypes和ProductFlavors动态编译并重命名apk
在实际的开发与发布过程中,我们常需要根据不同的构建场景或者发布渠道,选择不同的.java文件进行编译。而在AndroidStudio中,其自带的Gradle组件能帮我们快速实现这一功能。什么是BuildTypes、Flavors、BuildVariantsBuildTypes:构建类型,AndroidStudio的Gradle组件默认提供给了“debug”“release”两个默认配置,此处用于配
2015-08-17 10:36:41
17430
1
原创 AndroidStudio 代码混淆proguard记录
AndroidStudio与Eclipse+ADT一样,同样使用proguard进行代码混淆,但是二者在实际使用中仍有区别,本文旨在记录自己在使用中遇到的问题。一、proguard使用步骤1. 配置proguard-rule.pro假设我们的主工程叫MyApplication,那么我们在MyApplication目录下的build.gradle中,编写代码如下:apply plugin: 'co
2015-08-13 18:34:11
2170
原创 AndroidStudio project添加.so文件方法
Eclipse工程导入AndroidStudio project的其中一个常见问题,就是.so文件导入的问题。 可以用一下方法处理:在相应工程(Module)的build.gradle文件中,添加一下代码sourceSets { main { ... jniLibs.srcDirs = ['libs'] }
2015-08-12 18:41:38
339
转载 ViewGroup为什么不会调用onDraw
转自:http://blog.csdn.net/leehong2005/article/details/7299471正常情况下,我们重写LinearLayout的onDraw方法,它是不会被调用的,这篇文章就来分析一下原因和解决方法。一、现象 android:id="@+id/ll_absolute" android:orien
2015-07-18 15:05:23
355
原创 View绘制Drawable原理分析记录
View绘制Drawable原理分析记录 Drawable是Android开发中的通用可绘制对象,View类默认针对Drawable进行一些必要的绘制,如背景,此文旨在记录分析View绘制Drawable时的关键细节1.XML布局文件的Background通常,我们在XML文件中设置View的background如下:android:background="@drawable/drawable
2015-07-09 12:41:32
629
原创 Android NDK开发环境搭建记录
Android NDK开发环境搭建记录导言 由于项目需要使用NDK开发,所以用这个博客来作为NDK记录,顺便试一试MarkDown环境 系统:windows 7 IDE:eclipse 工具/插件:android-ndk-r10d开始搭建1. 下载android-ndk-r10d:google目前最新的ndk包是r10d,使用这个包可以免去配置cygwin(一个在window
2015-04-06 19:08:51
613
原创 android VideoView开发总结
1.VideoView播放视频文件时,可调用:mVideoView.setOnErrorListener(videoErrorListener);...private OnErrorListener videoErrorListener = new OnErrorListener(){void onError(){return true;}}
2015-02-06 10:19:00
1166
转载 【工具类】ViewHolder模式超简洁写法
转自:http://blog.csdn.net/hmily7532361/article/details/18368235工具类记录:工具类,到哪儿哪儿能用ViewHolder是什么就不解释了。大家通常怎么写ViewHolder呢?[java] view plaincopy ViewHolde
2015-02-06 10:15:34
457
原创 android contacts开发总结
android系统的通讯录数据库文件保存为:/data/data/com.android.providers.contacts/contacts2.db,这个db文件中有很多个contacts的表格,但我们需要操作的一般只是在contacts、raw_contacts、data和xxx_lookup(如phone_lookup、name_lookup)表。关于contacts2.db数据表分析
2015-01-22 11:06:01
805
转载 Android横竖屏切换和灭屏亮屏时Activity的生命周期探究(2)
配置了configChange属性之后,横竖屏切换时不用再杀死和重新启动Activity了,想想Android系统设置这个属性的初衷,横竖屏切换时需要加装不同的变量信息,因此杀死当前Activity启动切屏后的Activity是一个理所应当的过程,但是不够灵活,有些状态下,我们不希望横竖屏切换时Activity被杀死,因此configChange这个属性就能发挥一些作用了,我们只需要在onConf
2014-11-24 17:52:53
336
转载 Android中的Surface和SurfaceView
一、什么是Surface 简单的说Surface对应了一块屏幕缓冲区,每个window对应一个Surface,任何View都要画在Surface的Canvas上(后面有原因解释)。传统的view共享一块屏幕缓冲区,所有的绘制必须在UI线程中进行。 在SDK的文档中,对Surface的描述是这样的:“Handle onto a raw buffer
2014-10-09 10:17:58
485
原创 选项卡TabHost的使用理解
在Android中一般使用TabHost布局选项卡,然而TabHost的使用和其他的一般View类有所不同。 TabHost由TabWidget和FrameLayout组件构成:1、TabWidge表示选项卡(供用户点击选择卡头,即 Tab/页 的集合)2、FrameLayout则是TabWidge的具体Tab内的Content(可理解为每一个Tab的容器,提供内部View组件的布
2013-08-22 14:33:54
689
原创 COM组件初学习笔记
COM是微软提出的第一个构件模型,源于OLE: Object Link and Embedding(动态连接和嵌入)。1、COM(Component Object Model),组件对象模型,是一种以组件为发布单元的对象模型,这种模型使得各个软件组件可以用一种统一的方式进行交互。2、COM对象(CLSID)和COM接口(IID),由全局唯一标识符GUID
2013-04-02 16:54:25
604
原创 runtime的个人理解
runtime是程序运行时环境,有其相应的runtime类对象用以表征这个运行环境。而runtime对象是不能直接生成,在java中有runtime类,runtime.getRuntime方法就能获取当前运行进程的环境。那么runtime对象有什么用呢?据我了解的,runtime对象可以执行基于运行环境的操作,例如,我们在一个进程中利用相同的运行环境调用其他程序实例:Java代码 p
2013-03-29 15:26:26
569
转载 调用机制:回调函数、同步调用、异步调用
软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。同步调用是一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用;回调是一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口;异步调用是一种类似消息或事件的机制,不过它的调用方向刚好相反,接口的服务在收到某种讯息或发生某种事件时,会主动通知客户方(即调用客户方的接口)。回调和异步
2012-12-12 15:26:07
1494
1
转载 struct与字节对齐
一.什么是字节对齐,为什么要对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数
2012-10-31 09:15:04
433
转载 Linux系统虚拟内存空间一般布局示意图
Linux系统虚拟内存空间一般布局示意图 说明: 1)线性地址空间:是指Linux系统中从0x00000000到0xFFFFFFFF整个4GB虚拟存储空间。 2)内核空间:内核空间表示运行在处理器最高级别的超级用户模式(supervisor mode)下的代码或数据,内核空间占用从0xC0000000到0xFFFFFFFF的1GB线性地址空间,内
2012-10-30 20:59:55
786
转载 字节对齐struct
转自新浪博客-随梦而飞一.什么是字节对齐,为什么要对齐?现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。
2012-10-26 19:50:49
660
转载 vmlnuz,initrd-x.x.x.img,uImage,zImage,bzImage小解 (z)
在网络中,不少服务器采用的是Linux系统。为了进一步提高服务器的性能,可能需要根据特定的硬件及需求重新编译Linux内核。编译Linux 内核,需要根据规定的步骤进行,编译内核过程中涉及到几个重要的文件。比如对于RedHat Linux,在/boot目录下有一些与Linux内核有关的文件,进入/boot执行。 编译过RedHat Linux内核的人对其中的System.map、vmlin
2012-10-25 09:55:20
552
转载 linux arch目录下处理器体系架构介绍
alpha 处理器Alpha 处理器最早由美国DEC 公司设计制造,在Compaq (康柏)公司收购DEC 之后,Alpha 处理器继续得到发展,并且应用于许多高档的Compaq 服务器上,HP (惠普)收购的Compaq ,Alpha 便为HP(惠普)所有,不过HP (惠普)已经放弃发展alpha 处理器。arm 处理器Arm 系列处理器 是英国Arm 公司设计的主流嵌入式32
2012-10-16 11:15:53
772
转载 如何使MFC对话框上的控件可以拖动
有人问我,怎么才能使对话框上的控件可以通过鼠标来拖动. 他的方法是:1) 从标准控件类派生新的类.2) 处理控件的鼠标消息来实现拖动效果.这样做当然可以实现,但似乎不太符合常规, 且需要对需要可拖动的所有控件进行子类化以便能响应控件的鼠标消息. 在这里, 我写了一个类,专门用来处理对控件的拖动, 使用该类只需要少许修改包含需要拖动的控件的对话框,而不需要对控件再做任
2012-10-10 10:40:38
2855
转载 固定内存和内存池比较
采用固定内存就是在服务启动的时候,分配固定大小的内存,在处理请求的时候,直接在这片内存上操作 采用内存池,需要内存时候,向内存池拿,使用完后就进行释放。 固定内存 内存池优点 1 实现简单2 直接使用,效率高 1 适合任何场景缺点1 受到应用场景限制1 需要管理内存池
2012-10-09 21:41:16
654
转载 (内存管理)关于内存函数GlobalLock(),GlobalAlloc(),GlobalUnLock()用法
1.为什么要用GlobalLock()函数C/C++ code HGLOBAL hImageMemory=GlobalAlloc(GMEM_MOVEABLE, dwFileSize); //给图片分配全局内存 void *pImageMemory=GlobalLock(hImageMemory); //锁定内存 DWORD dwReadedSize; /
2012-10-09 21:39:39
1099
转载 (地址空间)对进程地址空间的一点认识
对进程地址空间的一点认识在进入正题前先来谈谈操作系统内存管理机制的发展历程,了解这些有利于我们更好的理解目前操作系统的内存管理机制。一 早期的内存分配机制在早期的计算机中,要运行一个程序,会把这些程序全都装入内存,程序都是直接运行在内存上的,也就是说程序中访问的内存地址都是实际的物理内存地址。当计算机同时运行多个程序时,必须保证这些程序用到的内存总量要小于计算机实际物理内存的大小。那当
2012-10-09 21:38:41
537
转载 (DEBUG相关)使用调试C运行时间库(DCRT)进行检查
使用调试C运行时间库(DCRT)进行检查8.4.1 DCRT库介绍微软的C运行时库可以分成两大类:调试版(DCRT)和发行版(CRT),每类中又包含单线程静态库、多线程静态库和多线程动态链接库。我们需要使用的是调试版的C运行时库(DCRT),实际应用中可以根据项目具体情况选择对应的静态(动态)单线程(多线程)库。微软的Visual C++安装后带有DCRT库的源代码,可以在VC的CRT目
2012-10-08 10:34:37
9937
转载 CSplitterWnd中的各个CView是怎么和CDocument联系(attach)的?
在函数bool createview( int row, int col, cruntimeclass* pviewclass, size sizeinit, ccreatecontext* pcontext );中,有一个参数ccreatecontext* pcontext,里面有当前的document的指针而在cview的oncreate中: // if ok, wire in the
2012-10-08 10:33:12
496
转载 VC MFC指定客户区的大小
VC MFC指定客户区的大小http://www.cppblog.com/bidepan2023/archive/2007/09/26/32900.aspx假设我们用CreateWindow(..., 0, 0, w, h, ...); 创建一个窗口, 我们将获得一个w x h大小的窗口, 通常我们需要的是客户区大小为w x h, 如何做呢?一个方法是调用API函数SetW
2012-10-08 10:31:14
3390
转载 使用VC6.0实现窗口的任意分割
一、关于CSplitterWnd类我们在使用CuteFtp或者NetAnt等工具的时候,一般都会被其复杂的界面所吸引,在这些界面中窗口被分割为若干的区域,真正做到了窗口的任意分割。 那么我们自己如何创建类似的界面,也实现窗口的任意的分割呢 ?在VC6.0中这就需要使用到CSplitterWnd类。CSplitterWnd看上去像是一种特殊的框架窗口,每个窗口都被相同的或者不同的视图所填充。
2012-10-08 10:30:44
525
转载 MFC拆分窗口详述
MFC支持两种类型的拆分窗口:静态的和动态的。静态拆分窗口的行列数在拆分窗口被创建时就设置好了,用户不能更改。但是用户可以缩放各行各列。一个静态拆分窗口最多可以包含16行16列。要找一个使用了静态拆分窗口的应用程序,只要看一下windows管理器即可。动态拆分窗口最多可以有两行两列,但它们可以相互拆分和合并。Vc就使用了动态拆分窗口使得可以同时编辑源程序文件的两个以上不同的
2012-10-08 10:29:05
1604
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人