![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
程序设计
文章平均质量分 58
思钱向厚
这个作者很懒,什么都没留下…
展开
-
搭建自动软件更新的一种思路
通过阿贝云实现软件自更新的思路原创 2022-11-23 09:23:13 · 963 阅读 · 0 评论 -
关于bmp格式
转自:bmp图片格式了解先看一下bmp的头文件格式:注意:以上的多字节类型,如Int32是以先高位后低位存储的,如位文件大小:0002-0005,Int32类型,要按第5、4、3、2字节顺序组合,得到的整数才是正确的。有了头文件信息后,我们就可以找到位图数据。位图数据是以4个字节(32位,对应32位CPU的优化)为一组来处理的。例1. 我们先来看简单的只有黑转载 2013-06-24 22:14:16 · 1073 阅读 · 0 评论 -
用实例分析H264 RTP payload
H264的RTP中有三种不同的基本负载(Single NAL,Non-interleaved,Interleaved)应用程序可以使用第一个字节来识别。在SDP中也说明了本次会话的属性SDP 参数下面描述了如何在 SDP 中表示一个 H.264 流:. "m=" 行中的媒体名必须是 "video". "a=rtpmap" 行中的编码名称必须是 "H264".. "a转载 2013-07-10 15:22:01 · 1444 阅读 · 0 评论 -
android 自定义ImageView实现图片手势滑动,多点触摸放大缩小效果
原文:http://blog.csdn.net/jj120522/article/details/8467810首先呢,还是一贯作风,我们先来看看众多应用中的示例:(这种效果是很常见的,可以说应用的必须品.) 搜狐客户端 百度新闻客户端转载 2013-06-23 18:23:04 · 8042 阅读 · 3 评论 -
linux下多线程的创建与等待详解
所有线程都有一个线程号,也就是Thread ID。其类型为pthread_t。通过调用pthread_self()函数可以获得自身的线程号。下面说一下如何创建一个线程。通过创建线程,线程将会执行一个线程函数,该线程格式必须按照下面来声明:void * Thread_Function(void *)创建线程的函数如下:int pthread_create(pthread_t转载 2013-07-08 13:27:24 · 686 阅读 · 0 评论 -
Android 获取屏幕尺寸与密度
android中获取屏幕的长于宽,参考了网上有很多代码,但结果与实际不符,如我的手机是i9000,屏幕大小是480*800px,得到的结果却为320*533结果很不靠谱,于是自己写了几行代码,亲测一下测试参数:测试环境: i9000(三星)物理屏幕:480*800pxdensity :1.5测试代码: // 获取屏幕密度(方法1) int screen转载 2013-06-19 15:48:16 · 684 阅读 · 0 评论 -
Android的计量单位px,in,mm,pt,dp,dip,sp
px :是屏幕的像素点in :英寸mm :毫米pt :磅,1/72 英寸dp :一个基于density的抽象单位,如果一个160dpi的屏幕,1dp=1pxdip :等同于dpsp :同dp相似,但还会根据用户的字体大小偏好来缩放。建议使用sp作为文本的单位,其它用dipdip和px 的关系:QVGA: density=0.7转载 2013-06-19 15:46:36 · 655 阅读 · 0 评论 -
java发送udp广播包
import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;import java.net.SocketException;import java.net.UnknownHostException;import j转载 2013-06-07 22:44:33 · 9484 阅读 · 2 评论 -
UNIX域套接字实例
接收程序 recv.c#include #include #include #include #include #include #define PATH "/home/wenhao/unixdomain" int main(int argc ,char *argv[]){ int sockfd = 0; struct sockad转载 2013-05-09 15:44:20 · 613 阅读 · 0 评论 -
SDP协议分析
一、SDP协议介绍SDP 完全是一种会话描述格式 ― 它不属于传输协议 ― 它只使用不同的适当的传输协议,包括会话通知协议(SAP)、会话初始协议(SIP)、实时流协议(RTSP)、MIME 扩展协议的电子邮件以及超文本传输协议(HTTP)。SDP协议是也是基于文本的协议,这样就能保证协议的可扩展性比较强,这样就使其具有广泛的应用范围。SDP 不支持会话内容或媒体编码的协商,所以在流媒体中转载 2013-06-28 10:31:43 · 8510 阅读 · 0 评论 -
Ubuntu 配置 boa 服务器
原文:http://www.linuxidc.com/Linux/2011-08/39780p3.htmUbuntu上编译使用boa服务器的教程文章,已经有很多了,博客上也有很多人写了,我就不赘述了,在这里贴出几处初次使用boa的朋友可能遇到的问题执行 boa检查 error_log 里面的内容,有如下错误:boa.c:194 - unable to bind: Address a转载 2013-06-28 08:38:40 · 1410 阅读 · 0 评论 -
JRTP和jthread在linux下的编译测试
操作环境:Host OS: Windows 7Guest OS: Ubuntu10Develop Board: Hi3515Cross-Complier: gcc-3.4.3-uClibc-0.9.28 关于 jrtp的一些说明:说明 1: jrtp有两种数据接收方式:第一种是用 jthread库提供的线程自动在后台执行对数据的接收。第二种是用户自己调用原创 2013-07-24 15:48:28 · 3528 阅读 · 1 评论 -
详解HTTP中的摘要认证机制
感谢原作者http://blog.csdn.net/tenfyguo/article/details/8661517转载 2014-06-26 18:33:44 · 937 阅读 · 0 评论 -
配置apache服务器的用户认证
感谢原作者http://blog.csdn.net/tenfyguo/article/details/6167190apache服务器authorization浏览器basicuser 经常上网的读者会遇到这种情况:访问一些网站的某些资源时,浏览器弹出一个对话框,要求输入用户名和密码来获取对资源的访问。这就是用户认证的一种技术。用户认证是保护网络系统资源的第一道防线,它控制着转载 2014-06-26 18:32:36 · 1396 阅读 · 0 评论 -
C语言Socket入门非阻塞socket(connect timieout问题)
原文http://blog.csdn.net/hanchaoman/article/details/5392639转载 2014-05-21 14:59:57 · 3822 阅读 · 0 评论 -
Linux system函数返回值
例:1.status = system("./test.sh"); 1、先统一两个说法:(1)system返回值:指调用system函数后的返回值,比如上例中status为system返回值(2)shell返回值:指system所调用的shell命令的返回值,比如上例中,test.sh中返回的值为shell返回值。 2、如何正确判断test.sh是否正确执行?转载 2013-12-12 05:19:38 · 1135 阅读 · 0 评论 -
达芬奇技术背景和规范
达芬奇技术背景和规范,英文原文网址:http://focus.ti.com/lit/an/sprt401a/sprt401a.pdf 执行摘要 达芬奇技术是首款基于 DSP 处理器、软件、工具和支持开发各种已优化的数字视频终端设备的集成产品组合。它使得 OEM 商更容易更快地开发一系列有成本效益的数字视频产品并且改变了消费者体验数字视频的方式。达芬奇技术将会加速革新步伐,扩张数转载 2013-12-03 16:08:29 · 1345 阅读 · 0 评论 -
子程序的参数传递方法
主程序在调用子程序前,必须把这次操作中的加工处理数据传送给子程序,这些加工处理的数据称为输入参数。当执行完返回主程序时,应该把本次操作的最终结果传递给主程序,这些加工处理的结果称为输出参数。我们把主程序传递输入参数和子程序传递输出参数的过程称为主、子程序间的参数传递。如何来实现输入输出参数的传递,就成了子程序设计中的一个重要问题。 通常进行主程序和子程序间参数传递的方法有三种:用寄存器转载 2013-10-11 16:01:07 · 10314 阅读 · 0 评论 -
内存分配方式,堆区,栈区,new/delete/malloc/free
1.内存分配方式内存分配方式有三种:[1]从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。[2]在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。[3]从堆上分配,亦称动态内存分配。转载 2013-10-01 21:57:50 · 904 阅读 · 0 评论 -
传输流(TS)
传输流(TS)将具有共同时间基准或具有独立时间基准的一个或多个PES组合而成的单一的数据流称为传输流(Transport Stream)。TS实际是面向数字化分配媒介(有线、卫星、地面网)的传输层接口。对具有共同时间基准的两个以上的PES先进行节目复用,然后再对相互可有独立时间基准的各个PS进行传输复用,即将每个PES再细分为更小的TS包 TS包由包头、自适应区和包数据3部分组成。每个转载 2013-08-01 18:43:28 · 3767 阅读 · 0 评论 -
Android实现书籍翻页效果
原文By 何明桂(http://blog.csdn.net/hmg25) 转载请注明出处Android 实现书籍翻页效果----原理篇之前看到像ipad上的ibook的模拟书籍翻页的特效感觉很炫,在android上也有像laputa和ireader等应用实现有这个特效,在网上搜索了一下好像也没有现成的例子,所以自己动手实现了一个,现在将实现的过程记录下来。 By转载 2013-06-14 17:18:28 · 2395 阅读 · 0 评论 -
为launcher添加仿HTC的preview(开源,附源码)
Android原生自带的preview不是很好看,很喜欢HTC的,之前看到ADW上也有那样的preview,所以将它提取出来,放入了原生的android2.2中。闲不说,直接上图,有图有真相:原生的,未修改版本: ( By 何明桂 转载请注明出处)修改后,仿HTC的:主要改动的是:workspace.Java和launcher.java两个文件。附带的源码也仅包含这两个文件。转载 2013-06-14 17:21:14 · 1107 阅读 · 0 评论 -
通过重写Adapter实现多选的ListView
下面这个是需要现实在ListView中的布局文件: xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:lay转载 2013-06-14 17:20:45 · 749 阅读 · 0 评论 -
jquery validate.js表单验证的基本用法入门
这里转载一篇前辈写的文章,在我自己的理解上修改了一下,仅作记录。 先贴一个国内某大公司的代码: 复制代码 代码如下: function lang(key) { mylang = { 'ls_input_myb': '请输入您的账户', 'ls_myb_email': '漫游币账户为邮箱地址', 'ls_login_password': '请输入您的登录密码',转载 2013-03-14 16:11:47 · 764 阅读 · 0 评论 -
jQuery Ajax 实例 全解析
jQuery确实是一个挺好的轻量级的JS框架,能帮助我们快速的开发JS应用,并在一定程度上改变了我们写JavaScript代码的习惯。废话少说,直接进入正题,我们先来看一些简单的方法,这些方法都是对jQuery.ajax()进行封装以方便我们使用的方法,当然,如果要处理复杂的逻辑,还是需要用到jQuery.ajax()的(这个后面会说到).1. load( url, [data], [ca转载 2013-03-14 10:23:33 · 550 阅读 · 0 评论 -
UART软件设计与分析
在利用UART进行数据操作之前,先来了解UART的操作过程是怎样的。(1)设置I/O连接到UART。(2)设置串口波特率。(3)发送或接收数据。(4)检查串口状态字或等待串口中断。关于串口的操作主要由以下几个函数来实现。1.串口初始化函数UARTInit(uint32_t baudrate)UARTInit函数根据从主程序传递的参数——波特率对串口进行初始化,包括对数据转载 2013-03-12 11:02:06 · 3959 阅读 · 0 评论 -
uart接收中断,带解释,可以拷贝直接用
main.c#include "LPC17xx.h"#include "uart.h"int main(void){ // CMSIS的启动代码里面已经调用了 SystemInit.这里不必再次调用. // SystemInit(); // 初始化UART0, 波特率96000,这个波特率可变,在使用12M晶振时,把波特率调低可有效减少乱码原创 2013-03-11 18:19:54 · 10364 阅读 · 1 评论 -
Android APK反编译详解(附图)
这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程。在此郑重声明,贴出来的目的不是为了去破解人家的软件,完全是一种学习的态度,不过好像通过这种方式也可以去汉化一些外国软件。本文Android反编译教程,测试环境:Win7 Ultimate x64Ubuntu 12.04 x86转载 2013-02-20 08:59:46 · 514 阅读 · 0 评论 -
jQuery操作radiojQuery操作<input type="radio">
如下:?12345inputtype="radio"name="city"value="BeiJing">北京inputtype="radio"name="city"value="TianJin">天津inputtype="radio"name="city"value="NanJing"转载 2013-03-04 00:58:00 · 756 阅读 · 0 评论 -
Java学习笔记——this的用法
this在Java中相当于汉语中的“我”,是指调用该方法的对象,比如对于一个人的名字来说,张三说,我的名字是张三,李四说,我的名字是李四,同样是“我”却分别代表了张三和李四。用代码实现就是下面的形式:Person.java:public class Person{ String name; void talk(){ System.out原创 2012-06-20 22:01:03 · 956 阅读 · 0 评论 -
MIPS学习笔记整理与备份 - MIPS常用指令集
指令 功能 应用实例 LB 从存储器中读取一个字节的数据到寄存器中 LB R1, 0(R2) LH 从存储器中读取半个字的数据到寄存器中 LH R1, 0(R2) LW 从存储器中读取一个字的数据到寄存器中 LW R1, 0(R2) LD 从存储器中读取双字的数据到寄存器中转载 2012-05-17 11:47:47 · 13863 阅读 · 0 评论 -
android中的数据库操作
android中的数据库操作 android中的应用开发很难避免不去使用数据库,这次就和大家聊聊android中的数据库操作。一、android内的数据库的基础知识介绍 1.用了什么数据库 android中采用的数据库是SQLite这个轻量级的嵌入式开源数据库,它是用c语言构建的。相关简介可以从链接查看。转载 2013-03-14 18:26:13 · 753 阅读 · 0 评论 -
语言深入:java中究竟是传值还是传引用
首先,推荐对Java有一定理解的同仁一本书《Practical Java》。在《Practical Java》中也有一个章节介绍Java中关于传值和传引用的问题,堪称经典。《Practical Java》在Java中,事实上底层工作原理不存在传引用的概念,这也象《Practical Java》中所说的那样,Java中只有传值。这句话理解起来需要费一定的周折。 熟悉C的程序员都用过指针转载 2013-05-31 08:50:50 · 615 阅读 · 0 评论 -
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)解决办法
在ubuntu上安装了mysql,通过sudo apt-get install mysql-server命令进行安装,成功之后,发现无法登陆到mysql中,报如下错误:ERROR 1045 (28000): Access denied for user ‘root'@'localhost' (using password: YES)解决办法如下,依次敲入下面命令: # /etc原创 2013-05-31 11:01:17 · 841 阅读 · 0 评论 -
浅析android应用增量升级
By 何明桂(http://blog.csdn.net/hmg25) 转载请注明出处 很久没有更新博客了,真是堕落啊,几次想提起笔,却总是被各种琐事耽搁,以后会多写文章记录点滴。背景 随着android应用体积的不断增大,以及应用版本发布的不断更迭,用户的升级成了一个问题,google也意识到不断更新应用对用户流量的损耗,在Google I/O 上提及的 Sm转载 2013-06-14 17:22:13 · 996 阅读 · 0 评论 -
Android ViewPager使用详解
原文地址http://blog.csdn.net/wangjinyu501/article/details/8169924这是谷歌官方给我们提供的一个兼容低版本安卓设备的软件包,里面包囊了只有在安卓3.0以上可以使用的api。而viewpager就是其中之一利用它,我们可以做很多事情,从最简单的导航,到页面菜单等等。那如何使用它呢,与LisstView类似,我们也需要一个适配器,他就是Page转载 2013-06-08 11:53:26 · 155658 阅读 · 9 评论 -
Android自动检测版本及自动升级
步骤:1.检测当前版本的信息AndroidManifest.xml-->manifest-->android:versionName。2.从服务器获取版本号(版本号存在于xml文件中)并与当前检测到的版本进行匹配,如果不匹配,提示用户进行升级,如果匹配则进入程序主界面。3.当提示用户进行版本升级时,如果用户点击了确定,系统将自动从服务器上下载并进行自动升级,如果点击取消将进入程序主界面转载 2013-06-13 22:58:14 · 13401 阅读 · 1 评论 -
Java Socket实战之六 使用NIO包实现Socket通信
原文http://blog.csdn.net/kongxx/article/details/7288896本文地址:http://blog.csdn.net/kongxx/article/details/7288896Java Socket实战之一 单线程通信Java Socket实战之二 多线程通信Java Socket实战之三 传输对象Java Socket实战之四 传输压转载 2013-06-09 16:13:23 · 852 阅读 · 0 评论 -
Java网络编程四 非阻塞通信UDP
1. 服务端import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.DataInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.net.DatagramS转载 2013-06-09 16:37:00 · 6857 阅读 · 0 评论 -
详解Android中AsyncTask的使用
在Android中实现异步任务机制有两种方式,Handler和AsyncTask。Handler模式需要为每一个任务创建一个新的线程,任务完成后通过Handler实例向UI线程发送消息,完成界面的更新,这种方式对于整个过程的控制比较精细,但也是有缺点的,例如代码相对臃肿,在多个任务同时执行时,不易对线程进行精确的控制。关于Handler的相关知识,前面也有所介绍,不清楚的朋友们可以参照一下。转载 2013-06-09 10:57:12 · 659 阅读 · 0 评论