- 博客(68)
- 资源 (1)
- 收藏
- 关注
原创 Android 网络时间更新
Android2.3中,网络时间更新是通过GSM和CDMA的电信移动网络来实现的,但是现在很多MID都没有GSM和CDMA,所以,没有实现网络更新。 在 “设置” ——> “日期和时间” ——> “自动” 选项实习网络时间更新 由于项目需要,我用了点时间去实现了通过wifi实习网络时间更新,如下 直接修改android源码中的Setti...
2012-09-06 19:51:13
365
原创 Android 通过NTP服务器自动获取时间的方法
对于手机,如果有SIM卡支持的话,在设置时间时可以通过选择自动从网络获取时间来取得当地的时间和时区: 但如果手机没有SIM卡,此时如果有Wifi链接,手机依然可以通过网络自动获取时间(时区此时需要手动设置)。 查看Android源码,在android.net 中有 SntpClient类,可以通过访问NTP服务器来取得当前的GMT时间。pool.n...
2012-09-06 19:43:27
960
原创 android 自动获取时间,网络提供的值
frameworks/base/services/java/com/android/server$下面的TimeService.java文件。有一个类GetTimeTask,此类通过NTP来获取网络时间: 国内NTP时间服务器主要是有: 1. 1.cn.pool.ntp.org 2. 2.cn.pool.ntp.org 3. 3.cn.pool.ntp.o...
2012-09-06 19:38:38
473
原创 Android中10个成功的开源项目
1.Android团队提供的示例项目如果不是从学习Android SDK中提供的那些样例代码开始,可能没有更好的方法来掌握在Android这个框架上开发。由Android的核心开发团队提供了15个优秀的示例项 目,包含了游戏、图像处理、时间显示、开始菜单快捷方式等。地址:http://code.google.com/p/apps-for-android/2.Remote DroidRemoteDr...
2011-05-31 00:12:58
222
原创 PendingIntent实现原理和代码
对于Android的Intent相关内容,可能部分初级Android开发者不知道PendingIntent是干什么的? 对于Notification和SmsManager中的sendMessage以及AlarmManager中的set这些方法中均有PendingIntent,到底PendingIntent和Intent有哪些不同呢? 一、Intent 通常Android中的...
2011-04-26 22:40:44
808
原创 IntentService实现原理及内部代码
很多网友可能发现Android中除了Service还有一个IntentService,他们之间到底有哪些区别呢? 在继承关系上而言IntentService是Service的子类,内部实现的代码中涉及到一些Android入门开发者不了解的Looper,Android123在早期的文章中已经说明他们的用法,这里不再赘述,有关原理大家可以看源码实现如下:public abstract clas...
2011-04-26 22:39:50
194
原创 android系统自带的Service原理与使用
1. 说明 android的后台运行在很多service,它们在系统启动时被SystemServer开启,支持系统的正常工作,比如 MountService监听是否有SD卡安装及移除,ClipboardService提供剪切板功能,PackageManagerService提 供软件包的安装移除及查看等等,应用程序可以通过系统提供的Manager接口来访问这些Service提供的数据...
2011-04-26 20:07:39
243
原创 Android应用开发——系统自带样式Android:theme
?android:theme="@android:style/Theme.Dialog" 将一个Activity显示为能话框模式 ?android:theme="@android:style/Theme.NoTitleBar" 不显示应用程序标题栏 ?android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 不显示...
2011-04-26 20:03:56
171
原创 Android中Message机制的灵活应用
下面我们会以android实例来展示对应的功能,程序界面于下: 程序代码如下,后面部分有代码说明: package com.android.messageexample; import android.app.Activity; import android.content.Context; import android.graphics.Color; ...
2011-04-26 19:50:21
145
原创 Android中的Handler, Looper, MessageQueue和Thread
前几天,和同事探讨了一下Android中的消息机制,探究了消息的发送和接收过程以及与线程之间的关系。虽然我们经常使用这些基础的东西,但对于其内部原理的了解,能使我们更加容易、合理地架构系统,并避免一些低级错误。对于这部分的内容,将分成4小节来描述:1.职责与关系2.消息循环3.线程与更新4.几点小结----------------------------------------------...
2011-04-26 19:42:00
146
原创 在Android中使用Handler和Thread线程执行后台操作
标题:在Android中使用Handler和Thread线程执行后台操作作者:CrazyPebble时间:2011年3月23日声明:此文在参考《解密Google Android》一书 和 Android视频教程(www.mars-droid.com)。文中存在错误之处,还请各位批评指正。若转载本文,请指明转载出处:http://www.cnblogs.com。 大家都知...
2011-04-26 19:40:06
146
原创 探索java多线程(连载)1 守护线程
在java中有一类线程,专门在后台提供服务,此类线程无需显式关闭,当程序结束了,它也就结束了,这就是守护线程 daemon thread。如果还有非守护线程的线程在执行,它就不会结束。 守护线程有何用处呢?让我们来看个实践中的例子。 在我们的系统中经常应用各种配置文件(黑名单,禁用词汇),当修改配置文件后,一般要重启服务,系统才能够加载;当重启服务的代价...
2011-04-25 20:08:05
125
原创 以多线程、断点续传方式下载文件的实现
以多线程、断点续传方式下载文件,经常出现下载下来的文件大小和服务端一致,但是却无法正常打开的现象,搞了很久,贴下我的实现方式,请各位多多指教思路:1、将下载文件的处理放在自定义的线程类中,每下载一个文件就新启动一个下载线程。2、在下载线程中完成对服务端的链接和身份认证,成功后开始下载文件。3、新建n个子线程,根据下载文件的大小和线程数量得到每个子线程要下载的大小。4、分别启...
2011-04-25 20:05:56
222
原创 多线程断点续传
以前看过一个前辈写的断点续传的文章,记得当时没看懂,就扔那了。昨天翻了出来,自己也仿照写了一个,不过感觉没人家写的好,有点乱,希望大家能来批评、指正,给点意见! 功能很简单,就是启动多个线程分别从给定的地址下载数据,用RandomAccessFile写到目标文件。实现思路是: 1、获得连接的长度(即要下载的文件大小),除以设定的线程数,即得到每个线程要下载的大小。...
2011-04-25 20:04:09
129
原创 多线程断点续传实践
/** * author:annegu * date:2009-07-16 */ annegu做了一个简单的Http多线程的下载程序,来讨论一下多线程并发下载以及断点续传的问题。 这个程序的功能,就是可以分多个线程从目标地址上下载数据,每个线程负责下载一部分,并可以支持断点续传和超时重连。 下载的方法是download(),它接收两个参数,分别是要下载的页面的url和编码方式。在这个负责...
2011-04-25 19:57:20
139
原创 条形码barcode4j的使用
条形码,上网google了一下,用的比较多的是barbecue和barcode4j。 我先使用的是barbecue,条形码是可以显示出来,可是下面的对应数字却不能显示,当然可以自己手动加上去,不过那就不是一张图片里面的了,排版也不是很好看。因此我就试了一下barcode4j,效果挺好的,所以把使用方法贴上来,给刚接触java的朋友们一点借鉴。 1、 google或者摆渡一下barcode4j要用的...
2011-04-24 23:46:52
460
原创 随机数字验证码的生成
有时候在我们的网络应用中,防止程序自动登录搞破坏,我们一般都会加上验证码,这些验证码一般来说都是由人来识别的,当然,如果验证码很有规律,或者说很清楚,漂亮,那么也是可能被程序识别的,我以前就识别过某网站的验证码,因为比较有规律,所以被识别了,并且识别率达到99%左右,其实我们可以制作很复杂一点的验证码,添加一些干扰的线条或者字体变形,使程序识别的难度加大,这样,我们的目的也就达到了.下面是生成的图...
2011-04-24 23:45:55
220
原创 java并发编程-Executor框架
Executor框架是指java 5中引入的一系列并发库中与executor相关的一些功能类,其中包括线程池,Executor,Executors,ExecutorService,CompletionService,Future,Callable等。他们的关系为:并发编程的一种编程方式是把任务拆分为一些列的小任务,即Runnable,然后在提交给一个Executor执行,Execu...
2011-04-24 23:40:05
163
原创 管理你的线程池(Executor)
我们都知道使用线程池能够控制线程的数量,尤其是大量的“短命”线程存在时,线程池将大大降低系统消耗(内存和CPU)。不过,线程池也同样需要管理,于是我写了本篇。 首先,我们来看看管理器的整个继承关系: 显而易见,有ThreadPoolExecutor和ScheduledThreadPoolExecutor两个实现类,当然Executor类里也有一些内部类实现了特定的功能(如class...
2011-04-24 23:37:47
188
原创 如何充分利用多核CPU,计算很大的List中所有整数的和
引用前几天在网上看到一个淘宝的面试题:有一个很大的整数list,需要求这个list中所有整数的和,写一个可以充分利用多核CPU的代码,来计算结果。一:分析题目 从题中可以看到“很大的List”以及“充分利用多核CPU”,这就已经充分告诉我们要采用多线程(任务)进行编写。具体怎么做呢?大概的思路就是分割List,每一小块的List采用一个线程(任务)进行计算其和,最后等待所有...
2011-04-24 23:34:26
143
原创 Java多线程--让主线程等待所有子线程执行完毕
朋友让我帮忙写个程序从文本文档中导入数据到oracle数据库中,技术上没有什么难度,文档的格式都是固定的只要对应数据库中的字段解析就行了,关键在于性能。 数据量很大百万条记录,因此考虑到要用多线程并发执行,在写的过程中又遇到问题,我想统计所有子进程执行完毕总共的耗时,在第一个子进程创建前记录当前时间用System.currentTimeMillis()在最后一个子进程结束后记录当前时...
2011-04-24 23:30:48
112
原创 线程池嵌套线程池的控制应用(servlet程序控制新线程池)
本人近来需要在servlet里另起线程池,以便控制,因为servlet的线程是不为我们能控制的,所以无奈之下,使用了ThreadPoolExecutor类。 但是有些任务需要在自己创建的线程池里执行完了,servlet的程序才继续执行。 本来想着用join(),但是线程池的线程引用拿不到,如果在线程池里设置成员变量,又会引起线程不安全(事实上,join()了也没用,因为线程池的线程...
2011-04-24 23:26:28
2084
原创 线程池(java.util.concurrent.ThreadPoolExecutor)使用简介
在多线程大师Doug Lea的贡献下,在JDK1.5中加入了许多对并发特性的支持,例如:线程池。一、简介线程池类为 java.util.concurrent.ThreadPoolExecutor,常用构造方法为:ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,long keepAliveTime, TimeUnit un...
2011-04-24 23:20:48
202
原创 线程池ThreadPoolExecutor简介
从 Java 5 开始,Java 提供了自己的线程池。线程池就是一个线程的容器,每次只执行额定数量的线程。 java.util.concurrent.ThreadPoolExecutor 就是这样的线程池。它很灵活,但使用起来也比较复杂,本文就对其做一个介绍。 首先是构造函数。以最简单的构造函数为例:public ThreadPoolExecutor( ...
2011-04-24 23:17:37
107
原创 Android异步加载图片
前几天记得说要分享一下异步下载加载图片的经验,最近一直在研究Cocos2d,把这事耽误了。今天就写了写 如果不怕图片那个内存溢出的bug的话。可以使用ListView,GridView等等,如果担心这个问题,可以使用ImageView 既然是异步加载,那就采用多线程下载吧。 这个例子里面也就用了一个线程池 1. //初始化线程池 ThreadPoo...
2011-04-24 23:07:33
94
原创 Android实现ListView异步加载图片
ListView异步加载图片是非常实用的方法,凡是是要通过网络获取图片资源一般使用这种方法比较好,用户体验好,下面就说实现方法,先贴上主方法的代码: package cn.wangmeng.test; import java.io.IOException; import java.io.InputStream; import java.lang.ref.SoftR...
2011-04-24 23:03:14
89
原创 Android游戏开发之旅 View类详解
自定义 View的常用方法:onFinishInflate() 当View中所有的子控件 均被映射成xml后触发onMeasure(int, int) 确定所有子元素的大小onLayout(boolean, int, int, int, int) 当View分配所有的子元素的大小和位置时触发onSizeChanged(int, int, int, int) 当view的大小发生...
2011-04-21 20:21:48
165
原创 在Eclipse中调试运行launcher源码(五)——运行自己修改的Launcher
没有Launcher2.2源码的看这儿: 在Eclipse中调试运行launcher源码(一)——获取launcher源码:http://gqdy365.iteye.com/blog/737642 在Eclipse中调试运行launcher源码(二)——向Eclipse中导入Launcher源码: http://gqdy365.iteye.com/blog/737645 在Eclipse中调试运行...
2011-04-21 20:20:21
186
原创 在Eclipse中调试运行launcher源码(四)——修改所有类中的错误—2
没有Launcher2.2源码的看这儿: 在Eclipse中调试运行launcher源码(一)——获取launcher源码:http://gqdy365.iteye.com/blog/737642 在Eclipse中调试运行launcher源码(二)——向Eclipse中导入Launcher源码: http://gqdy365.iteye.com/blog/737645 在Eclipse中调试运行...
2011-04-21 20:14:44
152
原创 在Eclipse中调试运行launcher源码(四)——修改所有类中的错误_1
没有Launcher2.2源码的看这儿: 在Eclipse中调试运行launcher源码(一)——获取launcher源码:http://gqdy365.iteye.com/blog/737642 在Eclipse中调试运行launcher源码(二)——向Eclipse中导入Launcher源码: http://gqdy365.iteye.com/blog/737645 在Eclipse中调试运行...
2011-04-21 20:09:08
117
原创 在Eclipse中调试运行launcher源码(三)——修改工程的包名
没看前面内容的朋友看这儿: 在Eclipse中调试运行launcher源码(一)——获取launcher源码:http://gqdy365.iteye.com/blog/737642 在Eclipse中调试运行launcher源码(二)——向Eclipse中导入Launcher源码: http://gqdy365.iteye.com/blog/737645 我们接上前面的内容,今天的内容是修改an...
2011-04-21 20:03:37
115
原创 在Eclipse中调试运行launcher源码(二)——向Eclipse中导入Launcher源码
还没有android Launcher源码的看这儿: 在Eclipse中调试运行launcher源码(一)——获取launcher源码:http://blog.youkuaiyun.com/gqdy365/archive/2010/08/14/5812432.aspx 有了Launcher2.2源码后我们就要把他导入到Eclipse中。 注意:我调试Launcher源码是在windows xp sp3环境下,...
2011-04-21 19:58:47
94
原创 在Eclipse中调试运行launcher源码(一)——获取launcher源码
最近由于工作需要开始钻研Launcher源码,在这儿记载下我的学习过程,也希望能与大家一起交流,高手们见笑了! 关于Launcher源码我就不做介绍了,如果大家不知道Launcher是什么那先去百度一下! 如何得到Launcher源码? 一、下载android源码,从android源码中提取Launcher源码。 网上有很多下载的教程,自己找。也可以去android源码网站上只下载Laun...
2011-04-21 19:54:34
92
原创 修改launcher中抽屉的显示图标
Android2.1及以下版本打开应用都是用如下图所示的这个抽屉: 个人觉得要是做自己的Launcher最后把它换成自己的图片,下面给大家说一下我更换图标的方法: 1) 更换这个图标是不需要修改代码的,找到图片所在的位置,用自己的图片替换即可。下面我们查找图片所在的位置: 2) 找到res/layout-port/Launcher.xml,至于为什么是layout-port而不是layout...
2011-04-21 19:52:59
133
原创 launcher中celllayout类简单分析
1) 大家都知道workspace是有celllayout组成。Celllayout被划分为了4行4列的表格,用Boolean类型的mOccupied二维数组来标记每个cell是否被占用。在attrs.xml中定义了shortAxisCells和longAxisCells分别存储x轴和y轴方向的cell个数。在Celllayout构造函数中初始化。 2) 内部类CellInfo为静态类,实现了...
2011-04-21 19:50:58
188
原创 launcher中Workspace类大致分析
在Workspace.Java类实现,相关方法有: 1) computeScroll():重写了父类的computeScroll();主要功能是计算拖动的位移量、更新背景、设置要显示的屏幕(setCurrentScreen(mCurrentScreen);)。 2) dispatchDraw():重写了父类的dispatchDraw();主要功能是判断抽屉是否打开、绘制指定的屏幕,可以绘制当前一屏...
2011-04-21 19:50:08
93
原创 Android launcher总体分析
本博文主要参考网络资料,希望对各位正在修改launcher的有帮助: Home screen可以说是一个手机的最重要应用,就像一个门户网站的首页,直接决定了用户的第一印象。下面对home screen做一简要分析。 home screen的代码位于packages/apps/Launcher目录。从文件launcher.xml,workspace_screen.xml可获知home screen的...
2011-04-21 19:48:43
150
原创 Andorid Launcher程序代码分析
Launcher是Android系统的桌面系统,是比较重要也比较复杂的程序,这里对其代码做一个分析,希望起到抛砖引玉的作用。1. Launcher有什么? live folder , widget , shortcut , wallpaper ,见 onActivityResult 2. UI 分成 3 部分: workspace, slibingdrawer, deletezone 3. M...
2011-04-14 19:59:17
103
原创 获取Android手机上的图片和视频缩略图
大家都知道Android从1.5开始刚插入SD卡时系统会调用MediaScanner服务进行后台扫描,索引新的歌曲、图片和视频等信息,如果我们需要快速提取图片和视频缩略图可以直接访问 android.provider.MediaStore.Images.Thumbnails 和android.provider.MediaStore.Video.Thumbnails这两个数据库,即可查询出来...
2011-03-09 21:22:48
129
原创 P2P网络电视
P2P网络电视--市场篇一、用户 根据2005年CNNIC的统计报告,全国有3500万的宽带用户,而宽带到目前为止最大的用途还是大量数据的传输,这点从BT、EMULE、POCO的发展可以看出。电视用户没做过具体统计,粗略统计一下,按每3人一台,应该有超过5亿。 在校学生、网吧用户有着巨大的市场需求,学生有电脑、宽带,没有有线电视接入,网吧同理,在有热门节目和大型活动的时候这种需求显而易见...
2011-01-29 21:52:11
645
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人