2012年9月7日

博客地址转移

摘要: 由于个人对开源中国的热爱,因此将博客转移到开源中国,以后将在开源中国发表博文。我在开源中国的博客地址:http://my.oschina.net/u/661133/blog 阅读全文

posted @ 2012-09-07 19:05 亭子 阅读(119) 评论(0) 推荐(0) 编辑

2012年9月4日

SocketChannel的NIO客户机服务器通信实例(转)

摘要: 原文:http://blog.csdn.net/feilongjian001/article/details/7101702NIO Selector示意图:客户端代码:importjava.io.IOException;importjava.net.InetSocketAddress;importjava.nio.ByteBuffer;importjava.nio.channels.SelectionKey;importjava.nio.channels.Selector;importjava.nio.channels.SocketChannel;/***NIOTCP客户端**@date201 阅读全文

posted @ 2012-09-04 16:47 亭子 阅读(248) 评论(0) 推荐(0) 编辑

NIO SocketChannel机制类比详解(转)

摘要: 用nio给一个学生写的BBS聊天室。 在用nio通讯的过程我用以下情景给你模拟: 1. 学校(ServerSocketChannel) 2。 学校教务处(Selector) 3。 老师 (ServerSocket ) 4。 学生 (SocketChannel) 5。 员工号/学生号(SelectionKey) 学校:相当于我们的网络应用程序,一旦学校启动,学校就不停止,不断运行,直到学期结束; 要启动学校就要: ServerSocketChannel ssc= ServerSocketChannel.open();//新建NIO通道 ssc.configureBlocking( false ) 阅读全文

posted @ 2012-09-04 16:46 亭子 阅读(680) 评论(0) 推荐(0) 编辑

linux托管在github上的地址

摘要: https://github.com/torvalds/linux 阅读全文

posted @ 2012-09-04 16:26 亭子 阅读(291) 评论(0) 推荐(0) 编辑

Android获取存储卡路径的方式(转)

摘要: 原文转载自 云在千峰:http://yunfeng.sinaapp.com/?p=431#ixzz25SypV68RAndroid Lint 有个关于在代码中硬编码“sdcard”路径的警告,内容为:不要硬编码(hardcode) “/sdcard/”; 使用 Environment.getExternalStorageDirectory().getPath() 替代sdcard路径详情参考: http://developer.android.com/guide/topics/data/data-storage.html#filesExternal以前的Android(4.1之前的版本)中,S 阅读全文

posted @ 2012-09-04 11:04 亭子 阅读(387) 评论(0) 推荐(0) 编辑

Android如何正确的保存文件(转)

摘要: 原文转载自 云在千峰:http://yunfeng.sinaapp.com/?p=438#ixzz25SyJs2tU在Android 官方开发文档中有一篇文档来介绍如何保存应用的数据,但笔者用过很多程序(从知名的到不知名的)处理的都不是很完美,或者 没有按照Android 开发团队建议的方式去保存他们应用的数据。当一些试用过的软件卸载后,在SDCard中还保留了这些软件的文件目录,时间一长就有很多目录需要手工去清理,并且很难确认那些目录是仍然在使用的 那些目录已经没用了,给用户带来困扰。这里我们来讨论下该如何正确的保存应用的数据。首先数据分为两种:和应用相关的数据;和应用无关的数据。这里分别介 阅读全文

posted @ 2012-09-04 11:02 亭子 阅读(486) 评论(0) 推荐(0) 编辑

2012年9月3日

SQLite3数据类型(转)

摘要: 原文:http://www.21andy.com/blog/20091211/1489.htmlNULLINTEGERREALTEXTBLOB但实际上,sqlite3也接受如下的数据类型:smallint 16 位元的整数。interger 32 位元的整数。decimal(p,s) p 精确值和 s 大小的十进位整数,精确值p是指全部有几个数(digits)大小值,s是指小数点後有几位数。如果没有特别指定,则系统会设为 p=5; s=0 。float 32位元的实数。double 64位元的实数。char(n) n 长度的字串,n不能超过 254。varchar(n) 长度不固定且其最大长度 阅读全文

posted @ 2012-09-03 19:48 亭子 阅读(225) 评论(0) 推荐(0) 编辑

Android服务之Service——关于AIDL进程间通信(转)

摘要: 原文:http://www.cnblogs.com/zhangdongzi/archive/2012/01/09/2317197.html上一节中我们讲解了本地Service,这一节主要是讲解远程Service,这里涉及到了AIDL。好吧,老规矩,先来点基础知识:一.基础知识AIDL的作用 在Android平台,每个应用程序App都运行在自己的进程空间。通常一 个进程不能访问另一个进程的内存空间(一个应用不能访问另一个应用),如果想沟通,需要将对象分解成操作系统可以理解的基本单元,Android提供了AIDL来处理。 AIDL (Android Interface Definition La. 阅读全文

posted @ 2012-09-03 13:15 亭子 阅读(290) 评论(0) 推荐(0) 编辑

2012年8月31日

network: Android 网络判断(wifi、3G与其他)(转)

摘要: public class NetworkProber { /** * 网络是否可用 * * @param activity * @return */ public static boolean isNetworkAvailable(Context context) { ConnectivityManager connectivity = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); if (connectivity == null) { } else { NetworkInfo[] 阅读全文

posted @ 2012-08-31 16:46 亭子 阅读(260) 评论(0) 推荐(0) 编辑

Eclipse上GIT插件EGIT使用手册(转)

摘要: 一_安装EGIT插件http://download.eclipse.org/egit/updates/或者使用Eclipse Marketplace,搜索EGit二_使用EGIT前的配置配置个人信息,最重要的是user.name和user.emaill Preferences > Team > Git > Configurationl New Entry三_新建GIT仓库新建NC module projectl File > Team > Share Project 选择GIT创建仓库后,在$workspace\demo目录下的.git文件夹,就是git的仓库地址 阅读全文

posted @ 2012-08-31 13:48 亭子 阅读(264) 评论(0) 推荐(0) 编辑

2012年8月30日

开源社区卖的扑克

摘要: 阅读全文

posted @ 2012-08-30 19:54 亭子 阅读(154) 评论(0) 推荐(0) 编辑

ANDROID中的VOLD分析(转)

摘要: 原文:http://blog.csdn.net/datangsoc/article/details/5928132现在可能很少有人会用mknod这个命令了,也很少有使用它的机会,但就在几年前,这还是一项linux工程师的必备技能,在制作文件系统前或加载新的驱动前,我们必须小心翼翼的创建设备节点。不需要使用mknod并不是他消失了,而是我们有了更好更智能的方法。linux对于热插拔的支持并不是生来就有的,而是经历了一个复杂而有戏剧性的过程,全球linux爱好者用脚投出了他们保贵的一票,udev最终成为事实上的标准。在android中,取代udev的是vold,我们这里不去过多的讨论为什么andr 阅读全文

posted @ 2012-08-30 15:00 亭子 阅读(329) 评论(0) 推荐(0) 编辑

Android提权代码zergRush分析(转)

摘要: 原文:http://blog.claudxiao.net/2011/10/zergrush/一、背景和原理Revolutionary工具开发小组在2011年10月发布了一个在Android 2.2和2.3上获得root权限的方法[1],并公布了漏洞利用代码zergRush.c[2]。tomken_zhang已经在其博客上发表了两篇文章[3][4]对其分析。本文做进一步梳理和补充。产生漏洞的主要原因是:具有root权限的vold进程使用了libsysutils.so库,该库的一个函数存在栈溢出,因此可以在root权限执行输入的shellcode。存在漏洞的函数为FrameworkListener 阅读全文

posted @ 2012-08-30 13:15 亭子 阅读(447) 评论(0) 推荐(0) 编辑

解析LINUX的passwd文件(转)

摘要: 通常在Linux系统中,用户的关键信息被存放在系统的/etc/passwd文件中,系统的每一个合法用户账号对应于该文件中的一行记录。这行记录定义了每个用户账号的属性。下面是一个passwd文件的示例(部分摘录): root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin desktop:x:80:80:desktop:/var/lib/menu/kde:/sbin/nologin mengqc:x:500:500:mengqc:/ho... 阅读全文

posted @ 2012-08-30 11:25 亭子 阅读(345) 评论(0) 推荐(0) 编辑

2012年8月29日

Android Debug Bridge(ADB) 技术实现(译)(转)

摘要: 原文:http://blog.csdn.net/ykletters/article/details/6538543ADB(Android Debug Bridge)技术实现===============I、总览===============ADB用来做下面两件事:- 跟踪所有已连接的Android设备或运行在开发者机器上的模拟器实例。- 为满足客户端的需求实现丰富的控制命令。客户端包括命令行用户或者像DDMS一样的帮助程序,控制命令包括“adb shell”,“adb pull”等等。这些控制命令在ADB中被称作“服务”。总体来看,ADB中的每项工作通过下列组件的配合完成:1. ADB服务器 阅读全文

posted @ 2012-08-29 19:03 亭子 阅读(256) 评论(0) 推荐(0) 编辑

Android adb setuid提权漏洞的分析(转)

摘要: 原文:http://blog.claudxiao.net/2011/04/android-adb-setuid/去年的Android adb setuid提权漏洞被用于各类root刷机,漏洞发现人Sebastian Krahmer公布的利用工具RageAgainstTheCage(rageagainstthecage-arm5.bin)被用于z4root等提权工具、Trojan.Android.Rootcager等恶意代码之中。下面我们来分析这一漏洞的产生原因。The Android Exploid Crew小组在后来发布了一份PoC代码:rageagainstthecage.c。从这份代码开 阅读全文

posted @ 2012-08-29 17:24 亭子 阅读(507) 评论(0) 推荐(0) 编辑

Android4.0源码获取及问题

摘要: 下载网址:http://source.android.com/source/downloading.htmlAndroid4.0,江湖混号“Ice Cream”,中文名称“姜饼”,已经与本月15号放出源码,可谓千呼万唤始出来。 由于之前已经多次同步过Android2.3的源码,因此,就直接利用已有的环境执行了下面这些操作:[html]view plaincopy$mkdiricecream$cdicecream$repoinit-uhttps://android.googlesource.com/platform/manifest-bandroid-4.0.1_r1执行最后这条init命令时, 阅读全文

posted @ 2012-08-29 15:29 亭子 阅读(325) 评论(0) 推荐(0) 编辑

2012年8月24日

MediaStore的应用(转)

摘要: 相信每个使用Android系统的人都会知道Android系统中带有一个图库应用程序或者一个音乐播放器吧。打开图库可以查看到当前终端里所有的图片文件,而音乐播放器可以看到当前终端里所有的MP3文件,而这个打开的过程并不会消耗太多的时间。如果是在打开的时候去扫描所有内存,所有SD卡的话,相信相应是不会这么迅速的。 后来通过观察终端的Log,发现每次开机时,会有几条tag为MediaScanner的log信息,顾名思义,这是在扫描媒体库,会不会是这个后台服务实现了图库和音乐的快速相应呢?带着此问题去查阅API,果然发现一个强大的类——MediaStore,通过类名很容易能想到,这个类是用于存放多媒. 阅读全文

posted @ 2012-08-24 17:16 亭子 阅读(164) 评论(0) 推荐(0) 编辑

16进制颜色值

摘要: 红色和粉红色,以及它们的16进制代码。#990033#CC6699#FF6699#FF3366#993366#CC0066#CC0033#FF0066#FF0033..#CC3399..#FF3399#FF9999#FF99CC#FF0099#CC3366#FF66CC#FF33CC#FFCCFF#FF99FF#FF00CC紫红色,以及它们的16进制代码。#FF66FF#CC33CC#CC00FF#FF33FF#CC99FF#9900CC#FF00FF#CC66FF#990099#CC0099#CC33FF#CC99CC#990066#993399#CC66CC#CC00CC#663366蓝色 阅读全文

posted @ 2012-08-24 14:11 亭子 阅读(584) 评论(0) 推荐(0) 编辑

2012年8月20日

eoe的android wiki文档

摘要: http://wiki.eoeandroid.com/%E9%A6%96%E9%A1%B5 阅读全文

posted @ 2012-08-20 18:29 亭子 阅读(156) 评论(0) 推荐(0) 编辑

2012年8月17日

[code]判断程序是否在前台运行

摘要: public boolean isTopActivity(Context context, String packageName) { System.out.println("packageName:" + packageName); ActivityManager activityManager = (ActivityManager) context .getSystemService(Context.ACTIVITY_SERVICE); List<RunningTaskInfo> tasksInfo = activityManager.getRunningT 阅读全文

posted @ 2012-08-17 17:03 亭子 阅读(247) 评论(0) 推荐(0) 编辑

Commons codec jar包详解

摘要: Commons项目中用来处理常用的编码方法的工具类包,例如DES、SHA1、MD5、Base64, 及 hex,metaphone, soundex 等编码演算。JavaDoc:http://www.osctools.net/apidocs/apidoc?api=commons-codec官网下载地址:http://commons.apache.org/codec/使用:A.Base64 编解码package demo;import org.apache.commons.codec.binary.Base64;public class Base64Test { public static... 阅读全文

posted @ 2012-08-17 11:29 亭子 阅读(20336) 评论(0) 推荐(0) 编辑

2012年8月16日

instanceof 与isAssignableFrom(转)

摘要: instanceof 针对实例 isAssignableFrom针对class对象 isAssignableFrom 是用来判断一个类Class1和另一个类Class2是否相同或是另一个类的超类或接口。 通常调用格式是 Java代码 Class1.isAssignableFrom(Class2)调用者和参数都是 java.lang.Class 类型。 而 instanceof 是用来判断一个对象实例是否是一个类或接口的或其子类子接口的实例。 格式是:Java代码 ooinstanceofTypeName 第一个参数是对象实例名,第二个参数是具体的类名或接口名,例如 ... 阅读全文

posted @ 2012-08-16 19:53 亭子 阅读(309) 评论(0) 推荐(0) 编辑

2012年8月15日

PhoneGap 1.5版本 cordova.js 简析 3(转)

摘要: 原文:http://peng-jiesi.iteye.com/blog/1494079在基本升级了phonegap1.5后,发现原有的phonegap插件基本还是能够工作的,而因为项目原因我需要重写phonegap的定位能力,却发现无法找到类似phonegap 1.4的定义代码Js代码PhoneGap.addConstructor(function(){navigator._geo=newGeolocation();//NonativegeolocationobjectforAndroid1.x,sousePhoneGap//geolocationif(typeofnavigator.geol 阅读全文

posted @ 2012-08-15 14:50 亭子 阅读(425) 评论(0) 推荐(0) 编辑

PhoneGap 1.5版本 cordova.js 简析 2(转)

摘要: 原文:http://peng-jiesi.iteye.com/blog/1485347在了解了phonegap的最基本的定义和调用的方法之后,继续看看和手机的通信部分.在1.5之前的版本,phonegap在android的通信方式是通过js的prompt来实现的(具体其他文章有详细讲解),关键的部分由下面的几个函数组成Js代码PhoneGap.exec=function(success,fail,service,action,args)PhoneGap.callbackSuccess=function(callbackId,args)PhoneGap.callbackError=functio 阅读全文

posted @ 2012-08-15 14:49 亭子 阅读(335) 评论(0) 推荐(0) 编辑

PhoneGap 1.5版本 cordova.js 简析 1(转)

摘要: 原文:http://peng-jiesi.iteye.com/blog/1483475PhoneGap升级到1.5除了内部的名字变动外,更改最多的是js部分的调用机制.套用官方论坛的描述就是: 我们希望任意API对于开发者是可安装、可发现、可卸载的,同时希望改变各种平台的js实现存在差异的现状。最大的变化就是在js中引入了模块化机制。PS: 下文中使用的代码为phonegap 1.5 - android的js代码,作为学习对部分原理简单的介绍一下所谓的模块化机制其实就是所有的功能定义和调用都必须通过全局定义的require和define两个函数来实现。这种方式既避免了变量名称和作用域的污染,也 阅读全文

posted @ 2012-08-15 14:47 亭子 阅读(296) 评论(0) 推荐(0) 编辑

50套精美的免费 PSD 网页界面素材资源

摘要: http://www.cnblogs.com/lhb25/archive/2012/08/14/50-free-and-useful-web-ui-elements-psd-files.html 阅读全文

posted @ 2012-08-15 12:57 亭子 阅读(137) 评论(0) 推荐(0) 编辑

JS原型和原型链以及闭包(转)

摘要: 原型:原型?第一次听到这个东西,完全不知道是个啥…到处查书啊,到处网上搜呀,可惜也没搞懂。后来读了泽卡斯的书才慢慢体会到这个东西,读了好几遍有木 有!以前我一直以为原型对象是个附加条件,是个莫名其妙不知道怎么来的东西。不过据我现在也不算全面的了解,其实原型确实是js面向对象的精髓所在,虽然 它不像java之类的传统面向对象语言的样子,但是它也是一种独特的方式。在我的理解看来,之所以称为原型对象,那么必然是每个对象都有一个原型对象,而且原型对象也是个对象,它和其他对象根本没有任何区别,只不过每次你 new一个对象出来,都会有个附加的原型对象,那么js为什么要有个原型对象呢?这就要追溯到js的面向 阅读全文

posted @ 2012-08-15 11:07 亭子 阅读(793) 评论(0) 推荐(0) 编辑

2012年8月14日

js视频教程

摘要: js教程(密码:aceidc)http://www.youku.com/playlist_show/id_5533047.htmljs闭包(密码:aceidc)http://v.youku.com/v_show/id_XMjQzNzI4NjMy.html亚当学校视频http://www.verycd.com/groups/webschool/1073262.topic亚当视频PPThttp://wenku.baidu.com/view/8dde60faaef8941ea76e05de.html 阅读全文

posted @ 2012-08-14 22:38 亭子 阅读(129) 评论(0) 推荐(0) 编辑

js闭包(转载)

摘要: 一、什么是闭包?“官方”的解释是:闭包是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。相信很少有人能直接看懂这句话,因为他描述的太学术。其实这句话通俗的来说就是:JavaScript中所有的function都是一个闭包。不过一般来说,嵌套的function所产生的闭包更为强大,也是大部分时候我们所谓的“闭包”。看下面这段代码:function a() { var i = 0; function b() { alert(++i); } return b;}var c = a();c();这段代码有两个特点:函数b嵌套在函数a内部;函数a返回函 阅读全文

posted @ 2012-08-14 20:01 亭子 阅读(131) 评论(0) 推荐(0) 编辑

Javascript中的自执行匿名函数(转)

摘要: 格式:(function(){//代码})();解释:这是相当优雅的代码(如果你首次看见可能会一头雾水:)),包围函数(function(){})的第一对括号向脚本返回未命名的函数,随后一对空括号立即执行返回的未命名函数,括号内为匿名函数的参数。来个带参数的例子:(function(arg){alert(arg+100);})(20);// 这个例子返回120。重要用途:可以用它创建命名空间,只要把自己所有的代码都写在这个特殊的函数包装内,那么外部就不能访问,除非你允许(function(){ function $(id){ return document.getElementById(... 阅读全文

posted @ 2012-08-14 18:44 亭子 阅读(133) 评论(0) 推荐(0) 编辑

js自定义对象和方法 (转)

摘要: JS中定义类的方式有很多种:1、工厂方式function Car(){var ōcar = new Object;ocar.color = "blue";ocar.doors = 4;ocar.showColor = function(){document.write(this.color)};return ocar;}var car1 = Car();var car2 = Car();调用此函数时将创建新对象,并赋予它所有的属性和方法。使用此函数可以创建2个属性完全相同的对象。当然我妹可以通过给它传递参数来改版这种方式。function Car(color,door){v 阅读全文

posted @ 2012-08-14 17:18 亭子 阅读(358) 评论(0) 推荐(0) 编辑

百度移动开放平台——网页转码

摘要: http://gate.baidu.com 阅读全文

posted @ 2012-08-14 11:36 亭子 阅读(244) 评论(0) 推荐(0) 编辑

2012年8月13日

android ListView详解(转)

摘要: 原文:http://www.cnblogs.com/allin/archive/2010/05/11/1732200.html由于google doc 很多人都打不开,故更新了源码下载地址 【源码下载】----2011-01-18 在android开发中ListView是比较常用的组件,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示。抽空把对ListView的使用做了整理,并写了个小例子,如下图。列表的显示需要三个元素:1.ListVeiw 用来展示列表的View。2.适配器用来把数据映射到ListView上的中介。3.数据具体的将被映射的字符串,图片,或者基本组件。根据列表的. 阅读全文

posted @ 2012-08-13 12:08 亭子 阅读(171) 评论(0) 推荐(0) 编辑

2012年8月10日

ExifInterface 获取GPS数据

摘要: 获取GPS的代码:ExifInterfaceei=newExifInterface(Environment.getExternalStorageDirectory().getPath()+"/3.jpg");Log.w("TEST","TAG_GPS_LATITUDE="+ei.getAttributeDouble(ei.TAG_GPS_LATITUDE,0.0));Log.w("TEST","TAG_GPS_LONGITUDE="+ei.getAttribute(ei.TAG_GPS_LONG 阅读全文

posted @ 2012-08-10 13:10 亭子 阅读(863) 评论(0) 推荐(0) 编辑

2012年8月9日

nexus设备android4.1.1系统下载地址及安装方法

摘要: https://developers.google.com/android/nexus/images#instructionsFactory Images "soju" for Nexus S (worldwide version, i9020t and i9023)VersionDownloadMD5 ChecksumSHA-1 Checksum2.3.6 (GRK39F)Linke255b3373e1b96d5722ef35759c4b3935ab09c98434210d94835e08da79f555a560273db4.0.4 (IMM76D)Link414d80b 阅读全文

posted @ 2012-08-09 17:01 亭子 阅读(268) 评论(0) 推荐(0) 编辑

Android 中级教程之------Android MediaPlayer播放mp3的实例!(转)

摘要: 原文:http://weizhulin.blog.51cto.com/1556324/311694大家好我们今天研究的是Android中很重要也最为复杂的媒体播放器---MediaPlayer.Android的MediaPlayer包含了Audio和video的播放功能,在Android的界面上,Music和Video两个应用程序都是调用MediaPlayer实现的。 MediaPlayer在底层是基于OpenCore(PacketVideo)的库实现的,为了构建一个MediaPlayer程序,上层还包含了进程间通讯等内容,这种进程间通讯的基础是Android基本库中的Binder机制。而我们 阅读全文

posted @ 2012-08-09 15:49 亭子 阅读(238) 评论(0) 推荐(0) 编辑

如何加入一个开源项目?(转)

摘要: 这不是一篇权威的指南,只是一些你需要遵循的基本规则,这些规则可以让你对开源项目的贡献使得你和项目维护者都感到愉快!为什么加入一个开源项目?首先,有很多加入开源项目的动机。排在第一的可能是“酷”:)当你告诉你的朋友“嘿,我在XYZ项目开发团队! 我很潮吧?”但是这并不是一个很好的原因。加入一个开源项目的首先需求是你需要使用它。如果你自己不会实际使用,那么就不会有很强的动机去加入一个项目。其它一些加入开源项目的原因可能是:获得写权限,将你自己的特性或者bug修订加入到基础代码中;你认为自己能够对项目带来很大的提升;你有很多空闲时间:)初始方法因为如下两个原因,第一次加入一个开源项目可能需要慎重对待 阅读全文

posted @ 2012-08-09 10:37 亭子 阅读(216) 评论(0) 推荐(0) 编辑

防止UI界面被输入法遮挡(画面随输入法自适应)(转)

摘要: 应用过Android手机的朋友都知道,有时候在文本框中输入文字后,操作按钮被输入法遮挡了,不得不关闭输入法才可以继续操作。比如下面这个画面:画面布局:[xhtml]view plaincopyprint?<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/ll2"android:orientation=& 阅读全文

posted @ 2012-08-09 10:14 亭子 阅读(237) 评论(0) 推荐(0) 编辑

2012年8月8日

android里面EditTex多行输入及输入置顶问题

摘要: 在android界面开发过程中,有时候需要一个多行输入,实现代码如下:<EditTextandroid:id="@+id/editContent"android:layout_width="fill_parent"android:layout_height="wrap_content"android:minLines="3"android:textSize="18sp">在EditText里面添加android:minLines="3"即可,但是现实效果如下:如果 阅读全文

posted @ 2012-08-08 19:54 亭子 阅读(196) 评论(0) 推荐(0) 编辑

导航