- 博客(30)
- 资源 (22)
- 收藏
- 关注
原创 shell 函数定义 和 使用
#!/bin/bashfunction test(){echo $#for param in $*doecho "param " $paramdonereturn 9;}echo "before call test"test "ab" "cd" "ef"result=$?echo "after call test"echo
2013-10-20 21:16:07 548
原创 xargs print0 相关记录
在Linux的Shell中,如果需要多条命令持续执行,并且下一个命令以上一个命令的结果为参数例如:查找当前文件夹下 *.txt 文件中包含 "empty" 字符的文件。find -name "*.txt" print0 | xargs -0 grep "empty"几点说明:1. 符号 | 的使用,表示命令按照管道的方式进行传递执行。简单点。就是上一个执行完了执行下一个2
2013-10-20 17:13:41 581
原创 Shell 相关 find cp fo
方案1:#!/bin/bashaa=1for filename in `ls *.txt`do echo $filename cp $filename "$filename $aa" aa=`expr $aa + 1` echo $aadone---------------------------------------------
2013-10-20 17:02:16 657
原创 shell 编程中的 while 语句
#!/bin/bashaa=1total=0#while(( $aa while [[ "$aa" != 5 ]]doecho "$aa"aa=`expr $aa + 1`total=`expr $total + $aa`echo "## $total"done==================================这里需要注
2013-10-20 15:47:42 657
原创 linux 下 android 源码下载 (repo sync)
下载Android源码的过程比较耗时,不可能一直都看着,所以为了简单可以写个脚本一直执行 repo sync思路:1.不管三七二十一首先执行一下 repo sync2.持续判断 repo sync 的执行返回结果 如果不成功,继续执行#!/bin/shecho "first execute repo sync"repo syncwhile [$? -ne 0]
2013-09-21 18:46:05 709
原创 ubuntu jdk 手动安装
老记性不如烂笔头。安装过程:1. 下载需要安装的 jdk 这里需要注意首先使用 uname -m 命令检查一下,你需要的 jdk 版本,如果包含 _32 就是32位,如果包含_64就是64位2. 去官网下载。(选择到指定版本下载的时候提示你输入用户名和密码。如果你没有可以自己注册一个 注册过程比较简单,注意。用户名和邮箱用同一个)3. 修改下载文件的权限 sudo chm
2013-09-21 18:40:03 639
原创 音乐ID3 中 专辑封面解析(APIC帧)
ID3V2 中 APIC 帧标识 专辑封面。前几天 百度 谷歌 都没有找到具体的说明。有点小伤人。最好参考 Android 中的 id3.cpp 以及一个java 开源 id3 库。找到这里的规格了。记录一下分享给需要的童鞋 数据帧头(固定 10个字节)标签名 4 个字节 APIC数据帧长度 4 个字节
2013-09-16 23:39:54 2558
原创 播放器代码片段
package com.magicy.repeatbutton;import java.io.IOException;import android.app.Service;import android.content.Intent;import android.media.AudioFormat;import android.media.AudioManager;impor
2013-09-10 00:20:24 518
原创 Android 自定义Button(支持长按消息连续上报)
有时候我们会遇到这样一个需求:需要Button能够响应长按消息。而且是连续上报长按。(例如该按钮是播放器的 下一曲 按钮, 长按的时候能够有快进的效果)Android 原生能够支持长按,但是长按消息只上报一次。如何才能够不停上报长按呢?猜的没错,如果原生没有我们就自己改造。1. 继承自 Button ,别问为什么。现成能用的别浪费就好。(我们只需要在原生Button上添加 ‘长按’
2013-09-08 21:33:27 1129
原创 Android 自定义控件----( 原生控件修改 onDraw )
Android 的控件自定义有N多的方法简单点来总结至少包括: 1. 组合控件。(将现有控件组合在你的新控件里,例如一个 ImageView 和 一个 Button 控件)之后总结这种自定义方式的具体使用。 2. 纯手工全新打造,继承自 View 自己重新写 onMeasure 以及 onDraw 函数 ... (好吧,这个家当比较专业,当然是否使用看你自
2013-07-14 22:03:53 1383
原创 Android ‘风火轮’圆形滚动条替换背景图片
Android 圆形滚动条 属性文件 http://schemas.android.com/apk/res/android" > android:drawable="@drawable/prog1" android:fromDegrees="0.0" andr
2013-07-11 07:18:38 1662
原创 Android Service 遇到的错误
1. 在添加复杂数据的 aidl 文件的时候。 parcelable XXX ,如果写成 Parcelable 悲剧N就2. 添加 Service aidl 文件接口的时候,如果复杂数据涉及 输入/输出, 需要添加 in/out 关键字3. 在Java中如果需要实现多个接口 implements XXX, XXX 这里用逗号分隔开就OK4. service 绑定失败。好吧
2013-07-07 00:35:10 659
原创 怎么简单计算圈复杂度
简单的圈复杂度计算。1, 默认是1,遇到控制语句+1 说明:使用 SourceMonitor 有时候标识出的圈复杂度和我们的预期不一样。因为: McCabe算法稍有不同:1)else和default也计入2)case中的每一个退出(如break, goto, return, throw, continue), CC加13)try语句中的每个catch/exc
2013-06-16 10:55:12 2956
原创 ID3V2 解析分析
// ID3Paser.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include typedef struct _stID3V2Head { char head[3]; // 标签头 ID3 char mainVer; //
2013-06-05 00:13:06 1328
原创 Android 下交叉编译使用(Android NDK 默认的交叉编译工具 )
Android 下交叉编译使用(Android NDK 默认的交叉编译工具 )Android 提供了NDK编译工具,如果按照Android的文档描述编写 mk 文件,编译出库或者可执行程序这里不多做介绍这里介绍如何使用 makefile 来编译【交叉编译工具的生成】 1. 下载下 NDK (Android 官网有提供) 2. 生成交叉编译工具链 Win
2013-04-14 14:55:39 1147
原创 Android 编译脚本小解析。(include-path-for 解析)
之前没怎么好好看过 Android build系统中的mk,找个命令包开刀和大家分享一下吧 include-path-for 【相当于函数原型】define include-path-for #定义命令包, n 由调用者传递进来, 这个在 build/core/pathmap.mk$(foreach n,$(1),$(patsubst $(n):%,%,$(filter
2013-04-12 01:59:01 3126
转载 Android 交叉编译
Android所用的Toolchain(即交叉编译工具链)可从下面的网址下载: http://android.kernel.org/pub/android-toolchain-20081019.tar.bz2。如果下载了完整的Android项目的源代码,则可以在“/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin”目录下找到交叉编译工具
2013-04-12 01:06:51 764
原创 Android编译,简单记录。待整理
main.mkconfig.mkpathmap.mk host_static_library.mkbinary.mkbase_rules.mkenvsetup.mk // HOST 的信息 TARGET信息(BoardConfig.mk修改)version_defaults.mk //定义Android 中用的一些常量product_config.mk
2013-04-12 00:55:03 511
原创 TinyXML使用中遇到的一个小困惑
<br />情况1:<br /><item name="B" url="http://www.netskycn.com" id="1" ></item><br />情况2:<br /><item name="B" url="http://www.netskycn.com" id="1">fdafda</item> <br />在我们的理解中情况1和情况2应该属于同一种的节点层次。但是在TinyXML中却不同<br />首先它们都是 TiXmlNode::TINYXML_ELEMENT 类型的节点。但是<br
2011-03-20 15:27:00 561
原创 TinyXML中部分函数的使用
<br />void AddNewTest()<br />{<br /> //添加一个完整结点<br /> TiXmlElement *pEle = NULL;<br /> TiXmlNode *pNode = NULL;<br /><br /> TiXmlDocument XMLDoc("AddInfo.xml");<br /> /*<br /> 首先添加一个头部申明<br /> */<br /> TiXmlDeclaration *pDeclearation = new TiXmlDeclaratio
2011-03-20 01:57:00 1320
原创 STL的CSVEditor
<br /><br />#ifndef __CSVEDITOR_H__<br />#define __CSVEDITOR_H__<br />#include <string><br />#include <vector><br />using namespace std;<br />class CSVEditor<br />{<br />public:<br /> /*<br /> 构造函数<br /> */<br /> CSVEditor();<br /> /*<br /> 析构函数<br
2011-03-01 23:43:00 346
原创 重载/覆盖/隐藏
<br />学习C++些许时间了,随便写点东西吧。 重载/覆盖/隐藏<br />1.重载<br />相同作用域,函数名相同,参数不同,Virtual关键字可有可无。<br />2.覆盖<br />不同作用域,函数名相同,参数相同,有Virtual关键字。<br />3.隐藏<br />一般是父类和子类之间,函数名相同,参数不同时,不管有没有virtual关键字都会导致隐藏。<br />函数名相同,参数相同,基类没有virtual关键字的时候也发生隐藏。<br /> <br />例如<br />class B
2010-07-11 16:29:00 325
原创 双向链表 001
<br />好久没有写东西了,最近准备整理整理思绪,写点东西。<br />这次说说双向链表吧。我这里会有一系列的双向链表问题,一步步完善现在开始001<br />双向链表分为两类 1.私有双向链表。(私有是指链表结点保存的数据结构是定好了的,如果需要修改,会稍微麻烦一点)<br /> 2.通用双向链表。(只管理结点节点的创建,对比,删除以及打印功能由调用者提供)<br /> <br />#ifndef __DLIST_H__<br />#define __D
2010-06-20 14:05:00 548
转载 自动生成 Makefile 的全过程详解! automake/autoconf 入门
automake/autoconf 入门作为Linux 下的程序开发人员,大家一定都遇到过Makefile ,用make 命令来编译自己写的程序确实是很方便。一般情况下,大家都是手工写一个简单Makefile ,如果要想写出一个符合自由软件惯例的Makefile 就不那么容易了。在本文中,将给大家介绍如何使用autoconf 和automake 两个工具来帮助我们自动地生成符合自由软件惯例的Mak
2009-09-27 16:29:00 841 1
原创 TrackMouseEvent介绍
TrackMouseEvent函数TrackMouseEvent函数在鼠标离开某一窗口或在某一窗口上停留超过某一特定时间长度时发送消息。其函数原型:BOOL TrackMouseEvent(LPTRACKMOUSEEVENT lpEventTrack);参数lpEventTrack是一个指向TRACKMOUSEEVENT结构体的指针。函数执行成功的话返回非零值(true),否则返回零(fa
2009-08-27 01:10:00 1272 1
原创 MFC中数字时钟的实现分析
如何实现数字时钟呢?思路如下:第一。获取当前系统时间。第二。更行界面显示。 获取系统时间可以使用CTime::GetCurrentTime();更行界面显示,可以建立一个Timer。例如每一秒刷性一次界面。 界面显示实现上可以使用贴图的方法实现,例如现在是2009-08-23 07:46那么首先你要准备好一张位图包含0-9的数字还有就是"-"符号以及":"拆
2009-08-23 07:42:00 1303
原创 VC 中使用双缓冲以及出现的问题总结
在使用VC进行UI开发的时候,绘图是一个比较常见的操作。网络上有很多关于“双缓冲”绘图的文章。这里就自己使用时出现的问题做个总结,和大家分享例如:在视图类(View类)的OnDraw(CDC* pDC)函数中CDC dcMemeryFirst; //第一个兼容DCCDC dcMemerySecond; //第二个兼容DC CBitmap
2009-08-23 06:54:00 895 1
Launcher源码2.2
2013-06-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人