- 博客(84)
- 收藏
- 关注
原创 android.os.NetworkOnMainThreadException
不能在android的主线程中,执行一个网络操作public void onCreate() { StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() .detectDiskReads() .detectDiskWrites() ...
2011-12-24 13:14:23
203
原创 转载:为什么要对URI进行编码
为什么需要Url编码,通常如果一样东西需要编码,说明这样东西并不适合传输。原因多种多样,如Size过大,包含隐私数据,对于Url来说,之所以要进行编码,是因为Url中有些字符会引起歧义。 例如Url参数字符串中使用key=value键值对这样的形式来传参,键值对之间以&符号分隔,如/s?q=abc&ie=utf-8。如果你的value字符串中包含了=或者&,那么势必会造...
2011-12-15 15:49:56
239
原创 multipart form-data boundary
含义 ENCTYPE="multipart/form-data" 说明: 通过 http 协议上传文件 rfc1867协议概述,jsp 应用举例,客户端发送内容构造 1、概述在最初的 http 协议中,没有上传文件方面的功能。 rfc1867 (http://www.ietf.org/rfc/rfc1867.txt) 为 http 协议添加了这个功能。客户端的浏览器,如 Microsoft IE,...
2011-12-15 15:23:02
408
原创 android http 附件
一:服务器端:1:struts-config.xmlXml代码 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts-config (View Source for full doctype...)> - <struts-config> -...
2011-12-15 14:17:47
181
原创 post 附件
在做嘀咕客户端的时候,要实现拍照上传的功能。根据嘀咕api提供的接口,文档看上去很复杂,我用一个简单html文件来说明问题。几个关键点:这个表单使用post方法有几个文本域,还用到file域,即文件上传编码用utf-8接下来,我在android中使用HttpURLConnection来构建一个符合这些规则的表单Post到服务器。到底这个表单是怎么样的一种结构,它肯定是要...
2011-12-15 10:24:16
225
原创 让Android应用获取系统权限
在 android 的API中有提供 SystemClock.setCurrentTimeMillis()函数来修改系统时间,可惜无论你怎么调用这个函数都是没用的,无论模拟器还是真机,在logcat中总会得到"Unable to open alarm driver: Permission denied ".这个函数需要root权限或者运行与系统进程中才可以用。 本来以为就没有...
2011-12-08 18:46:25
158
原创 Android源码目录结构详解
Android 2.1 |-- Makefile |-- bionic (bionic C库) |-- bootable (启动引导相关代码) |-- build (存放系统编译规则及generic等基础开发包配置) |-- cts (Android兼容性测试套件标准) |-- dalvik (dalvik JAVA虚拟机) |-- development (应用程序开发相关) |-- ext...
2011-12-01 20:22:48
134
原创 两个activity跳转
Activity A跳转到 Activity B/**A.startActivity()*/A.onPause()B.onCreate()B.onStart()B.onResume()A.onStop()/**B.finish()*/B.onPause()A.onRestart()A.onStart()A.onResume()B.onStop()...
2011-11-25 16:06:19
164
原创 c++中各种转换
C++的四个类型转换运算符已经有很久了,但一直没有弄清楚它们的用法,今天看到一本书上的解释,才大致地的了解了其具体的用法.具体归纳如下:reinterpret_cast该函数将一个类型的指针转换为另一个类型的指针.这种转换不用修改指针变量值存放格式(不改变指针变量值),只需在编译时重新解释指针的类型就可做到.reinterpret_cast 可以将指针值转换为一个整型数,但不能用于非指针类型的转换...
2011-11-24 18:34:53
153
原创 线程同步之wait()/notify()的使用
wait()/notify()通常,多线程之间需要协调工作。例如,浏览器的一个显示图片的线程displayThread想要执行显示图片的任务,必须等待下载线程downloadThread将该图片下载完毕。如果图片还没有下载完,displayThread可以暂停,当downloadThread完成了任务后,再通知displayThread“图片准备完毕,可以显示了”,这时,displayThre...
2011-11-21 11:24:14
200
原创 游戏中渲染线程与更新线程交替执行
private final State mThreadLocker = new State(); private UpdateThread updateThread; private DrawThread drawThread; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedIn...
2011-11-21 11:21:01
188
原创 透视投影变换推导 .
透视投影是3D固定流水线的重要组成部分,是将相机空间中的点从视锥体(frustum)变换到规则观察体(Canonical View Volume)中,待裁剪完毕后进行透视除法的行为。在算法中它是通过透视矩阵乘法和透视除法两步完成的。透视投影变换是令很多刚刚进入3D图形领域的开发人员感到迷惑乃至神秘的一个图形技术。其中的理解困难在于步骤繁琐,对一些基础知识过分依赖,一旦对它们中的任何地方...
2011-11-15 09:49:39
197
原创 OpenGL Projection Matrix(投影矩阵推导) .
OpenGL Projection MatrixRelated Topics: OpenGL Transformation Overview Perspective Projection Orthographic Projection OverviewA computer monitor is a 2D surface. We need to transform ...
2011-11-15 09:48:38
522
原创 VC2008下提示找不到MSVCP90D.dll的解决办法
http://hi.baidu.com/stand_add/blog/item/7dce3387158ad63667096eca.htmlVC2008下提示找不到MSVCP90D.dll的解决办法 VS 2005/VS 2008在生成可执行文件时使用了一种新的技术,该技术生成的可执行文件会伴随生成一个清单文件(manifest file)(.manifest后缀文件)(其本质上是X...
2011-11-05 21:21:09
143
原创 android colormatrix
在编程中有时候需要对图片做特殊的处理,比如将图片做出黑白的,或者老照片的效果,有时候还要对图片进行变换,以拉伸,扭曲等等。这些效果在android中有很好的支持,通过颜色矩阵(ColorMatrix)和坐标变换矩阵(Matrix)可以完美的做出上面的所说的效果。下面将分别介绍这两个矩阵的用法和相关的函数。颜色矩阵android中可以通过颜色矩阵(ColorMatrix类)方面的...
2011-11-03 17:32:08
131
原创 java栈,堆,池
今天复习了一下这些知识,顺便做了下笔记.1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制.2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)3. 堆:存放所有new出来的对象。4. 静态域:存放静态成员(static定义的)5. 常量池:存放字符串常量和基本类型常量(pub...
2011-07-08 09:38:39
188
原创 3D开发的境界
第一阶段:初学者阶段。 这个阶段主要是熟悉3D图形学的基本原理,和基本api的使用。特别是对于空间的变换,矩阵的原理要有非常清楚的认识。能够用简单的资源,做一个简单的demo,基本上就是达到了。这个阶段比较简单,基本上每个人都可以达到,学习方法也很简单,就是看书,看demo,写代码。时间周期大概1年。 第二阶段:进阶阶段过了第一个阶段,一般人会走两条路。一...
2011-06-04 20:12:50
166
原创 Http
使用 HTTP 服务: 1. Apache HttpClinet Http GET Http POST a.创建 HttpClient b.初始 HTTP GET 方法或 POST 方法. c.设置参数 键值对 d.执行 HTTP 调用 e.处理 HTTP 回复 HTTP GET 示例:Java代码 public class TestHttpGetMethod{ ...
2011-06-01 17:10:48
145
原创 获取手机的Opengl的支持版本
public int getGLVersion(){ ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); ConfigurationInfo info = am.getDeviceConfigurationInfo(); return info.reqG...
2011-05-27 09:28:25
1473
原创 性能优化
如果你想写一个 Java 程序,观察某对象什么时候会被垃圾收集的执行绪清除,你必须要用一个 reference 记住此对象,以便随时观察,但是却因此造成此对象的 reference 数目一直无法为零, 使得对象无法被清除。 java.lang.ref.WeakReference不过,现在有了 Weak Reference 之后,这就可以迎刃而解了。如果你希望能随时取得某对象的信息,...
2011-05-27 09:26:55
95
原创 从技术到管理的七个问题
时间像一把无情的刀,改变了你我模样,转眼很多年已经过去了... 曾经年少轻狂的我已经变成了别人看来成熟稳重的职业经理人,虽然我并不喜欢这样一个称呼。 从打工到创业、再到把公司卖掉、又重新作回打工仔,我也算经历了很多次身份和角色的转变。有些是主动性的,比如当初创业,身份从打工变成老板,那是对自己梦想的一种追寻;而有些却是被动性的,不得不去面对,比如公司卖掉后,身份又回到打工。 ...
2011-05-24 09:25:52
488
原创 Android游戏中其他语言数据类型之间的转换方法
Java与其他语言数据类型之间的转换方法实例程序 /*** 通信格式转换** Java和一些windows编程语言如c、c++、delphi所写的网络程序进行通讯时,需要进行相应的转换* 高、低字节之间的转换* windows的字节序为低字节开头* linux,unix的字节序为高字节开头* java则无论平台变化,都是高字节开头 */ public class FormatTran...
2011-05-17 11:43:33
116
原创 android canvas.getClipBounds
一种是传参数:Rect dstRect = new Rect();Canvas canvas = holder.lockCanvas(); canvas.getClipBounds(dstRect);一种没有参数的dstRect =canvas.getClipBounds();此时dstRect 大小为canvas的大小...
2011-05-13 17:41:15
1863
原创 获取屏幕大小的方法
// one DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); int screenWidth = dm.widthPixels; int screenHeight = dm.heightPixels; //twogetWind...
2011-05-13 17:38:12
143
原创 Android Lock 使用
PowerManager 和PowerManager.WakerLock7用于对Android设备的电源进行管理。 PowerManager:This class gives you control of the power state of the device. PowerManager.WakeLock: lets you say that you need to have ...
2011-05-13 16:43:02
680
原创 为Android编写实时游戏
为Android编写实时游戏—-学习笔记这篇文章是Chris Pruett 在Google I/O 2009的一个演讲视频的笔记。我翻译了大部分的演讲的演示稿,里面有不少疏漏,臆断和错误都是我记录的时候造成的,与演讲作者无关。本文的版权归演讲作者所有。转载请保留演讲作者的信息和本文链接。你可以从下面的链接进入该主题在Google I/O 2009 的原文里面含视频和演示稿。http:/...
2011-05-06 15:57:15
188
原创 android常用方法重写
Android的view组件显示主要经过mesure, layout和draw这三个过程。在mesure阶段里调用mesure(int widthSpec, int heightSpec)方法,这个方法是final不能被重写,在这个过程里会调用onMesure(int widthSpec, int heightSpec)方法。当组件设置好大小后,调用final layout(int l, i...
2011-05-05 12:53:08
810
原创 游戏中判断一群点可否构成凸多边形
下面的代码需要box2d!!!!!!!!!!!import org.jbox2d.common.Vec2;public class PolyonUtil { private static PolyonUtil instance; private float a; private float b; private boolean x_axis; private boolean y_axis;...
2011-05-04 16:17:08
217
原创 游戏移植中粗糙的屏幕分辨率解决方案
Matrix matrix = new Matrix(); Camera c = new Camera(); c.save(); //Z引起图片放大缩小 c.translate(0f, 0f, 2f); //+放大 -缩小 c.getMatrix(matrix); c.r...
2011-05-04 12:57:16
130
原创 Matrix
canvas.drawBitmap(bitmap, matrix, null);//不会忽略平移变换,效果相当于先假设在原点绘制bitmap,然后将绘制的bitmap的每个像素点进行matrix变换后真是绘制;而Bitmap temp = Bitmap.createBitmap(bitmap, 0, 0,bitmap.getWidth(), bitmap.getHeight(), matrix, ...
2011-04-27 18:17:09
137
原创 NIO
在JDK 1.4以前,Java的IO操作集中在java.io这个包中,是基于流的同步(blocking)API。对于大多数应用来说,这样的API使用很方便,然而,一些对性能要求较高的应用,尤其是服务端应用,往往需要一个更为有效的方式来处理IO。从JDK 1.4起,NIO API作为一个基于缓冲区,并能提供异步(non-blocking)IO操作的API被引入。本文对其进行深入的介绍。 ...
2011-04-27 11:34:06
95
原创 大字节序小字节序
Endian 的由来一、引子 在各种计算机体系结构中,对于字节、字等的存储机制有所不同,因而引发了计算机通信领域中一个很重要的问题,即通信双方交流的信息单元(比特、字节、字、双字等等)应该以什么样的顺序进行传送。如果不达成一致的规则,通信双方将无法进行正确的编/译码从而导致通信失败。目前在各种体系的计算机中通常采用的字节存储机制主要有两种:big-edian和little-endian。本文...
2011-04-27 11:29:33
402
原创 Android的Bug收集机制建立
/***给TextView添加点击事件故意抛出异常*/ textView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Main main = new Main(); t...
2011-04-25 11:01:28
163
原创 linux Suse 安装界面化svn
在Windows中,单独浏览SVN资源库时习惯了使用TortoiseSVN,小巧、方便,最突出的优点便是与系统的文档浏览器无缝结合。但在Linux平台中一直没找到类似的软件,不过今天总算在网上发现了Linux中的TortoiseSVN: RabbitVCS。RabbitVCS基本保留了TortoiseSVN的使用习惯,同时还有一些有特色的功能,htt...
2011-04-23 10:31:30
186
原创 资源分享
移动开发Android/3G:Android.3D游戏开发书籍(PDF电子书)http://www.hztraining.com/bbs/showtopic-596.aspxGoogle Android SDK开发范例大全http://www.hztraining.com/bbs/showtopic-234.aspxAndroid平台软件开发教程(中文高清视频)http://www.hztrain...
2011-04-20 20:40:17
197
原创 游戏开发中使用物理引擎box2d
本文基于JBox2d+canvas,后续提供NDK+openglEs版本;本文的主要目的是给大家介绍如何使用创建一个物理世界,本文为基本入门教程.一、主函数:主函数包括了Box2D的基本流程简单来说,一个Box2D程序的基本流程是由以下三个基本步骤构成的:1function box2dMain() { 2 3...
2011-04-20 19:46:01
467
原创 SUSE Linux Desktop Gnome桌面快捷键整理
整理了一些常用的SuSE Linux Gnome桌面快捷键,希望对大家有用! 快捷键ctrl+shift+f (窗口全屏)ctrl+shift+n (新建konsole窗口)ctrl+shift++ (调整窗口字体大)ctrl+shift+- (调整窗口字体小)ctrl+shift+0 (调整窗口字体正常)ctrl+alt+f1 ...
2011-04-16 01:43:29
295
原创 linux NDK实例
网上也有一些对NDK的介绍,不过都是很简单的把sample里面的例子讲解一下,并不深入,我这里把我的所得分享一下。我下载的是Android Native Developer Kit (NDK) R4版本,当前的最新版。 下载地址如下: http://dl.google.com/android/ndk/android-ndk-r4b-linux-x86.zip 我下面讲...
2011-04-15 19:27:36
103
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅