自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (1)
  • 收藏
  • 关注

原创 硬盘上有损坏区域,该如何重新分区

先上干货1(自己编写的工具包)在网页写个东西是挺麻烦的,还是Evernote写起来比较爽,自己点链接下载吧 点击打开链接事出偶然原来的那个单插槽的移动硬盘盒坏了,昨天买了个新的移动硬盘盒,双插槽的,但是看着一个插槽空在那里有点手痒,总想再弄一个硬盘插上去。忽然想起自己还有一块坏掉的硬盘(坏了很多次,最后干脆连核心区域都坏掉了,什么都无法读取,已经彻底放弃治疗了)

2016-05-18 16:03:44 8848

原创 有没有这样的调试工具——跟踪对象

通常一个对象有许多的方法,有没有一种非代码的解决方法,能监控一个对象的所有方法的调用情况。

2012-12-26 15:02:21 377

原创 一种实现“通信层”的方案,主要演示超時控制

/** * 一种实现“通信层”的方案,主要演示超時控制 * * 2012-12-26 according the Thinking in Java */package concurrent;import java.util.ArrayList;import java.util.concurrent.Callable;import java.util.concurrent.Ex

2012-12-26 14:51:41 497

原创 获取SIM/UIM卡的联系人容量及已用容量信息

import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.os.Bundle;import android.os.RemoteException;import android.os.SystemClock;import com.android

2012-04-18 19:04:10 2200 1

原创 “android源码目录”/mediatek/source/frameworks路径下的源文件编译

“android源码目录”/mediatek/source/frameworks,这个路径下的很多项目是没有相应的Android.mk文件的,所以想直接在该目录下单编是不可能的。不过也有办法,实际上编译的时候,这些代码是跟 “android源码目录”/frameworks 一起编译的,只不过没有copy到 “android源码目录”/frameworks 路径下而已。直接证据是 “androi

2012-04-18 19:02:50 1075

原创 用命令行运行单元测试

对于如下的manifest文件    package="com.android.calculator2.tests">                            android:targetPackage="com.android.calculator2"        android:label="Calculator Launch Per

2012-04-18 19:00:28 1624

原创 日期时间的格式化符号

Android     @Override     public void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.main);          for (int i = 0

2012-04-18 18:58:19 707

原创 两种跨进程通讯的方式,都以activity + service的示例

...            android:icon="@drawable/ic_launcher"        android:label="@string/app_name" >

2012-04-18 18:49:56 504

原创 关于一个通信层的设计

通信层通常作为一个软件的底层,负责与外界打交道。  这里的通信特指异步通信,发出的请求可能得不到响应,可能很久才响应,也可能返回无效响应。但为了请求一方的上层能够正常工作,一个通信层应该能完全应付这些情况。以下是总结的几点,不分先后,同等重要。每个任务都有唯一的身份标识。每个已发送请求的任务都进入已发送队列(写到这里想起了ril.java),任务完成(返回了响应结果)时

2012-04-18 18:46:55 866

原创 关于ril.java的胡说八道

Regisiterant的设计意图:只是作为一个“注册”而存在,跟addObserver()一个道理,但由于注册的是某个Handler的Message对象,所以当回调时不像观察借口那样必须马上执行(“同步回调”),而是可以缓冲到Handler的队列中,相当于“异步回调”。将Message对象作为参数或作为其他对象的成员,其设计意图是:给你根猴毛,你收藏着,有事就将它吹响空中(用出来就没

2012-04-18 18:44:20 528

原创 try的代码必须是一个原子整体,不要什么东西都往try里边塞

try的代码必须是一个原子整体,只是为了完成一个功能,不要什么东西都往try里边塞。还是以例子说明吧,下边一个例子是检查两个标志位,本来这两个标志位没什么相关性,但因为被绑在了一起就产生了一些笑话。在一次真实的运行中,第一个isPass()出了异常,结果导致了接下去的语句没有执行,输出的结果成了两个“unknow”,而实际上第二个sPass()若能执行,它的结果会是pass。

2012-04-18 18:43:35 1484

原创 关于Systemproperty

Systemproperty是Android的属性系统。调用Systemproperty.set(key, value)时,并非简单地往系统里设置一个值,而是还会检查key的合法性。特定名称的前缀只能做特定操作(如“ro.”是只读的), 特定的进程/服务只能操作特定前缀的键名。不合法则无法修改为新的value,但没有任何出错提示。跟这个属性系统相关的文件有service_manager

2012-04-18 18:39:28 749

原创 编写程序配置、设置界面,你还在用listview吗,还在使用自定义dialog吗?

编写程序配置、设置界面,你还在用listview吗,还在使用自定义dialog吗?记得自己在写第一个android应用的时候就干过这“蠢”事,不过以后都不用这么辛苦了,android不仅有封装好的组件(如:CheckBoxPreference,ListPreference),还有一个PreferenceActivity。下边简单得用一个例子展示一下用法:在Android项目中新建一

2012-04-18 18:38:10 783

原创 有没有这样的调试工具

针对这样一个问题手机在灭屏状态下,呼入以来电,观察来电界面。结果:手机来电时先显示锁屏界面,然后才显示呼入界面,而对比机不会。1. 这种在a机上有,b机上没有的问题,我们最容易想到的解决方法就是,对比一下日志(或代码,此处不理会这种情况),看一下有什么不同,然后分析不同的地方。不过靠人工对比效率低得太可怕了。能有工具吗?如:提取出相同的日志记录,忽略掉干扰内容;

2012-04-18 18:36:47 401

原创 一旦需要使用共用pid,请把使用pid部分独立开来

解决方案:使用service,intentService 等,让服务运行于pid中,程序的其他部分通过这些个服务来间接使用这些pid的功能。或者使用aidl,就像ITelephony 和 PhoneInterfaceManager。

2012-04-18 18:32:54 2132

原创 Android的日志

Slog打印的日志用 adb logcat -b system 查看-b后边加events  查看DVM虚拟机日志(是虚拟机吗?);radio    查看无线及射频相关的日志;main     the default,一般的应用输出的日志,即Eclipse查看到的;注:这些参数可能是来源于android系统下的 /dev/log/chencc@chencc-desk

2012-04-18 18:28:37 650

原创 这是/etc/udev/rules.d/51-android.rules文件的内容,Ubuntu不能直接识别android手机的usb接入,需要配置一下该文件。

这是/etc/udev/rules.d/51-android.rules文件的内容,Ubuntu不能直接识别android手机的usb接入,需要配置一下该文件。# adb protocol on passion (Nexus One)SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e12", MODE="06

2012-04-18 18:23:16 5500

原创 进制转换,字符 <--> 数字

//10进制转换为16进制System.out.println(Integer.toHexString(15)); //out:f//16进制转换为10进制System.out.println(Integer.parseInt("f", 16)); //out:15//数字转换为字符System.out.println((char)97); //out:a

2012-04-18 18:21:18 469

原创 Android编程经验

总在解Bug,发现很多Bug其实来得很不必要,这是我总结的几点。1. 不要假定那个Activity会被先调用,每个Activity都应该是独立的。唯一一定会被先调用的是Application,多个Activity、多个Service的共用部分(如数据库,util)的初始化工作(及退出时的清理工作)都应放到放到这里来。这样可保证你的Activity是一个独立的共享单元。2.

2012-04-18 18:19:08 458

翻译 rapidsvn "remains in tree conflict"的解决方法

备注:有时候svn执行删除操作,会出现无法删掉的情况,错误提示就是“...remains in tree conflict.”,其解决方法如下。About 2. your directory remains in tree conflict. Easiest is to "Revert"the folder, update and then try again.

2012-04-18 18:13:23 1025

原创 try..catch..finally块中的跳转语句(return,break,continue)使用注意事项

public class TryReturn {     public static void main(String[] args) {          // mtd1()返回1? mtd2()返回2?          // 很可惜,返回的都是3          // 结论: 不要在try..catch..finally块中出现return等跳转出块范围的语句(>对此问题也

2012-04-18 18:10:39 6330

原创 在多个文件中查找字段的命令

在多个文件中查找字段的命令:grep -r "your_find" `find . | grep -v .svn | grep -i .java` 注: ` 是Esc建下边的那个按键, 不是单分号。可以支持多文件查找的工具还有 vimgrep, sgrep(貌似Android源码工程里就是用这个) 等等。

2011-12-30 17:17:00 1099

原创 可定制替换规则的文本替换器

可以根据需要改进:1. 让其不仅仅可以改SIM卡名称,适用于普遍的替换。(考虑提取抽象类)2. 使用Omission策略判断可更多地使用正则表达式。(比如在判断 “ sim ” 和 ”simple“上)3. 有一些特殊例子符合Omission策略,而实际却不能被忽略,这种情况应当能处理。(考虑修改Omission接口,增加一个会被优先处理的函数)4. 改进效率,目前在太多的地方

2011-12-27 13:40:41 610

原创 一些比较好的Android文章

Android系统源代码情景分析:基础知识作者 罗升阳 发布于 2011年12月14日摘要:我们知道,Android系统是基于Linux内核来开发的,在分析它在运行时库层的源代码时,我们会经常碰到诸如管道(pipe)、套接字(socket)和虚拟文件系统(VFS)等知识。此外,Android系统还在Linux内核中增加了一些专用的驱动程序,例如用于日志系统的Lo

2011-12-23 22:04:45 444

原创 不能使用IDE调试? 照样能很快定位问题

经常调试Android framework错误,framework不可能想使用IDE来step-by-step的调试。    为此,有时需要插入大量的log来帮助定位问题;有时知道了具体执行功能的函数,却发现调用者太多仍难以定位问题,最后只得花大把时间去阅读代码。    作为程序员,偷懒是种美德。我希望敲入调试语句的时候能偷懒一点,也希望能很容易地知道调用者是谁,于是有了下文。pa

2011-12-22 18:03:43 477

翻译 java: 一些数字到字符的转换技巧,反射访问类成员数组的方法

!本文声明:谴责烂代码 ! 接下来是正文:关于反射访问类成员数组的方法:记住java中的数组也是对象,用Field.getObject()就行了。本文介绍两种转换方式(在for循环里)。import java.io.IOException;import java.io.StringWriter;import java.lang.reflect.Field;pub

2011-12-20 11:34:50 911

原创 使用基于AIDL接口的典型套路

使用基于AIDL接口的典型套路  try { final ITelephony phone = ITelephony.Stub.asInterface(ServiceManager.checkService("phone")); if(phone!= null && !phone.isSimInsert(sim

2011-11-24 17:56:43 440

原创 生成动态代理的通用java代码

生成动态代理的通用java代码。这段代码是一个类似Spring的可配置AOP框架中的一个类,其中Advice1是接口,包含before和after两个方法。package pack.aop;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.refle

2011-10-25 21:33:22 347

原创 确保路径存在的函数 ensurePathExist

不管什么系统,很多文件操作得在保证文件(夹)路径存在的前提下才能进行。Symbian 提供了ensurePathExist函数,但Java API似乎没有相应的功能,所以只好自己搞一个了。考虑到使用程度较高,所以决定写点测试。有什么补充,欢迎提出。        废话少说

2011-10-09 03:06:44 787

转载 Android开发之旅:活动与任务[转]

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://skynet.blog.51cto.com/1943397/365383引言关于Android应用程序原理及术语,前面两篇:Android开发之旅:应用程序基础及组件Android开发之旅:应用程序基础及组件(续)介绍了Andro

2011-06-20 21:13:00 425

原创 C++防止内存泄漏简单方法

<br />    在Symbian C++编程程中遇到的一个最棘手问题就是内存泄露,如果内存泄露没有用正确方法去解决,则很容易衍生出一些难以解释的错误。 为此我专门总结出几条防止内存泄露的原则。<br /><br />四种基本的类<br />    T类一般都是在栈上分配的,不需要明确的分配操作,也不需要实现复制构造函数。T类的析构函数不会被执行,所以T类的成员数据不可以使用指针,引用,句柄或含有析构函数的类的类型,所以T类的成员数据只能是固有类型和其他T类类型。基本数据类型都属于T类范畴,如TI

2011-05-30 23:22:00 1046

原创 活动对象简介

Symbian编程——异步请求与活动对象,观察者模式/回调机制

2011-05-30 22:56:00 1673

原创 使用Time类遍历一学期的所有天

<br />/* 遍历一学期的所有天 */ Time t = new Time(); t.set(21, 1, 2011); // 2011-2-21日 Log.i("test", "t:" + t.format2445() + " " + t.getWeekNumber() + " " + t.toMillis(true)); t.normalize(true); // 没有这一步计算结果总会出错,到底这一步做了些什么还不清楚

2011-05-17 15:39:00 1192

原创 关于java垃圾回收的一个疑问

public class Test { public static void main(String[] args) { A a = new A(); B b = a.getB(); a = null; // 对象a能否回收? while (true) { b.newObject(); } // ... }}

2011-05-12 19:44:00 384

原创 Android字符串资源编译错误的解决方法

<br />在较老的Android版本上多个字符串占位符可以如下这么写,但若导入新版本编译时就会报错<br /><string name="template_word_title">"%s%s%s     "</string><br /> <br /> <br />解决的方式如下:<br /><string name="template_word_title">"%1$s%2$s%3$s     "</string>

2011-04-22 20:02:00 831

原创 通过接口复用代码

<br />    通过接口实现复用代码的两种方式:<br />    如果是同一规划的类库,那么创建这些类时要遵循一个(组)已规划的统一接口。<br />    但很多情况下,类库是被发现而非被创建的,这时可以使用适配器模式。<br /><br />    依赖接口远比依赖抽象类自由,因为接口不附带有相关的存储且不受分类学限制。

2011-04-20 17:56:00 467

原创 适配器模式

适配器向上提供匹配于使用者的接口,向下委托类(库)的接口完成实质工作,中间是完成这两种接口的转换。代码举例如下://被适配的类,别人的类class Xxx{    public void method(){        System.out.println(getClass().getSimpleName()+" processed");    }}//适配器,完成接口转换class XxxAdapter implements IPr

2011-04-20 17:53:00 415

LINUX命令、编辑器与SHELL编程_英文chm

A Practical Guide to Linux® Commands, Editors, and Shell Programming_《LINUX命令、编辑器与SHELL编程》

2011-12-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除