自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 资源 (2)
  • 收藏
  • 关注

转载 程序员应该具备的条件

我不是天生的程序员,也并非天生就喜欢电脑,上高中时也没有想过将来会当程序员,接触电脑纯属偶然--小时候的一个好朋友上大学时选择了电脑专业,为了和这个朋友有更多的“共同语言”我便选择了计算机系。在大学,我略窥电脑世界,开始为之“发烧”;毕业后,开始了一个程序员的职业生涯。 从开始写程序到现在快十年了,写过的程序不少。从这些年的风风雨雨中走过来,不能不有些体会。说到体会,最大的体会就是这条路太漫长

2012-11-19 11:33:12 1626

转载 全局定时器AlarmManager

前面介绍的时间服务的作用域都是应用程序,也就是说,将当前的应用程序关闭后,时间服务就会停止。但在很多时候,需要时间服务不依赖应用程序而存在。也就是说,虽然是应用程序启动的服务,但即使将应用程序关闭,服务仍然可以正常运行。为了达到服务与应用程序独立的目的,需要获得AlarmManager对象。该对象需要通过如下代码获得:AlarmManager alarmManager = (Alarm

2012-11-29 17:19:21 4186

转载 面向对象的思维方法

我是从学习Java编程开始接触OOP(面向对象编程),刚开始使用Java编写程序的时候感觉很别扭,因为我早以习惯用C来编写程序,很欣赏C的简洁性和高效性,喜欢C简练而表达能力丰富的风格,特别忍受不了Java运行起来慢吞吞的速度,相对冗长的代码,而且一个很简单的事情,要写好多类,一个类调用一个类,心里的抵触情绪很强。我对Java的面向对象的特性琢磨良久,自认为有所领悟,也开始有意识的运用OO

2012-11-29 12:43:48 1114

原创 Android 待机时间

Android启动之后,手机待机多少时间。对于刚接触Android的人来说,可能是一个困扰,如果用C语言考虑问题的人,第一步估计就是考虑驱动。其实Android已经封装的很好了。希望对需要用到的人有些帮助。 private void updateBatteryStats() { long uptime = SystemClock.elapsedReal

2012-11-29 09:29:30 2618

转载 BroadCastReceiver 简介

BroadCastReceiver 源码位于: framework/base/core/java/android.content.BroadcastReceiver.java 广播接收者( BroadcastReceiver )用于接收广播 Intent ,广播 Intent 的发送是通过调用Context.sendBroadcast() 、 Context.sendOrderedBroa

2012-11-28 17:01:35 565

转载 反编译

在进行反编译之前,需要准备好下面的软件工具(这些文件都放在同一文件下):下面开始进行反编译APK文件:1.先将上面的apktool-install-windows-2.1_r01-1.zip,dex2jar-0.0.7-SNAPSHOT.zip解压到一个盘的根目录的一个文件下面(这里我选择D:\APKTool)2.Win+R打开运行界面,输入cmd,进入dos窗

2012-11-28 14:02:11 1039

转载 setProjectionMap(sContactsProjectMap)

sContactsProjectMap是一个hashmap, 看到他的key和value是一样的, 顿生疑惑,搜索一下,发现如下文字,解惑之. SQLiteQueryBuilder中的setProjectionMap,这里的ProjectionMap必须是一个hashmap,更重要的是:If a projection map is set it must conta

2012-11-28 11:01:39 3724

原创 Android 启动暗码打开指令窗口

直接看代码:AndroidManifest TestingSet

2012-11-27 17:11:18 6744 3

转载 android 探索首选项框架 ListPreference

在深入探讨Android的首选项框架之前,首先构想一个需要使用首选项的场景,然后分析如何实现这一场景。假设你正在编写一个应用程序,它提供了一个搜索飞机航班的工具。而且,假设该应用程序的默认设置是根据机票价格由低到高的顺序显示航班,但用户可以将首选项设置为始终根据最少停站数或特定航线来航班。如果实现这一场景? ListPreference    显然,必须为用户提供UI 来查看排序选项列

2012-11-27 16:29:19 862

转载 PreferenceScreen

对于每个应用程序来说,都要有一些属于用户自己的设置,满足不同需求。当我们点击menu时,如下: 点击settings时,出现: 那么这样的效果是怎么实现的呢?我只是来个简单介绍,给自己做备忘,也是给大家点思路吧。在android的路上,我们一起努力吧。这里我们仅说第二个图片效果的实现,第一个图片的效果,想必大家都会了,就是使用menu类的几个方法就可以了。

2012-11-27 16:27:50 2055

转载 Android 指令窗口

代码来自于 $ANDROID_SOURCE/packages/apps/Settings  AndroidManifest.xml[java] view plaincopy"TestingSettings" android:label="@string/testing">    "android.intent.acti

2012-11-27 16:11:42 1571

转载 android 获得手机信息

通过com.android.internal.os.PkgUsageStats这个类可以得到一个应用程序的启动次数,运行时间等信息,功能很强大。但是google并没有将这个类作为API接口提供给开发者,如果在android源码下开发,可以通过以下代码来使用这个类:import com.android.internal.app.IUsageStats;import com.android

2012-11-27 15:51:27 3380

转载 得到开机启动时间

我的思路是:程序里注册个广播接收器,接收开机启动的广播,当程序接到该广播后,写入文件SharedPreferences,当我们程序需要用到开机时间时,再从SharedPreferences中读取信息。废话不多说,下面上源码。AndroidManifest.xml?12345receiver

2012-11-27 15:20:25 772

转载 Launcher2项目导入eclipse

1.将Launcher2项目导入eclipse中。这时候Launcher2工程已经导入到eclipse中了,不过这时候会有100多个错误.2.添加Launcher2使用的包文件。由于在Android源码中,很多方法、成员、类、包都被打上@hide标签,这些成员在SDK中没有公开,以至于在编译Launcher源码时最常遇到的类android.view.View的成员mScro

2012-11-27 14:17:16 877

转载 Launcher研究

主要涉及3个方面,作为Launcher源码研究的入门:1.源码的下载;2.源码的编译;3.结构初探。 [下载源码] 1.下载Msysgit (目前最新的是Git-1.7.4-preview20110204.exe),一路按默认配置安装;2.任一地方新建一个目录(用于储存下载下来的源码);3.点击目录右键,选择Git Bash,这是会弹出一个命令输

2012-11-27 14:11:00 672

转载 JAVA反射机制

JAVA反射机制:“程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”。从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#不是动态语言。目录概述Cla“Class” object的取得途径各成份所对应的APIJava 源码改动办法更多信息编辑本段概述

2012-11-27 13:59:26 920

转载 .properties 文件

在我们平时写程序的时候,有些参数是经常改变的,而这种改变不是我们预知的。比如说我们开发了一个操作数据库的模块,在开发的时候我们连接本地的数据库那么IP ,数据库名称,表名称,数据库主机等信息是我们本地的,要使得这个操作数据的模块具有通用性,那么以上信息就不能写死在程序里。通常我们的做法是用配置文件来解决。各种语言都有自己所支持的配置文件类型。比如Python ,他支持.ini 文件。因为他内部

2012-11-27 13:55:51 31991 6

原创 关于程序员自学的一点心得

以下是个人学习的办法。不一定是最好的,也不一定是最适合你的,但或许是一种可以选择的学习方法。废话不多说,进入主题。1.语言基础对个人来说这是最困难也是最容易的地方,容易是学的东西都不复杂,困难是接触的是一门新学习的语言,从基础概念到语法都不熟悉。希望大家在这里多花些时间,磨刀不误砍柴工,基础打好才是关键。有很多适合入门的书籍,这里就不重复了。

2012-11-27 11:43:34 1655

转载 Observer模式

Observer模式定义对象间的一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。JDK里提供的observer设计模式的实现由java.util.Observable类和 java.util.Observer接口组成。从名字上可以清楚的看出两者在Observer 设计模式中分别扮演的角色:Observer是观察者角色,Observable是被观察目标(su

2012-11-27 10:28:19 470

转载 Android核心分析之一

分析方法论探讨之设计意图为什么要研究Android,是因为它够庞大,它够复杂,他激起了我作为一个程序员的内心的渴望,渴望理解这种复杂性。我研究的对象是作为手机开发平台的Android 软件系统部分,而不是Dalvik 虚拟机本身。作为一个从其他平台装接过来的程序员,要从事Andoid 平台系统开发,我的关于手机平台上积累的知识已经不能满足需要了,Android 为我们带来了大量

2012-11-26 17:22:13 665

原创 数据库基本操作

在进行数据库操作时,无非就是添加、删除、修改,这得设计到一些常用的SQL语句,如下: SQL常用命令使用方法: (1) 数据记录筛选: sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]" sql="select * from 数据表 where 字段名 like %字段值% order by 字段名 [desc]" sql="

2012-11-26 17:07:02 4806

原创 编码分析

编码分析技术文档 1.、ASCII码 美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为ASCII码,一直沿用至今。ASCII码一共规定了128个字符的编码,比如空格“SPACE”是32(十进制的32,用二进制表示就是00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7

2012-11-26 16:18:55 2302

转载 Java与C语法上的区别

1、标识符: C可用的标识符为数字、大小写字母、下划线,不能以数字开头;Java可用的标识符除了C的三种以外,多一种美元符号($),同样不能以数字开头。 2、关键字:C中的关键字有:auto   break    case    char   constcontinue   default    do    double   elseenum   extern

2012-11-26 16:16:14 11282 1

原创 C Java 字符串和字符数组区别

1. C 语言  在C语言中字符串和字符数组基本上没有区别,都需要结束符;如:char s[4]={'a','b','c','d'};此字符数组的定义编译可以通过,但却没有关闭数组,若其后需要申请内存,那么以后的数据均会放入其中,尽管它的长度不够,但若为 char s[5]={'a','b','c','d'};则系统会自动在字符串的最后存放一个结束符,并关闭数组,说明字符数组是有结束符的;

2012-11-26 15:31:06 6407 1

转载 Windows与Linux下SVN 使用

Windows与Linux下SVN怎样使用?2011年01月23日 星期日 上午 9:21本文分2个部分(包括Windows与Linux操作系统平台),第1部分:怎样安装 第2部分:怎样使用-----------------------------------------第1部分:怎样安装-----------------------------------------

2012-11-26 11:43:05 1609

转载 Launcher

Launcher是安卓系统中的桌面启动器,安卓系统的桌面UI统称为Launcher。Launcher是安卓系统中的主要程序组件之一,安卓系统中如果没有Launcher就无法启动安卓桌面,Launcher出错的时候,安卓系统会出现“进程 com.android.launcher 意外停止”的提示窗口。这时需要重新启动桌面Launcher。安卓系统Launcher的开发  一、主要文件

2012-11-24 15:52:10 5066

转载 AsyncTask

在Android中实现异步任务机制有两种方式,Handler和AsyncTask。Handler模式需要为每一个任务创建一个新的线程,任务完成后通过Handler实例向UI线程发送消息,完成界面的更新,这种方式对于整个过程的控制比较精细,但也是有缺点的,例如代码相对臃肿,在多个任务同时执行时,不易对线程进行精确的控制。关于Handler的相关知识,前面也有所介绍,不清楚的朋友们可以参照一下

2012-11-24 15:39:59 5487

转载 handler

在android中,有很多功能是不能放在onCreate或者onStart方法里面,因为这些功能相对来说费时比较长,比如说下载一个文件,下载的过程比较长,但是如果写在Activity中,那么这段时间Activity是完全没有响应的,那么就可以将这种处理大量数据或者耗时比较长的东西放在一个单独的线程中来完成,即Activity是一个线程,而下载的是在另外一个线程,那么这样就可以使得下

2012-11-24 14:22:09 581

转载 Android系统启动

在前面一篇文章中,我们分析了Android系统在启动时安装应用程序的过程,这些应用程序安装好之后,还需要有一个Home应用程序来负责把它们在桌面上展示出来,在Android系统中,这个默认的Home应用程序就是Launcher了,本文将详细分析Launcher应用程序的启动过程。        Android系统的Home应用程序Launcher是由ActivityManagerServi

2012-11-24 14:20:42 1918

转载 launcher2主要文件和类

一、主要文件和类 1.Launcher.java:launcher中主要的activity。2.DragLayer.java:launcher layout的rootview。DragLayer实际上也是一个抽象的界面,用来处理拖动和对事件进行初步处理然后按情况分发下去,角色是一个controller。它首先用onInterceptTouchEvent(MotionEvent)来拦

2012-11-24 13:30:56 994

转载 Android开发当中Parcelable接口的使用

对于Android来说传递复杂类型,主要是将自己的类转换为基础的字节数组,Activity之间传递数据是通过Intent实现的。 Android序列化对象主要有两种方法,实现Serializable接口、或者实现Parcelable接口。实现Serializable接口是Java SE本身就支持的,而Parcelable是Android特有的功能,效率比实现Serializable接口高,而且

2012-11-24 13:05:05 455

转载 android launcher总体分析

本博文主要参考网络资料,希望对各位正在修改launcher的有帮助: Home screen可以说是一个手机的最重要应用,就像一个门户网站的首页,直接决定了用户的第一印象。下面对home screen做一简要分析。 home screen的代码位于packages/apps/Launcher目录。从文件launcher.xml,workspace_screen.xml可获知home s

2012-11-24 10:55:41 569

转载 launcher

着手开发laucher 我个人觉得首先要从ui框架入手,了解清楚了ui框架对laucher就有了一个大致的了解,知道关键的几个类在哪里,对后面进一步深入地研究作出铺垫。废话不多说了,直接进入主题:1.先看图这是我正在研究的一个800*480的launcher的ui框架图,对应的桌面显示效果如下:下面一行应用是我修改桌面后的结果,在前面我的ui框架图中没有。

2012-11-24 10:44:04 1065

原创 经典多线程实例:生产者消费者问题

大部分人在理解Java的多线程这个问题有点困难,尤其是一些刚开始接触的编程语言是C语言的人。考虑到用C语言的人接触的都是一个主线程,下面给出的例子并没有太复杂的结构。主要是用来理解多线程的机制。采用的例子:生产者消费者问题。SyncStack存储WoTouProducer生产WoTouConsumer消费WoToupackage com.exampl

2012-11-23 14:21:34 1491

转载 Java数组分析

这篇文章主要是分享给同时学习JAVA和C语言的朋友。经常会在两种语言切换的时候对数组进行使用,产生的一些问题。先简单的介绍下JAVA中的数组:一维数组的声明方式:type var[]; 或type[] var;声明数组时不能指定其长度(数组中元素的个数),Java中使用关键字new创建数组对象,格式为:数组名 = new 数组元素的类型 [数组元素的

2012-11-23 13:25:19 631

原创 Java synchronized

public class TestThread5 implements Runnable { Timer timer = new Timer(); public static void main(String[] args) { TestThread5 test = new TestThread5(); Thread t1 = new Thread(test); Thread t

2012-11-23 11:15:35 425

转载 线程同步

什么是线程同步?当使用多个线程来访问同一个数据时,非常容易出现线程安全问题(比如多个线程都在操作同一数据导致数据不一致),所以我们用同步机制来解决这些问题。实现同步机制有两个方法:1。同步代码块:synchronized(同一个数据){} 同一个数据:就是N条线程同时访问一个数据。 2。同步方法:public synchronized 数据返回类型 方法名(){

2012-11-23 10:23:42 2625 1

原创 菜鸟程序猿的一些小小想法

做软件开发有段时间了。其实自认为一直算不上一个合格的程序猿。很多时候只是完成工作需要的任务,对某些问题并没有自己的想法。改改项目的BUG,适用于刚进入这个门槛的人。也是个很快成长的办法。其中,会有很多的迷茫,和对问题的不解。不记得谁说过,前进的道路总是如此,模糊又看不清。在没有人指导的情况下,更为显得明显。看什么书,该如何看,如何评价一本书的好坏,都需要我们从一个程序猿的角度出发考虑。

2012-11-22 18:27:28 881

原创 线程系列五

import java.util.Date;public class TestThread3 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub MyThread thread = new MyThread(); thre

2012-11-22 15:12:43 429

原创 线程系列四

系列四相对来说是最难理解也是最复杂的地方。大家先把线程的几种状态明白:New:创建Runnable:就绪Running:运行Blocked:阻塞Dead:终止深入了解这张图片,有空可以自己看看关于系统的一些基本知识。

2012-11-22 14:37:51 435

APK反编译工具

APK反编译工具,获得原有的代码,方便学习。

2012-12-06

Eclipse快捷键

Eclipse快捷键,常用到的一些开发快捷键,以及在什么情况下使用。推荐使用Eclipse的人收藏。

2012-11-17

空空如也

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

TA关注的人

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